入力欄InputBeta

フォームの入力フィールド、または入力欄風のコンポーネントを表示します。

プレビュー

状態とバリエーション

ラベル付き

アクセシブルにする最小構成です。ラベルと入力欄の ID を紐づけます。

文字数カウント

showCount を付けると文字数を表示します。SEO の meta title/description など上限のある入力に。maxLength と併用で count / max 形式に。

19 / 60

バリデーションエラー

エラー状態を付与すると、入力欄の輪郭が警告色になります。エラーメッセージは入力欄の直下に置きます。

無効化

編集できない時の状態です。理由はフィールド上のツールチップと補助テキストで補足します。

このアカウントは組織によって管理されています。

プロパティ

表は横にスクロールできます
プロパティ初期値説明
labelReactNode-コントロール上部に表示し htmlFor で関連付けるラベルです(Select / Textarea と同様)。
descriptionReactNode-コントロール下の補助テキストです。aria-describedby で関連付きます。
showCountbooleanfalseコントロール下に文字数を表示します。maxLength と併用すると count / max 形式になり、aria-describedby で関連付きます。
typestring-テキスト、メールアドレス、パスワードなど、入力欄の種類を指定します。
placeholderstring-未入力時に入力欄内へ表示する補助テキストです。
disabledboolean-入力できない状態にします。
classNamestring-Input はデフォルトで親幅いっぱいに広がります。幅は FormGroup や外側の max-w-* で制約します。

使い方

import { FormControl, FormDescription, FormGroup, FormLabel, Input } from "@gunjo/ui"

export function LoginInput() {
  return (
	    <FormGroup className="w-full max-w-sm">
	      <FormLabel htmlFor="email">メールアドレス</FormLabel>
	      <FormControl>
	        <Input type="email" id="email" placeholder="name@example.com" />
	      </FormControl>
	      <FormDescription>アカウントに紐づくメールアドレスを入力します。</FormDescription>
	    </FormGroup>
	  )
	}

設計の判断(UIXHERO)

「いつ・なぜ使うか」の判断は、姉妹サイト UIXHERO の記事で解説しています。