{
  "$schema": "https://pi-tui.ratstack.sh/schema/pattern.schema.json",
  "aka": [
    "Colour presets"
  ],
  "animated": false,
  "apis": [
    {
      "name": "parseColor",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/tui/README.md#colors-and-terminal-styles"
    },
    {
      "name": "theme.style",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/coding-agent/docs/tui.md#apply-themes-correctly"
    }
  ],
  "applicability": [
    "Use this when several footer segments share an appearance configuration."
  ],
  "category": "themes",
  "categoryLabel": "Theming",
  "consequences": [
    "Segments can share one coordinated appearance selection.",
    "Unknown preset names require an explicit fallback."
  ],
  "family": "presentation",
  "familyLabel": "Presentation",
  "id": "palette-deck",
  "implementation": [
    "Define a fallback for unknown preset names.",
    "Resolve preset values through the current colour and theme contracts."
  ],
  "intent": "Centralize coordinated colour choices behind named presets and a default.",
  "jsonUrl": "https://pi-tui.ratstack.sh/patterns/palette-deck.json",
  "kind": "component",
  "knownUses": [
    {
      "example": "preset-colors",
      "moreRefs": 0,
      "refs": [
        {
          "file": "presets.ts",
          "lines": "1-45",
          "sha": "859dee67",
          "url": "https://github.com/nicobailon/pi-powerline-footer/blob/859dee671b633fb533b07ceba3e6c1ab1c43360a/presets.ts#L1-L45"
        }
      ],
      "repo": "pi-powerline-footer",
      "repoUrl": "https://github.com/nicobailon/pi-powerline-footer",
      "title": "Preset-driven segment colors"
    }
  ],
  "linkedFrom": [
    {
      "how": "supplies coordinated override values",
      "id": "colour-sentry",
      "jsonUrl": "https://pi-tui.ratstack.sh/patterns/colour-sentry.json",
      "mdUrl": "https://pi-tui.ratstack.sh/patterns/colour-sentry.md",
      "name": "Colour Sentry",
      "url": "https://pi-tui.ratstack.sh/patterns/colour-sentry/"
    }
  ],
  "links": {
    "agentGuide": "https://pi-tui.ratstack.sh/llms.txt",
    "index": "https://pi-tui.ratstack.sh/patterns.md",
    "skill": "https://pi-tui.ratstack.sh/skills/build-pi-tui-component.md"
  },
  "mdUrl": "https://pi-tui.ratstack.sh/patterns/palette-deck.md",
  "motivation": "Powerline Footer centralizes segment colours in named presets with a default lookup.",
  "name": "Palette Deck",
  "participants": [
    {
      "name": "parseColor",
      "role": "Converts supported colour values into a Color.",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/tui/README.md#colors-and-terminal-styles"
    },
    {
      "name": "theme.style",
      "role": "Styles text through semantic or concrete colours.",
      "url": "https://github.com/earendil-works/pi/blob/v1.0.3/packages/coding-agent/docs/tui.md#apply-themes-correctly"
    },
    {
      "name": "Default palette",
      "role": "Handles unknown names with an explicit fallback.",
      "url": null
    }
  ],
  "pi": "1.0.3",
  "related": [
    {
      "how": "validates values before styling",
      "id": "colour-sentry",
      "jsonUrl": "https://pi-tui.ratstack.sh/patterns/colour-sentry.json",
      "mdUrl": "https://pi-tui.ratstack.sh/patterns/colour-sentry.md",
      "name": "Colour Sentry",
      "url": "https://pi-tui.ratstack.sh/patterns/colour-sentry/"
    }
  ],
  "sampleCode": {
    "code": "// Palette Deck: select coordinated theme-token colours by named preset.\nimport { colorToHex, parseColor, wrapTextWithAnsi } from \"@earendil-works/pi-tui\";\nimport type { ThemeColor } from \"@earendil-works/pi-coding-agent\";\nimport type { PatternStory } from \"../../../src/pattern.ts\";\n\nexport const story: PatternStory = {\n  id: \"palette-deck\", title: \"Palette Deck\", kind: \"component\",\n  apis: [\"parseColor\", \"theme.style\"], rows: 10,\n  states: [\n    { id: \"default\", label: \"Default preset\" },\n    { id: \"alternate\", label: \"Alternate preset\", steps: [{ type: \"action\", name: \"alternate\" }] },\n    { id: \"unknown\", label: \"Unknown name\", steps: [{ type: \"action\", name: \"unknown\" }] },\n  ],\n  setup({ theme, action, tui }) {\n    // Presets coordinate roles, not fixed RGB values.\n    const defaultPalette = { model: \"accent\", branch: \"muted\", tests: \"success\" } as const;\n    const presets: Record<string, Record<keyof typeof defaultPalette, ThemeColor>> = {\n      calm: defaultPalette,\n      focus: { model: \"success\", branch: \"accent\", tests: \"warning\" },\n    };\n    let name = \"calm\";\n    action(\"alternate\", () => { name = \"focus\"; tui.requestRender(); });\n    action(\"unknown\", () => { name = \"missing\"; tui.requestRender(); });\n    return {\n      invalidate() {},\n      render(width) {\n        const palette = presets[name] ?? defaultPalette;\n        const segment = (role: keyof typeof palette, text: string) =>\n          theme.style(text, { fg: parseColor(colorToHex(theme.colors[palette[role]])), bold: true });\n        return [\n          theme.fg(\"accent\", \"Session footer · palette presets\"), \"\",\n          segment(\"model\", \"model: example-small\"),\n          segment(\"branch\", \"branch: parser-review\"),\n          segment(\"tests\", \"tests: 6 passing\"), \"\",\n          ...wrapTextWithAnsi(presets[name] ? \"Preset: \" + name :\n            \"Unknown preset: missing → calm\", width).map(line => theme.fg(\"muted\", line)),\n        ];\n      },\n    };\n  },\n};\n",
    "lang": "ts",
    "path": "stories/patterns/presentation/palette-deck.ts"
  },
  "states": [
    {
      "dont": false,
      "expectFail": [],
      "frames": [
        {
          "alt": "Palette Deck, Default preset state, 40 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-40-dark.8162bf48d7bc.webp",
          "theme": "dark",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Palette Deck, Default preset state, 40 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-40-light.65f8a6a12564.webp",
          "theme": "light",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Palette Deck, Default preset state, 60 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-60-dark.55e0d8cd0450.webp",
          "theme": "dark",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Palette Deck, Default preset state, 60 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-60-light.8eb80c258f3c.webp",
          "theme": "light",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Palette Deck, Default preset state, 80 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-80-dark.a53fb7e0d12e.webp",
          "theme": "dark",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Palette Deck, Default preset state, 80 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-80-light.46e7764e6d4c.webp",
          "theme": "light",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Palette Deck, Default preset state, 120 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-120-dark.215f496092e6.webp",
          "theme": "dark",
          "w": 2400,
          "width": 120
        },
        {
          "alt": "Palette Deck, Default preset state, 120 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/default-120-light.f31910c42b87.webp",
          "theme": "light",
          "w": 2400,
          "width": 120
        }
      ],
      "how": "Show coordinated synthetic segments using the default preset.",
      "id": "default",
      "label": "Default preset",
      "problems": []
    },
    {
      "dont": false,
      "expectFail": [],
      "frames": [
        {
          "alt": "Palette Deck, Alternate preset state, 40 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-40-dark.caf8c2d2ec0a.webp",
          "theme": "dark",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Palette Deck, Alternate preset state, 40 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-40-light.869ed70c4b9e.webp",
          "theme": "light",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Palette Deck, Alternate preset state, 60 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-60-dark.f3264237bdef.webp",
          "theme": "dark",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Palette Deck, Alternate preset state, 60 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-60-light.f39ee631cfa5.webp",
          "theme": "light",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Palette Deck, Alternate preset state, 80 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-80-dark.c39d785eb241.webp",
          "theme": "dark",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Palette Deck, Alternate preset state, 80 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-80-light.304a704bc25a.webp",
          "theme": "light",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Palette Deck, Alternate preset state, 120 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-120-dark.e45f21f980b8.webp",
          "theme": "dark",
          "w": 2400,
          "width": 120
        },
        {
          "alt": "Palette Deck, Alternate preset state, 120 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/alternate-120-light.246e470f342b.webp",
          "theme": "light",
          "w": 2400,
          "width": 120
        }
      ],
      "how": "Choose another named preset for the same segments.",
      "id": "alternate",
      "label": "Alternate preset",
      "problems": []
    },
    {
      "dont": false,
      "expectFail": [],
      "frames": [
        {
          "alt": "Palette Deck, Unknown name state, 40 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-40-dark.7533c8c15a6c.webp",
          "theme": "dark",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Palette Deck, Unknown name state, 40 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-40-light.4a84124ccd65.webp",
          "theme": "light",
          "w": 800,
          "width": 40
        },
        {
          "alt": "Palette Deck, Unknown name state, 60 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-60-dark.c92d7359ac78.webp",
          "theme": "dark",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Palette Deck, Unknown name state, 60 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-60-light.3790fbac9c74.webp",
          "theme": "light",
          "w": 1200,
          "width": 60
        },
        {
          "alt": "Palette Deck, Unknown name state, 80 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-80-dark.ac6c49d043b3.webp",
          "theme": "dark",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Palette Deck, Unknown name state, 80 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-80-light.0211048573f4.webp",
          "theme": "light",
          "w": 1600,
          "width": 80
        },
        {
          "alt": "Palette Deck, Unknown name state, 120 columns, dark theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-120-dark.2b79eb08bd76.webp",
          "theme": "dark",
          "w": 2400,
          "width": 120
        },
        {
          "alt": "Palette Deck, Unknown name state, 120 columns, light theme, 7 rows",
          "animated": false,
          "animation": null,
          "checks": [
            {
              "evidence": [],
              "name": "width",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "style-leak",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "hard-coded-colour",
              "status": "pass",
              "verdict": "pass"
            },
            {
              "evidence": [],
              "name": "height",
              "status": "pass",
              "verdict": "pass"
            }
          ],
          "h": 308,
          "rows": 7,
          "still": "https://pi-tui.ratstack.sh/frames/palette-deck/unknown-120-light.85d790d57a86.webp",
          "theme": "light",
          "w": 2400,
          "width": 120
        }
      ],
      "how": "Use the declared fallback when the preset name is unknown.",
      "id": "unknown",
      "label": "Unknown name",
      "problems": []
    }
  ],
  "structure": "preset name -> palette / default\npalette -> coordinated segments",
  "thumbnails": {
    "dark": {
      "animation": null,
      "src": "https://pi-tui.ratstack.sh/thumbs/palette-deck/dark.703299eba18f.webp"
    },
    "light": {
      "animation": null,
      "src": "https://pi-tui.ratstack.sh/thumbs/palette-deck/light.8918d979b5cd.webp"
    }
  },
  "url": "https://pi-tui.ratstack.sh/patterns/palette-deck/",
  "widths": [
    40,
    60,
    80,
    120
  ]
}
