CodeConnect Design System

Input

テキスト入力フィールドコンポーネント。様々な入力タイプとサイズをサポートします。

基本的な使い方

Preview

バリアント

Default

標準のInput。

Preview

Error

エラー状態のInput。

Preview

サイズ

Inputは3つのサイズを提供します。

Preview

入力タイプ

様々なHTML5入力タイプをサポートします。

Email

Preview

Password

Preview

Number

Preview

Tel

Preview

URL

Preview
Preview

無効状態

disabled 属性で無効化できます。

Preview

FormControlと組み合わせ

FormControlと組み合わせることで、ラベル、ヘルパーテキスト、エラーメッセージを表示できます。

Preview

エラー状態での使用

Preview

Props

PropTypeDefaultDescription
variant'default' | 'error''default'入力フィールドのスタイルバリアント
size'sm' | 'md' | 'lg''md'入力フィールドのサイズ
type'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search''text'入力タイプ
disabledbooleanfalse無効状態
placeholderstring-プレースホルダーテキスト
defaultValuestring-デフォルト値
valuestring-制御された値
onChangefunction-値変更時のコールバック
classNamestring-追加の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>
)
}