Novi UI

TextArea

文字数制限があるなら description に残り数を出す。送信してから怒られるのは最悪の体験。

デモ

Props

Textarea の props 一覧
名前説明
variant'solid' | 'outline' | 'soft' | 'ghost' | 'plain'
size'sm' | 'md' | 'lg'
radius'none' | 'sm' | 'md' | 'lg' | 'full'
labelReactNode
placeholderstring
descriptionReactNode
errorMessageReactNode
namestring
valuestring
defaultValuestring
onChange(value: string) => void
onKeyDownKeyboardEventHandler<HTMLTextAreaElement>キー操作。**IME 変換中のキーはここに届かない**(`useImeSafeKeys` を経由する)。
rowsnumber
maxLengthnumber
isDisabledboolean
isReadOnlyboolean
isRequiredboolean
isInvalidboolean
classNamesClassNames<typeof textareaSlots>

Slot

構成部位に data-slot が出力されます。 CSS の上書きやテストはこれを狙ってください。

  • root必須
  • label
  • inputWrapper必須
  • textarea必須
  • description
  • errorMessage

アクセシビリティ

  • `label` は必須。`description` と `errorMessage` は `aria-describedby` で関連付く。 改行が入る入力のため Enter では送信しない
  • キーボードだけで操作できます。フォーカスリングはコントラスト比 3:1 以上です。
  • 本文のコントラスト比は light / dark とも 4.5:1 以上を検査で保証しています。
  • prefers-reduced-motion が有効なときはアニメーションを行いません。