Input
テキスト入力フィールドコンポーネント。様々な入力タイプとサイズをサポートします。
基本的な使い方
Preview
バリアント
Default
標準のInput。
Preview
Error
エラー状態のInput。
Preview
サイズ
Inputは3つのサイズを提供します。
Preview
入力タイプ
様々なHTML5入力タイプをサポートします。
Preview
Password
Preview
Number
Preview
Tel
Preview
URL
Preview
Search
Preview
無効状態
disabled 属性で無効化できます。
Preview
FormControlと組み合わせ
FormControlと組み合わせることで、ラベル、ヘルパーテキスト、エラーメッセージを表示できます。
Preview
返信先のメールアドレス
エラー状態での使用
Preview
このユーザー名は既に使用されています
Props
| Prop | Type | Default | Description |
|---|---|---|---|
variant | 'default' | 'error' | 'default' | 入力フィールドのスタイルバリアント |
size | 'sm' | 'md' | 'lg' | 'md' | 入力フィールドのサイズ |
type | 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' | 'text' | 入力タイプ |
disabled | boolean | false | 無効状態 |
placeholder | string | - | プレースホルダーテキスト |
defaultValue | string | - | デフォルト値 |
value | string | - | 制御された値 |
onChange | function | - | 値変更時のコールバック |
className | string | - | 追加のCSSクラス |
アクセシビリティ
- セマンティックHTML:
<input>要素を使用 - 適切な
type属性: 各入力タイプに応じたHTML5タイプを使用 - キーボード操作: ネイティブの入力フィールドのキーボード操作をサポート
- フォーカスインジケータ: フォーカス時に明確なリングを表示
- ラベル関連付け: FormControlと組み合わせることで適切なラベル関連付け
使用例
フォームでの使用例:
import { Input, FormControl, Button } from '@codeconnect-llc/design-system'import { useState } from 'react'
export function LoginForm() { const [email, setEmail] = useState('') const [password, setPassword] = useState('')
const handleSubmit = (e) => { e.preventDefault() console.log({ email, password }) }
return ( <form onSubmit={handleSubmit} className="space-y-6 max-w-md"> <FormControl label="メールアドレス" htmlFor="email" required> <Input id="email" type="email" value={email} onChange={(e) => setEmail(e.target.value)} placeholder="your@email.com" /> </FormControl>
<FormControl label="パスワード" htmlFor="password" required> <Input id="password" type="password" value={password} onChange={(e) => setPassword(e.target.value)} placeholder="パスワード" /> </FormControl>
<Button type="submit" variant="primary" size="lg" className="w-full"> ログイン </Button> </form> )}