Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Portable DESIGN.md source of truth for most agents and apps.
Model a quiet asymmetrical grid with one unlit shadow gutter as the ma interval; place primary work in the pool of light slightly off-centre; separate major regions with 48-96px of interval. Hierarchy is luminance before type or colour.
Priority is how much light a surface catches: lit paper planes sit forward with a soft warm shadow; the single active element carries a 2px amber seam. Display type is Shippori Mincho; micro labels are IBM Plex Mono; amber appears only on the seam, selection, and one call to action.
Medium-low with deliberate pauses; lists compact but never crowded; forms full-height; the screen feels edited, the shadow between objects part of the content.
Medium-low; every cluster gets enough shadow to read as a deliberate pause.
12-column field, max width ~1360px; one column is left as an unlit shadow gutter (ma); content offset into the remaining columns.
Active structure: 48px minimum between regions, 64px around decision areas, 96px where the reader should slow.
Collapse side rails beneath the main panel on tablet; stack panels on mobile; keep controls 44px; let tables become card rows rather than overflow.
Umbra tenebrist chiaroscuro: one warm low light rakes matte imperfect material (lime plaster, washi, unglazed clay, weathered cedar) out of deep warm shadow, with a single luminous amber seam. Contemplative, wabi-sabi, film-photographic scenes of lanterns, alcoves, and quiet interiors.
umbra
# Andon
## Philosophy
Andon keeps the soul of Ma Wabi-Sabi Spatial Minimalism — Japanese ma (the meaningful interval), wabi-sabi imperfection, quiet affordance, and MUJI no-brand restraint — and reconceives its expression around one physical truth the parent only named in passing: light as hierarchy. A single warm lamp falls across the interface; the surfaces it reaches sit forward, the rest recede into warm shadow, and the one active element catches a thin amber seam. Emptiness is no longer a labelled blank bay but the unlit interval between pools of light. There are no borders; light and shadow do the structural work. An andon — the paper-and-cedar lantern — names the language and sets its behaviour: paper glows, wood frames, shadow holds the room, and one warm amber is the only saturated colour.
### Values
- {"name":"Light as hierarchy","explanation":"Priority is luminance — the most important surface is the one the lamp has reached; the rest waits in warm shadow."}
- {"name":"Active emptiness","explanation":"The dark interval between lit elements is structure; ma survives as the shadow gutter the light does not fill."}
- {"name":"Material restraint","explanation":"Surfaces read as lime plaster, washi, unglazed clay, and cedar through soft directional shadow and faint grain, never illustration."}
- {"name":"Quiet affordance","explanation":"A control is legible because the light models it — a raised plane, a recessed well — not because it is boxed or coloured."}
- {"name":"Weathered precision","explanation":"The grid is measured and rigorous; imperfection lives in the grain and the warmth of the light."}
- {"name":"No-brand neutrality","explanation":"The interface recedes behind the work — one warm accent, quiet type, sparse labels."}
### Anti-Values
- {"name":"Ornamental Japanism","explanation":"No cherry blossoms, faux calligraphy, red sun discs, or motif wallpaper; the aesthetic is carried by light, interval, and material."}
- {"name":"Luxury-spa softness","explanation":"No beige-on-beige wash, no pillowy oversized controls; the warmth is lamplight on matte material."}
- {"name":"Tech-showroom gloss","explanation":"No glassmorphism, neon, gradient buttons, or SaaS-hero effects; the glow is a wick, not a screen."}
- {"name":"Over-compression","explanation":"The screen is never packed to prove efficiency; the shadow between objects is part of the content."}
### Visual Character
- A warm directional lamplight falls across every screen from one side; lit surfaces sit forward, unlit surfaces recede.
- Lit paper planes carry a soft warm top gradient and a matching soft shadow, with no borders.
- The active element catches a single 2px luminous amber seam on its lit edge; nothing else gets an edge.
- The ma interval is an unlit shadow gutter — a column or band the light does not reach — separating regions without a rule.
- Warm amber is the only saturated colour, used like the glow of a wick — on the seam, on selection, on one call to action.
## Tokens
### Colors
| Name | Value |
|------|-------|
| bg | `#F5F0E7` |
| surface | `#FBF8F1` |
| surface_solid | `#FFFFFF` |
| text | `#1C1712` |
| muted | `#6A6154` |
| border | `#E4DCCC` |
| accent | `#C07A2B` |
| accent_2 | `#9A5A2A` |
| accent_soft | `#EFDFC4` |
| on_accent | `#F7EFDF` |
| success | `#5E6B3C` |
| warning | `#9A6B22` |
| error | `#8C3A2B` |
| info | `#456068` |
### Typography
- **Base Size**: 17px
- **Body Font**: IBM Plex Sans
- **Heading Font**: Shippori Mincho
- **Mono Font**: IBM Plex Mono
- **Heading Weight**: 700
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Line Height**: 1.6
- **Scale Ratio**: 1.25
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&family=Shippori+Mincho:wght@500;600;700;800&display=swap
### Radii
- **None**: 0px
- **Md**: 16px
- **Lg**: 24px
- **Full**: 9999px
### Shadows
- **Sm**: 0 1px 2px rgba(28,23,18,.06), 0 2px 8px rgba(28,23,18,.045)
- **Md**: 0 10px 34px rgba(28,23,18,.10), 0 2px 8px rgba(28,23,18,.06)
- **Lg**: 0 26px 74px rgba(28,23,18,.15), 0 6px 20px rgba(28,23,18,.085)
### Spacing
- **Base**: 8px
- **Scale**: ["4px","8px","12px","16px","24px","32px","48px","64px","96px","128px"]
### Surfaces
- **Treatment**: paper-plaster under lamplight
- **Card Style**: Lit paper planes modelled by a soft warm directional light and shadow; elevation is depth into the light; no borders.
- **Bg Pattern**: warm directional light-fall gradient with a faint material grain
### Borders
- **Default Width**: 0px
- **Accent Width**: 2px
- **Style**: luminous-seam
- **Character**: No borders. Structure is read from light and soft shadow; the only edge is a single 2px warm amber seam that marks the active/lit element.
### Motion
- **Duration**: 260ms
- **Easing**: cubic-bezier(0.22,0.61,0.18,1)
- **Philosophy**: A lamp brightening — elements warm into presence and recede into shadow; deliberate settle, no bounce, no celebration.
## Rules
### Composition
Model a quiet asymmetrical grid with one unlit shadow gutter as the ma interval; place primary work in the pool of light slightly off-centre; separate major regions with 48-96px of interval. Hierarchy is luminance before type or colour.
### Hierarchy
Priority is how much light a surface catches: lit paper planes sit forward with a soft warm shadow; the single active element carries a 2px amber seam. Display type is Shippori Mincho; micro labels are IBM Plex Mono; amber appears only on the seam, selection, and one call to action.
### Density
Medium-low with deliberate pauses; lists compact but never crowded; forms full-height; the screen feels edited, the shadow between objects part of the content.
### Signature Patterns
- Lampfall pool: a soft warm luminance gradient plus a matching drop shadow models every raised plane; elevation is depth into the light.
- The seam: a single 2px luminous amber line marks the one active/lit element and nothing else.
- Shadow gutter: the ma interval rendered as an unlit column or band — structure by absence of light.
- Lantern-body primary: the primary button is a dark warm cedar-ink panel with a bright amber top seam and cream label.
- Recessed well: inputs are soft inset shadow wells with no border; on focus the well brightens and the amber seam appears at its lit edge.
## Layout
### Density
Medium-low; every cluster gets enough shadow to read as a deliberate pause.
### Grid
12-column field, max width ~1360px; one column is left as an unlit shadow gutter (ma); content offset into the remaining columns.
### Whitespace
Active structure: 48px minimum between regions, 64px around decision areas, 96px where the reader should slow.
### Breakpoints
- **Desktop**: 1200px and above: 12 columns with the shadow gutter
- **Tablet**: 768-1199px: 8 columns, gutter becomes a top interval
- **Mobile**: 0-767px: single column, intervals reduce to 32px but stay visible
### Responsive
Collapse side rails beneath the main panel on tablet; stack panels on mobile; keep controls 44px; let tables become card rows rather than overflow.
## Guidance
### Do
- Model hierarchy with light and shadow first; reach for the amber seam only to mark the one active element.
- Keep one warm directional light across a whole screen so the modelling is coherent.
- Let the ma interval be a genuine unlit gutter; leave it empty.
- Use warm cream labels on the dark lantern-body primary button for high contrast.
- Keep body text at 17px and letter-spacing at -0.02em on display type.
- Reserve #FFFFFF for the brightest lit surfaces and warm off-white for paper planes.
### Don't
- Do not draw boxes or grey borders; the seam and the shadow do the work.
- Do not give a card a decorative accent edge — the seam only marks the active element.
- Do not use gradients as decoration, glassmorphism, neon, or gloss.
- Do not decorate with literal Japanese motifs.
- Do not centre every section or pack the screen.
- Do not use random radii such as 8px, 12px, or 20px.
### Usage Context
Editorial desks and archives, calm operations dashboards, material libraries and catalogues, focused planning and reading tools — anywhere reduction, placing, and careful reading matter.
### Accessibility
Maintain WCAG AA contrast (cream on warm shadow, ink on lit paper); focus states raise a visible amber seam plus ring; never encode status by colour alone (status dots plus labels); keep touch targets at least 44px; keep grain behind content at low opacity.
## Imagery Direction
### Summary
Umbra tenebrist chiaroscuro: one warm low light rakes matte imperfect material (lime plaster, washi, unglazed clay, weathered cedar) out of deep warm shadow, with a single luminous amber seam. Contemplative, wabi-sabi, film-photographic scenes of lanterns, alcoves, and quiet interiors.
### Pairs With
umbra
---
version: "alpha"
name: "Andon"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#F5F0E7"
surface: "#FBF8F1"
surface_solid: "#FFFFFF"
text: "#1C1712"
muted: "#6A6154"
border: "#E4DCCC"
accent: "#C07A2B"
accent_2: "#9A5A2A"
accent_soft: "#EFDFC4"
on_accent: "#F7EFDF"
success: "#5E6B3C"
warning: "#9A6B22"
error: "#8C3A2B"
info: "#456068"
typography:
headline-lg:
fontFamily: "Shippori Mincho"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Shippori Mincho"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "IBM Plex Sans"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.6
letterSpacing: "-0.02em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
md: "16px"
lg: "24px"
full: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
step-9: "128px"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface_solid:
backgroundColor: "{colors.surface_solid}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-accent_2:
backgroundColor: "{colors.accent_2}"
color-reference-accent_soft:
backgroundColor: "{colors.accent_soft}"
color-reference-on_accent:
backgroundColor: "{colors.on_accent}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
button-primary:
backgroundColor: "{colors.accent}"
textColor: "#000000"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Andon
## Overview
Andon keeps the soul of Ma Wabi-Sabi Spatial Minimalism — Japanese ma (the meaningful interval), wabi-sabi imperfection, quiet affordance, and MUJI no-brand restraint — and reconceives its expression around one physical truth the parent only named in passing: light as hierarchy. A single warm lamp falls across the interface; the surfaces it reaches sit forward, the rest recede into warm shadow, and the one active element catches a thin amber seam. Emptiness is no longer a labelled blank bay but the unlit interval between pools of light. There are no borders; light and shadow do the structural work. An andon — the paper-and-cedar lantern — names the language and sets its behaviour: paper glows, wood frames, shadow holds the room, and one warm amber is the only saturated colour.
### Values
- {"name":"Light as hierarchy","explanation":"Priority is luminance — the most important surface is the one the lamp has reached; the rest waits in warm shadow."}
- {"name":"Active emptiness","explanation":"The dark interval between lit elements is structure; ma survives as the shadow gutter the light does not fill."}
- {"name":"Material restraint","explanation":"Surfaces read as lime plaster, washi, unglazed clay, and cedar through soft directional shadow and faint grain, never illustration."}
- {"name":"Quiet affordance","explanation":"A control is legible because the light models it — a raised plane, a recessed well — not because it is boxed or coloured."}
- {"name":"Weathered precision","explanation":"The grid is measured and rigorous; imperfection lives in the grain and the warmth of the light."}
- {"name":"No-brand neutrality","explanation":"The interface recedes behind the work — one warm accent, quiet type, sparse labels."}
### Anti-Values
- {"name":"Ornamental Japanism","explanation":"No cherry blossoms, faux calligraphy, red sun discs, or motif wallpaper; the aesthetic is carried by light, interval, and material."}
- {"name":"Luxury-spa softness","explanation":"No beige-on-beige wash, no pillowy oversized controls; the warmth is lamplight on matte material."}
- {"name":"Tech-showroom gloss","explanation":"No glassmorphism, neon, gradient buttons, or SaaS-hero effects; the glow is a wick, not a screen."}
- {"name":"Over-compression","explanation":"The screen is never packed to prove efficiency; the shadow between objects is part of the content."}
### Visual Character
- A warm directional lamplight falls across every screen from one side; lit surfaces sit forward, unlit surfaces recede.
- Lit paper planes carry a soft warm top gradient and a matching soft shadow, with no borders.
- The active element catches a single 2px luminous amber seam on its lit edge; nothing else gets an edge.
- The ma interval is an unlit shadow gutter — a column or band the light does not reach — separating regions without a rule.
- Warm amber is the only saturated colour, used like the glow of a wick — on the seam, on selection, on one call to action.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| bg | `#F5F0E7` |
| surface | `#FBF8F1` |
| surface_solid | `#FFFFFF` |
| text | `#1C1712` |
| muted | `#6A6154` |
| border | `#E4DCCC` |
| accent | `#C07A2B` |
| accent_2 | `#9A5A2A` |
| accent_soft | `#EFDFC4` |
| on_accent | `#F7EFDF` |
| success | `#5E6B3C` |
| warning | `#9A6B22` |
| error | `#8C3A2B` |
| info | `#456068` |
## Typography
- **Headline-Lg**: Shippori Mincho, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Shippori Mincho, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 17px, weight 400, line-height 1.6.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`
- **Step-9**: `128px`
### Density
Medium-low; every cluster gets enough shadow to read as a deliberate pause.
### Grid
12-column field, max width ~1360px; one column is left as an unlit shadow gutter (ma); content offset into the remaining columns.
### Whitespace
Active structure: 48px minimum between regions, 64px around decision areas, 96px where the reader should slow.
### Breakpoints
- **Desktop**: 1200px and above: 12 columns with the shadow gutter
- **Tablet**: 768-1199px: 8 columns, gutter becomes a top interval
- **Mobile**: 0-767px: single column, intervals reduce to 32px but stay visible
### Responsive
Collapse side rails beneath the main panel on tablet; stack panels on mobile; keep controls 44px; let tables become card rows rather than overflow.
## Elevation & Depth
### Shadows
- **Sm**: 0 1px 2px rgba(28,23,18,.06), 0 2px 8px rgba(28,23,18,.045)
- **Md**: 0 10px 34px rgba(28,23,18,.10), 0 2px 8px rgba(28,23,18,.06)
- **Lg**: 0 26px 74px rgba(28,23,18,.15), 0 6px 20px rgba(28,23,18,.085)
## Shapes
### Rounded
- **None**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: paper-plaster under lamplight
- **Card Style**: Lit paper planes modelled by a soft warm directional light and shadow; elevation is depth into the light; no borders.
- **Bg Pattern**: warm directional light-fall gradient with a faint material grain
### Borders
- **Default Width**: 0px
- **Accent Width**: 2px
- **Style**: luminous-seam
- **Character**: No borders. Structure is read from light and soft shadow; the only edge is a single 2px warm amber seam that marks the active/lit element.
## Components
### Composition
Model a quiet asymmetrical grid with one unlit shadow gutter as the ma interval; place primary work in the pool of light slightly off-centre; separate major regions with 48-96px of interval. Hierarchy is luminance before type or colour.
### Hierarchy
Priority is how much light a surface catches: lit paper planes sit forward with a soft warm shadow; the single active element carries a 2px amber seam. Display type is Shippori Mincho; micro labels are IBM Plex Mono; amber appears only on the seam, selection, and one call to action.
### Density
Medium-low with deliberate pauses; lists compact but never crowded; forms full-height; the screen feels edited, the shadow between objects part of the content.
### Signature Patterns
- Lampfall pool: a soft warm luminance gradient plus a matching drop shadow models every raised plane; elevation is depth into the light.
- The seam: a single 2px luminous amber line marks the one active/lit element and nothing else.
- Shadow gutter: the ma interval rendered as an unlit column or band — structure by absence of light.
- Lantern-body primary: the primary button is a dark warm cedar-ink panel with a bright amber top seam and cream label.
- Recessed well: inputs are soft inset shadow wells with no border; on focus the well brightens and the amber seam appears at its lit edge.
## shadcn/ui Usage
When the target app uses shadcn/ui, copy DESIGN.md with shadcn instead of the plain DESIGN.md. It contains the same Katagami design-language source plus the shadcn/ui primitives, imports, theme variables, component recipes, and preview-shot guidance.
DESIGN.md with shadcn: `/language/en-019f8af8-d1d6-7501-8b46-e22c51f016bd/DESIGN.with-shadcn.md`.
The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.
Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.
## Do's and Don'ts
- Do Model hierarchy with light and shadow first; reach for the amber seam only to mark the one active element.
- Do Keep one warm directional light across a whole screen so the modelling is coherent.
- Do Let the ma interval be a genuine unlit gutter; leave it empty.
- Do Use warm cream labels on the dark lantern-body primary button for high contrast.
- Do Keep body text at 17px and letter-spacing at -0.02em on display type.
- Do Reserve #FFFFFF for the brightest lit surfaces and warm off-white for paper planes.
- Don't Do not draw boxes or grey borders; the seam and the shadow do the work.
- Don't Do not give a card a decorative accent edge — the seam only marks the active element.
- Don't Do not use gradients as decoration, glassmorphism, neon, or gloss.
- Don't Do not decorate with literal Japanese motifs.
- Don't Do not centre every section or pack the screen.
- Don't Do not use random radii such as 8px, 12px, or 20px.
### Usage Context
Editorial desks and archives, calm operations dashboards, material libraries and catalogues, focused planning and reading tools — anywhere reduction, placing, and careful reading matter.
### Accessibility
Maintain WCAG AA contrast (cream on warm shadow, ink on lit paper); focus states raise a visible amber seam plus ring; never encode status by colour alone (status dots plus labels); keep touch targets at least 44px; keep grain behind content at low opacity.
## Imagery Direction
### Summary
Umbra tenebrist chiaroscuro: one warm low light rakes matte imperfect material (lime plaster, washi, unglazed clay, weathered cedar) out of deep warm shadow, with a single luminous amber seam. Contemplative, wabi-sabi, film-photographic scenes of lanterns, alcoves, and quiet interiors.
### Pairs With
umbra
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "andon",
"type": "registry:theme",
"title": "Andon shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F5F0E7",
"foreground": "#1C1712",
"card": "#FBF8F1",
"card-foreground": "#1C1712",
"popover": "#FBF8F1",
"popover-foreground": "#1C1712",
"primary": "#1C1712",
"primary-foreground": "#ffffff",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#6A6154",
"muted-foreground": "#1C1712",
"accent": "#C07A2B",
"accent-foreground": "#ffffff",
"destructive": "#8C3A2B",
"border": "#E4DCCC",
"input": "#E4DCCC",
"ring": "#C07A2B",
"chart-1": "#1C1712",
"chart-2": "#f4f4f5",
"chart-3": "#C07A2B",
"chart-4": "#5E6B3C",
"chart-5": "#9A6B22",
"sidebar": "#FBF8F1",
"sidebar-foreground": "#1C1712",
"sidebar-primary": "#1C1712",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#456068",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#E4DCCC",
"sidebar-ring": "#C07A2B",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#1C1712",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#C07A2B",
"accent-foreground": "#ffffff",
"destructive": "#8C3A2B",
"border": "#303642",
"input": "#303642",
"ring": "#C07A2B",
"chart-1": "#1C1712",
"chart-2": "#f4f4f5",
"chart-3": "#C07A2B",
"chart-4": "#5E6B3C",
"chart-5": "#9A6B22",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#1C1712",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#C07A2B",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#C07A2B",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019f8af8-d1d6-7501-8b46-e22c51f016bd",
"slug": "andon",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"colors": [
"accent",
"accent_2",
"accent_soft",
"bg",
"border",
"error",
"info",
"muted",
"on_accent",
"success",
"surface",
"surface_solid",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"radii": [
"full",
"lg",
"md",
"none"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Agent-generated
Keep Andonand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #F5F0E7;
--foreground: #1C1712;
--card: #FBF8F1;
--card-foreground: #1C1712;
--popover: #FBF8F1;
--popover-foreground: #1C1712;
--primary: #1C1712;
--primary-foreground: #ffffff;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #6A6154;
--muted-foreground: #1C1712;
--accent: #C07A2B;
--accent-foreground: #ffffff;
--destructive: #8C3A2B;
--border: #E4DCCC;
--input: #E4DCCC;
--ring: #C07A2B;
--chart-1: #1C1712;
--chart-2: #f4f4f5;
--chart-3: #C07A2B;
--chart-4: #5E6B3C;
--chart-5: #9A6B22;
--sidebar: #FBF8F1;
--sidebar-foreground: #1C1712;
--sidebar-primary: #1C1712;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #456068;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #E4DCCC;
--sidebar-ring: #C07A2B;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #1C1712;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #C07A2B;
--accent-foreground: #ffffff;
--destructive: #8C3A2B;
--border: #303642;
--input: #303642;
--ring: #C07A2B;
--chart-1: #1C1712;
--chart-2: #f4f4f5;
--chart-3: #C07A2B;
--chart-4: #5E6B3C;
--chart-5: #9A6B22;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #1C1712;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #C07A2B;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #C07A2B;
--radius: 16px;
}
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function AndonShadcnKit() {
return (
<section className="grid gap-4 rounded-[var(--radius)] border bg-background p-4 text-foreground">
<div className="flex items-start justify-between gap-4">
<div>
<Badge variant="outline">shadcn/ui</Badge>
<h2 className="mt-3 text-2xl font-semibold tracking-tight">Andon</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "andon",
"type": "registry:theme",
"author": "katagami-agent",
"title": "Andon",
"description": "A spatial design language built on lamplight. Hierarchy is luminance: lit paper planes sit forward on soft warm shadow, a single amber seam marks the one active element, and the ma interval is the unlit gutter. No borders — light and shadow do the structural work.",
"cssVars": {
"theme": {
"font-sans": "IBM Plex Sans, system-ui, sans-serif",
"font-serif": "Shippori Mincho, Noto Serif JP, Georgia, serif",
"font-mono": "IBM Plex Mono, ui-monospace, monospace",
"radius": "1rem"
},
"light": {
"background": "#F5F0E7",
"foreground": "#1C1712",
"card": "#FBF8F1",
"card-foreground": "#1C1712",
"popover": "#FFFFFF",
"popover-foreground": "#1C1712",
"primary": "#221B12",
"primary-foreground": "#F7EFDF",
"secondary": "#FBF8F1",
"secondary-foreground": "#1C1712",
"muted": "#EFEAE0",
"muted-foreground": "#6A6154",
"accent": "#C07A2B",
"accent-foreground": "#1C1207",
"destructive": "#8C3A2B",
"destructive-foreground": "#F7EFE9",
"border": "#E4DCCC",
"input": "#EFEAE0",
"ring": "#C07A2B",
"radius": "1rem",
"chart-1": "#C07A2B",
"chart-2": "#5E6B3C",
"chart-3": "#456068",
"chart-4": "#9A6B22",
"chart-5": "#6A6154",
"sidebar": "#F5F0E7",
"sidebar-foreground": "#1C1712",
"sidebar-primary": "#221B12",
"sidebar-primary-foreground": "#F7EFDF",
"sidebar-accent": "#C07A2B",
"sidebar-accent-foreground": "#1C1207",
"sidebar-border": "#E4DCCC",
"sidebar-ring": "#C07A2B"
},
"dark": {
"background": "#14100B",
"foreground": "#F2E7D2",
"card": "#1D160E",
"card-foreground": "#F2E7D2",
"popover": "#1D160E",
"popover-foreground": "#F2E7D2",
"primary": "#C07A2B",
"primary-foreground": "#1C1207",
"secondary": "#241C12",
"secondary-foreground": "#F2E7D2",
"muted": "#241C12",
"muted-foreground": "#B8A98C",
"accent": "#C07A2B",
"accent-foreground": "#1C1207",
"destructive": "#8C3A2B",
"destructive-foreground": "#F7EFE9",
"border": "#2A2115",
"input": "#2A2115",
"ring": "#C07A2B",
"radius": "1rem",
"chart-1": "#D68A34",
"chart-2": "#7E8B54",
"chart-3": "#6E8A92",
"chart-4": "#C08A2E",
"chart-5": "#B8A98C",
"sidebar": "#14100B",
"sidebar-foreground": "#F2E7D2",
"sidebar-primary": "#C07A2B",
"sidebar-primary-foreground": "#1C1207",
"sidebar-accent": "#241C12",
"sidebar-accent-foreground": "#F2E7D2",
"sidebar-border": "#2A2115",
"sidebar-ring": "#C07A2B"
}
},
"visualProfile": {
"family": "editorial-minimal",
"material": "lit paper, lime plaster, unglazed clay, weathered cedar under one warm lamp",
"contour": "soft paper corners (16px), 0px on structural rules, 9999px on pills",
"border": "none",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "a lamp brightening — deliberate settle, no bounce",
"density": "medium-low; generous ma intervals",
"accents": ["#C07A2B", "#5E6B3C", "#456068"]
},
"notes": "Borders are avoided: separation is soft warm shadow (elevation = depth into the light) and a single 2px amber seam that marks only the active/lit element (focused input, selected row, current nav item, primary control). The primary button is a dark cedar-ink panel with a bright amber top seam and cream label — a lit lantern face. Inputs are recessed shadow wells (inset), not outlined boxes. One warm amber is the only saturated colour; earth semantics stay a small part of the palette. Radii from {0, 16, 24, 9999} only."
}
# shadcn/ui Components — Andon
Author: `katagami-agent`
Format: `component-recipes-v1`
Andon is a spatial language built on lamplight. Hierarchy is luminance: lit paper planes sit forward on soft warm shadow, a single amber seam marks the one active element, and the *ma* interval is the unlit gutter. There are **no borders** — light and shadow do all the structural work. These recipes translate that into shadcn/ui primitives so a generated app looks like Andon and not a generic house chassis.
## ShadSync visual profile
- **Family**: editorial-minimal, calm, no-brand.
- **Material**: lit paper / lime plaster / unglazed clay / weathered cedar under one warm 2700K lamp.
- **Border**: `none`. Never draw a box or a grey hairline. Separation comes from a soft warm drop shadow (elevation = depth into the light) and, on the active element only, a 2px amber **seam**.
- **Radius**: soft paper corners — 16px on controls and cards, 24px on large containers, 0px on structural rules, 9999px on pills/avatars/dots. Nothing in between.
- **Colour**: warm neutrals (`background #F5F0E7`, `card #FBF8F1`, ink `#1C1712`). One saturated accent — lamplight amber `#C07A2B` — used like a wick glow, never as a fill wash. Earth semantics (moss `#5E6B3C`, ochre `#9A6B22`, oxidised-red `#8C3A2B`, slate `#456068`) stay a small part.
- **Motion**: a lamp brightening — a deliberate 220–260ms settle, no bounce, no celebration.
- **Density**: medium-low; always pad above titles; keep the ma interval empty.
- **Grain**: a barely-visible material grain sits behind content, never over text.
## Signature component recipes
The Lampfall mechanic maps onto every primitive:
- **Button** — Primary is a dark cedar-ink panel (`primary #221B12`) with a bright amber top **seam** and a cream label (`primary-foreground #F7EFDF`): a lit lantern face. Secondary is a lit paper plane (soft shadow, amber seam appears on hover). Ghost is transparent with a warm amber wash on hover. Buttons share one height and radius; the label never wraps.
- **Card** — a lit paper plane: `card` fill, soft warm shadow, 24px radius, **no border**. A lead card may carry a 2px amber top seam; ordinary cards carry none.
- **Input / Textarea** — recessed shadow **wells** (inset shadow, `input #EFEAE0` fill, no outline). On focus the well brightens and an amber seam lights its lower edge (`ring #C07A2B`).
- **Select / Dropdown-menu** — same well at rest; the open menu is a lifted paper plane (deeper shadow); the active item catches the amber seam.
- **Dialog / Sheet** — the most-lifted paper plane (largest soft shadow), a thin amber seam along its lit top edge; the scrim is warm shadow, never a flat grey.
- **Tabs** — the active tab is a lit plane with an amber underseam; inactive tabs recede into shadow.
- **Table** — rows separated by luminance banding (alternating faint warmth), never lines; the selected row gets a warm amber tint and an inset amber seam on its leading edge.
- **Badge** — a soft pill in a muted earth tint with a solid status dot; amber only for the "lit/active" state.
- **Separator** — a soft luminance falloff (transparent → faint ink → transparent), not a solid rule.
- **Checkbox / Switch** — recessed wells at rest; when on, a dark cedar-ink body holds a small amber glow (the wick).
- **Slider** — a recessed track with an amber fill and a lit paper thumb.
- **Tooltip** — a small lifted ink panel with cream text and a soft warm shadow.
## Preview shots
The renderable preview set (`preview-shots.json`, `renderable-v1`) carries four product scenes — a room console, a "light a room" form dialog, a warmth overview, and a controls gallery — exercising all sixteen primitives. Each shot lists what it must show (the amber seam on the active element, luminance banding, recessed wells) and what to avoid (borders, boxed nav, gradient fills, emoji).
## Copy-paste component example
```tsx
import { Button } from "@/components/ui/button"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
// A lit paper plane. No border; elevation is the soft warm shadow.
// The primary action is a lantern-body panel with an amber top seam.
export function RoomCard() {
return (
<Card className="rounded-3xl shadow-[0_10px_34px_rgba(28,23,18,.10)] border-0 bg-card">
<CardHeader className="flex flex-row items-center justify-between">
<CardTitle className="font-serif tracking-tight">West alcove</CardTitle>
<Badge className="rounded-full bg-[color-mix(in_srgb,var(--accent)_16%,transparent)] text-[--accent] border-0">
lit
</Badge>
</CardHeader>
<CardContent className="flex items-center justify-between">
<p className="text-muted-foreground">Holding warmth since 06:12</p>
{/* lantern-body primary: amber seam lives on the top edge */}
<Button className="relative rounded-2xl bg-primary text-primary-foreground border-0
before:absolute before:inset-x-4 before:top-0 before:h-0.5 before:rounded-full
before:bg-[--accent] before:shadow-[0_6px_26px_rgba(192,122,43,.3)]">
Hold warmth
</Button>
</CardContent>
</Card>
)
}
```
Import primitives from `@/components/ui/` as usual (`@/components/ui/button`, `@/components/ui/card`, `@/components/ui/dialog`, …); the theme in `export.json` restyles them to Andon. The registry theme is finalizer-owned; this file and `preview-shots.json` are agent-authored and drive how the renderer should compose and judge the primitives.
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"author": "katagami-agent",
"requiresVisualProfile": true,
"language": {
"id": "andon",
"name": "Andon",
"slug": "andon"
},
"installCommand": "npx shadcn@latest add https://katagami.ai/r/andon.json",
"primitives": [
"button", "card", "input", "textarea", "select", "dialog", "sheet", "tabs",
"badge", "separator", "checkbox", "switch", "slider", "tooltip", "dropdown-menu", "table"
],
"identityNotes": [
"Hierarchy is luminance: lit paper planes sit forward on soft warm shadow; quiet elements recede.",
"The only 'border' is a single 2px amber seam that marks the one active/lit element — focused input, selected row, current tab, primary button.",
"The primary button is a dark cedar-ink panel with an amber top seam and a cream label — a lit lantern face.",
"Inputs are recessed shadow wells (inset), never outlined boxes; on focus the well brightens and the amber seam lights.",
"One warm amber (#C07A2B) is the only saturated colour, used like a wick glow; earth semantics stay a small part.",
"No borders, no boxed navigation, no gradient fills; radii only from {0, 16, 24, 9999}."
],
"visualProfile": {
"family": "editorial-minimal",
"material": "lit paper, lime plaster, unglazed clay, weathered cedar under one warm 2700K lamp",
"contour": "soft paper corners (16px controls / 24px containers), 0px structural rules, 9999px pills",
"border": "none",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "a lamp brightening — deliberate settle, no bounce",
"density": "medium-low; generous ma intervals",
"accents": ["#C07A2B", "#5E6B3C", "#456068"]
},
"tokens": {
"background": "#F5F0E7",
"card": "#FBF8F1",
"foreground": "#1C1712",
"muted-foreground": "#6A6154",
"primary": "#221B12",
"primary-foreground": "#F7EFDF",
"accent": "#C07A2B",
"accent-foreground": "#1C1207",
"destructive": "#8C3A2B",
"success": "#5E6B3C",
"warning": "#9A6B22",
"info": "#456068",
"input": "#EFEAE0",
"ring": "#C07A2B",
"radius": "16px",
"font-sans": "IBM Plex Sans",
"font-serif": "Shippori Mincho",
"font-mono": "IBM Plex Mono"
},
"shots": [
{
"id": "room-console",
"title": "Room console — overview",
"viewport": "desktop",
"primitives": ["card", "table", "badge", "button", "tabs", "separator"],
"composition": "A calm operations console: a lit paper card holds a rooms table with luminance-banded rows; the selected row carries a warm amber tint and an inset amber seam. Tabs above the table are lit planes with an amber underseam on the active tab. A lantern-body primary button sits top-right.",
"mustShow": [
"selected table row with an inset amber seam and warm tint",
"row separation by luminance banding, not lines",
"primary button as a dark cedar-ink panel with an amber top seam",
"status badges in muted earth tints with a solid status dot"
],
"avoid": ["table borders or grid lines", "boxed navigation", "gradient fills", "emoji"],
"scene": {
"headline": "Six rooms, four lit",
"description": "The east wing is holding warmth; the interval load rises toward dusk.",
"rows": [
{"room": "West alcove", "state": "lit", "lux": "42", "dwell": "9.4s"},
{"room": "Paper screen", "state": "rising", "lux": "28", "dwell": "6.1s"},
{"room": "Cedar shelf", "state": "lit", "lux": "39", "dwell": "8.7s"},
{"room": "Stone sill", "state": "shadow", "lux": "7", "dwell": "2.0s"},
{"room": "North desk", "state": "lit", "lux": "36", "dwell": "7.9s"}
]
}
},
{
"id": "light-a-room",
"title": "Light a room — form dialog",
"viewport": "desktop",
"primitives": ["dialog", "input", "textarea", "select", "switch", "checkbox", "slider", "button", "label"],
"composition": "A lifted paper-plane dialog (deepest soft shadow, thin amber top seam) over a warm-shadow scrim. Inputs are recessed wells; the focused field brightens with an amber lower seam. A brightness slider shows an amber fill and a lit paper thumb; a 'cast shadow' checkbox and a 'lamp on' switch use dark cedar-ink bodies with a small amber glow when on.",
"mustShow": [
"recessed input wells with no outline",
"focused field with an amber seam on its lit edge",
"dialog as the most-lifted plane with a warm-shadow scrim",
"switch/checkbox 'on' state as ink body with amber wick"
],
"avoid": ["outlined input boxes", "grey borders", "flat grey modal scrim", "pill buttons that wrap"],
"scene": {
"headline": "Light the west alcove",
"description": "Set the lamp low and to one side; leave the far wall in shadow.",
"fields": [
{"label": "Room name", "value": "West alcove"},
{"label": "Lamp warmth", "value": "2700K — candle"},
{"label": "Placement note", "value": "Low and to one side; far wall stays dark"},
{"label": "Brightness", "value": "58%"}
]
}
},
{
"id": "warmth-overview",
"title": "Warmth overview — stats",
"viewport": "desktop",
"primitives": ["card", "badge", "tooltip", "separator", "slider", "button"],
"composition": "A row of lit paper stat cards; the lead card carries a 2px amber top seam, the rest none. Each card shows a serif value and a muted mono label, with a sparkline. A tooltip on the lead metric is a small lifted ink panel with cream text. Meters read as recessed tracks with amber fills.",
"mustShow": [
"lead stat card with an amber top seam; others with none",
"serif display values over mono micro labels",
"meter tracks recessed with amber fill",
"one warm amber only; earth semantics minor"
],
"avoid": ["accent edge on every card", "borders", "three-color gradient charts", "emoji in labels"],
"scene": {
"headline": "The room is holding warmth",
"description": "Four of six rooms lit; mean dwell rising through the morning.",
"stats": [
{"label": "Rooms lit", "value": "4 / 6", "delta": "+1 since dawn"},
{"label": "Mean dwell", "value": "8.4s", "delta": "+0.9s"},
{"label": "Interval load", "value": "63%", "delta": "-4% headroom"},
{"label": "Warmth", "value": "2700K", "delta": "holding"}
]
}
},
{
"id": "controls-gallery",
"title": "Controls — states gallery",
"viewport": "desktop",
"primitives": ["button", "dropdown-menu", "tabs", "badge", "switch", "checkbox", "tooltip", "sheet"],
"composition": "A quiet gallery of controls in every state on a lit paper plane: primary / secondary / ghost / destructive buttons; an open dropdown menu as a lifted plane with the active item seamed; a side sheet peeking from the right edge; tabs with an amber underseam. Focus states raise the amber seam.",
"mustShow": [
"button variants sharing one height and radius, labels never wrapping",
"dropdown open item carrying the amber seam",
"focus state shown as an amber seam / ring, not a glow flood",
"sheet as a lifted paper plane sliding from the edge"
],
"avoid": ["borders on controls", "emoji on buttons", "symbol glyphs in copy", "boxed pill navigation"],
"scene": {
"headline": "Controls, quietly lit",
"description": "Every control is legible because the light models it, not because it is boxed.",
"rows": [
{"control": "Primary button", "state": "lantern-body + amber seam"},
{"control": "Secondary button", "state": "paper plane, seam on hover"},
{"control": "Switch", "state": "on — ink body, amber wick"},
{"control": "Dropdown item", "state": "active — amber seam"}
]
}
}
],
"componentRecipes": [
{"primitive": "button", "intent": "Primary = dark cedar-ink panel with an amber top seam and cream label; secondary = lit paper plane; ghost = transparent with warm amber hover wash. One height and radius; label never wraps."},
{"primitive": "card", "intent": "A lit paper plane: card fill, soft warm shadow, 24px radius, no border. A lead card may carry a 2px amber top seam; ordinary cards carry none."},
{"primitive": "input", "intent": "A recessed shadow well (inset, no outline). On focus the well brightens and an amber seam lights its lower edge."},
{"primitive": "textarea", "intent": "Same recessed well as input, taller, resize-vertical; amber seam on focus."},
{"primitive": "select", "intent": "Recessed well at rest with a hairline chevron; the open menu is a lifted plane and the active option catches the amber seam."},
{"primitive": "dialog", "intent": "The most-lifted paper plane (largest soft shadow) with a thin amber top seam; scrim is warm shadow, never flat grey."},
{"primitive": "sheet", "intent": "A lifted paper plane sliding from a screen edge; soft warm shadow on its lit edge; no border."},
{"primitive": "tabs", "intent": "Active tab is a lit plane with an amber underseam; inactive tabs recede into shadow. No boxed tab strip."},
{"primitive": "badge", "intent": "A soft pill in a muted earth tint with a solid status dot; amber only for the lit/active state."},
{"primitive": "separator", "intent": "A soft luminance falloff (transparent → faint ink → transparent), not a solid rule."},
{"primitive": "checkbox", "intent": "A recessed well at rest; when on, a dark cedar-ink body holds a small amber glow (the wick), 6px radius."},
{"primitive": "switch", "intent": "A recessed track; when on, a dark cedar-ink body and the knob carries an amber glow."},
{"primitive": "slider", "intent": "A recessed track with an amber fill and a lit paper thumb casting a soft shadow."},
{"primitive": "tooltip", "intent": "A small lifted ink panel with cream text and a soft warm shadow; no border."},
{"primitive": "dropdown-menu", "intent": "A lifted paper plane; items separated by luminance; the active/hover item carries the amber seam."},
{"primitive": "table", "intent": "Rows separated by luminance banding, never lines; the selected row gets a warm amber tint and an inset amber seam on its leading edge; mono numerals right-aligned."}
],
"qualityRules": {
"do": [
"Model hierarchy with light and soft shadow first; reach for the amber seam only to mark the one active element.",
"Keep one warm directional light across a screen so the shadow modelling is coherent.",
"Use serif display values over mono micro labels; body at 17px.",
"Leave the ma interval empty; always pad above titles.",
"Reserve one warm amber as the only saturated colour."
],
"dont": [
"Draw borders, grey hairlines, or boxed navigation.",
"Put an accent edge on every card — the seam marks only the active element.",
"Use gradient fills, glassmorphism, gloss, or neon.",
"Use emoji on buttons or symbol glyphs in copy.",
"Use radii outside {0, 16, 24, 9999}."
]
}
}