{
  "schema_version": "1.0",
  "library_id": "uiux-atlas",
  "library_version": "2.1",
  "id": 21,
  "key": "urn:uiux-atlas:pattern:021",
  "name": "ファイルアップロード",
  "english_name": "File Upload",
  "category": "入力・操作",
  "usage": "画像やファイルを選んでもらう",
  "accessibility": "拡張子だけに依存せず、実装時はサイズ・内容も検証する",
  "responsive": "PCはキーボード、スマホはタッチで完結させます。入力文字は16px以上、タップ領域は原則44px以上を確保します。",
  "keywords": [
    "画像",
    "添付",
    "ドロップ"
  ],
  "implementation_prompt": "「ファイルアップロード / File Upload」を実装してください。\n\n目的：画像やファイルを選んでもらう。\n想定場面：画像・添付・ドロップを扱う画面。\n\n仕様：\n- 拡張子だけに依存せず、実装時はサイズ・内容も検証する。\n- PCはキーボード、スマホはタッチで完結させます。入力文字は16px以上、タップ領域は原則44px以上を確保します。\n- Noto Sans JP、本文16px、補足14px、見出し24pxを基本にする。\n- 背景#FFFFFF、カード#FFFFFF、本文#17191E、主要操作#17191E、境界線#E8ECF3。主要ボタンの文字は白にする。\n- 余白は8px単位、カード角丸12px、控えめな影に統一する。\n- semantic HTMLと標準コントロールを優先し、操作名・現在状態・結果を読み上げ可能にする。\n- キーボード操作、見えるフォーカス、通常テキスト4.5:1以上のコントラストを確保する。\n- prefers-reduced-motionを尊重し、アニメーションを止めても内容を理解できるようにする。\n\n受け入れ条件：\n- 1440pxと390pxで表示を確認し、ページ全体に横はみ出しがない。\n- 拡張子だけに依存せず、実装時はサイズ・内容も検証することを操作で確認する。\n- 読み込み・空・成功・エラーの該当状態を用意する。\n- 見た目だけのボタンを残さず、操作を実装する。\n- 実装後にスクリーンショットを比較して改善し、決定した仕様をdesign.mdへ保存する。",
  "links": {
    "html": "021.html",
    "markdown": "021.md",
    "json": "021.json",
    "demo": "../index.html#pattern/21"
  },
  "url_resolution": "links resolve relative to this JSON document",
  "schema": "../ai/pattern.schema.json"
}