Recommended
01
Production default
Balanced spacing, hierarchy, and content for the most common product workflow.
Live preview
<Textarea
placeholder="Enter a sample value"
value="sample-1"
/>
Theme-aware, responsive textarea component.
Change any prop and inspect the server-rendered component immediately.
<Textarea
placeholder="Enter a sample value"
value="sample-1"
/>
payload.Compare configurations and resize the browser to check responsive behavior.
Balanced spacing, hierarchy, and content for the most common product workflow.
<Textarea
placeholder="Enter a sample value"
value="sample-1"
/>
A tighter variation for dashboards, side panels, tables, and operational interfaces.
<Textarea
size="sm"
label="Compact example"
placeholder="Enter a sample value"
value="sample-2"
variant="secondary"
icon="icon-[lucide--arrow-right]"
/>
A more expressive variation using additional data, stronger emphasis, and optional states.
<Textarea
size="lg"
label="Advanced example"
placeholder="Search by name, email, or identifier"
value="sample-3"
variant="success"
icon="icon-[lucide--trash-2]"
/>
Use declarative output handlers in .wrn files or register a direct output handler from JavaScript. The canonical API exposes payload and does not require event.detail.
@inputFires as the editable value changes.@changeFires when the component's committed value or selection changes.@focusFires when the interactive control receives focus.@blurFires when focus leaves the interactive control.@invalidFires when the component emits the invalid event.<Textarea
@input='console.log(payload)'
@change='console.log(payload)'
@focus='console.log(payload)'
@blur='console.log(payload)'
@invalid='console.log(payload)'
/>import { registerOutputHandler } from "@wrnexus/csr/outputs"
const component = document.querySelector("[data-ui-component=\"Textarea\"], [data-component=\"Textarea\"]")
if (component) registerOutputHandler(component, "input", (payload) => {
console.log("input", payload)
})
if (component) registerOutputHandler(component, "change", (payload) => {
console.log("change", payload)
})
if (component) registerOutputHandler(component, "focus", (payload) => {
console.log("focus", payload)
})
if (component) registerOutputHandler(component, "blur", (payload) => {
console.log("blur", payload)
})
if (component) registerOutputHandler(component, "invalid", (payload) => {
console.log("invalid", payload)
})All content and behavior shown above is supplied through these props and slots.
| Prop | Type | Default | Required |
|---|---|---|---|
size | string | "default" | No |
color | string | "primary" | No |
id | string | "" | No |
name | string | "" | No |
label | string | "Textarea" | No |
hiddenLabel | boolean | false | No |
placeholder | string | "" | No |
value | string | "" | No |
variant | string | "normal" | No |
icon | string | "" | No |
iconPosition | string | "start" | No |
helperText | string | "" | No |
cornerHint | string | "" | No |
error | string | "" | No |
inline | boolean | false | No |
rows | number | 5 | No |
resize | string | "vertical" | No |
readonly | boolean | false | No |
disabled | boolean | false | No |
required | boolean | false | No |
minlength | string | "" | No |
maxlength | string | "" | No |
class | string | "" | No |