A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Published
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
the spec
specification
philosophy
summary
Reticle is a registration light-table for serious works-on-paper tools — print archives, edition planning, conservation desks, and contemporary-art catalogs. The interface is a dark glass table: black ink draws the structure, printed crop marks register every sheet to the column grid, and one cobalt cross-hair — the reticle — locks onto the plate that leads the issue. Colour is a register mark, never a fill. Where the source brief asked for an editorial ink atelier with electric accents, Reticle answers it as the conservator's light-table rather than the magazine page: luminous off-white plates floating on near-black glass, aligned by their own trim marks, with the single electric signal reserved for the cross-hair that finds the lead.
values
Registration is the workThe reticle calls the leadInk-first authorityLight-table materialityGesture under controlFine-art seriousness
Luminous off-white plate (#F2EEE3) registered by four L-shaped ink crop-mark corners — no full border; the lead plate gets cobalt corners plus a reticle cross-hair. A dark plate variant (#221F18) sits on the table for margin and material notes. Flat offset block shadow, never a glow.
bg pattern
register-grid
paper texture
A faint 64px register grid in low-opacity off-white runs across the warm near-black light-table ground; sheets read as backlit transparencies on the glass.
borders4 items
default width
2px
accent width
2px
style
crop-mark
character
Containers are registered by L-shaped crop-mark corner brackets rather than full borders. Inputs use an inset ink box-shadow; section bands use a dashed tick-rule; the lead plate's crop marks turn cobalt.
motion3 items
duration
170ms
easing
cubic-bezier(0.2,0,0,1)
philosophy
Snappy and mechanical, like a sheet being laid onto the table and registered. The settled state is the default and renders with no JavaScript; reveals are added on top behind a gating class and respect prefers-reduced-motion.
rules
composition
Build screens as a registration board: plates laid on a dark light-table, aligned by crop marks to a faint register grid, with asymmetric overlapping spans.Register every container with four L-shaped crop-mark corners before any fill or surface; the trim is the layout material.Reserve cobalt for the reticle and one primary action per view; keep every accent under five percent of the surface.Circle counts as register marks; ring the lead count in cobalt rather than boxing it as a metric card.Let one rough rotated brush-gesture stroke break a plate edge to keep the human hand visible without breaking alignment.
hierarchy
Plate titles and the masthead use Newsreader at display scale with tight tracking — a museum wall-label voice.Nav, section bands, labels, and counts use IBM Plex Sans Condensed uppercase with wide tracking, or IBM Plex Mono for coordinates.Body copy uses IBM Plex Sans at 17px, ink on the luminous sheet or light on the dark table.The lead plate carries cobalt crop marks plus a cross-hair reticle at its top-left origin — colour as signal, not fill.Section headers are registration bands (mono number + condensed-caps label + dashed tick-rule), never double-rule card titles.
density
Medium-density registration workspace: large Newsreader plate titles and circled counters balanced by compact mono coordinates, condensed-caps labels, and tightly registered ledger rows on luminous sheets.
signature
Crop-mark corner brackets register every plate instead of a full border.A cobalt cross-hair reticle locks onto the lead plate at its grid origin; cobalt stays under five percent.Plates overlap at slight offsets on a faint 64px register grid like separation sheets on a backlit light-table.Counts are circled register marks; the lead is ringed cobalt; coordinates and folios are set in mono.A rough rotated brush-gesture stroke and a short cobalt underline break the grid in chosen places for the human hand.
layout
grid
Desktop uses a 12-column board at max-width 1360px with 24px gutters; plates take asymmetric 7/5, 8/4 spans and may overlap at slight offsets over a 64px register grid.
whitespace
The dark light-table is the negative space: warm near-black glass crossed by a faint register grid, with luminous off-white plates registered by crop marks and dark plates for margin notes.
density
Medium-density registration desk: large Newsreader titles, compact mono coordinates, circled counters, and ruled ledger rows that hold dense edition-planning data without feeling like a SaaS dashboard.
responsive
From ~390px mobile to 2560px+ ultra-wide. At 1080px collapse asymmetric spans to a single column and reduce title scale; on mobile stack all plates, hide non-essential nav and table columns, make controls full width, and never overflow horizontally; on ultra-wide cap and centre the contained content while only the full-bleed hero spans 100vw.
breakpoints
desktop
1081px and up: 12-column board with overlapping plates
tablet
681px-1080px: single-column stacked plates, rail collapses into a top bar
mobile
680px and below: single column, stacked full-width controls, hidden secondary columns
ultrawide
2200px and up: content cap 1600px, only the hero spans 100vw
guidance
do
Use the warm near-black light-table (#16140F) as the ground; let luminous off-white plates read as backlit sheets.
Register every plate with L-shaped crop-mark corners before adding any fill, surface, or border.
Keep cobalt as the lead signal and focus colour; keep cobalt, chartreuse, and vermilion each under five percent.
Lock the lead plate with a cross-hair reticle at its grid origin and a short cobalt underline under one display word.
Pair Newsreader display titles with condensed-caps labels and mono coordinates; body at 17px.
Style every input, select, checkbox, radio, switch, slider, button, and table with the ink-rule + cobalt-focus system.
Circle counts as register marks; ring the lead count in cobalt; let plates overlap at slight offsets on the register grid.
Keep radius at 0px for plates and 9999px only for reticle dots and circled counters.
avoid
Do not give a plate a single lone accent edge, or fill an area with cobalt, chartreuse, or vermilion.
Do not box the nav into a pill or rounded card, and never nest plates inside plates.
Do not use gradient text or buttons, pastel washes, glassmorphism, glow, or rounded SaaS cards.
Do not reach for the oversized italic-serif AI-default headline, or use random radii such as 8px, 12px, 20px.
Do not let gesture strokes reduce readability or make controls look unfinished.
Do not use default browser styles for selects, checkboxes, switches, sliders, or focus states.
Do not mix multiple display fonts or use rejected LLM-default fonts like Poppins, Montserrat, DM Sans, or Space Grotesk.
imagery
pairs with
reglure
summary
Black pen-and-ink plates rendered in confident contour and crosshatch, laid as luminous off-white sheets on a dark light-table and registered by printed crop marks, with one small cobalt cross-hair as the only colour. Imagery functions as registered plate, frame, or compositional tension — never decorative illustration.
subjects
conservator's light-table with overlapping separation sheetsworks-on-paper plates: heron etching, botanical leaf study, contact stripcrop marks, registration cross-hairs, and trim bracketstorn proofs and galley sheets aligned to a column gridstudio desk and archive material on backlit glass
usage
One full-bleed landing hero in the Réglure technique composed for a dark light-table with a quiet lower third for overlay; elsewhere keep imagery to plate previews, margins, and contact sheets. End every prompt with NO text, NO letters, NO logos.
katagami spec
# Reticle
## Philosophy
Reticle is a registration light-table for serious works-on-paper tools — print archives, edition planning, conservation desks, and contemporary-art catalogs. The interface is a dark glass table: black ink draws the structure, printed crop marks register every sheet to the column grid, and one cobalt cross-hair — the reticle — locks onto the plate that leads the issue. Colour is a register mark, never a fill. Where the source brief asked for an editorial ink atelier with electric accents, Reticle answers it as the conservator's light-table rather than the magazine page: luminous off-white plates floating on near-black glass, aligned by their own trim marks, with the single electric signal reserved for the cross-hair that finds the lead.
### Values
- {"name":"Registration is the work","description":"Every plate is a sheet laid on backlit glass and aligned by its own crop marks; the trim is the structure before any fill or surface."}
- {"name":"The reticle calls the lead","description":"A single cobalt cross-hair targets the one plate that leads the issue — a signal under five percent of the surface, never a coloured field."}
- {"name":"Ink-first authority","description":"Black is the primary drawing instrument on the luminous sheets; type, rules, marks, and counts feel printed, not decorated with colour."}
- {"name":"Light-table materiality","description":"The ground is a warm near-black glass; sheets read as backlit transparencies, so alignment reads at a glance against a faint register grid."}
- {"name":"Gesture under control","description":"A rough rotated brush stroke breaks a plate edge to keep the human hand visible under the grid, never reducing readability."}
- {"name":"Fine-art seriousness","description":"Disciplined, curatorial, alive with the tension between hand gesture and registration precision — never playful, retro, or decorative."}
### Anti-Values
- {"name":"Rainbow creativity","description":"Never use multiple saturated accents at once or turn the table into a palette sampler."}
- {"name":"Template minimalism","description":"Never rely on bordered, soft-shadow cards; identity comes from crop-mark registration, the reticle, and the dark light-table."}
- {"name":"Crypto gloss","description":"No gradient buttons, glassy panels, neon glow, or inflated rounded cards."}
- {"name":"Decorative illustration","description":"Linework must function as registration, frame, or compositional tension — never cute ornament."}
### Visual Character
- Luminous off-white plates float on a warm near-black light-table ground, each registered by four L-shaped crop-mark corners instead of a full border.
- The lead plate carries cobalt crop marks plus a cross-hair reticle pinned at its top-left origin and a short cobalt underline under one display word.
- Plates overlap at slight offsets on a faint 64px register grid so alignment reads like separation sheets on backlit glass.
- Section headers are registration bands — a mono number, a condensed-caps label, and a dashed tick-rule — not double-rule magazine dividers.
- Counts are circled register marks; the lead count is ringed in cobalt. Coordinates and folios are set in mono.
## Tokens
### Colors
| Name | Value |
|------|-------|
| bg | `#16140F` |
| surface | `#221F18` |
| surface_2 | `#2B2719` |
| plate | `#F2EEE3` |
| plate_2 | `#E6E0D1` |
| text | `#EDE8DC` |
| text_on_plate | `#1A1712` |
| ink | `#1A1712` |
| muted | `#9A9384` |
| muted_on_plate | `#6E6654` |
| border | `#3A3528` |
| rule_plate | `#1A1712` |
| accent | `#2D6CFF` |
| on_accent | `#F2EEE3` |
| accent_2 | `#B7E400` |
| accent_3 | `#F23B2E` |
| success | `#5FB07A` |
| warning | `#E0A93B` |
| error | `#F2624E` |
| info | `#2D6CFF` |
### Typography
- **Base Size**: 17px
- **Body Font**: IBM Plex Sans
- **Heading Font**: Newsreader
- **Label Font**: IBM Plex Sans Condensed
- **Mono Font**: IBM Plex Mono
- **Heading Weight**: 400
- **Heading Transform**: none
- **Letter Spacing**: -0.012em
- **Line Height**: 1.5
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans+Condensed:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=Newsreader:ital,opsz,wght@0,18..72,400;0,18..72,500;1,18..72,400;1,18..72,500&display=swap
### Radii
- **None**: 0px
- **Sm**: 0px
- **Md**: 16px
- **Lg**: 24px
- **Pill**: 9999px
### Shadows
- **Sm**: 0 1px 0 rgba(0,0,0,0.35)
- **Md**: 6px 6px 0 rgba(0,0,0,0.30)
### Spacing
- **Base**: 8px
- **Scale**: ["4px","8px","12px","16px","24px","32px","48px","64px","96px"]
### Surfaces
- **Treatment**: light-table
- **Card Style**: Luminous off-white plate (#F2EEE3) registered by four L-shaped ink crop-mark corners — no full border; the lead plate gets cobalt corners plus a reticle cross-hair. A dark plate variant (#221F18) sits on the table for margin and material notes. Flat offset block shadow, never a glow.
- **Bg Pattern**: register-grid
- **Paper Texture**: A faint 64px register grid in low-opacity off-white runs across the warm near-black light-table ground; sheets read as backlit transparencies on the glass.
### Borders
- **Default Width**: 2px
- **Accent Width**: 2px
- **Style**: crop-mark
- **Character**: Containers are registered by L-shaped crop-mark corner brackets rather than full borders. Inputs use an inset ink box-shadow; section bands use a dashed tick-rule; the lead plate's crop marks turn cobalt.
### Motion
- **Duration**: 170ms
- **Easing**: cubic-bezier(0.2,0,0,1)
- **Philosophy**: Snappy and mechanical, like a sheet being laid onto the table and registered. The settled state is the default and renders with no JavaScript; reveals are added on top behind a gating class and respect prefers-reduced-motion.
## Rules
### Composition
- Build screens as a registration board: plates laid on a dark light-table, aligned by crop marks to a faint register grid, with asymmetric overlapping spans.
- Register every container with four L-shaped crop-mark corners before any fill or surface; the trim is the layout material.
- Reserve cobalt for the reticle and one primary action per view; keep every accent under five percent of the surface.
- Circle counts as register marks; ring the lead count in cobalt rather than boxing it as a metric card.
- Let one rough rotated brush-gesture stroke break a plate edge to keep the human hand visible without breaking alignment.
### Hierarchy
- Plate titles and the masthead use Newsreader at display scale with tight tracking — a museum wall-label voice.
- Nav, section bands, labels, and counts use IBM Plex Sans Condensed uppercase with wide tracking, or IBM Plex Mono for coordinates.
- Body copy uses IBM Plex Sans at 17px, ink on the luminous sheet or light on the dark table.
- The lead plate carries cobalt crop marks plus a cross-hair reticle at its top-left origin — colour as signal, not fill.
- Section headers are registration bands (mono number + condensed-caps label + dashed tick-rule), never double-rule card titles.
### Density
Medium-density registration workspace: large Newsreader plate titles and circled counters balanced by compact mono coordinates, condensed-caps labels, and tightly registered ledger rows on luminous sheets.
### Signature
- Crop-mark corner brackets register every plate instead of a full border.
- A cobalt cross-hair reticle locks onto the lead plate at its grid origin; cobalt stays under five percent.
- Plates overlap at slight offsets on a faint 64px register grid like separation sheets on a backlit light-table.
- Counts are circled register marks; the lead is ringed cobalt; coordinates and folios are set in mono.
- A rough rotated brush-gesture stroke and a short cobalt underline break the grid in chosen places for the human hand.
## Layout
### Grid
Desktop uses a 12-column board at max-width 1360px with 24px gutters; plates take asymmetric 7/5, 8/4 spans and may overlap at slight offsets over a 64px register grid.
### Whitespace
The dark light-table is the negative space: warm near-black glass crossed by a faint register grid, with luminous off-white plates registered by crop marks and dark plates for margin notes.
### Density
Medium-density registration desk: large Newsreader titles, compact mono coordinates, circled counters, and ruled ledger rows that hold dense edition-planning data without feeling like a SaaS dashboard.
### Responsive
From ~390px mobile to 2560px+ ultra-wide. At 1080px collapse asymmetric spans to a single column and reduce title scale; on mobile stack all plates, hide non-essential nav and table columns, make controls full width, and never overflow horizontally; on ultra-wide cap and centre the contained content while only the full-bleed hero spans 100vw.
### Breakpoints
- **Desktop**: 1081px and up: 12-column board with overlapping plates
- **Tablet**: 681px-1080px: single-column stacked plates, rail collapses into a top bar
- **Mobile**: 680px and below: single column, stacked full-width controls, hidden secondary columns
- **Ultrawide**: 2200px and up: content cap 1600px, only the hero spans 100vw
## Guidance
### Do
- Use the warm near-black light-table (#16140F) as the ground; let luminous off-white plates read as backlit sheets.
- Register every plate with L-shaped crop-mark corners before adding any fill, surface, or border.
- Keep cobalt as the lead signal and focus colour; keep cobalt, chartreuse, and vermilion each under five percent.
- Lock the lead plate with a cross-hair reticle at its grid origin and a short cobalt underline under one display word.
- Pair Newsreader display titles with condensed-caps labels and mono coordinates; body at 17px.
- Style every input, select, checkbox, radio, switch, slider, button, and table with the ink-rule + cobalt-focus system.
- Circle counts as register marks; ring the lead count in cobalt; let plates overlap at slight offsets on the register grid.
- Keep radius at 0px for plates and 9999px only for reticle dots and circled counters.
### Don't
- Do not give a plate a single lone accent edge, or fill an area with cobalt, chartreuse, or vermilion.
- Do not box the nav into a pill or rounded card, and never nest plates inside plates.
- Do not use gradient text or buttons, pastel washes, glassmorphism, glow, or rounded SaaS cards.
- Do not reach for the oversized italic-serif AI-default headline, or use random radii such as 8px, 12px, 20px.
- Do not let gesture strokes reduce readability or make controls look unfinished.
- Do not use default browser styles for selects, checkboxes, switches, sliders, or focus states.
- Do not mix multiple display fonts or use rejected LLM-default fonts like Poppins, Montserrat, DM Sans, or Space Grotesk.
### Accessibility
Light text on the dark table and ink on the luminous sheets both clear WCAG AA; never place small text on a saturated accent field. Every control carries a visible 2px cobalt focus ring, touch targets are at least 44px, and symbolic marks carry text labels. The fully-rendered state is visible with no JavaScript and motion respects prefers-reduced-motion.
## Imagery Direction
### Pairs With
reglure
### Summary
Black pen-and-ink plates rendered in confident contour and crosshatch, laid as luminous off-white sheets on a dark light-table and registered by printed crop marks, with one small cobalt cross-hair as the only colour. Imagery functions as registered plate, frame, or compositional tension — never decorative illustration.
### Subjects
- conservator's light-table with overlapping separation sheets
- works-on-paper plates: heron etching, botanical leaf study, contact strip
- crop marks, registration cross-hairs, and trim brackets
- torn proofs and galley sheets aligned to a column grid
- studio desk and archive material on backlit glass
### Usage
One full-bleed landing hero in the Réglure technique composed for a dark light-table with a quiet lower third for overlay; elsewhere keep imagery to plate previews, margins, and contact sheets. End every prompt with NO text, NO letters, NO logos.
DESIGN.md
---
version: "alpha"
name: "Reticle"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#16140F"
surface: "#221F18"
surface_2: "#2B2719"
plate: "#F2EEE3"
plate_2: "#E6E0D1"
text: "#EDE8DC"
text_on_plate: "#1A1712"
ink: "#1A1712"
muted: "#9A9384"
muted_on_plate: "#6E6654"
border: "#3A3528"
rule_plate: "#1A1712"
accent: "#2D6CFF"
on_accent: "#F2EEE3"
accent_2: "#B7E400"
accent_3: "#F23B2E"
success: "#5FB07A"
warning: "#E0A93B"
error: "#F2624E"
info: "#2D6CFF"
typography:
headline-lg:
fontFamily: "Newsreader"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.012em"
headline-md:
fontFamily: "Newsreader"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.012em"
body-md:
fontFamily: "IBM Plex Sans"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.012em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "0px"
md: "16px"
lg: "24px"
pill: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface_2:
backgroundColor: "{colors.surface_2}"
color-reference-plate:
backgroundColor: "{colors.plate}"
color-reference-plate_2:
backgroundColor: "{colors.plate_2}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-text_on_plate:
backgroundColor: "{colors.text_on_plate}"
color-reference-ink:
backgroundColor: "{colors.ink}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-muted_on_plate:
backgroundColor: "{colors.muted_on_plate}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-rule_plate:
backgroundColor: "{colors.rule_plate}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-on_accent:
backgroundColor: "{colors.on_accent}"
color-reference-accent_2:
backgroundColor: "{colors.accent_2}"
color-reference-accent_3:
backgroundColor: "{colors.accent_3}"
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"
---
# Reticle
## Overview
Reticle is a registration light-table for serious works-on-paper tools — print archives, edition planning, conservation desks, and contemporary-art catalogs. The interface is a dark glass table: black ink draws the structure, printed crop marks register every sheet to the column grid, and one cobalt cross-hair — the reticle — locks onto the plate that leads the issue. Colour is a register mark, never a fill. Where the source brief asked for an editorial ink atelier with electric accents, Reticle answers it as the conservator's light-table rather than the magazine page: luminous off-white plates floating on near-black glass, aligned by their own trim marks, with the single electric signal reserved for the cross-hair that finds the lead.
### Values
- {"name":"Registration is the work","description":"Every plate is a sheet laid on backlit glass and aligned by its own crop marks; the trim is the structure before any fill or surface."}
- {"name":"The reticle calls the lead","description":"A single cobalt cross-hair targets the one plate that leads the issue — a signal under five percent of the surface, never a coloured field."}
- {"name":"Ink-first authority","description":"Black is the primary drawing instrument on the luminous sheets; type, rules, marks, and counts feel printed, not decorated with colour."}
- {"name":"Light-table materiality","description":"The ground is a warm near-black glass; sheets read as backlit transparencies, so alignment reads at a glance against a faint register grid."}
- {"name":"Gesture under control","description":"A rough rotated brush stroke breaks a plate edge to keep the human hand visible under the grid, never reducing readability."}
- {"name":"Fine-art seriousness","description":"Disciplined, curatorial, alive with the tension between hand gesture and registration precision — never playful, retro, or decorative."}
### Anti-Values
- {"name":"Rainbow creativity","description":"Never use multiple saturated accents at once or turn the table into a palette sampler."}
- {"name":"Template minimalism","description":"Never rely on bordered, soft-shadow cards; identity comes from crop-mark registration, the reticle, and the dark light-table."}
- {"name":"Crypto gloss","description":"No gradient buttons, glassy panels, neon glow, or inflated rounded cards."}
- {"name":"Decorative illustration","description":"Linework must function as registration, frame, or compositional tension — never cute ornament."}
### Visual Character
- Luminous off-white plates float on a warm near-black light-table ground, each registered by four L-shaped crop-mark corners instead of a full border.
- The lead plate carries cobalt crop marks plus a cross-hair reticle pinned at its top-left origin and a short cobalt underline under one display word.
- Plates overlap at slight offsets on a faint 64px register grid so alignment reads like separation sheets on backlit glass.
- Section headers are registration bands — a mono number, a condensed-caps label, and a dashed tick-rule — not double-rule magazine dividers.
- Counts are circled register marks; the lead count is ringed in cobalt. Coordinates and folios are set in mono.
## 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 | `#16140F` |
| surface | `#221F18` |
| surface_2 | `#2B2719` |
| plate | `#F2EEE3` |
| plate_2 | `#E6E0D1` |
| text | `#EDE8DC` |
| text_on_plate | `#1A1712` |
| ink | `#1A1712` |
| muted | `#9A9384` |
| muted_on_plate | `#6E6654` |
| border | `#3A3528` |
| rule_plate | `#1A1712` |
| accent | `#2D6CFF` |
| on_accent | `#F2EEE3` |
| accent_2 | `#B7E400` |
| accent_3 | `#F23B2E` |
| success | `#5FB07A` |
| warning | `#E0A93B` |
| error | `#F2624E` |
| info | `#2D6CFF` |
## Typography
- **Headline-Lg**: Newsreader, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Newsreader, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 17px, weight 400, line-height 1.5.
- **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`
### Grid
Desktop uses a 12-column board at max-width 1360px with 24px gutters; plates take asymmetric 7/5, 8/4 spans and may overlap at slight offsets over a 64px register grid.
### Whitespace
The dark light-table is the negative space: warm near-black glass crossed by a faint register grid, with luminous off-white plates registered by crop marks and dark plates for margin notes.
### Density
Medium-density registration desk: large Newsreader titles, compact mono coordinates, circled counters, and ruled ledger rows that hold dense edition-planning data without feeling like a SaaS dashboard.
### Responsive
From ~390px mobile to 2560px+ ultra-wide. At 1080px collapse asymmetric spans to a single column and reduce title scale; on mobile stack all plates, hide non-essential nav and table columns, make controls full width, and never overflow horizontally; on ultra-wide cap and centre the contained content while only the full-bleed hero spans 100vw.
### Breakpoints
- **Desktop**: 1081px and up: 12-column board with overlapping plates
- **Tablet**: 681px-1080px: single-column stacked plates, rail collapses into a top bar
- **Mobile**: 680px and below: single column, stacked full-width controls, hidden secondary columns
- **Ultrawide**: 2200px and up: content cap 1600px, only the hero spans 100vw
## Elevation & Depth
### Shadows
- **Sm**: 0 1px 0 rgba(0,0,0,0.35)
- **Md**: 6px 6px 0 rgba(0,0,0,0.30)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Pill**: `9999px`
### Surfaces
- **Treatment**: light-table
- **Card Style**: Luminous off-white plate (#F2EEE3) registered by four L-shaped ink crop-mark corners — no full border; the lead plate gets cobalt corners plus a reticle cross-hair. A dark plate variant (#221F18) sits on the table for margin and material notes. Flat offset block shadow, never a glow.
- **Bg Pattern**: register-grid
- **Paper Texture**: A faint 64px register grid in low-opacity off-white runs across the warm near-black light-table ground; sheets read as backlit transparencies on the glass.
### Borders
- **Default Width**: 2px
- **Accent Width**: 2px
- **Style**: crop-mark
- **Character**: Containers are registered by L-shaped crop-mark corner brackets rather than full borders. Inputs use an inset ink box-shadow; section bands use a dashed tick-rule; the lead plate's crop marks turn cobalt.
## Components
### Composition
- Build screens as a registration board: plates laid on a dark light-table, aligned by crop marks to a faint register grid, with asymmetric overlapping spans.
- Register every container with four L-shaped crop-mark corners before any fill or surface; the trim is the layout material.
- Reserve cobalt for the reticle and one primary action per view; keep every accent under five percent of the surface.
- Circle counts as register marks; ring the lead count in cobalt rather than boxing it as a metric card.
- Let one rough rotated brush-gesture stroke break a plate edge to keep the human hand visible without breaking alignment.
### Hierarchy
- Plate titles and the masthead use Newsreader at display scale with tight tracking — a museum wall-label voice.
- Nav, section bands, labels, and counts use IBM Plex Sans Condensed uppercase with wide tracking, or IBM Plex Mono for coordinates.
- Body copy uses IBM Plex Sans at 17px, ink on the luminous sheet or light on the dark table.
- The lead plate carries cobalt crop marks plus a cross-hair reticle at its top-left origin — colour as signal, not fill.
- Section headers are registration bands (mono number + condensed-caps label + dashed tick-rule), never double-rule card titles.
### Density
Medium-density registration workspace: large Newsreader plate titles and circled counters balanced by compact mono coordinates, condensed-caps labels, and tightly registered ledger rows on luminous sheets.
### Signature
- Crop-mark corner brackets register every plate instead of a full border.
- A cobalt cross-hair reticle locks onto the lead plate at its grid origin; cobalt stays under five percent.
- Plates overlap at slight offsets on a faint 64px register grid like separation sheets on a backlit light-table.
- Counts are circled register marks; the lead is ringed cobalt; coordinates and folios are set in mono.
- A rough rotated brush-gesture stroke and a short cobalt underline break the grid in chosen places for the human hand.
## 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-019ef8d2-b25c-7ff3-80e9-9568b8aff621/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 Use the warm near-black light-table (#16140F) as the ground; let luminous off-white plates read as backlit sheets.
- Do Register every plate with L-shaped crop-mark corners before adding any fill, surface, or border.
- Do Keep cobalt as the lead signal and focus colour; keep cobalt, chartreuse, and vermilion each under five percent.
- Do Lock the lead plate with a cross-hair reticle at its grid origin and a short cobalt underline under one display word.
- Do Pair Newsreader display titles with condensed-caps labels and mono coordinates; body at 17px.
- Do Style every input, select, checkbox, radio, switch, slider, button, and table with the ink-rule + cobalt-focus system.
- Do Circle counts as register marks; ring the lead count in cobalt; let plates overlap at slight offsets on the register grid.
- Do Keep radius at 0px for plates and 9999px only for reticle dots and circled counters.
- Don't Do not give a plate a single lone accent edge, or fill an area with cobalt, chartreuse, or vermilion.
- Don't Do not box the nav into a pill or rounded card, and never nest plates inside plates.
- Don't Do not use gradient text or buttons, pastel washes, glassmorphism, glow, or rounded SaaS cards.
- Don't Do not reach for the oversized italic-serif AI-default headline, or use random radii such as 8px, 12px, 20px.
- Don't Do not let gesture strokes reduce readability or make controls look unfinished.
- Don't Do not use default browser styles for selects, checkboxes, switches, sliders, or focus states.
- Don't Do not mix multiple display fonts or use rejected LLM-default fonts like Poppins, Montserrat, DM Sans, or Space Grotesk.
### Accessibility
Light text on the dark table and ink on the luminous sheets both clear WCAG AA; never place small text on a saturated accent field. Every control carries a visible 2px cobalt focus ring, touch targets are at least 44px, and symbolic marks carry text labels. The fully-rendered state is visible with no JavaScript and motion respects prefers-reduced-motion.
## Imagery Direction
### Pairs With
reglure
### Summary
Black pen-and-ink plates rendered in confident contour and crosshatch, laid as luminous off-white sheets on a dark light-table and registered by printed crop marks, with one small cobalt cross-hair as the only colour. Imagery functions as registered plate, frame, or compositional tension — never decorative illustration.
### Subjects
- conservator's light-table with overlapping separation sheets
- works-on-paper plates: heron etching, botanical leaf study, contact strip
- crop marks, registration cross-hairs, and trim brackets
- torn proofs and galley sheets aligned to a column grid
- studio desk and archive material on backlit glass
### Usage
One full-bleed landing hero in the Réglure technique composed for a dark light-table with a quiet lower third for overlay; elsewhere keep imagery to plate previews, margins, and contact sheets. End every prompt with NO text, NO letters, NO logos.
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.
# Reticle shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019ef8d2-b25c-7ff3-80e9-9568b8aff621`
Slug: `reticle`
## Intent
Reticle is a registration light-table for serious works-on-paper tools — print archives, edition planning, conservation desks, and contemporary-art catalogs. The interface is a dark glass table: black ink draws the structure, printed crop marks register every sheet to the column grid, and one cobalt cross-hair — the reticle — locks onto the plate that leads the issue. Colour is a register mark, never a fill. Where the source brief asked for an editorial ink atelier with electric accents, Reticle answers it as the conservator's light-table rather than the magazine page: luminous off-white plates floating on near-black glass, aligned by their own trim marks, with the single electric signal reserved for the cross-hair that finds the lead.
## Required primitives
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
## Token cues
Colors:
{
"bg": "#16140F",
"surface": "#221F18",
"surface_2": "#2B2719",
"plate": "#F2EEE3",
"plate_2": "#E6E0D1",
"text": "#EDE8DC",
"text_on_plate": "#1A1712",
"ink": "#1A1712",
"muted": "#9A9384",
"muted_on_plate": "#6E6654",
"border": "#3A3528",
"rule_plate": "#1A1712",
"accent": "#2D6CFF",
"on_accent": "#F2EEE3",
"accent_2": "#B7E400",
"accent_3": "#F23B2E",
"success": "#5FB07A",
"warning": "#E0A93B",
"error": "#F2624E",
"info": "#2D6CFF"
}
Typography:
{
"base_size": "17px",
"body_font": "IBM Plex Sans",
"heading_font": "Newsreader",
"label_font": "IBM Plex Sans Condensed",
"mono_font": "IBM Plex Mono",
"heading_weight": 400,
"heading_transform": "none",
"letter_spacing": "-0.012em",
"line_height": 1.5,
"google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans+Condensed:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=Newsreader:ital,opsz,wght@0,18..72,400;0,18..72,500;1,18..72,400;1,18..72,500&display=swap"
}
## Visual character to preserve
- Luminous off-white plates float on a warm near-black light-table ground, each registered by four L-shaped crop-mark corners instead of a full border.
- The lead plate carries cobalt crop marks plus a cross-hair reticle pinned at its top-left origin and a short cobalt underline under one display word.
- Plates overlap at slight offsets on a faint 64px register grid so alignment reads like separation sheets on backlit glass.
- Section headers are registration bands — a mono number, a condensed-caps label, and a dashed tick-rule — not double-rule magazine dividers.
- Counts are circled register marks; the lead count is ringed in cobalt. Coordinates and folios are set in mono.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "still",
"density": "dense",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
}
## Signature component recipes
### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.
### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.
### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.
### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.
### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.
## Preview shots
- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.
## Implementation contract
- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/reticle/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Use the warm near-black light-table (#16140F) as the ground; let luminous off-white plates read as backlit sheets.; Register every plate with L-shaped crop-mark corners before adding any fill, surface, or border.; Keep cobalt as the lead signal and focus colour; keep cobalt, chartreuse, and vermilion each under five percent.; Lock the lead plate with a cross-hair reticle at its grid origin and a short cobalt underline under one display word.; Pair Newsreader display titles with condensed-caps labels and mono coordinates; body at 17px.; Style every input, select, checkbox, radio, switch, slider, button, and table with the ink-rule + cobalt-focus system.; Circle counts as register marks; ring the lead count in cobalt; let plates overlap at slight offsets on the register grid.; Keep radius at 0px for plates and 9999px only for reticle dots and circled counters.
- Do not: Do not give a plate a single lone accent edge, or fill an area with cobalt, chartreuse, or vermilion.; Do not box the nav into a pill or rounded card, and never nest plates inside plates.; Do not use gradient text or buttons, pastel washes, glassmorphism, glow, or rounded SaaS cards.; Do not reach for the oversized italic-serif AI-default headline, or use random radii such as 8px, 12px, 20px.; Do not let gesture strokes reduce readability or make controls look unfinished.; Do not use default browser styles for selects, checkboxes, switches, sliders, or focus states.; Do not mix multiple display fonts or use rejected LLM-default fonts like Poppins, Montserrat, DM Sans, or Space Grotesk.
## Copy-paste component example
This generated starter proves the import shape. Production Katagami agents should replace it with a language-specific product composition.
```tsx
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 ReticleShadcnKit() {
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">Reticle</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>
);
}
```
## Layout notes
{
"grid": "Desktop uses a 12-column board at max-width 1360px with 24px gutters; plates take asymmetric 7/5, 8/4 spans and may overlap at slight offsets over a 64px register grid.",
"whitespace": "The dark light-table is the negative space: warm near-black glass crossed by a faint register grid, with luminous off-white plates registered by crop marks and dark plates for margin notes.",
"density": "Medium-density registration desk: large Newsreader titles, compact mono coordinates, circled counters, and ruled ledger rows that hold dense edition-planning data without feeling like a SaaS dashboard.",
"responsive": "From ~390px mobile to 2560px+ ultra-wide. At 1080px collapse asymmetric spans to a single column and reduce title scale; on mobile stack all plates, hide non-essential nav and table columns, make controls full width, and never overflow horizontally; on ultra-wide cap and centre the contained content while only the full-bleed hero spans 100vw.",
"breakpoints": {
"desktop": "1081px and up: 12-column board with overlapping plates",
"tablet": "681px-1080px: single-column stacked plates, rail collapses into a top bar",
"mobile": "680px and below: single column, stacked full-width controls, hidden secondary columns",
"ultrawide": "2200px and up: content cap 1600px, only the hero spans 100vw"
}
}
preview shotscompatibility fallback
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"generator": "katagami-ui-compatibility-projection",
"generatedBy": "katagami-ui-projection",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": {
"id": "en-019ef8d2-b25c-7ff3-80e9-9568b8aff621",
"name": "Reticle",
"slug": "reticle"
},
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"primitives": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"identityNotes": [
"Luminous off-white plates float on a warm near-black light-table ground, each registered by four L-shaped crop-mark corners instead of a full border.",
"The lead plate carries cobalt crop marks plus a cross-hair reticle pinned at its top-left origin and a short cobalt underline under one display word.",
"Plates overlap at slight offsets on a faint 64px register grid so alignment reads like separation sheets on backlit glass.",
"Section headers are registration bands — a mono number, a condensed-caps label, and a dashed tick-rule — not double-rule magazine dividers.",
"Counts are circled register marks; the lead count is ringed in cobalt. Coordinates and folios are set in mono."
],
"visualProfile": {
"family": "editorial",
"material": "flat",
"contour": "default",
"border": "dashed",
"underlay": true,
"grain": false,
"stickerBadges": false,
"motion": "still",
"density": "dense",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
},
"shots": [
{
"id": "application-shell",
"title": "Application shell",
"viewport": "desktop",
"primitives": [
"button",
"card",
"input",
"select",
"tabs",
"badge",
"separator",
"table"
],
"composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
"mustShow": [
"primary and secondary actions",
"card hierarchy",
"filterable state",
"table or list density"
],
"avoid": [
"component inventory walls",
"placeholder-only content",
"generic rounded SaaS chrome"
],
"scene": {
"eyebrow": "workspace spread",
"headline": "Reticle launch room",
"description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
"primaryAction": "Apply theme",
"secondaryAction": "Review states",
"stats": [
{
"label": "components",
"value": "16",
"tone": "accent"
},
{
"label": "states",
"value": "ready"
},
{
"label": "density",
"value": "balanced",
"tone": "warning"
}
],
"rows": [
{
"label": "Primary flow",
"value": "mapped",
"status": "active"
},
{
"label": "Token coverage",
"value": "semantic",
"status": "synced"
},
{
"label": "Responsive proof",
"value": "queued",
"status": "review"
}
],
"statuses": [
"Active",
"Synced",
"Draft"
]
}
},
{
"id": "detail-editor",
"title": "Detail editor",
"viewport": "tablet",
"primitives": [
"button",
"card",
"input",
"textarea",
"select",
"checkbox",
"switch",
"slider",
"dialog",
"sheet"
],
"composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
"mustShow": [
"focus ring",
"error or destructive state",
"dialog or sheet treatment",
"written guidance content"
],
"avoid": [
"unstyled browser controls",
"floating cards inside cards",
"missing labels"
],
"scene": {
"eyebrow": "editing flow",
"headline": "Language recipe editor",
"description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
"primaryAction": "Save recipe",
"secondaryAction": "Open sheet",
"fields": [
{
"label": "Component family",
"value": "Narrative cards"
},
{
"label": "State treatment",
"value": "Visible focus + validation"
},
{
"label": "Motion",
"value": "Small lift, no opacity-only fade"
}
],
"statuses": [
"Focus",
"Invalid",
"Confirmed"
]
}
},
{
"id": "data-operations",
"title": "Data operations",
"viewport": "mobile",
"primitives": [
"button",
"tabs",
"badge",
"dropdown-menu",
"table",
"tooltip",
"separator"
],
"composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
"mustShow": [
"responsive reflow",
"dense row styling",
"menu affordance",
"status badge system"
],
"avoid": [
"desktop-only tables",
"text overflow",
"default shadcn spacing without Katagami character"
],
"scene": {
"eyebrow": "operations",
"headline": "Compact review queue",
"description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
"primaryAction": "Resolve",
"secondaryAction": "Filter",
"rows": [
{
"label": "Button hierarchy",
"value": "approved",
"status": "ok"
},
{
"label": "Table rhythm",
"value": "needs pass",
"status": "watch"
},
{
"label": "Empty state",
"value": "designed",
"status": "done"
}
],
"statuses": [
"Queued",
"Blocked",
"Done"
]
}
}
],
"componentRecipes": [
{
"primitive": "button",
"intent": "Prove action hierarchy, focus, disabled, and destructive states."
},
{
"primitive": "card",
"intent": "Carry the language surface, border, elevation, and density rules."
},
{
"primitive": "input",
"intent": "Show labels, focus rings, validation, and spacing rhythm."
},
{
"primitive": "textarea",
"intent": "Show longer guidance, validation copy, and writing density."
},
{
"primitive": "select",
"intent": "Show filtering, selection contrast, and menu trigger styling."
},
{
"primitive": "dialog",
"intent": "Show centered decision states and overlay treatment."
},
{
"primitive": "sheet",
"intent": "Show contextual side panels and responsive editing."
},
{
"primitive": "tabs",
"intent": "Show navigational structure and active/inactive contrast."
},
{
"primitive": "badge",
"intent": "Show compact status vocabulary and semantic colors."
},
{
"primitive": "separator",
"intent": "Show section rhythm without generic gray dividers."
},
{
"primitive": "checkbox",
"intent": "Show binary selection with visible focus and checked states."
},
{
"primitive": "switch",
"intent": "Show settings toggles and on/off contrast."
},
{
"primitive": "slider",
"intent": "Show numeric adjustment with track/thumb styling."
},
{
"primitive": "tooltip",
"intent": "Show concise explanation styling above compact controls."
},
{
"primitive": "dropdown-menu",
"intent": "Show action menus, destructive items, and grouped choices."
},
{
"primitive": "table",
"intent": "Show dense operational data, separators, row states, and responsive behavior."
}
],
"qualityRules": {
"do": [
"Use the warm near-black light-table (#16140F) as the ground; let luminous off-white plates read as backlit sheets.",
"Register every plate with L-shaped crop-mark corners before adding any fill, surface, or border.",
"Keep cobalt as the lead signal and focus colour; keep cobalt, chartreuse, and vermilion each under five percent.",
"Lock the lead plate with a cross-hair reticle at its grid origin and a short cobalt underline under one display word.",
"Pair Newsreader display titles with condensed-caps labels and mono coordinates; body at 17px.",
"Style every input, select, checkbox, radio, switch, slider, button, and table with the ink-rule + cobalt-focus system.",
"Circle counts as register marks; ring the lead count in cobalt; let plates overlap at slight offsets on the register grid.",
"Keep radius at 0px for plates and 9999px only for reticle dots and circled counters."
],
"dont": [
"Do not give a plate a single lone accent edge, or fill an area with cobalt, chartreuse, or vermilion.",
"Do not box the nav into a pill or rounded card, and never nest plates inside plates.",
"Do not use gradient text or buttons, pastel washes, glassmorphism, glow, or rounded SaaS cards.",
"Do not reach for the oversized italic-serif AI-default headline, or use random radii such as 8px, 12px, 20px.",
"Do not let gesture strokes reduce readability or make controls look unfinished.",
"Do not use default browser styles for selects, checkboxes, switches, sliders, or focus states.",
"Do not mix multiple display fonts or use rejected LLM-default fonts like Poppins, Montserrat, DM Sans, or Space Grotesk."
]
}
}