Existential Station Interface
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
specification
philosophy
tokens
borders4 items
- accent width
- 2px
- character
- Hairline ash-black rules at 6-8% opacity, with occasional double-rule terminal separators and no solid SaaS gray.
- default width
- 1px
- style
- solid
colors12 items
motion3 items
- duration
- 420ms
- easing
- cubic-bezier(0.16, 1, 0.3, 1)
- philosophy
- Slow station-latency transitions: orbit dots drift only a few pixels, status changes step like terminal refreshes, and reduced motion removes all drift.
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 16px
- none
- 0
- sm
- 0
shadows3 items
- lg
- 0 60px 160px rgba(36, 35, 31, 0.08)
- md
- 0 28px 90px rgba(36, 35, 31, 0.06)
- sm
- none
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
- bg pattern
- Nearly invisible 24px station grid drawn with rgba(36,35,31,0.035), interrupted by large empty fields and cropped orbital arcs.
- card style
- Rectangular or circular-cropped panels with 1px rgba(36,35,31,0.08) borders, square corners for technical strips, 24px radius only for orbital instrument containers.
- treatment
- Warm bone-white base with near-paper surface panels, no gradients, no glass; depth comes from void, hairline rules, and occasional soft institutional shadow.
typography8 items
- base size
- 16px
- body font
- Chivo
- google fonts url
- https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@400;500;600;700&family=Chivo:wght@400;500;600&family=Fragment+Mono:ital@0;1&display=swap
- heading font
- Azeret Mono
- letter spacing
- -0.02em
- line height
- 1.55
- mono font
- Fragment Mono
- scale ratio
- 1.22
rules
Alternates extreme void with compact telemetry. Related codes cluster at 4-8px, while unrelated panels separate by 64-128px so loneliness is structural rather than decorative.
layout
Mobile below 640px stacks panels with preserved voids; tablet 641-1024px uses six columns; desktop above 1025px uses twelve columns and cropped off-canvas arcs.
Desktop density is intentionally uneven: a large orbital void, one dense docking table, one mid-density scan frame, and several isolated micro-labels.
Twelve-column max-width 1320px grid with 24px gutters; panels can span 3, 5, 7, or 10 columns to avoid equal-card symmetry.
On small screens the orbit remains cropped, terminal tables become horizontally scrollable code strips, and manga scan frames reduce line complexity before typography shrinks.
Whitespace is the emotional material: keep 64-128px between major modules, 4-12px inside serial clusters, and never fill an empty orbit just because space exists.
guidance
- Use bone-white and warm off-white fields as the dominant color experience.
- Set charcoal technical typography in uppercase labels, numeric station codes, and precisely aligned columns.
- Crop circular trajectories through panel edges or viewport edges to imply an orbital system outside the interface.
- Treat manga contour drawings as scans with coordinates, timestamps, and data labels.
- Keep accent colors rare and physically small: cyan for orbit, amber for docking, red for emergency.
- Create one dominant instrument and one dense terminal table instead of three equal cards.
- Use near-invisible borders and double hairline separators rather than heavy boxes.
- Preserve motion restraint with slow tiny drifts and terminal refresh steps only.
- Do not use neon cyberpunk palettes, glow effects, or saturated blue/pink gradients.
- Do not make a generic analytics dashboard, CRM, project board, or component catalog.
- Do not use anime imagery as decoration without station data framing.
- Do not fill every grid cell; empty space is a required part of the language.
- Do not use rounded SaaS cards everywhere; square terminal strips and clipped circles define the system.
- Do not let color exceed five percent of the composition or carry all hierarchy.
- Do not use banned AI-tell typefaces or default browser form styles.
- Do not center everything; the mood depends on asymmetric distance and off-axis alignment.
katagami spec
# Existential Station Interface ## Philosophy A quiet orbital operations language for interfaces that feel abandoned but still precise: bone-white station light, charcoal telemetry, cropped orbit diagrams, and manga line artifacts treated as data records rather than illustration. ### Values - Loneliness through negative space: large off-white voids must carry as much meaning as panels or labels. - Institutional precision: every label, code, and alignment should feel like it belongs to a station protocol manual. - Monochrome first: structure, line weight, and spacing establish identity before any signal color appears. - Data-bearing drawing: contour figures, station silhouettes, and orbital curves are labeled artifacts, never decorative mascots. - Y2K terminal restraint: serial strips, segmented tables, and machine codes are sparse, aligned, and non-neon. - Existential calm: the system suggests long-duration orbit, latency, and human absence without melodrama. ### Anti-Values - Neon-heavy cyberpunk, glow stacks, saturated gradients, and nightclub terminal aesthetics. - Generic SaaS dashboard cards, equal analytics tiles, cheerful productivity metaphors, or stock app chrome. - Decorative anime fan art detached from interface purpose; every drawn line must be framed as a scan, map, or crew record. - Dense color coding that turns status into confetti instead of a rare emergency signal. ### Visual Character - Use a bone-white page field with oversized empty grid cells and sparse charcoal panels positioned as isolated orbital instruments. - Draw cropped circular trajectories with CSS border arcs and absolutely positioned micro-dots that partly exit the viewport or panel edge. - Build terminal strips from one-pixel ash rules, small uppercase serial labels, monospaced numeric station codes, and exact column alignment. - Render manga contour artifacts as thin SVG line drawings inside labeled scan frames, with labels and coordinates integrated into the drawing. - Limit signal color to sub-five-percent UI indicators: tiny cyan orbit dots, faded amber docking states, or one desaturated red warning chip. ## Tokens ### Borders - **Accent Width**: 2px - **Character**: Hairline ash-black rules at 6-8% opacity, with occasional double-rule terminal separators and no solid SaaS gray. - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#5F9AA3` | | background | `#F7F3EA` | | border | `#24231F14` | | error | `#9B514B` | | info | `#5F9AA3` | | muted | `#858078` | | primary | `#2B2A27` | | secondary | `#6F6B64` | | success | `#6C7F69` | | surface | `#FFFCF5` | | text | `#24231F` | | warning | `#B08A4B` | ### Motion - **Duration**: 420ms - **Easing**: cubic-bezier(0.16, 1, 0.3, 1) - **Philosophy**: Slow station-latency transitions: orbit dots drift only a few pixels, status changes step like terminal refreshes, and reduced motion removes all drift. ### Radii - **Full**: 9999px - **Lg**: 24px - **Md**: 16px - **None**: 0 - **Sm**: 0 ### Shadows - **Lg**: 0 60px 160px rgba(36, 35, 31, 0.08) - **Md**: 0 28px 90px rgba(36, 35, 31, 0.06) - **Sm**: none ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96,128] ### Surfaces - **Bg Pattern**: Nearly invisible 24px station grid drawn with rgba(36,35,31,0.035), interrupted by large empty fields and cropped orbital arcs. - **Card Style**: Rectangular or circular-cropped panels with 1px rgba(36,35,31,0.08) borders, square corners for technical strips, 24px radius only for orbital instrument containers. - **Treatment**: Warm bone-white base with near-paper surface panels, no gradients, no glass; depth comes from void, hairline rules, and occasional soft institutional shadow. ### Typography - **Base Size**: 16px - **Body Font**: Chivo - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@400;500;600;700&family=Chivo:wght@400;500;600&family=Fragment+Mono:ital@0;1&display=swap - **Heading Font**: Azeret Mono - **Letter Spacing**: -0.02em - **Line Height**: 1.55 - **Mono Font**: Fragment Mono - **Scale Ratio**: 1.22 ## Rules ### Composition - Start with one large silent void occupying at least one third of desktop compositions. - Place instruments asymmetrically around a cropped circular orbit rather than in equal rows. - Use thin rules to connect labels to panels, but allow several lines to terminate in empty space. - Make one dense terminal or docking table contrast with one spacious observation or scan area. - Let at least one circular trajectory leave the canvas so the station feels larger than the screen. - Use status chips as tiny factual punctuation, never as colorful navigation or hero decoration. ### Density Alternates extreme void with compact telemetry. Related codes cluster at 4-8px, while unrelated panels separate by 64-128px so loneliness is structural rather than decorative. ### Hierarchy - Display hierarchy uses uppercase Azeret Mono with wide tracking, compact leading, and charcoal weight rather than size alone. - Body text stays small but readable in Chivo, with -0.02em tracking and generous leading for institutional calm. - Tertiary metadata uses Fragment Mono, slashed serial divisions, tabular numerals, and faint rule-separated columns. - Primary attention goes to the orbit instrument and station code; secondary attention goes to docking tables and scan notes. - Color never creates primary hierarchy; cyan, amber, and red are reserved for tiny machine states after type and layout resolve the page. ### Signature Patterns - Cropped-orbit panels: CSS circles larger than their containers are clipped to show only partial station trajectories and sparse signal dots. - Serial terminal strips: one-line uppercase label rows use double hairline borders, tabular numbers, and fixed-width station codes as a recurring divider. - Scan-frame manga contours: inline SVG line drawings sit in protocol frames with coordinate tags, treating human silhouettes as archived sensor data. - Void-anchored docking tables: dense rows are attached to huge empty cells by thin leader rules, making operational data feel remote and delayed. - Sub-five-percent signal color: accent appears only as 4-8px dots, tiny chips, and one emergency glyph so monochrome remains dominant. ## Layout ### Breakpoints Mobile below 640px stacks panels with preserved voids; tablet 641-1024px uses six columns; desktop above 1025px uses twelve columns and cropped off-canvas arcs. ### Density Desktop density is intentionally uneven: a large orbital void, one dense docking table, one mid-density scan frame, and several isolated micro-labels. ### Grid Twelve-column max-width 1320px grid with 24px gutters; panels can span 3, 5, 7, or 10 columns to avoid equal-card symmetry. ### Responsive On small screens the orbit remains cropped, terminal tables become horizontally scrollable code strips, and manga scan frames reduce line complexity before typography shrinks. ### Whitespace Whitespace is the emotional material: keep 64-128px between major modules, 4-12px inside serial clusters, and never fill an empty orbit just because space exists. ## Guidance ### Do - Use bone-white and warm off-white fields as the dominant color experience. - Set charcoal technical typography in uppercase labels, numeric station codes, and precisely aligned columns. - Crop circular trajectories through panel edges or viewport edges to imply an orbital system outside the interface. - Treat manga contour drawings as scans with coordinates, timestamps, and data labels. - Keep accent colors rare and physically small: cyan for orbit, amber for docking, red for emergency. - Create one dominant instrument and one dense terminal table instead of three equal cards. - Use near-invisible borders and double hairline separators rather than heavy boxes. - Preserve motion restraint with slow tiny drifts and terminal refresh steps only. ### Don't - Do not use neon cyberpunk palettes, glow effects, or saturated blue/pink gradients. - Do not make a generic analytics dashboard, CRM, project board, or component catalog. - Do not use anime imagery as decoration without station data framing. - Do not fill every grid cell; empty space is a required part of the language. - Do not use rounded SaaS cards everywhere; square terminal strips and clipped circles define the system. - Do not let color exceed five percent of the composition or carry all hierarchy. - Do not use banned AI-tell typefaces or default browser form styles. - Do not center everything; the mood depends on asymmetric distance and off-axis alignment. ### Accessibility Charcoal text on bone backgrounds meets WCAG AA; status states include labels and shapes in addition to color; focus states use 2px charcoal outlines; reduced-motion disables orbit drift. ### Usage Context Best for orbital station interfaces, archive monitors, science-fiction operational tools, mission signage, anime title-system screens, and quiet terminal experiences where absence matters.
DESIGN.md
---
version: "alpha"
name: "Existential Station Interface"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#5F9AA3"
background: "#F7F3EA"
error: "#9B514B"
info: "#5F9AA3"
muted: "#858078"
primary: "#2B2A27"
secondary: "#6F6B64"
success: "#6C7F69"
surface: "#FFFCF5"
text: "#24231F"
warning: "#B08A4B"
typography:
headline-lg:
fontFamily: "Azeret Mono"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Azeret Mono"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Chivo"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "-0.02em"
label-md:
fontFamily: "Fragment Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "24px"
md: "16px"
none: "0px"
sm: "0px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
step-9: "128px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
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"
---
# Existential Station Interface
## Overview
A quiet orbital operations language for interfaces that feel abandoned but still precise: bone-white station light, charcoal telemetry, cropped orbit diagrams, and manga line artifacts treated as data records rather than illustration.
### Values
- Loneliness through negative space: large off-white voids must carry as much meaning as panels or labels.
- Institutional precision: every label, code, and alignment should feel like it belongs to a station protocol manual.
- Monochrome first: structure, line weight, and spacing establish identity before any signal color appears.
- Data-bearing drawing: contour figures, station silhouettes, and orbital curves are labeled artifacts, never decorative mascots.
- Y2K terminal restraint: serial strips, segmented tables, and machine codes are sparse, aligned, and non-neon.
- Existential calm: the system suggests long-duration orbit, latency, and human absence without melodrama.
### Anti-Values
- Neon-heavy cyberpunk, glow stacks, saturated gradients, and nightclub terminal aesthetics.
- Generic SaaS dashboard cards, equal analytics tiles, cheerful productivity metaphors, or stock app chrome.
- Decorative anime fan art detached from interface purpose; every drawn line must be framed as a scan, map, or crew record.
- Dense color coding that turns status into confetti instead of a rare emergency signal.
### Visual Character
- Use a bone-white page field with oversized empty grid cells and sparse charcoal panels positioned as isolated orbital instruments.
- Draw cropped circular trajectories with CSS border arcs and absolutely positioned micro-dots that partly exit the viewport or panel edge.
- Build terminal strips from one-pixel ash rules, small uppercase serial labels, monospaced numeric station codes, and exact column alignment.
- Render manga contour artifacts as thin SVG line drawings inside labeled scan frames, with labels and coordinates integrated into the drawing.
- Limit signal color to sub-five-percent UI indicators: tiny cyan orbit dots, faded amber docking states, or one desaturated red warning chip.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| accent | `#5F9AA3` |
| background | `#F7F3EA` |
| error | `#9B514B` |
| info | `#5F9AA3` |
| muted | `#858078` |
| primary | `#2B2A27` |
| secondary | `#6F6B64` |
| success | `#6C7F69` |
| surface | `#FFFCF5` |
| text | `#24231F` |
| warning | `#B08A4B` |
## Typography
- **Headline-Lg**: Azeret Mono, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Azeret Mono, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Chivo, 16px, weight 400, line-height 1.55.
- **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`
- **Step-9**: `128px`
### Breakpoints
Mobile below 640px stacks panels with preserved voids; tablet 641-1024px uses six columns; desktop above 1025px uses twelve columns and cropped off-canvas arcs.
### Density
Desktop density is intentionally uneven: a large orbital void, one dense docking table, one mid-density scan frame, and several isolated micro-labels.
### Grid
Twelve-column max-width 1320px grid with 24px gutters; panels can span 3, 5, 7, or 10 columns to avoid equal-card symmetry.
### Responsive
On small screens the orbit remains cropped, terminal tables become horizontally scrollable code strips, and manga scan frames reduce line complexity before typography shrinks.
### Whitespace
Whitespace is the emotional material: keep 64-128px between major modules, 4-12px inside serial clusters, and never fill an empty orbit just because space exists.
## Elevation & Depth
### Shadows
- **Lg**: 0 60px 160px rgba(36, 35, 31, 0.08)
- **Md**: 0 28px 90px rgba(36, 35, 31, 0.06)
- **Sm**: none
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `0px`
### Surfaces
- **Bg Pattern**: Nearly invisible 24px station grid drawn with rgba(36,35,31,0.035), interrupted by large empty fields and cropped orbital arcs.
- **Card Style**: Rectangular or circular-cropped panels with 1px rgba(36,35,31,0.08) borders, square corners for technical strips, 24px radius only for orbital instrument containers.
- **Treatment**: Warm bone-white base with near-paper surface panels, no gradients, no glass; depth comes from void, hairline rules, and occasional soft institutional shadow.
### Borders
- **Accent Width**: 2px
- **Character**: Hairline ash-black rules at 6-8% opacity, with occasional double-rule terminal separators and no solid SaaS gray.
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
- Start with one large silent void occupying at least one third of desktop compositions.
- Place instruments asymmetrically around a cropped circular orbit rather than in equal rows.
- Use thin rules to connect labels to panels, but allow several lines to terminate in empty space.
- Make one dense terminal or docking table contrast with one spacious observation or scan area.
- Let at least one circular trajectory leave the canvas so the station feels larger than the screen.
- Use status chips as tiny factual punctuation, never as colorful navigation or hero decoration.
### Density
Alternates extreme void with compact telemetry. Related codes cluster at 4-8px, while unrelated panels separate by 64-128px so loneliness is structural rather than decorative.
### Hierarchy
- Display hierarchy uses uppercase Azeret Mono with wide tracking, compact leading, and charcoal weight rather than size alone.
- Body text stays small but readable in Chivo, with -0.02em tracking and generous leading for institutional calm.
- Tertiary metadata uses Fragment Mono, slashed serial divisions, tabular numerals, and faint rule-separated columns.
- Primary attention goes to the orbit instrument and station code; secondary attention goes to docking tables and scan notes.
- Color never creates primary hierarchy; cyan, amber, and red are reserved for tiny machine states after type and layout resolve the page.
### Signature Patterns
- Cropped-orbit panels: CSS circles larger than their containers are clipped to show only partial station trajectories and sparse signal dots.
- Serial terminal strips: one-line uppercase label rows use double hairline borders, tabular numbers, and fixed-width station codes as a recurring divider.
- Scan-frame manga contours: inline SVG line drawings sit in protocol frames with coordinate tags, treating human silhouettes as archived sensor data.
- Void-anchored docking tables: dense rows are attached to huge empty cells by thin leader rules, making operational data feel remote and delayed.
- Sub-five-percent signal color: accent appears only as 4-8px dots, tiny chips, and one emergency glyph so monochrome remains dominant.
## 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/existential-station-interface/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 bone-white and warm off-white fields as the dominant color experience.
- Do Set charcoal technical typography in uppercase labels, numeric station codes, and precisely aligned columns.
- Do Crop circular trajectories through panel edges or viewport edges to imply an orbital system outside the interface.
- Do Treat manga contour drawings as scans with coordinates, timestamps, and data labels.
- Do Keep accent colors rare and physically small: cyan for orbit, amber for docking, red for emergency.
- Do Create one dominant instrument and one dense terminal table instead of three equal cards.
- Do Use near-invisible borders and double hairline separators rather than heavy boxes.
- Do Preserve motion restraint with slow tiny drifts and terminal refresh steps only.
- Don't Do not use neon cyberpunk palettes, glow effects, or saturated blue/pink gradients.
- Don't Do not make a generic analytics dashboard, CRM, project board, or component catalog.
- Don't Do not use anime imagery as decoration without station data framing.
- Don't Do not fill every grid cell; empty space is a required part of the language.
- Don't Do not use rounded SaaS cards everywhere; square terminal strips and clipped circles define the system.
- Don't Do not let color exceed five percent of the composition or carry all hierarchy.
- Don't Do not use banned AI-tell typefaces or default browser form styles.
- Don't Do not center everything; the mood depends on asymmetric distance and off-axis alignment.
### Accessibility
Charcoal text on bone backgrounds meets WCAG AA; status states include labels and shapes in addition to color; focus states use 2px charcoal outlines; reduced-motion disables orbit drift.
### Usage Context
Best for orbital station interfaces, archive monitors, science-fiction operational tools, mission signage, anime title-system screens, and quiet terminal experiences where absence matters.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "existential-station-interface",
"type": "registry:theme",
"title": "Existential Station Interface shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F3EA",
"foreground": "#24231F",
"card": "#FFFCF5",
"card-foreground": "#24231F",
"popover": "#FFFCF5",
"popover-foreground": "#24231F",
"primary": "#2B2A27",
"primary-foreground": "#ffffff",
"secondary": "#6F6B64",
"secondary-foreground": "#ffffff",
"muted": "#858078",
"muted-foreground": "#24231F",
"accent": "#5F9AA3",
"accent-foreground": "#ffffff",
"destructive": "#9B514B",
"border": "#24231F14",
"input": "#24231F14",
"ring": "#5F9AA3",
"chart-1": "#2B2A27",
"chart-2": "#6F6B64",
"chart-3": "#5F9AA3",
"chart-4": "#6C7F69",
"chart-5": "#B08A4B",
"sidebar": "#FFFCF5",
"sidebar-foreground": "#24231F",
"sidebar-primary": "#2B2A27",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5F9AA3",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#24231F14",
"sidebar-ring": "#5F9AA3",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#2B2A27",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#5F9AA3",
"accent-foreground": "#ffffff",
"destructive": "#9B514B",
"border": "#303642",
"input": "#303642",
"ring": "#5F9AA3",
"chart-1": "#2B2A27",
"chart-2": "#6F6B64",
"chart-3": "#5F9AA3",
"chart-4": "#6C7F69",
"chart-5": "#B08A4B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#2B2A27",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5F9AA3",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#5F9AA3",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "existential-station-interface",
"slug": "existential-station-interface",
"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": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-896px
- step-9128px
Shape
implementation kit
DESIGN.md with shadcn
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.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #F7F3EA;
--foreground: #24231F;
--card: #FFFCF5;
--card-foreground: #24231F;
--popover: #FFFCF5;
--popover-foreground: #24231F;
--primary: #2B2A27;
--primary-foreground: #ffffff;
--secondary: #6F6B64;
--secondary-foreground: #ffffff;
--muted: #858078;
--muted-foreground: #24231F;
--accent: #5F9AA3;
--accent-foreground: #ffffff;
--destructive: #9B514B;
--border: #24231F14;
--input: #24231F14;
--ring: #5F9AA3;
--chart-1: #2B2A27;
--chart-2: #6F6B64;
--chart-3: #5F9AA3;
--chart-4: #6C7F69;
--chart-5: #B08A4B;
--sidebar: #FFFCF5;
--sidebar-foreground: #24231F;
--sidebar-primary: #2B2A27;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #5F9AA3;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #24231F14;
--sidebar-ring: #5F9AA3;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #2B2A27;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #5F9AA3;
--accent-foreground: #ffffff;
--destructive: #9B514B;
--border: #303642;
--input: #303642;
--ring: #5F9AA3;
--chart-1: #2B2A27;
--chart-2: #6F6B64;
--chart-3: #5F9AA3;
--chart-4: #6C7F69;
--chart-5: #B08A4B;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #2B2A27;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #5F9AA3;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #5F9AA3;
--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 ExistentialStationInterfaceShadcnKit() {
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">Existential Station Interface</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": "existential-station-interface",
"type": "registry:theme",
"title": "Existential Station Interface shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F3EA",
"foreground": "#24231F",
"card": "#FFFCF5",
"card-foreground": "#24231F",
"popover": "#FFFCF5",
"popover-foreground": "#24231F",
"primary": "#2B2A27",
"primary-foreground": "#ffffff",
"secondary": "#6F6B64",
"secondary-foreground": "#ffffff",
"muted": "#858078",
"muted-foreground": "#24231F",
"accent": "#5F9AA3",
"accent-foreground": "#ffffff",
"destructive": "#9B514B",
"border": "#24231F14",
"input": "#24231F14",
"ring": "#5F9AA3",
"chart-1": "#2B2A27",
"chart-2": "#6F6B64",
"chart-3": "#5F9AA3",
"chart-4": "#6C7F69",
"chart-5": "#B08A4B",
"sidebar": "#FFFCF5",
"sidebar-foreground": "#24231F",
"sidebar-primary": "#2B2A27",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5F9AA3",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#24231F14",
"sidebar-ring": "#5F9AA3",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#2B2A27",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#5F9AA3",
"accent-foreground": "#ffffff",
"destructive": "#9B514B",
"border": "#303642",
"input": "#303642",
"ring": "#5F9AA3",
"chart-1": "#2B2A27",
"chart-2": "#6F6B64",
"chart-3": "#5F9AA3",
"chart-4": "#6C7F69",
"chart-5": "#B08A4B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#2B2A27",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5F9AA3",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#5F9AA3",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "existential-station-interface",
"slug": "existential-station-interface",
"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": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
# Existential Station Interface shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `existential-station-interface`
Slug: `existential-station-interface`
## Intent
A quiet orbital operations language for interfaces that feel abandoned but still precise: bone-white station light, charcoal telemetry, cropped orbit diagrams, and manga line artifacts treated as data records rather than illustration.
## 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:
{
"accent": "#5F9AA3",
"background": "#F7F3EA",
"border": "#24231F14",
"error": "#9B514B",
"info": "#5F9AA3",
"muted": "#858078",
"primary": "#2B2A27",
"secondary": "#6F6B64",
"success": "#6C7F69",
"surface": "#FFFCF5",
"text": "#24231F",
"warning": "#B08A4B"
}
Typography:
{
"base_size": "16px",
"body_font": "Chivo",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@400;500;600;700&family=Chivo:wght@400;500;600&family=Fragment+Mono:ital@0;1&display=swap",
"heading_font": "Azeret Mono",
"letter_spacing": "-0.02em",
"line_height": 1.55,
"mono_font": "Fragment Mono",
"scale_ratio": 1.22
}
## Visual character to preserve
- Use a bone-white page field with oversized empty grid cells and sparse charcoal panels positioned as isolated orbital instruments.
- Draw cropped circular trajectories with CSS border arcs and absolutely positioned micro-dots that partly exit the viewport or panel edge.
- Build terminal strips from one-pixel ash rules, small uppercase serial labels, monospaced numeric station codes, and exact column alignment.
- Render manga contour artifacts as thin SVG line drawings inside labeled scan frames, with labels and coordinates integrated into the drawing.
- Limit signal color to sub-five-percent UI indicators: tiny cyan orbit dots, faded amber docking states, or one desaturated red warning chip.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": false,
"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/existential-station-interface/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 bone-white and warm off-white fields as the dominant color experience.; Set charcoal technical typography in uppercase labels, numeric station codes, and precisely aligned columns.; Crop circular trajectories through panel edges or viewport edges to imply an orbital system outside the interface.; Treat manga contour drawings as scans with coordinates, timestamps, and data labels.; Keep accent colors rare and physically small: cyan for orbit, amber for docking, red for emergency.; Create one dominant instrument and one dense terminal table instead of three equal cards.; Use near-invisible borders and double hairline separators rather than heavy boxes.; Preserve motion restraint with slow tiny drifts and terminal refresh steps only.
- Do not: Do not use neon cyberpunk palettes, glow effects, or saturated blue/pink gradients.; Do not make a generic analytics dashboard, CRM, project board, or component catalog.; Do not use anime imagery as decoration without station data framing.; Do not fill every grid cell; empty space is a required part of the language.; Do not use rounded SaaS cards everywhere; square terminal strips and clipped circles define the system.; Do not let color exceed five percent of the composition or carry all hierarchy.; Do not use banned AI-tell typefaces or default browser form styles.; Do not center everything; the mood depends on asymmetric distance and off-axis alignment.
## 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 ExistentialStationInterfaceShadcnKit() {
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">Existential Station Interface</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
{
"breakpoints": "Mobile below 640px stacks panels with preserved voids; tablet 641-1024px uses six columns; desktop above 1025px uses twelve columns and cropped off-canvas arcs.",
"density": "Desktop density is intentionally uneven: a large orbital void, one dense docking table, one mid-density scan frame, and several isolated micro-labels.",
"grid": "Twelve-column max-width 1320px grid with 24px gutters; panels can span 3, 5, 7, or 10 columns to avoid equal-card symmetry.",
"responsive": "On small screens the orbit remains cropped, terminal tables become horizontally scrollable code strips, and manga scan frames reduce line complexity before typography shrinks.",
"whitespace": "Whitespace is the emotional material: keep 64-128px between major modules, 4-12px inside serial clusters, and never fill an empty orbit just because space exists."
}
{
"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": "existential-station-interface",
"name": "Existential Station Interface",
"slug": "existential-station-interface"
},
"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": [
"Use a bone-white page field with oversized empty grid cells and sparse charcoal panels positioned as isolated orbital instruments.",
"Draw cropped circular trajectories with CSS border arcs and absolutely positioned micro-dots that partly exit the viewport or panel edge.",
"Build terminal strips from one-pixel ash rules, small uppercase serial labels, monospaced numeric station codes, and exact column alignment.",
"Render manga contour artifacts as thin SVG line drawings inside labeled scan frames, with labels and coordinates integrated into the drawing.",
"Limit signal color to sub-five-percent UI indicators: tiny cyan orbit dots, faded amber docking states, or one desaturated red warning chip."
],
"visualProfile": {
"family": "brutalist",
"material": "ink",
"contour": "default",
"border": "solid",
"underlay": false,
"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": "Existential Station Interface 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 bone-white and warm off-white fields as the dominant color experience.",
"Set charcoal technical typography in uppercase labels, numeric station codes, and precisely aligned columns.",
"Crop circular trajectories through panel edges or viewport edges to imply an orbital system outside the interface.",
"Treat manga contour drawings as scans with coordinates, timestamps, and data labels.",
"Keep accent colors rare and physically small: cyan for orbit, amber for docking, red for emergency.",
"Create one dominant instrument and one dense terminal table instead of three equal cards.",
"Use near-invisible borders and double hairline separators rather than heavy boxes.",
"Preserve motion restraint with slow tiny drifts and terminal refresh steps only."
],
"dont": [
"Do not use neon cyberpunk palettes, glow effects, or saturated blue/pink gradients.",
"Do not make a generic analytics dashboard, CRM, project board, or component catalog.",
"Do not use anime imagery as decoration without station data framing.",
"Do not fill every grid cell; empty space is a required part of the language.",
"Do not use rounded SaaS cards everywhere; square terminal strips and clipped circles define the system.",
"Do not let color exceed five percent of the composition or carry all hierarchy.",
"Do not use banned AI-tell typefaces or default browser form styles.",
"Do not center everything; the mood depends on asymmetric distance and off-axis alignment."
]
}
}