Skip to content

zk-textarea ​

Renders a <textarea> element with label and field wrapper support.

Props ​

PropTypeDefaultDescription
namestring|nullnullname attribute
idstring|nullnullid — falls back to name
valuestring|nullnullContent — uses old() automatically
placeholderstring|nullnullPlaceholder text
labelstring|nullnullLabel text
labelBeforebooltruePlace the label before the textarea; set false for label-after
requiredboolfalseAdds required and aria-required="true"
disabledboolfalseAdds disabled attribute
readonlyboolfalseAdds readonly attribute
autofocusboolfalseAdds autofocus attribute
rowsint|nullnullrows attribute
colsint|nullnullcols attribute
maxlengthint|nullnullmaxlength attribute
wrapstring|nullnullwrap attribute (hard / soft)
dirnamestring|nullnulldirname attribute
formstring|nullnullAssociates with a form by id
classstring|nullnullCSS class(es) on the <textarea> element
fieldbooltrueWrap in field structure
fieldClassstring|nullnullCSS class(es) on the field wrapper
iconBeforestring|nullnullLeading icon
iconAfterstring|nullnullTrailing icon
prefixstring|nullnullText prefix
suffixstring|nullnullText suffix
supportingTextstring|nullnullHelper text — overridden by validation error
supportingCounterstring|nullnullCharacter counter text

Examples ​

Basic ​

blade
<x-zk-textarea name="bio" label="Biography" />

With constraints ​

blade
<x-zk-textarea
    name="description"
    label="Description"
    :rows="5"
    :maxlength="500"
    :value="$product->description"
    required />

Label after the textarea ​

blade
<x-zk-textarea name="notes" label="Notes" :labelBefore="false" />

Alpine.js character counter ​

blade
<x-zk-textarea
    name="bio"
    label="Bio"
    :maxlength="280"
    x-model="bio"
    :supportingCounter="null" />

Documentation of 3.2.0 , built from c93e21f on 3.2.0 by pipeline #2919741884 on 2026-10-06.