InputArea
kumo-svelte

Installation

Barrel

import { InputArea } from 'kumo-svelte';

Granular

import { InputArea } from 'kumo-svelte/components/input-area';

Usage

Use the label prop to enable the built-in Field wrapper with label, description, and error support.

<script lang="ts">import { InputArea } from 'kumo-svelte';</script><InputArea  label="Description"  placeholder="Enter a description..."  description="Provide details about your project"/>

Bare InputArea (Custom Layouts)

For custom form layouts, use InputArea without label. Must provide aria-label or aria-labelledby for accessibility.

<script lang="ts">import { InputArea } from 'kumo-svelte';</script><InputArea placeholder="Add notes..." aria-label="Notes" rows={3} />

Examples

With Label

Custom Row Count

Use the rows prop to control the initial height.

Error State (String)

Error styling is automatically applied when the error prop is truthy.

Error State (Object)

Use an error object with match for constraint validation.

Sizes

Four sizes available: xs, sm, base (default), lg.

Disabled

Bare InputArea

InputArea without label renders as a bare textarea. Must provide aria-label for accessibility.

Optional Field

Set required={false} to show "(optional)" text after the label.

Label with Tooltip

Use labelTooltip to add an info icon with additional context on hover.

Snippet Label

The label prop accepts Snippet for rich formatting.

API Reference

InputArea accepts all standard HTML textarea attributes plus the following:

PropTypeDefaultDescription
class string-Additional classes merged onto the root element.
size 'xs' | 'sm' | 'base' | 'lg'"base"Size preset.
variant 'default' | 'error'"default"Visual variant.
label string | Snippet-Visible label content.
labelTooltip string | Snippet-Optional help content for the label.
description string | Snippet-Supporting description text.
error FieldError-Validation error message or matcher.
autoResize booleanfalseAutomatically resize the textarea based on its content.
minRows number1Minimum number of rows when auto-resizing.
maxRows number-Maximum number of rows before the textarea scrolls.
onValueChange (value: string) => void-Called when the value changes.
required boolean-Marks the field as required.

Accessibility

Label Requirement

InputArea requires an accessible name via one of:

  • `label` prop (recommended)
  • `placeholder` + `aria-label` for bare textareas
  • `aria-labelledby` for custom label association

Missing accessible names trigger console warnings in development.

Error Association

Error messages are automatically associated with the textarea via ARIA attributes for screen reader announcement.