{
  "schema_version": "1.0",
  "library_id": "uiux-atlas",
  "library_version": "2.1",
  "id": 60,
  "key": "urn:uiux-atlas:pattern:060",
  "name": "プルトゥリフレッシュ",
  "english_name": "Pull to Refresh",
  "category": "モバイル",
  "usage": "一覧を手動で最新状態に更新する",
  "accessibility": "更新ボタンを併設し、最終更新状態を通知する",
  "responsive": "スマホでは親指で届く位置と安全な余白を確保します。PCでは同じ操作をクリック・キーボードで行えるようにします。",
  "keywords": [
    "スマホ",
    "更新",
    "読み込み"
  ],
  "implementation_prompt": "「プルトゥリフレッシュ / Pull to Refresh」を実装してください。\n\n目的：一覧を手動で最新状態に更新する。\n想定場面：スマホ・更新・読み込みを扱う画面。\n\n仕様：\n- 更新ボタンを併設し、最終更新状態を通知する。\n- スマホでは親指で届く位置と安全な余白を確保します。PCでは同じ操作をクリック・キーボードで行えるようにします。\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": "060.html",
    "markdown": "060.md",
    "json": "060.json",
    "demo": "../index.html#pattern/60"
  },
  "url_resolution": "links resolve relative to this JSON document",
  "schema": "../ai/pattern.schema.json"
}