Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Portable DESIGN.md source of truth for most agents and apps.
Compose the screen as a live operator console: a dominant mission window, quieter diagnostic panes, and a process log that read like concurrent terminal windows. Use a 12-column grid broken by asymmetric window spans (one 7-8 col mission, 3-5 col daemons); the dashboard uses an open sidebar rail. Never three equal cards.
Primary hierarchy comes from large VT323 bitmap-style headings, then bracketed uppercase metadata straps, then fixed-width monospace tables, so the eye scans from session status to command input to machine output in a strict top-down flow. Bright phosphor green marks only active or live states; deep phosphor carries structure; beam-lime is the single peak highlight.
Medium-high density with compact monospace rows and visible scanline separators, alternated with calmer phosphor field so the interface feels information-rich but readable because alignment is exact.
Desktop uses a 12-column grid with 24px gutters and max-width 1320px; the dominant mission window spans 7-8 columns while daemon panes occupy irregular 3-5 column fragments. The dashboard uses a 232px sidebar rail plus a fluid main grid. Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.
Whitespace is deliberate but tight inside windows (compact monospace rows) with larger gaps between major panes; consistent 8px-based spacing so dense data never feels chaotic, and titles always have padding above them.
The system pairs tight terminal rows with calmer phosphor-field pauses; visual energy is localised to the live signal and the active mission window.
Scanline and glow treatments scale down on mobile, windows stack in source order before monospace becomes unreadable, the cursor blink respects reduced motion, and non-essential nav links and table columns are hidden on narrow screens.
lumiphore
Glowing phosphor-green CRT oscilloscope vector traces on a true-black field, with soft electron-beam bloom, fine horizontal scanlines, and halation falloff into the dark. Imagery treats terminal, machine, and instrument subjects as luminous scan-stroke plates, dimensional rather than flat.
Landing hero is generated in the lumiphore technique, full-bleed behind a legible scanline-and-vignette overlay. Reserve the single brightest beam stroke for the focal element in each image.
# Phosphor ## Philosophy Phosphor is a green-monochrome interface system that treats the screen as a living phosphor terminal: true-black fields, stacked terminal-window panes, scanline texture, bracketed machine feedback, and a single bright-green live stroke. It reads audited and operational rather than nostalgic parody. A faithful refinement of Retro Terminal Hacker, brought up to standard. ### Values - operational clarity over decorative comfort, with exact monospace alignment - every container is a stacked terminal window: chrome strip, phosphor trace border, inner glow - visible system state, logs, prompts, and machine feedback as the primary content - one bright-green stroke per view marks what is live; everything else stays dim phosphor on black - high-contrast green-on-black legibility with a restrained three-accent hierarchy - scanline-and-vignette field so the viewport feels like an active monitor, never a flat canvas ### Anti-Values - soft consumer-app gradients, pastel accents, or glassmorphism blur - rounded playful components that break terminal discipline - neon cyberpunk: cyan, purple, magenta, or synthwave gradients - hidden state that removes the sense of machine dialogue, or colour used as the only signal ### Visual Character - Every major container is a stacked terminal window with a #122616 chrome title strip, a 1px phosphor-green trace border, and a faint inner glow, so the interface reads like concurrent terminal panes rather than modern cards. - Dense monospace typography uses bracketed uppercase labels, fixed-width columns, and a soft green text-glow on the brightest readings to mimic CRT phosphor bloom without reducing legibility. - The page surface carries repeating horizontal scanlines, a faint phosphor grid, and radial vignette falloff so the full viewport feels like an active monitor. - Status emphasis relies on brighter 3px left signal bars, bracketed [ LABEL ] headers, and ASCII-divider rule lines drawn with pseudo-elements, creating a command-log hierarchy instead of icon-led decoration. - Interactive controls invert from green-outline to black-on-green on hover and focus, making each button, field, and tab feel like a terminal selection rendered through hardware phosphor. ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#040705` | | surface | `#0A140C` | | surface_2 | `#0F1E11` | | panel_hi | `#122616` | | text | `#D9FFD2` | | text_dim | `#8FCB92` | | muted | `#6FA774` | | muted_2 | `#4E7A53` | | on_accent | `#021004` | | border | `#2C6B36` | | border_hi | `#4FB45E` | | accent | `#7CFF7A` | | accent_2 | `#3FB158` | | accent_3 | `#C6FF6A` | | success | `#6CF08A` | | warning | `#E0B24A` | | error | `#FF6A47` | | info | `#79D9C0` | ### Typography - **Base Size**: 17px - **Body Font**: Share Tech Mono - **Heading Font**: VT323 - **Mono Font**: Share Tech Mono - **Heading Weight**: 400 - **Heading Transform**: uppercase - **Letter Spacing**: 0.01em - **Line Height**: 1.55 - **Scale Ratio**: 1.25 - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=VT323&display=swap ### Radii - **None**: 0px - **Sm**: 0px - **Md**: 16px - **Lg**: 24px - **Full**: 9999px ### Shadows - **Sm**: 0 0 0 1px rgba(124,255,122,0.14), inset 0 0 16px rgba(124,255,122,0.05) - **Md**: 0 0 0 1px rgba(124,255,122,0.20), 0 0 22px rgba(63,177,88,0.18), inset 0 0 26px rgba(124,255,122,0.06) - **Lg**: 0 0 0 1px rgba(124,255,122,0.26), 0 0 40px rgba(63,177,88,0.22), inset 0 0 40px rgba(124,255,122,0.08) - **Text Glow**: 0 0 8px rgba(124,255,122,0.55) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96,128] ### Surfaces - **Bg Pattern**: True-black CRT field carrying a faint phosphor grid, repeating horizontal scanlines, and radial vignette falloff; pattern opacity stays below 4% so it never competes with content. - **Card Style**: Stacked terminal-window panes: a #122616 chrome title strip with a bracketed label and status LEDs, a 1px phosphor-green trace border (2px on active rails, 3px left signal bar on critical blocks), a faint inner phosphor glow, and a scanline overlay. Hard rectangular corners, never soft blur. - **Treatment**: Dim phosphor green on a true-black ground with green trace borders, scanline texture, and a soft electron-beam glow on the brightest live elements. ### Borders - **Default Width**: 1px - **Accent Width**: 2px - **Style**: solid - **Character**: Phosphor-trace outlines: dim green default rules, brighter green active rails, a 3px left signal bar on critical blocks, ASCII-divider rule lines on section heads, and near-invisible rgba(124,255,122,0.12) interior hairlines. ### Motion - **Duration**: 160ms - **Easing**: cubic-bezier(.2,.8,.2,1) - **Philosophy**: Motion feels like the electron beam settling: a cursor blink, a one-step window slide, no floating parallax or decorative looping. The settled state renders with no JavaScript; motion is layered on top behind a class on <html> and respects prefers-reduced-motion. ## Rules ### Composition Compose the screen as a live operator console: a dominant mission window, quieter diagnostic panes, and a process log that read like concurrent terminal windows. Use a 12-column grid broken by asymmetric window spans (one 7-8 col mission, 3-5 col daemons); the dashboard uses an open sidebar rail. Never three equal cards. ### Hierarchy Primary hierarchy comes from large VT323 bitmap-style headings, then bracketed uppercase metadata straps, then fixed-width monospace tables, so the eye scans from session status to command input to machine output in a strict top-down flow. Bright phosphor green marks only active or live states; deep phosphor carries structure; beam-lime is the single peak highlight. ### Density Medium-high density with compact monospace rows and visible scanline separators, alternated with calmer phosphor field so the interface feels information-rich but readable because alignment is exact. ### Signature - Stacked terminal windows: every container has a chrome title strip, a 1px phosphor-green trace border, and a faint inner glow, drawn as nested panes rather than cards. - Left signal bars: critical blocks carry a brighter 3px left bar so alerts, active sessions, and selected logs are framed by vertical phosphor emphasis. - Bracketed CLI headers and ASCII rule lines built with pseudo-elements make section divisions feel like command-line output instead of app chrome. - Scanline phosphor field: repeating horizontal scanlines, a faint grid, and radial vignette falloff over the whole viewport, with one bright-green stroke per view for the live element. ## Layout ### Grid Desktop uses a 12-column grid with 24px gutters and max-width 1320px; the dominant mission window spans 7-8 columns while daemon panes occupy irregular 3-5 column fragments. The dashboard uses a 232px sidebar rail plus a fluid main grid. Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container. ### Whitespace Whitespace is deliberate but tight inside windows (compact monospace rows) with larger gaps between major panes; consistent 8px-based spacing so dense data never feels chaotic, and titles always have padding above them. ### Density The system pairs tight terminal rows with calmer phosphor-field pauses; visual energy is localised to the live signal and the active mission window. ### Responsive Scanline and glow treatments scale down on mobile, windows stack in source order before monospace becomes unreadable, the cursor blink respects reduced motion, and non-essential nav links and table columns are hidden on narrow screens. ### Breakpoints - **Mobile**: < 640px stacks all windows in a single column and hides non-essential nav - **Tablet**: 640-1024px uses 6 columns - **Desktop**: >= 1024px uses the full 12-column asymmetric console - **Ultrawide**: >= 1600px caps and centres the contained content; only the full-bleed hero spans 100vw ## Guidance ### Do - Use a true-black CRT field as the dominant ground and reserve bright green for live text, active borders, and focus. - Make every container a stacked terminal window with a chrome title strip, a phosphor trace border, and an inner glow. - Expose logs, command prompts, checksums, PIDs, and status markers so the interface feels like an ongoing machine conversation. - Build hierarchy through monospace scale, bracketed labels, signal bars, and state inversion rather than colourful illustrations. - Keep body copy readable at 16-17px+ green-on-black and never set terminal microcopy below 11px. - Pair every colour status with a glowing dot, a label, or bracketed text for accessibility. ### Don't - Do not introduce cyan, purple, magenta, or synthwave gradients that push the language into generic cyberpunk. - Do not soften components with large radii, floating glass cards, or airy consumer-product spacing. - Do not let bright green become a decorative flood or a second body colour; it marks only what is live. - Do not hide controls behind ambiguous icons when a direct command label or text mode would be clearer. - Do not place essential information only in tiny microcopy, or use colour as the only signal. - Do not use glyph symbols (arrows, triangles) in copy; draw them as inline SVG primitives. ### Accessibility Maintain WCAG AA contrast with dim phosphor #D9FFD2 body text on the true-black field, keep bright green supplemental to text state, provide visible green or beam-lime focus outlines, pair every status colour with a dot or bracketed label, and never set monospace microcopy below 11px. Respect prefers-reduced-motion for the cursor blink and reveals. ## Imagery Direction ### Pairs With lumiphore ### Summary Glowing phosphor-green CRT oscilloscope vector traces on a true-black field, with soft electron-beam bloom, fine horizontal scanlines, and halation falloff into the dark. Imagery treats terminal, machine, and instrument subjects as luminous scan-stroke plates, dimensional rather than flat. ### Subjects - a CRT terminal workstation - an oscilloscope waveform - a reel-to-reel data unit - a circuit board traced in beam light ### Usage Landing hero is generated in the lumiphore technique, full-bleed behind a legible scanline-and-vignette overlay. Reserve the single brightest beam stroke for the focal element in each image.
---
version: "alpha"
name: "Phosphor"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#040705"
surface: "#0A140C"
surface_2: "#0F1E11"
panel_hi: "#122616"
text: "#D9FFD2"
text_dim: "#8FCB92"
muted: "#6FA774"
muted_2: "#4E7A53"
on_accent: "#021004"
border: "#2C6B36"
border_hi: "#4FB45E"
accent: "#7CFF7A"
accent_2: "#3FB158"
accent_3: "#C6FF6A"
success: "#6CF08A"
warning: "#E0B24A"
error: "#FF6A47"
info: "#79D9C0"
typography:
headline-lg:
fontFamily: "VT323"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "0.01em"
headline-md:
fontFamily: "VT323"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "0.01em"
body-md:
fontFamily: "Share Tech Mono"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "0.01em"
label-md:
fontFamily: "Share Tech Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "0px"
md: "16px"
lg: "24px"
full: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
step-9: "128px"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface_2:
backgroundColor: "{colors.surface_2}"
color-reference-panel_hi:
backgroundColor: "{colors.panel_hi}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-text_dim:
backgroundColor: "{colors.text_dim}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-muted_2:
backgroundColor: "{colors.muted_2}"
color-reference-on_accent:
backgroundColor: "{colors.on_accent}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-border_hi:
backgroundColor: "{colors.border_hi}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-accent_2:
backgroundColor: "{colors.accent_2}"
color-reference-accent_3:
backgroundColor: "{colors.accent_3}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
button-primary:
backgroundColor: "{colors.accent}"
textColor: "#000000"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Phosphor
## Overview
Phosphor is a green-monochrome interface system that treats the screen as a living phosphor terminal: true-black fields, stacked terminal-window panes, scanline texture, bracketed machine feedback, and a single bright-green live stroke. It reads audited and operational rather than nostalgic parody. A faithful refinement of Retro Terminal Hacker, brought up to standard.
### Values
- operational clarity over decorative comfort, with exact monospace alignment
- every container is a stacked terminal window: chrome strip, phosphor trace border, inner glow
- visible system state, logs, prompts, and machine feedback as the primary content
- one bright-green stroke per view marks what is live; everything else stays dim phosphor on black
- high-contrast green-on-black legibility with a restrained three-accent hierarchy
- scanline-and-vignette field so the viewport feels like an active monitor, never a flat canvas
### Anti-Values
- soft consumer-app gradients, pastel accents, or glassmorphism blur
- rounded playful components that break terminal discipline
- neon cyberpunk: cyan, purple, magenta, or synthwave gradients
- hidden state that removes the sense of machine dialogue, or colour used as the only signal
### Visual Character
- Every major container is a stacked terminal window with a #122616 chrome title strip, a 1px phosphor-green trace border, and a faint inner glow, so the interface reads like concurrent terminal panes rather than modern cards.
- Dense monospace typography uses bracketed uppercase labels, fixed-width columns, and a soft green text-glow on the brightest readings to mimic CRT phosphor bloom without reducing legibility.
- The page surface carries repeating horizontal scanlines, a faint phosphor grid, and radial vignette falloff so the full viewport feels like an active monitor.
- Status emphasis relies on brighter 3px left signal bars, bracketed [ LABEL ] headers, and ASCII-divider rule lines drawn with pseudo-elements, creating a command-log hierarchy instead of icon-led decoration.
- Interactive controls invert from green-outline to black-on-green on hover and focus, making each button, field, and tab feel like a terminal selection rendered through hardware phosphor.
## 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 | `#040705` |
| surface | `#0A140C` |
| surface_2 | `#0F1E11` |
| panel_hi | `#122616` |
| text | `#D9FFD2` |
| text_dim | `#8FCB92` |
| muted | `#6FA774` |
| muted_2 | `#4E7A53` |
| on_accent | `#021004` |
| border | `#2C6B36` |
| border_hi | `#4FB45E` |
| accent | `#7CFF7A` |
| accent_2 | `#3FB158` |
| accent_3 | `#C6FF6A` |
| success | `#6CF08A` |
| warning | `#E0B24A` |
| error | `#FF6A47` |
| info | `#79D9C0` |
## Typography
- **Headline-Lg**: VT323, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: VT323, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Share Tech Mono, 17px, weight 400, line-height 1.55.
- **Label-Md**: Share Tech 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`
### Grid
Desktop uses a 12-column grid with 24px gutters and max-width 1320px; the dominant mission window spans 7-8 columns while daemon panes occupy irregular 3-5 column fragments. The dashboard uses a 232px sidebar rail plus a fluid main grid. Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.
### Whitespace
Whitespace is deliberate but tight inside windows (compact monospace rows) with larger gaps between major panes; consistent 8px-based spacing so dense data never feels chaotic, and titles always have padding above them.
### Density
The system pairs tight terminal rows with calmer phosphor-field pauses; visual energy is localised to the live signal and the active mission window.
### Responsive
Scanline and glow treatments scale down on mobile, windows stack in source order before monospace becomes unreadable, the cursor blink respects reduced motion, and non-essential nav links and table columns are hidden on narrow screens.
### Breakpoints
- **Mobile**: < 640px stacks all windows in a single column and hides non-essential nav
- **Tablet**: 640-1024px uses 6 columns
- **Desktop**: >= 1024px uses the full 12-column asymmetric console
- **Ultrawide**: >= 1600px caps and centres the contained content; only the full-bleed hero spans 100vw
## Elevation & Depth
### Shadows
- **Sm**: 0 0 0 1px rgba(124,255,122,0.14), inset 0 0 16px rgba(124,255,122,0.05)
- **Md**: 0 0 0 1px rgba(124,255,122,0.20), 0 0 22px rgba(63,177,88,0.18), inset 0 0 26px rgba(124,255,122,0.06)
- **Lg**: 0 0 0 1px rgba(124,255,122,0.26), 0 0 40px rgba(63,177,88,0.22), inset 0 0 40px rgba(124,255,122,0.08)
- **Text Glow**: 0 0 8px rgba(124,255,122,0.55)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Bg Pattern**: True-black CRT field carrying a faint phosphor grid, repeating horizontal scanlines, and radial vignette falloff; pattern opacity stays below 4% so it never competes with content.
- **Card Style**: Stacked terminal-window panes: a #122616 chrome title strip with a bracketed label and status LEDs, a 1px phosphor-green trace border (2px on active rails, 3px left signal bar on critical blocks), a faint inner phosphor glow, and a scanline overlay. Hard rectangular corners, never soft blur.
- **Treatment**: Dim phosphor green on a true-black ground with green trace borders, scanline texture, and a soft electron-beam glow on the brightest live elements.
### Borders
- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Phosphor-trace outlines: dim green default rules, brighter green active rails, a 3px left signal bar on critical blocks, ASCII-divider rule lines on section heads, and near-invisible rgba(124,255,122,0.12) interior hairlines.
## Components
### Composition
Compose the screen as a live operator console: a dominant mission window, quieter diagnostic panes, and a process log that read like concurrent terminal windows. Use a 12-column grid broken by asymmetric window spans (one 7-8 col mission, 3-5 col daemons); the dashboard uses an open sidebar rail. Never three equal cards.
### Hierarchy
Primary hierarchy comes from large VT323 bitmap-style headings, then bracketed uppercase metadata straps, then fixed-width monospace tables, so the eye scans from session status to command input to machine output in a strict top-down flow. Bright phosphor green marks only active or live states; deep phosphor carries structure; beam-lime is the single peak highlight.
### Density
Medium-high density with compact monospace rows and visible scanline separators, alternated with calmer phosphor field so the interface feels information-rich but readable because alignment is exact.
### Signature
- Stacked terminal windows: every container has a chrome title strip, a 1px phosphor-green trace border, and a faint inner glow, drawn as nested panes rather than cards.
- Left signal bars: critical blocks carry a brighter 3px left bar so alerts, active sessions, and selected logs are framed by vertical phosphor emphasis.
- Bracketed CLI headers and ASCII rule lines built with pseudo-elements make section divisions feel like command-line output instead of app chrome.
- Scanline phosphor field: repeating horizontal scanlines, a faint grid, and radial vignette falloff over the whole viewport, with one bright-green stroke per view for the live element.
## 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-019efb51-33e2-7b10-ba3c-320a9c4bc1e3/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 a true-black CRT field as the dominant ground and reserve bright green for live text, active borders, and focus.
- Do Make every container a stacked terminal window with a chrome title strip, a phosphor trace border, and an inner glow.
- Do Expose logs, command prompts, checksums, PIDs, and status markers so the interface feels like an ongoing machine conversation.
- Do Build hierarchy through monospace scale, bracketed labels, signal bars, and state inversion rather than colourful illustrations.
- Do Keep body copy readable at 16-17px+ green-on-black and never set terminal microcopy below 11px.
- Do Pair every colour status with a glowing dot, a label, or bracketed text for accessibility.
- Don't Do not introduce cyan, purple, magenta, or synthwave gradients that push the language into generic cyberpunk.
- Don't Do not soften components with large radii, floating glass cards, or airy consumer-product spacing.
- Don't Do not let bright green become a decorative flood or a second body colour; it marks only what is live.
- Don't Do not hide controls behind ambiguous icons when a direct command label or text mode would be clearer.
- Don't Do not place essential information only in tiny microcopy, or use colour as the only signal.
- Don't Do not use glyph symbols (arrows, triangles) in copy; draw them as inline SVG primitives.
### Accessibility
Maintain WCAG AA contrast with dim phosphor #D9FFD2 body text on the true-black field, keep bright green supplemental to text state, provide visible green or beam-lime focus outlines, pair every status colour with a dot or bracketed label, and never set monospace microcopy below 11px. Respect prefers-reduced-motion for the cursor blink and reveals.
## Imagery Direction
### Pairs With
lumiphore
### Summary
Glowing phosphor-green CRT oscilloscope vector traces on a true-black field, with soft electron-beam bloom, fine horizontal scanlines, and halation falloff into the dark. Imagery treats terminal, machine, and instrument subjects as luminous scan-stroke plates, dimensional rather than flat.
### Subjects
- a CRT terminal workstation
- an oscilloscope waveform
- a reel-to-reel data unit
- a circuit board traced in beam light
### Usage
Landing hero is generated in the lumiphore technique, full-bleed behind a legible scanline-and-vignette overlay. Reserve the single brightest beam stroke for the focal element in each image.
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "phosphor",
"type": "registry:theme",
"title": "Phosphor shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#040705",
"foreground": "#D9FFD2",
"card": "#0A140C",
"card-foreground": "#D9FFD2",
"popover": "#0A140C",
"popover-foreground": "#D9FFD2",
"primary": "#D9FFD2",
"primary-foreground": "#111111",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#6FA774",
"muted-foreground": "#D9FFD2",
"accent": "#7CFF7A",
"accent-foreground": "#111111",
"destructive": "#FF6A47",
"border": "#2C6B36",
"input": "#2C6B36",
"ring": "#7CFF7A",
"chart-1": "#D9FFD2",
"chart-2": "#f4f4f5",
"chart-3": "#7CFF7A",
"chart-4": "#6CF08A",
"chart-5": "#E0B24A",
"sidebar": "#0A140C",
"sidebar-foreground": "#D9FFD2",
"sidebar-primary": "#D9FFD2",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#79D9C0",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#2C6B36",
"sidebar-ring": "#7CFF7A",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#D9FFD2",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#7CFF7A",
"accent-foreground": "#111111",
"destructive": "#FF6A47",
"border": "#303642",
"input": "#303642",
"ring": "#7CFF7A",
"chart-1": "#D9FFD2",
"chart-2": "#f4f4f5",
"chart-3": "#7CFF7A",
"chart-4": "#6CF08A",
"chart-5": "#E0B24A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#D9FFD2",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#7CFF7A",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#7CFF7A",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019efb51-33e2-7b10-ba3c-320a9c4bc1e3",
"slug": "phosphor",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"colors": [
"accent",
"accent_2",
"accent_3",
"bg",
"border",
"border_hi",
"error",
"info",
"muted",
"muted_2",
"on_accent",
"panel_hi",
"success",
"surface",
"surface_2",
"text",
"text_dim",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm",
"text_glow"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Agent-generated
produced by claude-opus-4-8 · sourced by claude-opus-4-8 · images by gpt-image-2
Keep Phosphorand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #040705;
--foreground: #D9FFD2;
--card: #0A140C;
--card-foreground: #D9FFD2;
--popover: #0A140C;
--popover-foreground: #D9FFD2;
--primary: #D9FFD2;
--primary-foreground: #111111;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #6FA774;
--muted-foreground: #D9FFD2;
--accent: #7CFF7A;
--accent-foreground: #111111;
--destructive: #FF6A47;
--border: #2C6B36;
--input: #2C6B36;
--ring: #7CFF7A;
--chart-1: #D9FFD2;
--chart-2: #f4f4f5;
--chart-3: #7CFF7A;
--chart-4: #6CF08A;
--chart-5: #E0B24A;
--sidebar: #0A140C;
--sidebar-foreground: #D9FFD2;
--sidebar-primary: #D9FFD2;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #79D9C0;
--sidebar-accent-foreground: #111111;
--sidebar-border: #2C6B36;
--sidebar-ring: #7CFF7A;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #D9FFD2;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #7CFF7A;
--accent-foreground: #111111;
--destructive: #FF6A47;
--border: #303642;
--input: #303642;
--ring: #7CFF7A;
--chart-1: #D9FFD2;
--chart-2: #f4f4f5;
--chart-3: #7CFF7A;
--chart-4: #6CF08A;
--chart-5: #E0B24A;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #D9FFD2;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #7CFF7A;
--sidebar-accent-foreground: #111111;
--sidebar-border: #303642;
--sidebar-ring: #7CFF7A;
--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 PhosphorShadcnKit() {
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">Phosphor</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": "phosphor",
"type": "registry:theme",
"author": "katagami-agent",
"title": "Phosphor",
"description": "Green-monochrome CRT-terminal UI: true-black fields, stacked terminal-window panes with 1px phosphor-trace borders and inner glow, scanline texture, bracketed CLI headers, left signal bars, and one bright-green live status. Square corners, glow elevation, monospace type.",
"cssVars": {
"theme": {
"font-sans": "Share Tech Mono, ui-monospace, monospace",
"font-mono": "Share Tech Mono, ui-monospace, monospace",
"font-display": "VT323, Courier New, monospace",
"radius": "0rem"
},
"light": {
"background": "#040705",
"foreground": "#D9FFD2",
"card": "#0A140C",
"card-foreground": "#D9FFD2",
"popover": "#0A140C",
"popover-foreground": "#D9FFD2",
"primary": "#7CFF7A",
"primary-foreground": "#021004",
"secondary": "#0F1E11",
"secondary-foreground": "#D9FFD2",
"muted": "#0F1E11",
"muted-foreground": "#6FA774",
"accent": "#C6FF6A",
"accent-foreground": "#021004",
"destructive": "#FF6A47",
"destructive-foreground": "#1A0703",
"border": "#2C6B36",
"input": "#2C6B36",
"ring": "#7CFF7A",
"chart-1": "#7CFF7A",
"chart-2": "#3FB158",
"chart-3": "#C6FF6A",
"chart-4": "#79D9C0",
"chart-5": "#E0B24A",
"sidebar": "#040705",
"sidebar-foreground": "#8FCB92",
"sidebar-primary": "#7CFF7A",
"sidebar-primary-foreground": "#021004",
"sidebar-accent": "#0A140C",
"sidebar-accent-foreground": "#D9FFD2",
"sidebar-border": "#2C6B36",
"sidebar-ring": "#7CFF7A"
},
"dark": {
"background": "#040705",
"foreground": "#D9FFD2",
"card": "#0A140C",
"card-foreground": "#D9FFD2",
"popover": "#0A140C",
"popover-foreground": "#D9FFD2",
"primary": "#7CFF7A",
"primary-foreground": "#021004",
"secondary": "#0F1E11",
"secondary-foreground": "#D9FFD2",
"muted": "#0F1E11",
"muted-foreground": "#6FA774",
"accent": "#C6FF6A",
"accent-foreground": "#021004",
"destructive": "#FF6A47",
"destructive-foreground": "#1A0703",
"border": "#2C6B36",
"input": "#2C6B36",
"ring": "#7CFF7A",
"chart-1": "#7CFF7A",
"chart-2": "#3FB158",
"chart-3": "#C6FF6A",
"chart-4": "#79D9C0",
"chart-5": "#E0B24A",
"sidebar": "#040705",
"sidebar-foreground": "#8FCB92",
"sidebar-primary": "#7CFF7A",
"sidebar-primary-foreground": "#021004",
"sidebar-accent": "#0A140C",
"sidebar-accent-foreground": "#D9FFD2",
"sidebar-border": "#2C6B36",
"sidebar-ring": "#7CFF7A"
}
},
"visualProfile": {
"radius": "square",
"radiusScale": { "none": "0px", "md": "16px", "lg": "24px", "full": "9999px" },
"borders": "phosphor-trace",
"borderWidth": "1px",
"borderColor": "#2C6B36",
"accentBorderWidth": "2px",
"elevation": "phosphor-glow",
"shadow": "0 0 0 1px rgba(124,255,122,0.20), 0 0 22px rgba(63,177,88,0.18), inset 0 0 26px rgba(124,255,122,0.06)",
"material": "true-black-crt",
"surfaceTexture": "horizontal-scanlines",
"cornerTreatment": "hard-rectangular",
"accentStrategy": "single-live-green",
"fontDisplay": "VT323",
"fontBody": "Share Tech Mono",
"fontMono": "Share Tech Mono",
"buttonShape": "square-trace-invert",
"focusRing": "2px solid #C6FF6A"
}
}
# Phosphor shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019efb51-33e2-7b10-ba3c-320a9c4bc1e3`
Slug: `phosphor`
## Intent
Phosphor is a green-monochrome interface system that treats the screen as a living phosphor terminal: true-black fields, stacked terminal-window panes, scanline texture, bracketed machine feedback, and a single bright-green live stroke. It reads audited and operational rather than nostalgic parody. A faithful refinement of Retro Terminal Hacker, brought up to standard.
## Required primitives
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
## Token cues
Colors:
{
"bg": "#040705",
"surface": "#0A140C",
"surface_2": "#0F1E11",
"panel_hi": "#122616",
"text": "#D9FFD2",
"text_dim": "#8FCB92",
"muted": "#6FA774",
"muted_2": "#4E7A53",
"on_accent": "#021004",
"border": "#2C6B36",
"border_hi": "#4FB45E",
"accent": "#7CFF7A",
"accent_2": "#3FB158",
"accent_3": "#C6FF6A",
"success": "#6CF08A",
"warning": "#E0B24A",
"error": "#FF6A47",
"info": "#79D9C0"
}
Typography:
{
"base_size": "17px",
"body_font": "Share Tech Mono",
"heading_font": "VT323",
"mono_font": "Share Tech Mono",
"heading_weight": "400",
"heading_transform": "uppercase",
"letter_spacing": "0.01em",
"line_height": 1.55,
"scale_ratio": 1.25,
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=VT323&display=swap"
}
## Visual character to preserve
- Every major container is a stacked terminal window with a #122616 chrome title strip, a 1px phosphor-green trace border, and a faint inner glow, so the interface reads like concurrent terminal panes rather than modern cards.
- Dense monospace typography uses bracketed uppercase labels, fixed-width columns, and a soft green text-glow on the brightest readings to mimic CRT phosphor bloom without reducing legibility.
- The page surface carries repeating horizontal scanlines, a faint phosphor grid, and radial vignette falloff so the full viewport feels like an active monitor.
- Status emphasis relies on brighter 3px left signal bars, bracketed [ LABEL ] headers, and ASCII-divider rule lines drawn with pseudo-elements, creating a command-log hierarchy instead of icon-led decoration.
- Interactive controls invert from green-outline to black-on-green on hover and focus, making each button, field, and tab feel like a terminal selection rendered through hardware phosphor.
## ShadSync visual profile
{
"family": "brutalist",
"material": "ink",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "still",
"density": "dense",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
}
## Signature component recipes
### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.
### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.
### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.
### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.
### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.
## Preview shots
- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.
## Implementation contract
- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/phosphor/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 a true-black CRT field as the dominant ground and reserve bright green for live text, active borders, and focus.; Make every container a stacked terminal window with a chrome title strip, a phosphor trace border, and an inner glow.; Expose logs, command prompts, checksums, PIDs, and status markers so the interface feels like an ongoing machine conversation.; Build hierarchy through monospace scale, bracketed labels, signal bars, and state inversion rather than colourful illustrations.; Keep body copy readable at 16-17px+ green-on-black and never set terminal microcopy below 11px.; Pair every colour status with a glowing dot, a label, or bracketed text for accessibility.
- Do not: Do not introduce cyan, purple, magenta, or synthwave gradients that push the language into generic cyberpunk.; Do not soften components with large radii, floating glass cards, or airy consumer-product spacing.; Do not let bright green become a decorative flood or a second body colour; it marks only what is live.; Do not hide controls behind ambiguous icons when a direct command label or text mode would be clearer.; Do not place essential information only in tiny microcopy, or use colour as the only signal.; Do not use glyph symbols (arrows, triangles) in copy; draw them as inline SVG primitives.
## 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 PhosphorShadcnKit() {
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">Phosphor</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
```
## Layout notes
{
"grid": "Desktop uses a 12-column grid with 24px gutters and max-width 1320px; the dominant mission window spans 7-8 columns while daemon panes occupy irregular 3-5 column fragments. The dashboard uses a 232px sidebar rail plus a fluid main grid. Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.",
"whitespace": "Whitespace is deliberate but tight inside windows (compact monospace rows) with larger gaps between major panes; consistent 8px-based spacing so dense data never feels chaotic, and titles always have padding above them.",
"density": "The system pairs tight terminal rows with calmer phosphor-field pauses; visual energy is localised to the live signal and the active mission window.",
"responsive": "Scanline and glow treatments scale down on mobile, windows stack in source order before monospace becomes unreadable, the cursor blink respects reduced motion, and non-essential nav links and table columns are hidden on narrow screens.",
"breakpoints": {
"mobile": "< 640px stacks all windows in a single column and hides non-essential nav",
"tablet": "640-1024px uses 6 columns",
"desktop": ">= 1024px uses the full 12-column asymmetric console",
"ultrawide": ">= 1600px caps and centres the contained content; only the full-bleed hero spans 100vw"
}
}
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"generator": "katagami-ui-compatibility-projection",
"generatedBy": "katagami-ui-projection",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": {
"id": "en-019efb51-33e2-7b10-ba3c-320a9c4bc1e3",
"name": "Phosphor",
"slug": "phosphor"
},
"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": [
"Every major container is a stacked terminal window with a #122616 chrome title strip, a 1px phosphor-green trace border, and a faint inner glow, so the interface reads like concurrent terminal panes rather than modern cards.",
"Dense monospace typography uses bracketed uppercase labels, fixed-width columns, and a soft green text-glow on the brightest readings to mimic CRT phosphor bloom without reducing legibility.",
"The page surface carries repeating horizontal scanlines, a faint phosphor grid, and radial vignette falloff so the full viewport feels like an active monitor.",
"Status emphasis relies on brighter 3px left signal bars, bracketed [ LABEL ] headers, and ASCII-divider rule lines drawn with pseudo-elements, creating a command-log hierarchy instead of icon-led decoration.",
"Interactive controls invert from green-outline to black-on-green on hover and focus, making each button, field, and tab feel like a terminal selection rendered through hardware phosphor."
],
"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": "Phosphor 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 a true-black CRT field as the dominant ground and reserve bright green for live text, active borders, and focus.",
"Make every container a stacked terminal window with a chrome title strip, a phosphor trace border, and an inner glow.",
"Expose logs, command prompts, checksums, PIDs, and status markers so the interface feels like an ongoing machine conversation.",
"Build hierarchy through monospace scale, bracketed labels, signal bars, and state inversion rather than colourful illustrations.",
"Keep body copy readable at 16-17px+ green-on-black and never set terminal microcopy below 11px.",
"Pair every colour status with a glowing dot, a label, or bracketed text for accessibility."
],
"dont": [
"Do not introduce cyan, purple, magenta, or synthwave gradients that push the language into generic cyberpunk.",
"Do not soften components with large radii, floating glass cards, or airy consumer-product spacing.",
"Do not let bright green become a decorative flood or a second body colour; it marks only what is live.",
"Do not hide controls behind ambiguous icons when a direct command label or text mode would be clearer.",
"Do not place essential information only in tiny microcopy, or use colour as the only signal.",
"Do not use glyph symbols (arrows, triangles) in copy; draw them as inline SVG primitives."
]
}
}