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 — tokens plus the paired art style. Agents must generate real images.
Alternate dense forensic rows and contact strips with 64-96px frosted-milk silence so the system feels deliberate, not filled. Tight clusters may be 4-8px; unrelated modules separate by 48px or more.
12-column contact-sheet grid with 24px gutters and max width 1320px; the recovery stage spans the wide lane (~7 cols), index and control columns occupy 3 and 2 cols, and black manga gutters may cross grid boundaries.
64-96px section gaps around the largest recovery field, 24-32px panel padding, and 4-8px proximity inside terminal labels and checksum rows.
Quiet overall density with deliberate compression only in forensic tables, thumbnail strips, and checksum readouts; the recovery stage stays spacious like a lab bench under glass.
1440 desktop uses a three-zone console; 768 tablet collapses to stage plus stacked evidence strips; 390 mobile becomes a single-column sequence with the contact strip in horizontal scroll. Only the full-bleed hero spans 100vw.
salvage
Subjects rendered as recovered fragments from a damaged optical disc: halftone sector dots, scan-line interlace, sliced black data-loss scars, dropped white sectors, ghosted concentric arcs, and one archival-blue recovery tint on the most-intact regions, on a frosted milk-white ground.
Use for the landing hero and feature imagery; keep imagery as labelled evidence, never heroic characters or decorative cyberpunk scenes.
# Sector Bureau ## Philosophy Sector Bureau is an optical-archive recovery language for consoles that stabilize damaged discs, memory images, and born-digital evidence. It treats the interface as a forensic contact sheet on a frosted bench: milk-translucent material, near-black registration discipline, one archival blue for active recovery, and small corrupted thumbnails that read as recovered fragments rather than decorative media. ### Values - Evidence before expression: every mark clarifies provenance, lock state, checksum, scan depth, or recovery confidence. - Sector recovery is the signature: a large recovery stage, a contact strip of corrupted fragments, and a checksum band, read in sequence. - Silence as tension: large frosted milk fields make the few archival-blue recovery marks feel operational and consequential. - Material restraint: frosted panes, registration ticks, and optical-sector ghosts evoke recovery hardware without gloss, neon, or candy plastic. - Human traces at the edge: cropped hands, reflections, and disc surfaces appear as recovered evidence, never heroic portraits. - Static trust: the system reads correctly in a still screenshot; motion is limited to scan-depth fills and lock-state steps. ### Anti-Values - No green code rain, glowing cyberpunk HUD rings, or generic hacker command centers. - No three equal SaaS KPI cards, growth charts, or decorative analytics widgets. - No pure-white SaaS ground; pure white is reserved as a dropped sector (absence of data). - No ornamental corruption; every glitch is labelled as a sector, offset, timestamp, or checksum exception. - No saturated archival-blue background wash; blue is reserved for active recovery and selection. ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#EEF1F0` | | surface | `#F8FAF9` | | surface_2 | `#FFFFFF` | | text | `#0F1417` | | muted | `#5C6B72` | | border | `#0F1417` | | primary | `#1B5D86` | | secondary | `#DCE7ED` | | accent | `#2F78A5` | | accent_deep | `#1B5D86` | | accent_wash | `#DCE7ED` | | on_accent | `#F8FAF9` | | success | `#4E6E63` | | warning | `#B07A32` | | error | `#9A3C31` | | info | `#2F78A5` | ### Typography - **Base Size**: 17px - **Body Font**: Newsreader - **Heading Font**: Archivo Narrow - **Mono Font**: Fragment Mono - **Heading Weight**: 700 - **Heading Transform**: none - **Letter Spacing**: -0.04em - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Archivo+Narrow:wght@500;600;700&family=Fragment+Mono:ital@0;1&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap ### Radii - **None**: 0px - **Md**: 16px - **Lg**: 24px - **Full**: 9999px ### Shadows - **Sm**: 0 1px 0 rgba(15,20,23,0.10) - **Md**: 0 18px 50px rgba(27,93,134,0.10) - **Lg**: 0 34px 90px rgba(15,20,23,0.12) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96] ### Surfaces - **Ground**: Cool frosted milk (#EEF1F0); pure white reserved as a dropped sector. - **Card Style**: Frosted milk-translucent panes with backdrop blur, square interior corners, inset black L-shaped registration ticks at the corners, and a clipped archival-blue state edge on active panes. No boxed borders. - **Bg Pattern**: Faint optical-disc sector map: concentric lines and radial ticks at 3-5% opacity behind the work area. - **Treatment**: Milk-translucent over cool frosted white, sparse optical-sector linework, no decorative gradient fills. ### Borders - **Default Width**: 0px - **Accent Width**: 3px - **Style**: ticks - **Character**: Structure comes from inset black L-shaped registration ticks and thin clipped archival-blue state edges, not boxed borders. Occasional 2px black manga gutters cut the composition. ### Motion - **Duration**: 180ms - **Easing**: cubic-bezier(.2,.0,.1,1) - **Philosophy**: Procedural and nearly absent: scan-depth bars fill and locks step between states; the settled state is the default and visible with no JavaScript; respects prefers-reduced-motion. ## Rules ### Composition - Start with a large asymmetric recovery stage occupying at least half the viewport, then subordinate indexes and controls around it. - Use 2px black manga gutters as structural dividers and a sequential reading path, never as normal card borders. - Allow one major field of silence per screen with only coordinate marks or a single evidence caption. - Keep thumbnails in indexed contact strips with inconsistent damage states, never as lifestyle imagery. - Break the grid with one overhanging optical-sector ghost or cropped pane to avoid dashboard regularity. ### Hierarchy - Display hierarchy comes from compressed Archivo Narrow titles set large with -0.04em tracking and tight leading. - Operational text uses Fragment Mono in uppercase micro-labels, evidence IDs, offsets, timestamps, and checksum rows. - Body explanations use Newsreader at 17px with -0.01em tracking. - Archival blue marks active recovery and selection; near-black marks structure; amber and rust are tiny exception indicators only. ### Density Alternate dense forensic rows and contact strips with 64-96px frosted-milk silence so the system feels deliberate, not filled. Tight clusters may be 4-8px; unrelated modules separate by 48px or more. ### Signature - Inset black L-shaped registration ticks at the corners of every important pane, drawn with pseudo-elements; never a boxed border. - Checksum bands: clipped repeating archival-blue / milk-gray strips attached to active recovery panes. - Corrupted thumbnails: halftone radial dots, sliced black scars, dropped white sectors, timestamp scars, and tiny evidence IDs in a contact-sheet rhythm. - Optical-sector ghosts: oversized concentric arcs and radial ticks at very low opacity, cropped by the viewport and panels. - Lock pills: 9999px read-only state controls. ## Layout ### Grid 12-column contact-sheet grid with 24px gutters and max width 1320px; the recovery stage spans the wide lane (~7 cols), index and control columns occupy 3 and 2 cols, and black manga gutters may cross grid boundaries. ### Whitespace 64-96px section gaps around the largest recovery field, 24-32px panel padding, and 4-8px proximity inside terminal labels and checksum rows. ### Density Quiet overall density with deliberate compression only in forensic tables, thumbnail strips, and checksum readouts; the recovery stage stays spacious like a lab bench under glass. ### Responsive 1440 desktop uses a three-zone console; 768 tablet collapses to stage plus stacked evidence strips; 390 mobile becomes a single-column sequence with the contact strip in horizontal scroll. Only the full-bleed hero spans 100vw. ### Breakpoints - **Mobile**: 390px - **Tablet**: 768px - **Desktop**: 1440px - **Ultrawide**: 2560px ## Guidance ### Do - Keep the ground frosted milk; reserve pure white as a dropped sector. - Name objects with IDs, offsets (LBA), timestamps, lock states, and checksum language. - Let contact strips and manga gutters determine composition before adding components. - Make corruption small, labelled, and material: sliced thumbnails, scar lines, dropped sectors, offset values. - Use one archival blue for active recovery and selection; pair every fault colour with a label. - Mark structure with registration ticks and white space; keep radii square or decisively large. ### Don't - Use neon gradients, green matrix rain, glowing circular HUDs, or cyberpunk city motifs. - Build three equal analytics cards or generic SaaS KPI grids. - Show heroic characters; use cropped hands, reflections, or silhouettes as evidence traces only. - Make corruption decorative without provenance, sector, or timestamp labels. - Use saturated blue as a background wash, or box the nav into a floating pill. - Add gloss, candy plastic, or boxed borders where a registration tick and white space can do the work. ### Accessibility Maintain AA contrast with near-black text on frosted milk; mark selection with blue plus a text or border change, never colour alone; keep micro-labels at 11px or larger; preserve keyboard focus outlines; provide reduced-motion behavior for scan-depth animations; the settled page renders fully with no JavaScript. ## Imagery Direction ### Pairs With salvage ### Summary Subjects rendered as recovered fragments from a damaged optical disc: halftone sector dots, scan-line interlace, sliced black data-loss scars, dropped white sectors, ghosted concentric arcs, and one archival-blue recovery tint on the most-intact regions, on a frosted milk-white ground. ### Subjects - damaged optical disc surfaces - cropped hands holding recovered fragments - contact-sheet thumbnails - reflections and silhouettes as evidence traces - concentric optical-sector geometry ### Usage Use for the landing hero and feature imagery; keep imagery as labelled evidence, never heroic characters or decorative cyberpunk scenes.
---
version: "alpha"
name: "Sector Bureau"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#EEF1F0"
surface: "#F8FAF9"
surface_2: "#FFFFFF"
text: "#0F1417"
muted: "#5C6B72"
border: "#0F1417"
primary: "#1B5D86"
secondary: "#DCE7ED"
accent: "#2F78A5"
accent_deep: "#1B5D86"
accent_wash: "#DCE7ED"
on_accent: "#F8FAF9"
success: "#4E6E63"
warning: "#B07A32"
error: "#9A3C31"
info: "#2F78A5"
typography:
headline-lg:
fontFamily: "Archivo Narrow"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.04em"
headline-md:
fontFamily: "Archivo Narrow"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.04em"
body-md:
fontFamily: "Newsreader"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.04em"
label-md:
fontFamily: "Fragment 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"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface_2:
backgroundColor: "{colors.surface_2}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-accent_deep:
backgroundColor: "{colors.accent_deep}"
color-reference-accent_wash:
backgroundColor: "{colors.accent_wash}"
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.primary}"
textColor: "#ffffff"
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"
---
# Sector Bureau
## Overview
Sector Bureau is an optical-archive recovery language for consoles that stabilize damaged discs, memory images, and born-digital evidence. It treats the interface as a forensic contact sheet on a frosted bench: milk-translucent material, near-black registration discipline, one archival blue for active recovery, and small corrupted thumbnails that read as recovered fragments rather than decorative media.
### Values
- Evidence before expression: every mark clarifies provenance, lock state, checksum, scan depth, or recovery confidence.
- Sector recovery is the signature: a large recovery stage, a contact strip of corrupted fragments, and a checksum band, read in sequence.
- Silence as tension: large frosted milk fields make the few archival-blue recovery marks feel operational and consequential.
- Material restraint: frosted panes, registration ticks, and optical-sector ghosts evoke recovery hardware without gloss, neon, or candy plastic.
- Human traces at the edge: cropped hands, reflections, and disc surfaces appear as recovered evidence, never heroic portraits.
- Static trust: the system reads correctly in a still screenshot; motion is limited to scan-depth fills and lock-state steps.
### Anti-Values
- No green code rain, glowing cyberpunk HUD rings, or generic hacker command centers.
- No three equal SaaS KPI cards, growth charts, or decorative analytics widgets.
- No pure-white SaaS ground; pure white is reserved as a dropped sector (absence of data).
- No ornamental corruption; every glitch is labelled as a sector, offset, timestamp, or checksum exception.
- No saturated archival-blue background wash; blue is reserved for active recovery and selection.
## 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 | `#EEF1F0` |
| surface | `#F8FAF9` |
| surface_2 | `#FFFFFF` |
| text | `#0F1417` |
| muted | `#5C6B72` |
| border | `#0F1417` |
| primary | `#1B5D86` |
| secondary | `#DCE7ED` |
| accent | `#2F78A5` |
| accent_deep | `#1B5D86` |
| accent_wash | `#DCE7ED` |
| on_accent | `#F8FAF9` |
| success | `#4E6E63` |
| warning | `#B07A32` |
| error | `#9A3C31` |
| info | `#2F78A5` |
## Typography
- **Headline-Lg**: Archivo Narrow, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo Narrow, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Newsreader, 17px, weight 400, line-height 1.5.
- **Label-Md**: Fragment 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
12-column contact-sheet grid with 24px gutters and max width 1320px; the recovery stage spans the wide lane (~7 cols), index and control columns occupy 3 and 2 cols, and black manga gutters may cross grid boundaries.
### Whitespace
64-96px section gaps around the largest recovery field, 24-32px panel padding, and 4-8px proximity inside terminal labels and checksum rows.
### Density
Quiet overall density with deliberate compression only in forensic tables, thumbnail strips, and checksum readouts; the recovery stage stays spacious like a lab bench under glass.
### Responsive
1440 desktop uses a three-zone console; 768 tablet collapses to stage plus stacked evidence strips; 390 mobile becomes a single-column sequence with the contact strip in horizontal scroll. Only the full-bleed hero spans 100vw.
### Breakpoints
- **Mobile**: 390px
- **Tablet**: 768px
- **Desktop**: 1440px
- **Ultrawide**: 2560px
## Elevation & Depth
### Shadows
- **Sm**: 0 1px 0 rgba(15,20,23,0.10)
- **Md**: 0 18px 50px rgba(27,93,134,0.10)
- **Lg**: 0 34px 90px rgba(15,20,23,0.12)
## Shapes
### Rounded
- **None**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Ground**: Cool frosted milk (#EEF1F0); pure white reserved as a dropped sector.
- **Card Style**: Frosted milk-translucent panes with backdrop blur, square interior corners, inset black L-shaped registration ticks at the corners, and a clipped archival-blue state edge on active panes. No boxed borders.
- **Bg Pattern**: Faint optical-disc sector map: concentric lines and radial ticks at 3-5% opacity behind the work area.
- **Treatment**: Milk-translucent over cool frosted white, sparse optical-sector linework, no decorative gradient fills.
### Borders
- **Default Width**: 0px
- **Accent Width**: 3px
- **Style**: ticks
- **Character**: Structure comes from inset black L-shaped registration ticks and thin clipped archival-blue state edges, not boxed borders. Occasional 2px black manga gutters cut the composition.
## Components
### Composition
- Start with a large asymmetric recovery stage occupying at least half the viewport, then subordinate indexes and controls around it.
- Use 2px black manga gutters as structural dividers and a sequential reading path, never as normal card borders.
- Allow one major field of silence per screen with only coordinate marks or a single evidence caption.
- Keep thumbnails in indexed contact strips with inconsistent damage states, never as lifestyle imagery.
- Break the grid with one overhanging optical-sector ghost or cropped pane to avoid dashboard regularity.
### Hierarchy
- Display hierarchy comes from compressed Archivo Narrow titles set large with -0.04em tracking and tight leading.
- Operational text uses Fragment Mono in uppercase micro-labels, evidence IDs, offsets, timestamps, and checksum rows.
- Body explanations use Newsreader at 17px with -0.01em tracking.
- Archival blue marks active recovery and selection; near-black marks structure; amber and rust are tiny exception indicators only.
### Density
Alternate dense forensic rows and contact strips with 64-96px frosted-milk silence so the system feels deliberate, not filled. Tight clusters may be 4-8px; unrelated modules separate by 48px or more.
### Signature
- Inset black L-shaped registration ticks at the corners of every important pane, drawn with pseudo-elements; never a boxed border.
- Checksum bands: clipped repeating archival-blue / milk-gray strips attached to active recovery panes.
- Corrupted thumbnails: halftone radial dots, sliced black scars, dropped white sectors, timestamp scars, and tiny evidence IDs in a contact-sheet rhythm.
- Optical-sector ghosts: oversized concentric arcs and radial ticks at very low opacity, cropped by the viewport and panels.
- Lock pills: 9999px read-only state controls.
## 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-019ef81c-9c55-7713-8cfc-eef0ecfa4e44/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 Keep the ground frosted milk; reserve pure white as a dropped sector.
- Do Name objects with IDs, offsets (LBA), timestamps, lock states, and checksum language.
- Do Let contact strips and manga gutters determine composition before adding components.
- Do Make corruption small, labelled, and material: sliced thumbnails, scar lines, dropped sectors, offset values.
- Do Use one archival blue for active recovery and selection; pair every fault colour with a label.
- Do Mark structure with registration ticks and white space; keep radii square or decisively large.
- Don't Use neon gradients, green matrix rain, glowing circular HUDs, or cyberpunk city motifs.
- Don't Build three equal analytics cards or generic SaaS KPI grids.
- Don't Show heroic characters; use cropped hands, reflections, or silhouettes as evidence traces only.
- Don't Make corruption decorative without provenance, sector, or timestamp labels.
- Don't Use saturated blue as a background wash, or box the nav into a floating pill.
- Don't Add gloss, candy plastic, or boxed borders where a registration tick and white space can do the work.
### Accessibility
Maintain AA contrast with near-black text on frosted milk; mark selection with blue plus a text or border change, never colour alone; keep micro-labels at 11px or larger; preserve keyboard focus outlines; provide reduced-motion behavior for scan-depth animations; the settled page renders fully with no JavaScript.
## Imagery Direction
### Pairs With
salvage
### Summary
Subjects rendered as recovered fragments from a damaged optical disc: halftone sector dots, scan-line interlace, sliced black data-loss scars, dropped white sectors, ghosted concentric arcs, and one archival-blue recovery tint on the most-intact regions, on a frosted milk-white ground.
### Subjects
- damaged optical disc surfaces
- cropped hands holding recovered fragments
- contact-sheet thumbnails
- reflections and silhouettes as evidence traces
- concentric optical-sector geometry
### Usage
Use for the landing hero and feature imagery; keep imagery as labelled evidence, never heroic characters or decorative cyberpunk scenes.
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sector-bureau",
"type": "registry:theme",
"title": "Sector Bureau shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#EEF1F0",
"foreground": "#0F1417",
"card": "#F8FAF9",
"card-foreground": "#0F1417",
"popover": "#F8FAF9",
"popover-foreground": "#0F1417",
"primary": "#1B5D86",
"primary-foreground": "#ffffff",
"secondary": "#DCE7ED",
"secondary-foreground": "#111111",
"muted": "#5C6B72",
"muted-foreground": "#0F1417",
"accent": "#2F78A5",
"accent-foreground": "#ffffff",
"destructive": "#9A3C31",
"border": "#0F1417",
"input": "#0F1417",
"ring": "#2F78A5",
"chart-1": "#1B5D86",
"chart-2": "#DCE7ED",
"chart-3": "#2F78A5",
"chart-4": "#4E6E63",
"chart-5": "#B07A32",
"sidebar": "#F8FAF9",
"sidebar-foreground": "#0F1417",
"sidebar-primary": "#1B5D86",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2F78A5",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#0F1417",
"sidebar-ring": "#2F78A5",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#1B5D86",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#2F78A5",
"accent-foreground": "#ffffff",
"destructive": "#9A3C31",
"border": "#303642",
"input": "#303642",
"ring": "#2F78A5",
"chart-1": "#1B5D86",
"chart-2": "#DCE7ED",
"chart-3": "#2F78A5",
"chart-4": "#4E6E63",
"chart-5": "#B07A32",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#1B5D86",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2F78A5",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#2F78A5",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ef81c-9c55-7713-8cfc-eef0ecfa4e44",
"slug": "sector-bureau",
"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_deep",
"accent_wash",
"bg",
"border",
"error",
"info",
"muted",
"on_accent",
"primary",
"secondary",
"success",
"surface",
"surface_2",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"mono_font"
],
"radii": [
"full",
"lg",
"md",
"none"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"ground",
"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
Keep Sector Bureau and swap a palette and an art style onto it. The landing & dashboard recolor live.
Agent-authored scenes, component recipes, and visual profile rendered on local shadcn-style primitives.
Eleven discs from a born-digital exhibit, read read-only, sector by sector, until the fragments come back.
A form proving mono labels, an invalid end-offset state, a hash-on-write toggle, a pass-count slider, and an acquisition confirm.
A compact queue with rows, menus, tooltips, recovery-state badges, and a queued affordance.
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: #EEF1F0;
--foreground: #0F1417;
--card: #F8FAF9;
--card-foreground: #0F1417;
--popover: #F8FAF9;
--popover-foreground: #0F1417;
--primary: #1B5D86;
--primary-foreground: #ffffff;
--secondary: #DCE7ED;
--secondary-foreground: #111111;
--muted: #5C6B72;
--muted-foreground: #0F1417;
--accent: #2F78A5;
--accent-foreground: #ffffff;
--destructive: #9A3C31;
--border: #0F1417;
--input: #0F1417;
--ring: #2F78A5;
--chart-1: #1B5D86;
--chart-2: #DCE7ED;
--chart-3: #2F78A5;
--chart-4: #4E6E63;
--chart-5: #B07A32;
--sidebar: #F8FAF9;
--sidebar-foreground: #0F1417;
--sidebar-primary: #1B5D86;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #2F78A5;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #0F1417;
--sidebar-ring: #2F78A5;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #1B5D86;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #2F78A5;
--accent-foreground: #ffffff;
--destructive: #9A3C31;
--border: #303642;
--input: #303642;
--ring: #2F78A5;
--chart-1: #1B5D86;
--chart-2: #DCE7ED;
--chart-3: #2F78A5;
--chart-4: #4E6E63;
--chart-5: #B07A32;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #1B5D86;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #2F78A5;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #2F78A5;
--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 SectorBureauShadcnKit() {
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">Sector Bureau</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": "sector-bureau",
"type": "registry:theme",
"title": "Sector Bureau",
"description": "Optical-archive recovery interface. Frosted milk ground (never pure white), near-black registration ink, one archival blue for active recovery and selection. Compressed Archivo Narrow display, Newsreader body, Fragment Mono for IDs/offsets/checksums. Square interior corners, large device glass, 9999px lock pills. No boxed borders — structure comes from inset L-shaped registration ticks, thin clipped blue state edges, and checksum bands.",
"cssVars": {
"theme": {
"font-sans": "Newsreader, Georgia, serif",
"font-mono": "Fragment Mono, ui-monospace, monospace",
"font-display": "Archivo Narrow, Arial Narrow, sans-serif",
"font-heading": "Archivo Narrow, Arial Narrow, sans-serif",
"radius": "0px"
},
"light": {
"background": "#EEF1F0",
"foreground": "#0F1417",
"card": "#F8FAF9",
"card-foreground": "#0F1417",
"popover": "#F8FAF9",
"popover-foreground": "#0F1417",
"primary": "#1B5D86",
"primary-foreground": "#F8FAF9",
"secondary": "#DCE7ED",
"secondary-foreground": "#1B5D86",
"accent": "#2F78A5",
"accent-foreground": "#F8FAF9",
"muted": "#E3E8E7",
"muted-foreground": "#5C6B72",
"destructive": "#9A3C31",
"destructive-foreground": "#F8FAF9",
"success": "#4E6E63",
"warning": "#B07A32",
"info": "#2F78A5",
"border": "transparent",
"input": "#E7ECEB",
"ring": "#2F78A5",
"radius": "0px"
}
}
}
# Sector Bureau shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-agent`
Slug: `sector-bureau`
## Intent
Sector Bureau is an optical-archive recovery language. Through shadcn/ui its one governing idea —
**sector recovery on a forensic contact sheet** — must survive: a frosted milk bench, near-black
registration discipline, one archival blue for what is actively being recovered, and corrupted
fragments that read as salvaged evidence. The ground is frosted milk (`#EEF1F0`), never pure
white; pure white is reserved as a *dropped sector* (the absence of data). Type is compressed
Archivo Narrow display, Newsreader body, and Fragment Mono for IDs, offsets (LBA), checksums and
timestamps. There are **no boxed borders** — structure comes from inset black L-shaped
**registration ticks** at pane corners, thin clipped archival-blue state edges, checksum bands,
and white space. Interior corners are square; device glass is large (16/24px); read-only state
controls are 9999px lock pills. Light mode is the point.
## 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:
```json
{ "primary": "#1B5D86", "accent": "#2F78A5", "background": "#EEF1F0", "surface": "#F8FAF9", "text": "#0F1417", "muted": "#5C6B72", "recess": "#E7ECEB", "secondary": "#DCE7ED", "success": "#4E6E63", "warning": "#B07A32", "error": "#9A3C31", "info": "#2F78A5", "ink": "#0F1417" }
```
Typography:
```json
{ "heading_font": "Archivo Narrow", "body_font": "Newsreader", "mono_font": "Fragment Mono", "letter_spacing": "-0.04em (display) / -0.01em (body)", "base_size": "17px" }
```
## Visual character to preserve
- **The recovery contact sheet**: a large asymmetric recovery stage with an optical-sector ghost
and an archival-blue scan-depth bar, surrounded by a contact strip of corrupted thumbnails and
an evidence ledger.
- **No boxed borders.** Panes are frosted milk, square, lifted by a soft cold shadow; structure
comes from inset black L-shaped registration ticks at the corners and a clipped archival-blue
state edge on active panes. Pure white is a dropped sector, not a surface.
- **Square, not rounded** interior (radius 0); device glass 16/24px; lock pills 9999px. Archival
blue is the active-recovery + selection mark, never a saturated background wash.
- Mono voice for every ID, offset, checksum and timestamp; Archivo Narrow for compressed
display titles; Newsreader for body.
## ShadSync visual profile
```json
{ "family": "console", "material": "frosted-glass", "contour": "registration-ticks", "border": "none", "underlay": true, "grain": true, "stickerBadges": false, "motion": "still", "density": "balanced", "accents": ["accent", "warning", "error"] }
```
## Signature component recipes
### Button
Primary `Button` = deep-recovery `#1B5D86` on frosted milk — the one emphasis; a secondary
variant sits on the quiet recess fill; link is archival blue; a 9999px lock pill carries
read-only state. No `border`; square corners; mono uppercase label; buttons in a set share one
height and shape, label centred. Disabled is a flat recess plaque.
### Card
`Card` is a frosted milk, square, shadow-lifted pane — no boxed border, no top rule. Inset black
L-shaped registration ticks sit at the corners; an active card adds a clipped archival-blue state
edge. Pure white is reserved as a dropped sector, never a card ground. Never nest cards.
### Input and Textarea
`Input` / `Textarea` sit on the cool recess fill (no border); focus draws an archival-blue inset
underline; an invalid field draws a rust inset underline with a labelled fault hint. Mono labels
above; real forensic values (LBA offsets, case IDs) inside.
### Select, Tabs, and Table
`Select` chooses read strategy; `Tabs` switch Recovery / Contact sheet / Ledger with an
archival-blue state edge (not a generic underline); `Table` is the evidence ledger — mono header,
object names in serif, mono offsets and checksums, a quiet blue-tinted zebra surface, a
recovery-state `Badge` per row, and a "queued" empty state. No rule-lines between rows.
### Dialog and Sheet
`Dialog` is a formal notice ("Begin acquisition on DISC-04?") — centered, square, frosted,
generous, with registration ticks and no boxed border; `Sheet` is the disc / chain-of-custody
side rail. Both frosted/ink.
### Badge, Switch, Slider, Tooltip, Separator, Checkbox, Dropdown-menu
`Badge` is a flat recovery-state chip on a faint tint with a leading dot (recovering / stable /
fault / sealed / queued); colour is always paired with a label. `Switch` "on" is archival blue.
`Slider` is an archival-blue track with a square thumb. `Tooltip` is concise serif, frosted.
`Separator` is a 2px black manga gutter or open frosted space — never a hairline rule inside a
card. `Checkbox` and `dropdown-menu` carry an archival-blue checked / origin state and a clear
focus ring; the dropdown's destructive item is "discard read".
## Preview shots
- `application-shell`: the recovery bench — open rail, recovery stage with sector ghost + scan-depth bar, contact strip, evidence ledger.
- `detail-editor`: open a case — labelled fields, an invalid (rust) end-offset state, a hash-on-write switch, a pass-count slider, an acquisition confirm.
- `data-operations`: the disc queue — rows, dropdown actions, recovery-state badges, a queued state.
- Each preview shot carries a renderable `scene` (headline, description, actions, rows/fields/stats).
## Implementation contract
- Start from the local `@/components/ui/*` shadcn primitives; do not create a second component system.
- Apply `/katagami/shadcn/sector-bureau/registry-theme.json` variables first, then compose with these recipes.
- Keep Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: keep the ground frosted milk; mark structure with registration ticks and white space;
reserve archival blue for active recovery; pair fault colours with labels; set IDs/offsets in mono.
- Do not: box cards in borders, top rules, or accent edges; default to pure-white grounds; round
interior corners; build three equal SaaS KPI cards; use a saturated blue background wash.
## Copy-paste component example
```tsx
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
// An evidence card: frosted milk, square, shadow-lifted, no boxed border. Inset L-shaped
// registration ticks mark the corners; a clipped archival-blue edge marks active recovery;
// mono caption carries the offset + checksum.
export function EvidenceCard() {
return (
<Card className="relative overflow-hidden rounded-none border-0 bg-card text-card-foreground shadow-lg
before:absolute before:left-2 before:top-2 before:h-3 before:w-3 before:border-l before:border-t before:border-foreground
after:absolute after:bottom-2 after:right-2 after:h-3 after:w-3 after:border-b after:border-r after:border-foreground">
<div className="absolute inset-y-3 left-0 w-[3px] bg-[var(--accent)]" aria-hidden />
<div className="p-6">
<CardHeader className="p-0">
<Badge className="w-fit gap-1.5 rounded-full bg-[#DCE7ED] text-[#1B5D86]">Recovering</Badge>
<CardTitle className="mt-2 font-[var(--font-display)] text-2xl tracking-tight">
Photograph, harbour dredge
</CardTitle>
<CardDescription className="font-mono text-xs uppercase tracking-wider">
DISC-04 · LBA 0x00 2F1A · checksum a4f9…01c
</CardDescription>
</CardHeader>
<CardContent className="px-0 pt-3">
<p className="text-base text-muted-foreground">Outer-ring delamination; read read-only, 18,902 passes.</p>
</CardContent>
<CardFooter className="justify-between px-0">
<span className="font-mono text-xs text-muted-foreground">73.4% recovered</span>
<Button className="rounded-none">Reseat & re-read</Button>
</CardFooter>
</div>
</Card>
);
}
```
## Layout notes
```json
{ "grid": "contact-sheet 12-col; a wide recovery-stage lane (~7 cols) with narrow index/control columns (3/2)", "density": "balanced; spacious stage, compressed forensic tables and checksum rows", "radii": "0 (square interior) / 16-24 (device glass) / 9999 (lock pills)", "no_borders": true, "separators": "inset registration ticks, white space, 2px black manga gutters, a clipped archival-blue state edge" }
```
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"author": "katagami-agent",
"generatedBy": "katagami-agent",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": { "id": "", "name": "Sector Bureau", "slug": "sector-bureau" },
"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": [
"Frosted milk ground (#EEF1F0), never pure white; pure white is reserved as a dropped sector (absence of data).",
"No boxed borders: panes carry inset black L-shaped registration ticks at the corners and thin clipped archival-blue state edges; structure is ticks + white space, not rules.",
"One archival blue (#2F78A5) for active recovery and selection only; near-black ink for structure; amber and rust are tiny exception indicators. Mono (Fragment Mono) carries IDs, offsets, checksums and timestamps."
],
"visualProfile": {
"family": "console",
"material": "frosted-glass",
"contour": "registration-ticks",
"border": "none",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "still",
"density": "balanced",
"accents": ["accent", "warning", "error"]
},
"shots": [
{
"id": "application-shell",
"title": "The recovery bench",
"viewport": "desktop",
"primitives": ["button", "card", "input", "select", "tabs", "badge", "separator", "table"],
"composition": "An optical-archive recovery console: an open compositor rail, a large recovery stage card with an optical-sector ghost and an archival-blue scan-depth bar, a contact strip of corrupted thumbnails, and an evidence ledger table with recovery state badges.",
"mustShow": ["deep-recovery primary action vs quiet recess secondary action", "frosted milk cards with inset registration ticks and a clipped blue state edge (no boxed borders)", "archival-blue / amber / rust state badges with a label, never colour alone", "mono evidence IDs, offsets and checksums on a frosted ledger"],
"avoid": ["boxed borders, divider hairlines, or accent edges around whole cards", "pure-white card grounds", "three equal SaaS KPI cards", "neon, glow, or saturated blue background washes"],
"scene": {
"eyebrow": "the bench",
"headline": "Recovery bench — case BR-2291",
"description": "Eleven discs from a born-digital exhibit, read read-only, sector by sector, until the fragments come back.",
"primaryAction": "Reseat & re-read",
"secondaryAction": "Map bad sectors",
"stats": [
{ "label": "sectors recovered", "value": "73.4%", "tone": "accent" },
{ "label": "read passes", "value": "18,902", "tone": "default" },
{ "label": "sector faults", "value": "3", "tone": "error" }
],
"rows": [
{ "label": "Photograph, harbour dredge", "value": "0x00 2F1A · 1999-08-14", "status": "recovering" },
{ "label": "Voice memo, slip 12", "value": "0x00 7B40 · 2001-03-02", "status": "stable" },
{ "label": "Scan, manifest page 3", "value": "0x01 0C88 · fault", "status": "fault" },
{ "label": "Photograph, crew, fore deck", "value": "0x01 9E20 · sealed", "status": "sealed" }
],
"statuses": ["Recovering", "Stable", "Fault", "Sealed"]
}
},
{
"id": "detail-editor",
"title": "Open a recovery case",
"viewport": "tablet",
"primitives": ["button", "card", "input", "textarea", "select", "checkbox", "switch", "slider", "dialog", "sheet"],
"composition": "An acquisition form: mono-labelled fields on a recess fill, an invalid (rust underline) end-offset state, a read-strategy select, a hash-on-write switch, a pass-count slider, and a 'begin acquisition' confirm dialog.",
"mustShow": ["archival-blue focus underline on inputs", "an invalid (rust) underline state with a labelled fault hint", "begin-acquisition confirm dialog as a formal notice (frosted, square, no boxed border)", "real forensic values (LBA offsets, case IDs)"],
"avoid": ["unstyled browser controls", "missing labels", "nested cards", "rounded inputs", "pure-white grounds"],
"scene": {
"eyebrow": "the bench",
"headline": "Open a case — mount DISC-04 read-only",
"description": "A form proving mono labels, an invalid end-offset state, a hash-on-write toggle, a pass-count slider, and an acquisition confirm.",
"primaryAction": "Begin acquisition",
"secondaryAction": "Dry-run index",
"fields": [
{ "label": "Case identifier", "value": "BR-2291", "type": "text" },
{ "label": "End offset (LBA)", "value": "0x00 0000 — precedes start; range is empty", "type": "invalid" },
{ "label": "Read strategy", "value": "Conservative, 64 passes", "type": "select" },
{ "label": "Hash on write", "value": "on", "type": "switch" }
],
"statuses": ["Recovering", "Invalid", "Hashed"]
}
},
{
"id": "data-operations",
"title": "Disc queue",
"viewport": "mobile",
"primitives": ["button", "tabs", "badge", "dropdown-menu", "table", "tooltip", "separator"],
"composition": "A narrow disc queue: stacked mono rows, per-row dropdown actions (remap, reseat, seal), recovery-state badges, tooltips, and a queued empty state.",
"mustShow": ["responsive reflow to a single column", "mono disc rows with offsets", "row action menu with an archival-blue origin marker and a destructive 'discard read' item", "recovery-state badges", "a queued empty state"],
"avoid": ["desktop-only tables", "text overflow", "generic shadcn spacing without Sector Bureau registration ticks"],
"scene": {
"eyebrow": "queue",
"headline": "Disc queue",
"description": "A compact queue with rows, menus, tooltips, recovery-state badges, and a queued affordance.",
"primaryAction": "Reseat",
"secondaryAction": "Filter",
"rows": [
{ "label": "DISC-04 · outer", "value": "73%", "status": "recovering" },
{ "label": "DISC-03 · core", "value": "100%", "status": "stable" },
{ "label": "DISC-08 · rim", "value": "fault", "status": "fault" },
{ "label": "DISC-06 · rim", "value": "queued", "status": "queued" }
],
"statuses": ["Recovering", "Stable", "Fault", "Queued"]
}
}
],
"componentRecipes": [
{ "primitive": "button", "intent": "Hierarchy: deep-recovery (#1B5D86) primary = the one emphasis; quiet recess-grey secondary; archival-blue link; a 9999px lock pill for read-only state. Square corners, no border, mono uppercase label, one shared height." },
{ "primitive": "card", "intent": "Frosted milk pane (never pure white), lifted by a soft cold shadow, no boxed border; inset black L-shaped registration ticks at the corners; an active card adds a clipped archival-blue state edge. Never nest cards." },
{ "primitive": "input", "intent": "Recess fill, no border; archival-blue inset underline on focus, rust inset underline when invalid; square corners; mono label above; real LBA offsets and case IDs inside." },
{ "primitive": "textarea", "intent": "Custodian notes with the same focus + invalid rhythm; serif body, generous, square." },
{ "primitive": "select", "intent": "Read-strategy / desk filtering with a square trigger and a clear archival-blue selection." },
{ "primitive": "dialog", "intent": "A formal 'Begin acquisition on DISC-04?' notice — centered, square, frosted, generous; registration ticks, no boxed border." },
{ "primitive": "sheet", "intent": "The disc / chain-of-custody side rail for contextual review." },
{ "primitive": "tabs", "intent": "Switch Recovery / Contact sheet / Ledger; the active tab carries an archival-blue state edge, not a generic underline rule." },
{ "primitive": "badge", "intent": "Flat recovery-state chip on a faint tint with a leading dot: recovering / stable / fault / sealed / queued (blue / green / rust / ink). Colour is always paired with a label." },
{ "primitive": "separator", "intent": "A 2px black manga gutter or open frosted space — never a hairline rule trapped inside a card." },
{ "primitive": "checkbox", "intent": "Custody opt-ins with an archival-blue checked state and a clear focus ring." },
{ "primitive": "switch", "intent": "Hash-on-write / carry-to-custody toggle; on is archival blue, off is a flat recess track." },
{ "primitive": "slider", "intent": "Pass count / scan depth with an archival-blue track and a square thumb." },
{ "primitive": "tooltip", "intent": "Concise serif notes above compact controls; frosted, square." },
{ "primitive": "dropdown-menu", "intent": "Per-disc actions (remap, reseat, seal) with an archival-blue origin marker and a destructive 'discard read' item." },
{ "primitive": "table", "intent": "The evidence ledger: mono header, object names in serif, mono offsets and checksums, a quiet blue-tinted zebra surface, a recovery-state badge per row, a 'queued' empty state. No rule-lines between rows." }
],
"qualityRules": {
"do": [
"Keep the ground frosted milk; reserve pure white as a dropped sector.",
"Mark structure with inset registration ticks and white space, not boxed borders.",
"Reserve archival blue for active recovery and selection; pair every fault colour with a label.",
"Set IDs, offsets, checksums and timestamps in Fragment Mono; everything else in Newsreader / Archivo Narrow."
],
"dont": [
"Box whole cards in borders, divider hairlines, top rules, or accent edges.",
"Default to pure-white grounds or round the interior corners.",
"Build three equal SaaS KPI cards or use a saturated blue background wash.",
"Make corruption decorative without a sector, offset, or timestamp label."
]
}
}