Inference Logoinference.sh

Textarea

Multi-line text input control for longer form content.

Preview

code
12 Enter your message...  3                        4                        5

Usage

go
1node := models.WidgetNode{2    Type:        models.WidgetNodeTypeTextarea,3    Name:        "message",4    Placeholder: "Enter your message",5    Rows:        4,6}

Props

NameTypeDescriptionDefault
type"textarea"Node typerequired
namestringForm field name (key in form data)required
placeholderstringPlaceholder text shown when empty-
defaultValuestringInitial value""
rowsnumberInitial number of visible rows3
disabledbooleanDisable interactionsfalse
requiredbooleanMark as required for form submissionfalse
autoResizebooleanAutomatically grow/shrink to fit contentfalse
maxRowsnumberMaximum rows when auto-resizing10
variant"soft" | "outline"Visual style"outline"
sizeSizeTokenControl size"md"

Examples

Basic Textarea

go
1{2    Type:        models.WidgetNodeTypeTextarea,3    Name:        "description",4    Placeholder: "Describe your issue",5    Rows:        4,6}

Auto-resizing

go
1{2    Type:       models.WidgetNodeTypeTextarea,3    Name:       "notes",4    AutoResize: true,5    MaxRows:    10,6}

In a Form

go
1widget := &models.Widget{2    Type:        models.WidgetTypeUI,3    Title:       "Feedback",4    Interactive: true,5    Children: []models.WidgetNode{6        {7            Type: models.WidgetNodeTypeCol,8            Gap:  3,9            Children: []models.WidgetNode{10                {Type: models.WidgetNodeTypeInput, Name: "subject", Placeholder: "Subject"},11                {Type: models.WidgetNodeTypeTextarea, Name: "message", Placeholder: "Your message", Rows: 5},12            },13        },14    },15    Actions: []models.WidgetActionButton{16        {Label: "Send", Action: models.WidgetAction{Type: "send_feedback"}},17    },18}

Form Data

When submitted, textarea value is included:

json
1{2  "subject": "Bug report",3  "message": "I found an issue with..."4}

TypeScript

typescript
1const node: WidgetNode = {2  type: "textarea",3  name: "message",4  placeholder: "Enter message",5  rows: 4,6}

Best Practices

  1. Set appropriate rows - Match expected content length
  2. Use autoResize for variable content - Better UX for unknown lengths
  3. Provide clear placeholder - Guide users on expected input

we use cookies

we use cookies to ensure you get the best experience on our website. for more information on how we use cookies, please see our cookie policy.

by clicking "accept", you agree to our use of cookies.
learn more.