Repo

Usage

<textarea class="zui-textarea" placeholder="Write something..."></textarea>

With Label

<div class="zui-field">
<label class="zui-label" for="message">Message</label>
<textarea class="zui-textarea" id="message" placeholder="Your message..."></textarea>
</div>

Invalid State

<textarea class="zui-textarea" aria-invalid="true">This field has an error</textarea>

Disabled

<textarea class="zui-textarea" disabled>Cannot edit this</textarea>

Shape

Use the shape prop to change the corners. It works the same as on Button: default (rounded), hard (square), soft (pill) and squircle. On a textarea, soft uses --radius-3xl instead of a full pill, so text in the corners is not cut off.

A squircle is a rounded square with smooth corners. Browsers without corner-shape support show normal rounded corners. To make squircle the default everywhere, see Squircle.

<div class="zui-field">
<label class="zui-label" for="default-textarea">Default (rounded)</label>
<textarea class="zui-textarea" id="default-textarea" placeholder="Type here"></textarea>
</div>
<div class="zui-field">
<label class="zui-label" for="hard-textarea">Hard</label>
<textarea class="zui-textarea zui-textarea-shape-hard" id="hard-textarea" placeholder="Type here"></textarea>
</div>
<div class="zui-field">
<label class="zui-label" for="soft-textarea">Soft</label>
<textarea class="zui-textarea zui-textarea-shape-soft" id="soft-textarea" placeholder="Type here"></textarea>
</div>
<div class="zui-field">
<label class="zui-label" for="squircle-textarea">Squircle</label>
<textarea class="zui-textarea zui-textarea-shape-squircle" id="squircle-textarea" placeholder="Type here"></textarea>
</div>

CSS custom properties

Set these on :root, on a wrapper, or on the element. See Component custom properties.

Property Default Description
--zui-textarea-radius var(--radius-lg) Border radius
--zui-textarea-border var(--color-border) Border colour
--zui-textarea-bg var(--color-background) Background colour
--zui-textarea-fg var(--color-text) Text colour
--zui-textarea-padding var(--space-xs) Padding inside the textarea
--zui-textarea-font-size var(--step-0) Font size
--zui-textarea-focus-border var(--color-theme) Border colour on focus
--zui-textarea-min-height 6rem Minimum height

Theme

Copy this CSS to your project: