Files
clide/.claude/skills/frame0-wireframe/references/component-library.md
T
jpmschweitzerandClaude 18d4c5978b add frame0-wireframe and d2-diagram skills
Two general-purpose skills for visual design work:
- frame0-wireframe drives Frame0 (local wireframing app) from
  JSON source files, with push/pull/export and a batch script.
- d2-diagram wraps the d2 text-to-diagram CLI for architecture
  and flow diagrams.

Sourced from settled-reach/main where they were already in use.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-05-06 11:10:36 +02:00

14 KiB

Component Library

Pre-built wireframe JSON templates for The Settled Reach UI. Copy the JSON, adapt positions/sizes, save to docs/design/wireframes/{category}/, and push.

Viewport: 1140x780 (Godot project settings) Grid unit: 8px Min touch target: 36px height Font sizes: 12 (label), 14 (body), 16 (subtitle), 18 (heading), 24 (title)


1. HUD Layout

Main gameplay overlay. Minimap top-right, monologue bottom-center, insert display bottom-left, action hints bottom-right.

{
  "name": "HUD Layout",
  "shapes": {
    "minimap": {
      "type": "Rectangle",
      "left": 880, "top": 20, "width": 240, "height": 240,
      "fillColor": "#1a1e24", "strokeColor": "#333340",
      "corners": [4, 4, 4, 4]
    },
    "minimap-label": {
      "type": "Text",
      "parent": "minimap",
      "left": 890, "top": 30,
      "text": "Minimap",
      "fontColor": "#c8d0e0", "fontSize": 14
    },
    "monologue": {
      "type": "Rectangle",
      "left": 300, "top": 680, "width": 520, "height": 80,
      "fillColor": "#1a1e24", "strokeColor": "#333340",
      "corners": [4, 4, 4, 4]
    },
    "monologue-text": {
      "type": "Text",
      "parent": "monologue",
      "left": 310, "top": 700, "width": 500,
      "text": "Internal monologue text appears here...",
      "fontColor": "#c8d0e0", "fontSize": 13, "wordWrap": true
    },
    "insert": {
      "type": "Rectangle",
      "left": 20, "top": 600, "width": 260, "height": 160,
      "fillColor": "#1a1e24", "strokeColor": "#333340",
      "corners": [4, 4, 4, 4]
    },
    "insert-label": {
      "type": "Text",
      "parent": "insert",
      "left": 30, "top": 620,
      "text": "Neural Insert Data",
      "fontColor": "#c8d0e0", "fontSize": 14
    },
    "hints": {
      "type": "Rectangle",
      "left": 880, "top": 700, "width": 240, "height": 60,
      "fillColor": "#1a1e24", "strokeColor": "#333340",
      "corners": [4, 4, 4, 4]
    },
    "hints-label": {
      "type": "Text",
      "parent": "hints",
      "left": 890, "top": 720,
      "text": "[E] Interact  [TAB] Insert",
      "fontColor": "#c8d0e0", "fontSize": 12
    }
  }
}

2. Dialogue Box

Speaker panel with response options. Anchored bottom-center during dialogue mode.

{
  "name": "Dialogue Box",
  "shapes": {
    "panel": {
      "type": "Rectangle",
      "left": 170, "top": 500, "width": 800, "height": 260,
      "fillColor": "#1a1e24", "strokeColor": "#333340",
      "corners": [8, 8, 8, 8]
    },
    "speaker": {
      "type": "Text",
      "parent": "panel",
      "left": 190, "top": 520,
      "text": "LERA KONSTANTIN",
      "fontColor": "#c8d0e0", "fontSize": 16
    },
    "text-area": {
      "type": "Rectangle",
      "parent": "panel",
      "left": 190, "top": 550, "width": 760, "height": 100,
      "fillColor": "#2a3040", "strokeColor": "#333340",
      "corners": [4, 4, 4, 4]
    },
    "dialogue-text": {
      "type": "Text",
      "parent": "text-area",
      "left": 200, "top": 560, "width": 740,
      "text": "You look like you could use a drink. First time on the station?",
      "fontColor": "#c8d0e0", "fontSize": 14, "wordWrap": true
    },
    "btn-option1": {
      "type": "Rectangle",
      "parent": "panel",
      "left": 190, "top": 670, "width": 370, "height": 30,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0",
      "corners": [4, 4, 4, 4]
    },
    "btn-option1-label": {
      "type": "Text",
      "parent": "btn-option1",
      "left": 200, "top": 674,
      "text": "[1] Ask about the station",
      "fontColor": "#c8d8f0", "fontSize": 12
    },
    "btn-option2": {
      "type": "Rectangle",
      "parent": "panel",
      "left": 190, "top": 710, "width": 370, "height": 30,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0",
      "corners": [4, 4, 4, 4]
    },
    "btn-option2-label": {
      "type": "Text",
      "parent": "btn-option2",
      "left": 200, "top": 714,
      "text": "[2] Ask about recent events",
      "fontColor": "#c8d8f0", "fontSize": 12
    },
    "btn-leave": {
      "type": "Rectangle",
      "parent": "panel",
      "left": 580, "top": 670, "width": 180, "height": 30,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0",
      "corners": [4, 4, 4, 4]
    },
    "btn-leave-label": {
      "type": "Text",
      "parent": "btn-leave",
      "left": 590, "top": 674,
      "text": "[3] Leave",
      "fontColor": "#c8d8f0", "fontSize": 12
    }
  }
}

3. Menu Screen

Full-screen menu with sidebar navigation and content area.

{
  "name": "Pause Menu",
  "shapes": {
    "bg": {
      "type": "Rectangle",
      "left": 0, "top": 0, "width": 1140, "height": 780,
      "fillColor": "#1a1e24"
    },
    "nav": {
      "type": "Rectangle",
      "parent": "bg",
      "left": 20, "top": 20, "width": 200, "height": 740,
      "fillColor": "#2a3040", "strokeColor": "#333340",
      "corners": [4, 4, 4, 4]
    },
    "btn-inventory": {
      "type": "Rectangle", "parent": "nav",
      "left": 30, "top": 40, "width": 180, "height": 36,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "btn-inventory-label": {
      "type": "Text", "parent": "btn-inventory",
      "left": 40, "top": 48, "text": "Inventory",
      "fontColor": "#c8d8f0", "fontSize": 14
    },
    "btn-journal": {
      "type": "Rectangle", "parent": "nav",
      "left": 30, "top": 86, "width": 180, "height": 36,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "btn-journal-label": {
      "type": "Text", "parent": "btn-journal",
      "left": 40, "top": 94, "text": "Journal",
      "fontColor": "#c8d8f0", "fontSize": 14
    },
    "btn-map": {
      "type": "Rectangle", "parent": "nav",
      "left": 30, "top": 132, "width": 180, "height": 36,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "btn-map-label": {
      "type": "Text", "parent": "btn-map",
      "left": 40, "top": 140, "text": "Map",
      "fontColor": "#c8d8f0", "fontSize": 14
    },
    "btn-settings": {
      "type": "Rectangle", "parent": "nav",
      "left": 30, "top": 178, "width": 180, "height": 36,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "btn-settings-label": {
      "type": "Text", "parent": "btn-settings",
      "left": 40, "top": 186, "text": "Settings",
      "fontColor": "#c8d8f0", "fontSize": 14
    },
    "btn-resume": {
      "type": "Rectangle", "parent": "nav",
      "left": 30, "top": 720, "width": 180, "height": 36,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "btn-resume-label": {
      "type": "Text", "parent": "btn-resume",
      "left": 40, "top": 728, "text": "Resume",
      "fontColor": "#c8d8f0", "fontSize": 14
    },
    "content": {
      "type": "Rectangle",
      "parent": "bg",
      "left": 240, "top": 20, "width": 880, "height": 740,
      "fillColor": "#2a3040", "strokeColor": "#333340",
      "corners": [4, 4, 4, 4]
    },
    "content-label": {
      "type": "Text", "parent": "content",
      "left": 260, "top": 40,
      "text": "Content area",
      "fontColor": "#c8d0e0", "fontSize": 14
    }
  }
}

4. Modal Dialog

Centered overlay for confirmations, alerts, choices.

{
  "name": "Modal Dialog",
  "shapes": {
    "overlay": {
      "type": "Rectangle",
      "left": 0, "top": 0, "width": 1140, "height": 780,
      "fillColor": "#0a0c10"
    },
    "modal": {
      "type": "Rectangle",
      "parent": "overlay",
      "left": 320, "top": 240, "width": 500, "height": 300,
      "fillColor": "#1a1e24", "strokeColor": "#333340",
      "corners": [8, 8, 8, 8]
    },
    "title": {
      "type": "Text", "parent": "modal",
      "left": 340, "top": 260,
      "text": "Confirm Action",
      "fontColor": "#c8d0e0", "fontSize": 18
    },
    "divider": {
      "type": "Line", "parent": "modal",
      "left": 340, "top": 290, "width": 460, "height": 0,
      "strokeColor": "#333340"
    },
    "body-1": {
      "type": "Text", "parent": "modal",
      "left": 340, "top": 310,
      "text": "Are you sure you want to proceed?",
      "fontColor": "#c8d0e0", "fontSize": 14
    },
    "body-2": {
      "type": "Text", "parent": "modal",
      "left": 340, "top": 340,
      "text": "This action cannot be undone.",
      "fontColor": "#c8d0e0", "fontSize": 14
    },
    "btn-cancel": {
      "type": "Rectangle", "parent": "modal",
      "left": 480, "top": 480, "width": 120, "height": 36,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "btn-cancel-label": {
      "type": "Text", "parent": "btn-cancel",
      "left": 510, "top": 488,
      "text": "Cancel",
      "fontColor": "#c8d8f0", "fontSize": 14
    },
    "btn-confirm": {
      "type": "Rectangle", "parent": "modal",
      "left": 620, "top": 480, "width": 120, "height": 36,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "btn-confirm-label": {
      "type": "Text", "parent": "btn-confirm",
      "left": 645, "top": 488,
      "text": "Confirm",
      "fontColor": "#c8d8f0", "fontSize": 14
    }
  }
}

5. List View

Scrollable list with item selection and detail panel.

{
  "name": "List View",
  "shapes": {
    "list-panel": {
      "type": "Rectangle",
      "left": 20, "top": 20, "width": 400, "height": 740,
      "fillColor": "#1a1e24", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "item-1": {
      "type": "Rectangle", "parent": "list-panel",
      "left": 30, "top": 30, "width": 380, "height": 40,
      "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4]
    },
    "item-1-label": {
      "type": "Text", "parent": "item-1",
      "left": 40, "top": 38, "text": "Item Alpha",
      "fontColor": "#c8d8f0", "fontSize": 14
    },
    "item-2": {
      "type": "Rectangle", "parent": "list-panel",
      "left": 30, "top": 80, "width": 380, "height": 40,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "item-2-label": {
      "type": "Text", "parent": "item-2",
      "left": 40, "top": 88, "text": "Item Beta",
      "fontColor": "#c8d0e0", "fontSize": 14
    },
    "item-3": {
      "type": "Rectangle", "parent": "list-panel",
      "left": 30, "top": 130, "width": 380, "height": 40,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "item-3-label": {
      "type": "Text", "parent": "item-3",
      "left": 40, "top": 138, "text": "Item Gamma",
      "fontColor": "#c8d0e0", "fontSize": 14
    },
    "detail-panel": {
      "type": "Rectangle",
      "left": 440, "top": 20, "width": 680, "height": 740,
      "fillColor": "#1a1e24", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "detail-title": {
      "type": "Text", "parent": "detail-panel",
      "left": 460, "top": 40,
      "text": "Item Alpha",
      "fontColor": "#c8d0e0", "fontSize": 18
    },
    "detail-body": {
      "type": "Text", "parent": "detail-panel",
      "left": 460, "top": 80, "width": 640,
      "text": "Description and properties appear here.",
      "fontColor": "#c8d0e0", "fontSize": 14, "wordWrap": true
    }
  }
}

6. Inventory Grid

Grid of cells for item management.

{
  "name": "Inventory Grid",
  "shapes": {
    "panel": {
      "type": "Rectangle",
      "left": 240, "top": 100, "width": 660, "height": 580,
      "fillColor": "#1a1e24", "strokeColor": "#333340", "corners": [8, 8, 8, 8]
    },
    "title": {
      "type": "Text", "parent": "panel",
      "left": 260, "top": 120,
      "text": "INVENTORY",
      "fontColor": "#c8d0e0", "fontSize": 18
    },
    "cell-1-1": {
      "type": "Rectangle", "parent": "panel",
      "left": 260, "top": 160, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "cell-1-2": {
      "type": "Rectangle", "parent": "panel",
      "left": 332, "top": 160, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "cell-1-3": {
      "type": "Rectangle", "parent": "panel",
      "left": 404, "top": 160, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "cell-1-4": {
      "type": "Rectangle", "parent": "panel",
      "left": 476, "top": 160, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "cell-2-1": {
      "type": "Rectangle", "parent": "panel",
      "left": 260, "top": 232, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "cell-2-2": {
      "type": "Rectangle", "parent": "panel",
      "left": 332, "top": 232, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "cell-2-3": {
      "type": "Rectangle", "parent": "panel",
      "left": 404, "top": 232, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "cell-2-4": {
      "type": "Rectangle", "parent": "panel",
      "left": 476, "top": 232, "width": 64, "height": 64,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "detail": {
      "type": "Rectangle", "parent": "panel",
      "left": 580, "top": 160, "width": 300, "height": 400,
      "fillColor": "#2a3040", "strokeColor": "#333340", "corners": [4, 4, 4, 4]
    },
    "detail-title": {
      "type": "Text", "parent": "detail",
      "left": 600, "top": 180,
      "text": "Selected Item Name",
      "fontColor": "#c8d0e0", "fontSize": 16
    },
    "detail-body": {
      "type": "Text", "parent": "detail",
      "left": 600, "top": 210, "width": 260,
      "text": "Item description and stats",
      "fontColor": "#c8d0e0", "fontSize": 14, "wordWrap": true
    }
  }
}