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 calibrated signal bench: a readout strap or sidebar rail of scope settings, a dominant trace/scope window, and supporting capture-log and channel panels. The glowing mint waveform is the spine — it divides sections and backs the numbers. Layouts differ per artifact (single bench, image hero + sections, sidebar dashboard); never three equal cards.
Hierarchy comes from the trace first, then large Chakra Petch headings, then uppercase Plex Mono [ LABEL ] straps, then fixed-width monospace data. Cool mint carries structure and live state; teal carries the reference channel; one amber beam-dot marks the single locked element per view.
Medium-high density with compact monospace rows and exact alignment, paired with calmer petrol-field pauses so dense data reads as instrumented, not chaotic.
Desktop contained content caps at ~1280-1320px with 24px gutters; the embodiment is a single scrolling bench, the dashboard a 232px sidebar rail plus an asymmetric main grid (a 1.85fr live-scope window beside 1fr daemon panes). Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.
Deliberate and tight inside panels (compact monospace rows) with larger gaps between major sections; consistent 8px-based spacing and always padding above titles.
Tight scope rows alternate with calmer petrol-field pauses; visual energy localises to the live trace and the amber beam-dot.
Renders from ~390px to 2560px+. Mobile stacks to one column, collapses the rail to a top nav, hides non-essential readouts and table columns, scrolls wide tables inside their own panel, and never overflows horizontally. Ultra-wide caps and centres contained content; only the hero spans 100vw.
lumiphore
Subjects rendered as glowing phosphor-green CRT oscilloscope vector traces on a true-black field — luminous monochrome scan-strokes that bloom and halate, with scanline texture and a gentle vignette. The landing hero is a wide composite waveform on a measurement grid, the active trace weighted right with a warm beam-peak, and the left third receding into calm dark phosphor haze for the overlay headline.
Full-viewport landing hero driven by background-image: var(--hero-image); the waveform fills the frame edge to edge, weighted to the right, with a graduated petrol haze carrying the left-side overlay rather than a solid scrim.
# Beamline ## Philosophy Beamline is a signal-analysis interface language for the reverse-engineer's bench. It reads a screen the way an oscilloscope reads a wire: a glowing mint waveform is the spine of every layout, channels are armed by hand, and one warm amber beam-dot rides the trace to mark the only record that is locked right now. A parallel reimagination of Retro Terminal Hacker — it keeps the hacker-bench subject and the phosphor-green Lumiphore technique, but trades the stacked terminal-window metaphor for a calibrated instrument-bench one: a calm scope face, not a console of nested windows. ### Values - the trace is the hierarchy — a glowing waveform divides sections, plots numbers, and carries the live marker - a deep petrol-graphite ground (never true black, never white) so the phosphor traces are the brightest thing on screen - one warm amber beam-dot per view marks what is locked; everything else stays cool mint and teal - instrument-bench honesty: expose frames, offsets, CRC, lock state, and live channels - dense but legible — high-contrast phosphor text, exact alignment, body never below 17px - soft 16px scope panels with corner ticks and inner glow, never hard terminal windows or heavy borders ### Anti-Values - true-black or white grounds; cyan-neon, purple, or synthwave gradients - stacked terminal windows, chrome title strips, and left signal bars (the refinement's look) - mint or amber spread as a decorative flood instead of a highlighter - single-side accent edges on cards, nested cards, or navigation boxed into a pill - state hidden behind ambiguous icons instead of a labelled channel or readout ### Visual Character - A glowing mint waveform is the ownable spine of every layout — it is the section divider, the chart, and the backdrop to headline numbers, drawn as inline SVG so it recolours on palette swap. - One warm amber beam-dot rides the peak of the live trace, often with a faint halo ring — the electron beam caught mid-sweep on the only locked record, and the single saturated colour in view. - Panels are soft-cornered (16px) phosphor scope modules on a deep petrol-graphite ground, each with a 1px inset hairline, a faint inner phosphor glow, and small teal corner registration ticks — calm scope faces, never hard windows. - Display type is Chakra Petch, a squared instrument-panel sans, paired with IBM Plex Mono for hex frames, offsets, timestamps, and readout straps; hard typographic contrast carries hierarchy. - Channels read like scope probes: a lit mint or teal chip is a folded live trace, a dark chip is parked, so the interface always shows what is being captured. ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#0A1311` | | surface | `#0E1A16` | | surface_2 | `#13241E` | | panel_hi | `#173026` | | text | `#DDF5E6` | | text_dim | `#93BBA6` | | muted | `#6A917F` | | muted_2 | `#4C6B5C` | | accent | `#54F0A8` | | accent_2 | `#3FD6C4` | | peak | `#FFC24B` | | on_accent | `#04130C` | | border | `#1E3A30` | | border_hi | `#2C5A47` | | success | `#54F0A8` | | warning | `#FFC24B` | | error | `#FF6B5A` | | info | `#3FD6C4` | ### Typography - **Base Size**: 17px - **Body Font**: IBM Plex Mono - **Heading Font**: Chakra Petch - **Mono Font**: IBM Plex Mono - **Heading Weight**: 700 - **Heading Transform**: none - **Letter Spacing**: 0.01em - **Line Height**: 1.55 - **Scale Ratio**: 1.25 - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap ### Radii - **None**: 0px - **Sm**: 0px - **Md**: 16px - **Lg**: 24px - **Full**: 9999px ### Shadows - **Sm**: inset 0 0 0 1px rgba(30,58,48,1) - **Md**: inset 0 0 0 1px #1E3A30, inset 0 0 48px rgba(84,240,168,0.03) - **Lg**: inset 0 0 0 1px #1E3A30, inset 0 0 70px rgba(84,240,168,0.04) - **Glow**: 0 0 18px rgba(84,240,168,0.28) - **Glow Amber**: 0 0 16px rgba(255,194,75,0.40) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96,128] ### Surfaces - **Bg Pattern**: Deep petrol-graphite field carrying a very faint phosphor measurement grid (opacity below 5%) so the waveform traces read as the brightest light, never a flat web canvas. - **Card Style**: Soft-cornered 16px phosphor scope panels: a 1px inset hairline border, a faint inner phosphor glow, and small teal corner registration ticks. Captions are uppercase Plex Mono [ LABEL ] straps in amber above a Chakra Petch heading. No chrome title strips, no nested cards, no single-side accent edge. - **Treatment**: Cool mint-and-teal phosphor traces on a deep petrol ground, with one warm amber beam-dot for the live element and a soft electron-beam glow on live controls. ### Borders - **Default Width**: 1px - **Accent Width**: 1.5px - **Style**: solid - **Character**: Inset phosphor hairlines and near-invisible interior rules; teal corner registration ticks instead of full borders; focus is a 1.5px mint ring plus glow. Never a heavy border, never a single decorative edge. ### Motion - **Duration**: 160ms - **Easing**: cubic-bezier(.2,.8,.2,1) - **Philosophy**: Motion is the electron beam settling: a one-step reveal as sections enter, a cursor-quiet feel, no parallax or looping decoration. The fully-settled state renders with no JavaScript — the reveal is layered on behind a class on <html> and always falls back to visible, and respects prefers-reduced-motion. ## Rules ### Composition Compose the screen as a calibrated signal bench: a readout strap or sidebar rail of scope settings, a dominant trace/scope window, and supporting capture-log and channel panels. The glowing mint waveform is the spine — it divides sections and backs the numbers. Layouts differ per artifact (single bench, image hero + sections, sidebar dashboard); never three equal cards. ### Hierarchy Hierarchy comes from the trace first, then large Chakra Petch headings, then uppercase Plex Mono [ LABEL ] straps, then fixed-width monospace data. Cool mint carries structure and live state; teal carries the reference channel; one amber beam-dot marks the single locked element per view. ### Density Medium-high density with compact monospace rows and exact alignment, paired with calmer petrol-field pauses so dense data reads as instrumented, not chaotic. ### Signature - The beam trace: a glowing mint waveform drawn as inline SVG is the spine of every layout — the section divider, the chart, and the backdrop to headline numbers. - The sweeping beam-dot: one warm amber dot rides the peak of the live trace, often with a halo ring, marking the only locked record and the single saturated colour in view. - Soft scope panels: 16px phosphor modules on a petrol ground with an inset hairline, inner glow, and teal corner registration ticks — calm scope faces, never hard terminal windows. - Armed channels: inputs read like scope probes; a lit mint/teal chip is a folded live trace, a dark chip is parked, so capture state is always visible. ## Layout ### Grid Desktop contained content caps at ~1280-1320px with 24px gutters; the embodiment is a single scrolling bench, the dashboard a 232px sidebar rail plus an asymmetric main grid (a 1.85fr live-scope window beside 1fr daemon panes). Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container. ### Whitespace Deliberate and tight inside panels (compact monospace rows) with larger gaps between major sections; consistent 8px-based spacing and always padding above titles. ### Density Tight scope rows alternate with calmer petrol-field pauses; visual energy localises to the live trace and the amber beam-dot. ### Responsive Renders from ~390px to 2560px+. Mobile stacks to one column, collapses the rail to a top nav, hides non-essential readouts and table columns, scrolls wide tables inside their own panel, and never overflows horizontally. Ultra-wide caps and centres contained content; only the hero spans 100vw. ### Breakpoints - **Mobile**: < 640px single column, rail collapses, non-essential readouts hidden - **Tablet**: 640-1024px reduced multi-column - **Desktop**: >= 1024px full bench / sidebar layout - **Ultrawide**: >= 1600px caps and centres contained content; only the hero spans 100vw ## Guidance ### Do - Keep the deep petrol-graphite ground dominant and let the phosphor traces be the light. - Make the glowing mint waveform the structural spine — divider, chart, and metric backdrop. - Reserve the warm amber beam-dot for the single live or locked element per view. - Expose frames, offsets, CRC, lock state, and armed channels so the interface reads like an instrument. - Frame panels with a soft inset hairline, an inner phosphor glow, and teal corner ticks. - Keep body copy at 17px+ phosphor text and pair every status colour with a glowing dot or label. ### Don't - Do not use true-black or white grounds, or add cyan-neon, purple, or synthwave gradients. - Do not reproduce stacked terminal windows, chrome title strips, or left signal bars. - Do not let mint or amber become a decorative flood instead of a highlighter. - Do not put a single accent edge on a card, nest cards, or box navigation into a floating pill. - Do not hide controls behind ambiguous icons when a labelled channel or readout is clearer. - Do not set body below 17px or microcopy below 11px; do not use glyph arrows in copy — draw inline SVG. ### Accessibility Maintain WCAG AA contrast with phosphor #DDF5E6 text on the petrol field; keep mint and amber supplemental to a label or glowing dot, never colour alone; provide a visible mint focus ring plus glow; never set monospace microcopy below 11px; respect prefers-reduced-motion for the reveal. ## Imagery Direction ### Pairs With lumiphore ### Summary Subjects rendered as glowing phosphor-green CRT oscilloscope vector traces on a true-black field — luminous monochrome scan-strokes that bloom and halate, with scanline texture and a gentle vignette. The landing hero is a wide composite waveform on a measurement grid, the active trace weighted right with a warm beam-peak, and the left third receding into calm dark phosphor haze for the overlay headline. ### Subjects - composite oscilloscope waveform - Lissajous figure - signal constellation - swept sine-and-square trace - phosphor decay envelope ### Usage Full-viewport landing hero driven by background-image: var(--hero-image); the waveform fills the frame edge to edge, weighted to the right, with a graduated petrol haze carrying the left-side overlay rather than a solid scrim.
---
version: "alpha"
name: "Beamline"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#0A1311"
surface: "#0E1A16"
surface_2: "#13241E"
panel_hi: "#173026"
text: "#DDF5E6"
text_dim: "#93BBA6"
muted: "#6A917F"
muted_2: "#4C6B5C"
accent: "#54F0A8"
accent_2: "#3FD6C4"
peak: "#FFC24B"
on_accent: "#04130C"
border: "#1E3A30"
border_hi: "#2C5A47"
success: "#54F0A8"
warning: "#FFC24B"
error: "#FF6B5A"
info: "#3FD6C4"
typography:
headline-lg:
fontFamily: "Chakra Petch"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "0.01em"
headline-md:
fontFamily: "Chakra Petch"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "0.01em"
body-md:
fontFamily: "IBM Plex Mono"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "0.01em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "0px"
md: "16px"
lg: "24px"
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-accent:
backgroundColor: "{colors.accent}"
color-reference-accent_2:
backgroundColor: "{colors.accent_2}"
color-reference-peak:
backgroundColor: "{colors.peak}"
color-reference-on_accent:
backgroundColor: "{colors.on_accent}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-border_hi:
backgroundColor: "{colors.border_hi}"
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"
---
# Beamline
## Overview
Beamline is a signal-analysis interface language for the reverse-engineer's bench. It reads a screen the way an oscilloscope reads a wire: a glowing mint waveform is the spine of every layout, channels are armed by hand, and one warm amber beam-dot rides the trace to mark the only record that is locked right now. A parallel reimagination of Retro Terminal Hacker — it keeps the hacker-bench subject and the phosphor-green Lumiphore technique, but trades the stacked terminal-window metaphor for a calibrated instrument-bench one: a calm scope face, not a console of nested windows.
### Values
- the trace is the hierarchy — a glowing waveform divides sections, plots numbers, and carries the live marker
- a deep petrol-graphite ground (never true black, never white) so the phosphor traces are the brightest thing on screen
- one warm amber beam-dot per view marks what is locked; everything else stays cool mint and teal
- instrument-bench honesty: expose frames, offsets, CRC, lock state, and live channels
- dense but legible — high-contrast phosphor text, exact alignment, body never below 17px
- soft 16px scope panels with corner ticks and inner glow, never hard terminal windows or heavy borders
### Anti-Values
- true-black or white grounds; cyan-neon, purple, or synthwave gradients
- stacked terminal windows, chrome title strips, and left signal bars (the refinement's look)
- mint or amber spread as a decorative flood instead of a highlighter
- single-side accent edges on cards, nested cards, or navigation boxed into a pill
- state hidden behind ambiguous icons instead of a labelled channel or readout
### Visual Character
- A glowing mint waveform is the ownable spine of every layout — it is the section divider, the chart, and the backdrop to headline numbers, drawn as inline SVG so it recolours on palette swap.
- One warm amber beam-dot rides the peak of the live trace, often with a faint halo ring — the electron beam caught mid-sweep on the only locked record, and the single saturated colour in view.
- Panels are soft-cornered (16px) phosphor scope modules on a deep petrol-graphite ground, each with a 1px inset hairline, a faint inner phosphor glow, and small teal corner registration ticks — calm scope faces, never hard windows.
- Display type is Chakra Petch, a squared instrument-panel sans, paired with IBM Plex Mono for hex frames, offsets, timestamps, and readout straps; hard typographic contrast carries hierarchy.
- Channels read like scope probes: a lit mint or teal chip is a folded live trace, a dark chip is parked, so the interface always shows what is being captured.
## 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 | `#0A1311` |
| surface | `#0E1A16` |
| surface_2 | `#13241E` |
| panel_hi | `#173026` |
| text | `#DDF5E6` |
| text_dim | `#93BBA6` |
| muted | `#6A917F` |
| muted_2 | `#4C6B5C` |
| accent | `#54F0A8` |
| accent_2 | `#3FD6C4` |
| peak | `#FFC24B` |
| on_accent | `#04130C` |
| border | `#1E3A30` |
| border_hi | `#2C5A47` |
| success | `#54F0A8` |
| warning | `#FFC24B` |
| error | `#FF6B5A` |
| info | `#3FD6C4` |
## Typography
- **Headline-Lg**: Chakra Petch, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Chakra Petch, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Mono, 17px, weight 400, line-height 1.55.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`
- **Step-9**: `128px`
### Grid
Desktop contained content caps at ~1280-1320px with 24px gutters; the embodiment is a single scrolling bench, the dashboard a 232px sidebar rail plus an asymmetric main grid (a 1.85fr live-scope window beside 1fr daemon panes). Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.
### Whitespace
Deliberate and tight inside panels (compact monospace rows) with larger gaps between major sections; consistent 8px-based spacing and always padding above titles.
### Density
Tight scope rows alternate with calmer petrol-field pauses; visual energy localises to the live trace and the amber beam-dot.
### Responsive
Renders from ~390px to 2560px+. Mobile stacks to one column, collapses the rail to a top nav, hides non-essential readouts and table columns, scrolls wide tables inside their own panel, and never overflows horizontally. Ultra-wide caps and centres contained content; only the hero spans 100vw.
### Breakpoints
- **Mobile**: < 640px single column, rail collapses, non-essential readouts hidden
- **Tablet**: 640-1024px reduced multi-column
- **Desktop**: >= 1024px full bench / sidebar layout
- **Ultrawide**: >= 1600px caps and centres contained content; only the hero spans 100vw
## Elevation & Depth
### Shadows
- **Sm**: inset 0 0 0 1px rgba(30,58,48,1)
- **Md**: inset 0 0 0 1px #1E3A30, inset 0 0 48px rgba(84,240,168,0.03)
- **Lg**: inset 0 0 0 1px #1E3A30, inset 0 0 70px rgba(84,240,168,0.04)
- **Glow**: 0 0 18px rgba(84,240,168,0.28)
- **Glow Amber**: 0 0 16px rgba(255,194,75,0.40)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Bg Pattern**: Deep petrol-graphite field carrying a very faint phosphor measurement grid (opacity below 5%) so the waveform traces read as the brightest light, never a flat web canvas.
- **Card Style**: Soft-cornered 16px phosphor scope panels: a 1px inset hairline border, a faint inner phosphor glow, and small teal corner registration ticks. Captions are uppercase Plex Mono [ LABEL ] straps in amber above a Chakra Petch heading. No chrome title strips, no nested cards, no single-side accent edge.
- **Treatment**: Cool mint-and-teal phosphor traces on a deep petrol ground, with one warm amber beam-dot for the live element and a soft electron-beam glow on live controls.
### Borders
- **Default Width**: 1px
- **Accent Width**: 1.5px
- **Style**: solid
- **Character**: Inset phosphor hairlines and near-invisible interior rules; teal corner registration ticks instead of full borders; focus is a 1.5px mint ring plus glow. Never a heavy border, never a single decorative edge.
## Components
### Composition
Compose the screen as a calibrated signal bench: a readout strap or sidebar rail of scope settings, a dominant trace/scope window, and supporting capture-log and channel panels. The glowing mint waveform is the spine — it divides sections and backs the numbers. Layouts differ per artifact (single bench, image hero + sections, sidebar dashboard); never three equal cards.
### Hierarchy
Hierarchy comes from the trace first, then large Chakra Petch headings, then uppercase Plex Mono [ LABEL ] straps, then fixed-width monospace data. Cool mint carries structure and live state; teal carries the reference channel; one amber beam-dot marks the single locked element per view.
### Density
Medium-high density with compact monospace rows and exact alignment, paired with calmer petrol-field pauses so dense data reads as instrumented, not chaotic.
### Signature
- The beam trace: a glowing mint waveform drawn as inline SVG is the spine of every layout — the section divider, the chart, and the backdrop to headline numbers.
- The sweeping beam-dot: one warm amber dot rides the peak of the live trace, often with a halo ring, marking the only locked record and the single saturated colour in view.
- Soft scope panels: 16px phosphor modules on a petrol ground with an inset hairline, inner glow, and teal corner registration ticks — calm scope faces, never hard terminal windows.
- Armed channels: inputs read like scope probes; a lit mint/teal chip is a folded live trace, a dark chip is parked, so capture state is always visible.
## 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-019efb6c-d15f-7653-9d40-f170a87a04da/DESIGN.with-shadcn.md`.
The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.
Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.
## Do's and Don'ts
- Do Keep the deep petrol-graphite ground dominant and let the phosphor traces be the light.
- Do Make the glowing mint waveform the structural spine — divider, chart, and metric backdrop.
- Do Reserve the warm amber beam-dot for the single live or locked element per view.
- Do Expose frames, offsets, CRC, lock state, and armed channels so the interface reads like an instrument.
- Do Frame panels with a soft inset hairline, an inner phosphor glow, and teal corner ticks.
- Do Keep body copy at 17px+ phosphor text and pair every status colour with a glowing dot or label.
- Don't Do not use true-black or white grounds, or add cyan-neon, purple, or synthwave gradients.
- Don't Do not reproduce stacked terminal windows, chrome title strips, or left signal bars.
- Don't Do not let mint or amber become a decorative flood instead of a highlighter.
- Don't Do not put a single accent edge on a card, nest cards, or box navigation into a floating pill.
- Don't Do not hide controls behind ambiguous icons when a labelled channel or readout is clearer.
- Don't Do not set body below 17px or microcopy below 11px; do not use glyph arrows in copy — draw inline SVG.
### Accessibility
Maintain WCAG AA contrast with phosphor #DDF5E6 text on the petrol field; keep mint and amber supplemental to a label or glowing dot, never colour alone; provide a visible mint focus ring plus glow; never set monospace microcopy below 11px; respect prefers-reduced-motion for the reveal.
## Imagery Direction
### Pairs With
lumiphore
### Summary
Subjects rendered as glowing phosphor-green CRT oscilloscope vector traces on a true-black field — luminous monochrome scan-strokes that bloom and halate, with scanline texture and a gentle vignette. The landing hero is a wide composite waveform on a measurement grid, the active trace weighted right with a warm beam-peak, and the left third receding into calm dark phosphor haze for the overlay headline.
### Subjects
- composite oscilloscope waveform
- Lissajous figure
- signal constellation
- swept sine-and-square trace
- phosphor decay envelope
### Usage
Full-viewport landing hero driven by background-image: var(--hero-image); the waveform fills the frame edge to edge, weighted to the right, with a graduated petrol haze carrying the left-side overlay rather than a solid scrim.
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "beamline",
"type": "registry:theme",
"title": "Beamline shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#0A1311",
"foreground": "#DDF5E6",
"card": "#0E1A16",
"card-foreground": "#DDF5E6",
"popover": "#0E1A16",
"popover-foreground": "#DDF5E6",
"primary": "#DDF5E6",
"primary-foreground": "#111111",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#6A917F",
"muted-foreground": "#DDF5E6",
"accent": "#54F0A8",
"accent-foreground": "#111111",
"destructive": "#FF6B5A",
"border": "#1E3A30",
"input": "#1E3A30",
"ring": "#54F0A8",
"chart-1": "#DDF5E6",
"chart-2": "#f4f4f5",
"chart-3": "#54F0A8",
"chart-4": "#54F0A8",
"chart-5": "#FFC24B",
"sidebar": "#0E1A16",
"sidebar-foreground": "#DDF5E6",
"sidebar-primary": "#DDF5E6",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#3FD6C4",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#1E3A30",
"sidebar-ring": "#54F0A8",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#DDF5E6",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#54F0A8",
"accent-foreground": "#111111",
"destructive": "#FF6B5A",
"border": "#303642",
"input": "#303642",
"ring": "#54F0A8",
"chart-1": "#DDF5E6",
"chart-2": "#f4f4f5",
"chart-3": "#54F0A8",
"chart-4": "#54F0A8",
"chart-5": "#FFC24B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#DDF5E6",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#54F0A8",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#54F0A8",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019efb6c-d15f-7653-9d40-f170a87a04da",
"slug": "beamline",
"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",
"bg",
"border",
"border_hi",
"error",
"info",
"muted",
"muted_2",
"on_accent",
"panel_hi",
"peak",
"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": [
"glow",
"glow_amber",
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Agent-generated
produced by claude-opus-4-8 · sourced by claude-opus-4-8 · images by gpt-image-2
Keep Beamlineand 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: #0A1311;
--foreground: #DDF5E6;
--card: #0E1A16;
--card-foreground: #DDF5E6;
--popover: #0E1A16;
--popover-foreground: #DDF5E6;
--primary: #DDF5E6;
--primary-foreground: #111111;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #6A917F;
--muted-foreground: #DDF5E6;
--accent: #54F0A8;
--accent-foreground: #111111;
--destructive: #FF6B5A;
--border: #1E3A30;
--input: #1E3A30;
--ring: #54F0A8;
--chart-1: #DDF5E6;
--chart-2: #f4f4f5;
--chart-3: #54F0A8;
--chart-4: #54F0A8;
--chart-5: #FFC24B;
--sidebar: #0E1A16;
--sidebar-foreground: #DDF5E6;
--sidebar-primary: #DDF5E6;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #3FD6C4;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #1E3A30;
--sidebar-ring: #54F0A8;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #DDF5E6;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #54F0A8;
--accent-foreground: #111111;
--destructive: #FF6B5A;
--border: #303642;
--input: #303642;
--ring: #54F0A8;
--chart-1: #DDF5E6;
--chart-2: #f4f4f5;
--chart-3: #54F0A8;
--chart-4: #54F0A8;
--chart-5: #FFC24B;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #DDF5E6;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #54F0A8;
--sidebar-accent-foreground: #111111;
--sidebar-border: #303642;
--sidebar-ring: #54F0A8;
--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 BeamlineShadcnKit() {
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">Beamline</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": "graticule",
"type": "registry:theme",
"author": "katagami-agent",
"cssVars": {
"theme": {
"font-sans": "Chakra Petch, system-ui, sans-serif",
"font-mono": "IBM Plex Mono, ui-monospace, monospace",
"radius": "16px"
},
"light": {
"background": "#0A1311",
"foreground": "#DDF5E6",
"card": "#0E1A16",
"card-foreground": "#DDF5E6",
"popover": "#13241E",
"popover-foreground": "#DDF5E6",
"primary": "#54F0A8",
"primary-foreground": "#04130C",
"secondary": "#13241E",
"secondary-foreground": "#DDF5E6",
"muted": "#13241E",
"muted-foreground": "#6A917F",
"accent": "#3FD6C4",
"accent-foreground": "#04130C",
"destructive": "#FF6B5A",
"destructive-foreground": "#1A0703",
"border": "#1E3A30",
"input": "#13241E",
"ring": "#54F0A8",
"chart-1": "#54F0A8",
"chart-2": "#3FD6C4",
"chart-3": "#FFC24B",
"chart-4": "#93BBA6",
"chart-5": "#2C5A47",
"sidebar": "#0E1A16",
"sidebar-foreground": "#93BBA6",
"sidebar-primary": "#54F0A8",
"sidebar-primary-foreground": "#04130C",
"sidebar-accent": "#173026",
"sidebar-accent-foreground": "#54F0A8",
"sidebar-border": "#1E3A30",
"sidebar-ring": "#54F0A8"
},
"dark": {
"background": "#0A1311",
"foreground": "#DDF5E6",
"card": "#0E1A16",
"card-foreground": "#DDF5E6",
"popover": "#13241E",
"popover-foreground": "#DDF5E6",
"primary": "#54F0A8",
"primary-foreground": "#04130C",
"secondary": "#13241E",
"secondary-foreground": "#DDF5E6",
"muted": "#13241E",
"muted-foreground": "#6A917F",
"accent": "#3FD6C4",
"accent-foreground": "#04130C",
"destructive": "#FF6B5A",
"destructive-foreground": "#1A0703",
"border": "#1E3A30",
"input": "#13241E",
"ring": "#54F0A8",
"chart-1": "#54F0A8",
"chart-2": "#3FD6C4",
"chart-3": "#FFC24B",
"chart-4": "#93BBA6",
"chart-5": "#2C5A47",
"sidebar": "#0E1A16",
"sidebar-foreground": "#93BBA6",
"sidebar-primary": "#54F0A8",
"sidebar-primary-foreground": "#04130C",
"sidebar-accent": "#173026",
"sidebar-accent-foreground": "#54F0A8",
"sidebar-border": "#1E3A30",
"sidebar-ring": "#54F0A8"
}
}
}
# Beamline shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019efb6c-d15f-7653-9d40-f170a87a04da`
Slug: `beamline`
## Intent
Beamline is a signal-analysis interface language for the reverse-engineer's bench. It reads a screen the way an oscilloscope reads a wire: a glowing mint waveform is the spine of every layout, channels are armed by hand, and one warm amber beam-dot rides the trace to mark the only record that is locked right now. A parallel reimagination of Retro Terminal Hacker — it keeps the hacker-bench subject and the phosphor-green Lumiphore technique, but trades the stacked terminal-window metaphor for a calibrated instrument-bench one: a calm scope face, not a console of nested windows.
## 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": "#0A1311",
"surface": "#0E1A16",
"surface_2": "#13241E",
"panel_hi": "#173026",
"text": "#DDF5E6",
"text_dim": "#93BBA6",
"muted": "#6A917F",
"muted_2": "#4C6B5C",
"accent": "#54F0A8",
"accent_2": "#3FD6C4",
"peak": "#FFC24B",
"on_accent": "#04130C",
"border": "#1E3A30",
"border_hi": "#2C5A47",
"success": "#54F0A8",
"warning": "#FFC24B",
"error": "#FF6B5A",
"info": "#3FD6C4"
}
Typography:
{
"base_size": "17px",
"body_font": "IBM Plex Mono",
"heading_font": "Chakra Petch",
"mono_font": "IBM Plex Mono",
"heading_weight": "700",
"heading_transform": "none",
"letter_spacing": "0.01em",
"line_height": 1.55,
"scale_ratio": 1.25,
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap"
}
## Visual character to preserve
- A glowing mint waveform is the ownable spine of every layout — it is the section divider, the chart, and the backdrop to headline numbers, drawn as inline SVG so it recolours on palette swap.
- One warm amber beam-dot rides the peak of the live trace, often with a faint halo ring — the electron beam caught mid-sweep on the only locked record, and the single saturated colour in view.
- Panels are soft-cornered (16px) phosphor scope modules on a deep petrol-graphite ground, each with a 1px inset hairline, a faint inner phosphor glow, and small teal corner registration ticks — calm scope faces, never hard windows.
- Display type is Chakra Petch, a squared instrument-panel sans, paired with IBM Plex Mono for hex frames, offsets, timestamps, and readout straps; hard typographic contrast carries hierarchy.
- Channels read like scope probes: a lit mint or teal chip is a folded live trace, a dark chip is parked, so the interface always shows what is being captured.
## ShadSync visual profile
{
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": false,
"stickerBadges": true,
"motion": "still",
"density": "balanced",
"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/beamline/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: Keep the deep petrol-graphite ground dominant and let the phosphor traces be the light.; Make the glowing mint waveform the structural spine — divider, chart, and metric backdrop.; Reserve the warm amber beam-dot for the single live or locked element per view.; Expose frames, offsets, CRC, lock state, and armed channels so the interface reads like an instrument.; Frame panels with a soft inset hairline, an inner phosphor glow, and teal corner ticks.; Keep body copy at 17px+ phosphor text and pair every status colour with a glowing dot or label.
- Do not: Do not use true-black or white grounds, or add cyan-neon, purple, or synthwave gradients.; Do not reproduce stacked terminal windows, chrome title strips, or left signal bars.; Do not let mint or amber become a decorative flood instead of a highlighter.; Do not put a single accent edge on a card, nest cards, or box navigation into a floating pill.; Do not hide controls behind ambiguous icons when a labelled channel or readout is clearer.; Do not set body below 17px or microcopy below 11px; do not use glyph arrows in copy — draw inline SVG.
## 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 BeamlineShadcnKit() {
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">Beamline</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 contained content caps at ~1280-1320px with 24px gutters; the embodiment is a single scrolling bench, the dashboard a 232px sidebar rail plus an asymmetric main grid (a 1.85fr live-scope window beside 1fr daemon panes). Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.",
"whitespace": "Deliberate and tight inside panels (compact monospace rows) with larger gaps between major sections; consistent 8px-based spacing and always padding above titles.",
"density": "Tight scope rows alternate with calmer petrol-field pauses; visual energy localises to the live trace and the amber beam-dot.",
"responsive": "Renders from ~390px to 2560px+. Mobile stacks to one column, collapses the rail to a top nav, hides non-essential readouts and table columns, scrolls wide tables inside their own panel, and never overflows horizontally. Ultra-wide caps and centres contained content; only the hero spans 100vw.",
"breakpoints": {
"mobile": "< 640px single column, rail collapses, non-essential readouts hidden",
"tablet": "640-1024px reduced multi-column",
"desktop": ">= 1024px full bench / sidebar layout",
"ultrawide": ">= 1600px caps and centres contained content; only the 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-019efb6c-d15f-7653-9d40-f170a87a04da",
"name": "Beamline",
"slug": "beamline"
},
"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": [
"A glowing mint waveform is the ownable spine of every layout — it is the section divider, the chart, and the backdrop to headline numbers, drawn as inline SVG so it recolours on palette swap.",
"One warm amber beam-dot rides the peak of the live trace, often with a faint halo ring — the electron beam caught mid-sweep on the only locked record, and the single saturated colour in view.",
"Panels are soft-cornered (16px) phosphor scope modules on a deep petrol-graphite ground, each with a 1px inset hairline, a faint inner phosphor glow, and small teal corner registration ticks — calm scope faces, never hard windows.",
"Display type is Chakra Petch, a squared instrument-panel sans, paired with IBM Plex Mono for hex frames, offsets, timestamps, and readout straps; hard typographic contrast carries hierarchy.",
"Channels read like scope probes: a lit mint or teal chip is a folded live trace, a dark chip is parked, so the interface always shows what is being captured."
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": false,
"stickerBadges": true,
"motion": "still",
"density": "balanced",
"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": "Beamline 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": [
"Keep the deep petrol-graphite ground dominant and let the phosphor traces be the light.",
"Make the glowing mint waveform the structural spine — divider, chart, and metric backdrop.",
"Reserve the warm amber beam-dot for the single live or locked element per view.",
"Expose frames, offsets, CRC, lock state, and armed channels so the interface reads like an instrument.",
"Frame panels with a soft inset hairline, an inner phosphor glow, and teal corner ticks.",
"Keep body copy at 17px+ phosphor text and pair every status colour with a glowing dot or label."
],
"dont": [
"Do not use true-black or white grounds, or add cyan-neon, purple, or synthwave gradients.",
"Do not reproduce stacked terminal windows, chrome title strips, or left signal bars.",
"Do not let mint or amber become a decorative flood instead of a highlighter.",
"Do not put a single accent edge on a card, nest cards, or box navigation into a floating pill.",
"Do not hide controls behind ambiguous icons when a labelled channel or readout is clearer.",
"Do not set body below 17px or microcopy below 11px; do not use glyph arrows in copy — draw inline SVG."
]
}
}