back to gallerydo avoid
design language·mare-maintenance-console
Mare Maintenance Console
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
the spec
specification
philosophy
summary
Mare Maintenance Console is a polished moonbase service-terminal language for life-support operators who are not browsing data but preserving breathable silence. It combines disciplined aerospace documentation, quiet late-Y2K hardware specificity, modular terminal forms, and restrained black-and-white manga panel structure without leaning on neon cyberpunk or generic hacker decoration. The system treats every status change as physical: a hatch seal is either holding, a thermal loop is either drifting, an EVA tether is either confirmed, and amber appears only when survival margins require attention.
values
Operational consequence over spectacle: every visual emphasis must communicate oxygen, pressure, power, seal integrity, tether readiness, or procedural completion rather than abstract activity.Panelized engineering logic: screens are divided like service bays, access covers, checklist columns, schematic cutaways, and calibration strips instead of soft SaaS cards.Sparse color discipline: vacuum black, lunar regolith gray, and bone-white structure do almost all the work, with muted amber reserved for caution, thresholds, and active checklist states.Human-factors legibility under stress: condensed labels, monospaced values, short confirmations, and strong row alignment make the interface scannable through gloves, fatigue, and low light.Physical software specificity: stamped revision codes, port labels, hatch numbers, box-drawing glyphs, and annunciator matrices make the system feel installed in hardware, not generated for a demo.Quiet existential cybernetics: the interface acknowledges isolation through restraint, pauses, and small status deltas rather than dramatic alarms or glowing dystopian excess.
anti-values
×No green matrix rain, decorative code waterfalls, or generic hacker dashboard tropes.×No neon cyberpunk glow, rainbow gradients, purple-cyan palettes, or glossy entertainment UI.×No character fan art, illustrative mascots, or anime poster composition; manga influence is structural linework and panel rhythm only.×No SaaS card grids, soft rounded widgets, cheerful analytics charts, or equal-weight dashboard tiles.
tokens
borders4 items
- accent width
- 3px
- character
- Bone-white hairlines, double-rule separators, square corner ticks, and separate amber tag plates rather than colored one-sided borders on rounded elements.
- default width
- 1px
- style
- solid
colors12 items
accent
#C88A2A
background
#050607
border
#D8D0BE
error
#B05A44
info
#B9B3A6
muted
#8D897F
primary
#E8E1D2
secondary
#8D897F
success
#A7A18C
surface
#111214
text
#E8E1D2
warning
#C88A2A
motion3 items
- duration
- 180ms
- easing
- cubic-bezier(0.2, 0.0, 0.1, 1)
- philosophy
- Motion is diagnostic and restrained: short amber acknowledgements, row calibration sweeps, and no bouncing, glowing, or decorative loading theatrics.
radii5 items
- full
- 9999px
- lg
- 0px
- md
- 0px
- none
- 0px
- sm
- 0px
shadows3 items
- lg
- 0 32px 80px rgba(0,0,0,0.58)
- md
- 0 18px 44px rgba(0,0,0,0.42)
- sm
- 0 0 0 1px rgba(216,208,190,0.18)
spacing2 items
- base
- 8px
- scale
- 2, 4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
- bg pattern
- Aerospace drafting grid built from low-opacity linear rulings and occasional box-drawing dividers, kept behind content at under 10 percent contrast.
- card style
- Flat rectangular maintenance bay panels with hard 0px radius, 1px ruled borders, corner ticks, and external amber tabs for caution state.
- treatment
- Matte vacuum-black field with regolith-gray service panels, faint scanline ruling, and no glow or gradient fill.
typography8 items
- base size
- 16px
- body font
- Noto Sans
- google fonts url
- https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Condensed:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans:wght@400;500;700&display=swap
- heading font
- IBM Plex Sans Condensed
- letter spacing
- -0.02em
- line height
- 1.55
- mono font
- IBM Plex Mono
- scale ratio
- 1.2
rules
composition
Use a strict aerospace grid with one dominant schematic bay, one dense procedure column, and smaller annunciator or readout strips that feel bolted to the frame. Prefer asymmetry: a wide cutaway module may consume half the viewport while checklists stack tightly beside it. Divide content with ruled service-bay seams, calibration rulers, and label gutters rather than freestanding cards. Place identifiers, revision stamps, and station codes at panel corners so the screen reads like a maintained instrument surface. Include at least one compositional break such as a full-width EVA confirmation rail or an oversized hatch diagram crossing panel boundaries.
density
The language is intentionally dense in operational zones and spacious around the main schematic, creating an 8:1 rhythm between tiny calibration gaps and broad areas of black vacuum. It should feel usable by a trained operator under pressure, not comfortable like consumer productivity software.
hierarchy
Primary hierarchy comes from scale contrast between condensed subsystem headings and monospaced status values, not from color variety. Amber is the highest caution layer and must be rare; bone-white labels are normal; gray is inactive or historical. Dense rows should group by procedure phase, with narrow label gutters and exact alignment. Major states use physical metaphors such as HOLDING, DRIFT, PURGE READY, or TETHER CONFIRMED, never generic success copy.
signature patterns
External amber caution tabs are clipped-corner plates attached to panel headers, never glowing badges or soft pills.Box-drawing glyph divider rails combine characters like ║, ─, and ▣ with CSS hairlines to create terminal micro-ornament.Annunciator matrices use 8px square cells in regimented rows to form a hardware status texture that remains recognizable without color.Stamped vertical revision labels rotate along panel edges with station codes, seal numbers, and checksum-like service marks.Schematic loop diagrams use thin SVG strokes over black panels with amber tick marks at threshold points and white hatch outlines.
layout
breakpoints
Mobile 375px single column, tablet 768px two stacked zones with condensed matrices, desktop 1440px asymmetric 12-column service grid.
density
High information density is appropriate because the scene is a survival-system maintenance console, but density is concentrated in procedure rows while the main schematic has deliberate black negative space.
grid
Desktop uses a 12-column grid at max-width 1360px with 16px gutters, a dominant 7-column schematic area, and 5-column stacked procedure/readout rails; tablet collapses to 6 columns; mobile becomes a single column with preserved row alignment.
responsive
At small widths, vertical stamps become horizontal header metadata, matrix cells shrink, noncritical ruler ticks hide, and procedure rows remain readable without horizontal scrolling.
whitespace
Whitespace behaves like vacuum: broad 64px to 96px voids surround the hero schematic, while checklist internals use 4px to 8px gaps to create procedural compression.
guidance
- Use amber only for caution tabs, active checklist confirmations, oxygen or power thresholds, and hazard labeling.
- Keep all panels flat-edged with 0px radius, ruled borders, corner ticks, and restrained shadows only for depth separation on black.
- Build screens around named life-support tasks such as hatch seal inspection, thermal loop balancing, EVA tether confirmation, or O2 reserve purge.
- Let monospaced values align in columns and use abbreviated aerospace labels where the context is clear.
- Use manga influence as black/white line discipline, panel cropping, and schematic framing, not as character imagery.
- Create at least one dense operational form and one spacious schematic or void to avoid uniform dashboard rhythm.
- Prefer physical labels such as REV 04-C, BAY M-12, SEAL HOLD, and LOOP DELTA over abstract UI names.
- Do not use green terminal rain, decorative code waterfalls, or hacker wallpaper texture.
- Do not introduce neon cyan, purple, magenta, rainbow gradients, glow halos, or cyberpunk nightclub color.
- Do not arrange content as three equal SaaS cards, analytics widgets, CRM panels, or generic KPI tiles.
- Do not use rounded pills, bubbly toggles, pastel surfaces, or friendly consumer-app affordances.
- Do not use anime characters, fan-art faces, or illustration as the primary identity signal.
- Do not make every section equally dense; procedural compression must contrast with quiet black space.
- Do not combine one-sided accent borders with rounded elements; amber indicators must be separate flat plates.
katagami spec
# Mare Maintenance Console ## Philosophy Mare Maintenance Console is a polished moonbase service-terminal language for life-support operators who are not browsing data but preserving breathable silence. It combines disciplined aerospace documentation, quiet late-Y2K hardware specificity, modular terminal forms, and restrained black-and-white manga panel structure without leaning on neon cyberpunk or generic hacker decoration. The system treats every status change as physical: a hatch seal is either holding, a thermal loop is either drifting, an EVA tether is either confirmed, and amber appears only when survival margins require attention. ### Values - Operational consequence over spectacle: every visual emphasis must communicate oxygen, pressure, power, seal integrity, tether readiness, or procedural completion rather than abstract activity. - Panelized engineering logic: screens are divided like service bays, access covers, checklist columns, schematic cutaways, and calibration strips instead of soft SaaS cards. - Sparse color discipline: vacuum black, lunar regolith gray, and bone-white structure do almost all the work, with muted amber reserved for caution, thresholds, and active checklist states. - Human-factors legibility under stress: condensed labels, monospaced values, short confirmations, and strong row alignment make the interface scannable through gloves, fatigue, and low light. - Physical software specificity: stamped revision codes, port labels, hatch numbers, box-drawing glyphs, and annunciator matrices make the system feel installed in hardware, not generated for a demo. - Quiet existential cybernetics: the interface acknowledges isolation through restraint, pauses, and small status deltas rather than dramatic alarms or glowing dystopian excess. ### Anti-Values - No green matrix rain, decorative code waterfalls, or generic hacker dashboard tropes. - No neon cyberpunk glow, rainbow gradients, purple-cyan palettes, or glossy entertainment UI. - No character fan art, illustrative mascots, or anime poster composition; manga influence is structural linework and panel rhythm only. - No SaaS card grids, soft rounded widgets, cheerful analytics charts, or equal-weight dashboard tiles. ### Visual Character - Flat-edged black and regolith panels use 1px bone-white ruled borders plus clipped-corner amber caution tabs placed outside the panel edge. - Dense checklist tables align monospaced values in narrow columns with box-drawing glyph dividers and square confirmation cells instead of toggles. - Oversized schematic cutaways use thin white SVG loop lines, hatch arcs, and small amber threshold ticks on a strict aerospace grid. - Stamped revision strips and access labels sit vertically or at panel corners using condensed uppercase microtype and exact station identifiers. - Annunciator matrices render status as small square cells in white, gray, or amber, creating a signature hardware panel texture without glow. ## Tokens ### Borders - **Accent Width**: 3px - **Character**: Bone-white hairlines, double-rule separators, square corner ticks, and separate amber tag plates rather than colored one-sided borders on rounded elements. - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#C88A2A` | | background | `#050607` | | border | `#D8D0BE` | | error | `#B05A44` | | info | `#B9B3A6` | | muted | `#8D897F` | | primary | `#E8E1D2` | | secondary | `#8D897F` | | success | `#A7A18C` | | surface | `#111214` | | text | `#E8E1D2` | | warning | `#C88A2A` | ### Motion - **Duration**: 180ms - **Easing**: cubic-bezier(0.2, 0.0, 0.1, 1) - **Philosophy**: Motion is diagnostic and restrained: short amber acknowledgements, row calibration sweeps, and no bouncing, glowing, or decorative loading theatrics. ### Radii - **Full**: 9999px - **Lg**: 0px - **Md**: 0px - **None**: 0px - **Sm**: 0px ### Shadows - **Lg**: 0 32px 80px rgba(0,0,0,0.58) - **Md**: 0 18px 44px rgba(0,0,0,0.42) - **Sm**: 0 0 0 1px rgba(216,208,190,0.18) ### Spacing - **Base**: 8px - **Scale**: [2,4,8,12,16,24,32,48,64,96] ### Surfaces - **Bg Pattern**: Aerospace drafting grid built from low-opacity linear rulings and occasional box-drawing dividers, kept behind content at under 10 percent contrast. - **Card Style**: Flat rectangular maintenance bay panels with hard 0px radius, 1px ruled borders, corner ticks, and external amber tabs for caution state. - **Treatment**: Matte vacuum-black field with regolith-gray service panels, faint scanline ruling, and no glow or gradient fill. ### Typography - **Base Size**: 16px - **Body Font**: Noto Sans - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Condensed:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans:wght@400;500;700&display=swap - **Heading Font**: IBM Plex Sans Condensed - **Letter Spacing**: -0.02em - **Line Height**: 1.55 - **Mono Font**: IBM Plex Mono - **Scale Ratio**: 1.2 ## Rules ### Composition Use a strict aerospace grid with one dominant schematic bay, one dense procedure column, and smaller annunciator or readout strips that feel bolted to the frame. Prefer asymmetry: a wide cutaway module may consume half the viewport while checklists stack tightly beside it. Divide content with ruled service-bay seams, calibration rulers, and label gutters rather than freestanding cards. Place identifiers, revision stamps, and station codes at panel corners so the screen reads like a maintained instrument surface. Include at least one compositional break such as a full-width EVA confirmation rail or an oversized hatch diagram crossing panel boundaries. ### Density The language is intentionally dense in operational zones and spacious around the main schematic, creating an 8:1 rhythm between tiny calibration gaps and broad areas of black vacuum. It should feel usable by a trained operator under pressure, not comfortable like consumer productivity software. ### Hierarchy Primary hierarchy comes from scale contrast between condensed subsystem headings and monospaced status values, not from color variety. Amber is the highest caution layer and must be rare; bone-white labels are normal; gray is inactive or historical. Dense rows should group by procedure phase, with narrow label gutters and exact alignment. Major states use physical metaphors such as HOLDING, DRIFT, PURGE READY, or TETHER CONFIRMED, never generic success copy. ### Signature Patterns - External amber caution tabs are clipped-corner plates attached to panel headers, never glowing badges or soft pills. - Box-drawing glyph divider rails combine characters like ║, ─, and ▣ with CSS hairlines to create terminal micro-ornament. - Annunciator matrices use 8px square cells in regimented rows to form a hardware status texture that remains recognizable without color. - Stamped vertical revision labels rotate along panel edges with station codes, seal numbers, and checksum-like service marks. - Schematic loop diagrams use thin SVG strokes over black panels with amber tick marks at threshold points and white hatch outlines. ## Layout ### Breakpoints Mobile 375px single column, tablet 768px two stacked zones with condensed matrices, desktop 1440px asymmetric 12-column service grid. ### Density High information density is appropriate because the scene is a survival-system maintenance console, but density is concentrated in procedure rows while the main schematic has deliberate black negative space. ### Grid Desktop uses a 12-column grid at max-width 1360px with 16px gutters, a dominant 7-column schematic area, and 5-column stacked procedure/readout rails; tablet collapses to 6 columns; mobile becomes a single column with preserved row alignment. ### Responsive At small widths, vertical stamps become horizontal header metadata, matrix cells shrink, noncritical ruler ticks hide, and procedure rows remain readable without horizontal scrolling. ### Whitespace Whitespace behaves like vacuum: broad 64px to 96px voids surround the hero schematic, while checklist internals use 4px to 8px gaps to create procedural compression. ## Guidance ### Do - Use amber only for caution tabs, active checklist confirmations, oxygen or power thresholds, and hazard labeling. - Keep all panels flat-edged with 0px radius, ruled borders, corner ticks, and restrained shadows only for depth separation on black. - Build screens around named life-support tasks such as hatch seal inspection, thermal loop balancing, EVA tether confirmation, or O2 reserve purge. - Let monospaced values align in columns and use abbreviated aerospace labels where the context is clear. - Use manga influence as black/white line discipline, panel cropping, and schematic framing, not as character imagery. - Create at least one dense operational form and one spacious schematic or void to avoid uniform dashboard rhythm. - Prefer physical labels such as REV 04-C, BAY M-12, SEAL HOLD, and LOOP DELTA over abstract UI names. ### Don't - Do not use green terminal rain, decorative code waterfalls, or hacker wallpaper texture. - Do not introduce neon cyan, purple, magenta, rainbow gradients, glow halos, or cyberpunk nightclub color. - Do not arrange content as three equal SaaS cards, analytics widgets, CRM panels, or generic KPI tiles. - Do not use rounded pills, bubbly toggles, pastel surfaces, or friendly consumer-app affordances. - Do not use anime characters, fan-art faces, or illustration as the primary identity signal. - Do not make every section equally dense; procedural compression must contrast with quiet black space. - Do not combine one-sided accent borders with rounded elements; amber indicators must be separate flat plates. ### Accessibility Maintain high contrast between bone-white text and near-black surfaces; never communicate hazard state by amber alone; pair color with labels, square cell fill, and row position. Body copy remains 15-16px with -0.02em tracking and generous line-height for checklist readability. ### Usage Context Best for speculative aerospace tools, survival-system consoles, maintenance procedure software, lunar base operations, technical fiction interfaces, and serious simulation products that need quiet tension without cyberpunk cliché.
DESIGN.md
---
version: "alpha"
name: "Mare Maintenance Console"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#C88A2A"
background: "#050607"
border: "#D8D0BE"
error: "#B05A44"
info: "#B9B3A6"
muted: "#8D897F"
primary: "#E8E1D2"
secondary: "#8D897F"
success: "#A7A18C"
surface: "#111214"
text: "#E8E1D2"
warning: "#C88A2A"
typography:
headline-lg:
fontFamily: "IBM Plex Sans Condensed"
fontSize: "1.728rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "IBM Plex Sans Condensed"
fontSize: "1.44rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Noto Sans"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "-0.02em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "0px"
md: "0px"
none: "0px"
sm: "0px"
spacing:
base: "8px"
xs: "2px"
sm: "4px"
md: "8px"
lg: "12px"
xl: "16px"
2xl: "24px"
3xl: "32px"
4xl: "48px"
step-8: "64px"
step-9: "96px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#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"
---
# Mare Maintenance Console
## Overview
Mare Maintenance Console is a polished moonbase service-terminal language for life-support operators who are not browsing data but preserving breathable silence. It combines disciplined aerospace documentation, quiet late-Y2K hardware specificity, modular terminal forms, and restrained black-and-white manga panel structure without leaning on neon cyberpunk or generic hacker decoration. The system treats every status change as physical: a hatch seal is either holding, a thermal loop is either drifting, an EVA tether is either confirmed, and amber appears only when survival margins require attention.
### Values
- Operational consequence over spectacle: every visual emphasis must communicate oxygen, pressure, power, seal integrity, tether readiness, or procedural completion rather than abstract activity.
- Panelized engineering logic: screens are divided like service bays, access covers, checklist columns, schematic cutaways, and calibration strips instead of soft SaaS cards.
- Sparse color discipline: vacuum black, lunar regolith gray, and bone-white structure do almost all the work, with muted amber reserved for caution, thresholds, and active checklist states.
- Human-factors legibility under stress: condensed labels, monospaced values, short confirmations, and strong row alignment make the interface scannable through gloves, fatigue, and low light.
- Physical software specificity: stamped revision codes, port labels, hatch numbers, box-drawing glyphs, and annunciator matrices make the system feel installed in hardware, not generated for a demo.
- Quiet existential cybernetics: the interface acknowledges isolation through restraint, pauses, and small status deltas rather than dramatic alarms or glowing dystopian excess.
### Anti-Values
- No green matrix rain, decorative code waterfalls, or generic hacker dashboard tropes.
- No neon cyberpunk glow, rainbow gradients, purple-cyan palettes, or glossy entertainment UI.
- No character fan art, illustrative mascots, or anime poster composition; manga influence is structural linework and panel rhythm only.
- No SaaS card grids, soft rounded widgets, cheerful analytics charts, or equal-weight dashboard tiles.
### Visual Character
- Flat-edged black and regolith panels use 1px bone-white ruled borders plus clipped-corner amber caution tabs placed outside the panel edge.
- Dense checklist tables align monospaced values in narrow columns with box-drawing glyph dividers and square confirmation cells instead of toggles.
- Oversized schematic cutaways use thin white SVG loop lines, hatch arcs, and small amber threshold ticks on a strict aerospace grid.
- Stamped revision strips and access labels sit vertically or at panel corners using condensed uppercase microtype and exact station identifiers.
- Annunciator matrices render status as small square cells in white, gray, or amber, creating a signature hardware panel texture without glow.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| accent | `#C88A2A` |
| background | `#050607` |
| border | `#D8D0BE` |
| error | `#B05A44` |
| info | `#B9B3A6` |
| muted | `#8D897F` |
| primary | `#E8E1D2` |
| secondary | `#8D897F` |
| success | `#A7A18C` |
| surface | `#111214` |
| text | `#E8E1D2` |
| warning | `#C88A2A` |
## Typography
- **Headline-Lg**: IBM Plex Sans Condensed, 1.728rem, weight 700, line-height 1.1.
- **Headline-Md**: IBM Plex Sans Condensed, 1.44rem, weight 600, line-height 1.15.
- **Body-Md**: Noto Sans, 16px, weight 400, line-height 1.55.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `8px`
- **Xs**: `2px`
- **Sm**: `4px`
- **Md**: `8px`
- **Lg**: `12px`
- **Xl**: `16px`
- **2xl**: `24px`
- **3xl**: `32px`
- **4xl**: `48px`
- **Step-8**: `64px`
- **Step-9**: `96px`
### Breakpoints
Mobile 375px single column, tablet 768px two stacked zones with condensed matrices, desktop 1440px asymmetric 12-column service grid.
### Density
High information density is appropriate because the scene is a survival-system maintenance console, but density is concentrated in procedure rows while the main schematic has deliberate black negative space.
### Grid
Desktop uses a 12-column grid at max-width 1360px with 16px gutters, a dominant 7-column schematic area, and 5-column stacked procedure/readout rails; tablet collapses to 6 columns; mobile becomes a single column with preserved row alignment.
### Responsive
At small widths, vertical stamps become horizontal header metadata, matrix cells shrink, noncritical ruler ticks hide, and procedure rows remain readable without horizontal scrolling.
### Whitespace
Whitespace behaves like vacuum: broad 64px to 96px voids surround the hero schematic, while checklist internals use 4px to 8px gaps to create procedural compression.
## Elevation & Depth
### Shadows
- **Lg**: 0 32px 80px rgba(0,0,0,0.58)
- **Md**: 0 18px 44px rgba(0,0,0,0.42)
- **Sm**: 0 0 0 1px rgba(216,208,190,0.18)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `0px`
- **Md**: `0px`
- **None**: `0px`
- **Sm**: `0px`
### Surfaces
- **Bg Pattern**: Aerospace drafting grid built from low-opacity linear rulings and occasional box-drawing dividers, kept behind content at under 10 percent contrast.
- **Card Style**: Flat rectangular maintenance bay panels with hard 0px radius, 1px ruled borders, corner ticks, and external amber tabs for caution state.
- **Treatment**: Matte vacuum-black field with regolith-gray service panels, faint scanline ruling, and no glow or gradient fill.
### Borders
- **Accent Width**: 3px
- **Character**: Bone-white hairlines, double-rule separators, square corner ticks, and separate amber tag plates rather than colored one-sided borders on rounded elements.
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
Use a strict aerospace grid with one dominant schematic bay, one dense procedure column, and smaller annunciator or readout strips that feel bolted to the frame. Prefer asymmetry: a wide cutaway module may consume half the viewport while checklists stack tightly beside it. Divide content with ruled service-bay seams, calibration rulers, and label gutters rather than freestanding cards. Place identifiers, revision stamps, and station codes at panel corners so the screen reads like a maintained instrument surface. Include at least one compositional break such as a full-width EVA confirmation rail or an oversized hatch diagram crossing panel boundaries.
### Density
The language is intentionally dense in operational zones and spacious around the main schematic, creating an 8:1 rhythm between tiny calibration gaps and broad areas of black vacuum. It should feel usable by a trained operator under pressure, not comfortable like consumer productivity software.
### Hierarchy
Primary hierarchy comes from scale contrast between condensed subsystem headings and monospaced status values, not from color variety. Amber is the highest caution layer and must be rare; bone-white labels are normal; gray is inactive or historical. Dense rows should group by procedure phase, with narrow label gutters and exact alignment. Major states use physical metaphors such as HOLDING, DRIFT, PURGE READY, or TETHER CONFIRMED, never generic success copy.
### Signature Patterns
- External amber caution tabs are clipped-corner plates attached to panel headers, never glowing badges or soft pills.
- Box-drawing glyph divider rails combine characters like ║, ─, and ▣ with CSS hairlines to create terminal micro-ornament.
- Annunciator matrices use 8px square cells in regimented rows to form a hardware status texture that remains recognizable without color.
- Stamped vertical revision labels rotate along panel edges with station codes, seal numbers, and checksum-like service marks.
- Schematic loop diagrams use thin SVG strokes over black panels with amber tick marks at threshold points and white hatch outlines.
## 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/mare-maintenance-console/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 amber only for caution tabs, active checklist confirmations, oxygen or power thresholds, and hazard labeling.
- Do Keep all panels flat-edged with 0px radius, ruled borders, corner ticks, and restrained shadows only for depth separation on black.
- Do Build screens around named life-support tasks such as hatch seal inspection, thermal loop balancing, EVA tether confirmation, or O2 reserve purge.
- Do Let monospaced values align in columns and use abbreviated aerospace labels where the context is clear.
- Do Use manga influence as black/white line discipline, panel cropping, and schematic framing, not as character imagery.
- Do Create at least one dense operational form and one spacious schematic or void to avoid uniform dashboard rhythm.
- Do Prefer physical labels such as REV 04-C, BAY M-12, SEAL HOLD, and LOOP DELTA over abstract UI names.
- Don't Do not use green terminal rain, decorative code waterfalls, or hacker wallpaper texture.
- Don't Do not introduce neon cyan, purple, magenta, rainbow gradients, glow halos, or cyberpunk nightclub color.
- Don't Do not arrange content as three equal SaaS cards, analytics widgets, CRM panels, or generic KPI tiles.
- Don't Do not use rounded pills, bubbly toggles, pastel surfaces, or friendly consumer-app affordances.
- Don't Do not use anime characters, fan-art faces, or illustration as the primary identity signal.
- Don't Do not make every section equally dense; procedural compression must contrast with quiet black space.
- Don't Do not combine one-sided accent borders with rounded elements; amber indicators must be separate flat plates.
### Accessibility
Maintain high contrast between bone-white text and near-black surfaces; never communicate hazard state by amber alone; pair color with labels, square cell fill, and row position. Body copy remains 15-16px with -0.02em tracking and generous line-height for checklist readability.
### Usage Context
Best for speculative aerospace tools, survival-system consoles, maintenance procedure software, lunar base operations, technical fiction interfaces, and serious simulation products that need quiet tension without cyberpunk cliché.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "mare-maintenance-console",
"type": "registry:theme",
"title": "Mare Maintenance Console shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#050607",
"foreground": "#E8E1D2",
"card": "#111214",
"card-foreground": "#E8E1D2",
"popover": "#111214",
"popover-foreground": "#E8E1D2",
"primary": "#E8E1D2",
"primary-foreground": "#111111",
"secondary": "#8D897F",
"secondary-foreground": "#ffffff",
"muted": "#8D897F",
"muted-foreground": "#E8E1D2",
"accent": "#C88A2A",
"accent-foreground": "#ffffff",
"destructive": "#B05A44",
"border": "#D8D0BE",
"input": "#D8D0BE",
"ring": "#C88A2A",
"chart-1": "#E8E1D2",
"chart-2": "#8D897F",
"chart-3": "#C88A2A",
"chart-4": "#A7A18C",
"chart-5": "#C88A2A",
"sidebar": "#111214",
"sidebar-foreground": "#E8E1D2",
"sidebar-primary": "#E8E1D2",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#B9B3A6",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D0BE",
"sidebar-ring": "#C88A2A",
"radius": "0px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#E8E1D2",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#C88A2A",
"accent-foreground": "#ffffff",
"destructive": "#B05A44",
"border": "#303642",
"input": "#303642",
"ring": "#C88A2A",
"chart-1": "#E8E1D2",
"chart-2": "#8D897F",
"chart-3": "#C88A2A",
"chart-4": "#A7A18C",
"chart-5": "#C88A2A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#E8E1D2",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#C88A2A",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#C88A2A",
"radius": "0px"
}
},
"meta": {
"source": "katagami",
"languageId": "mare-maintenance-console",
"slug": "mare-maintenance-console",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · mare-maintenance-console
DESIGN.md
at a glance
Typography
headline-lgIBM Plex Sans Condensed · 28px · 700
The quick brown fox jumps
headline-mdIBM Plex Sans Condensed · 23px · 600
The quick brown fox jumps
body-mdNoto Sans · 16px · 400
The quick brown fox jumps
label-mdIBM Plex Mono · 12px · 600
The quick brown fox jumps
Components
New
Card title
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs2px
- sm4px
- md8px
- lg12px
- xl16px
- 2xl24px
- 3xl32px
- 4xl48px
- step-864px
- step-996px
Shape
full9999px
lg0px
md0px
none0px
sm0px
shadcn/ui
implementation kit
recommendedcompatibility fallback
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu tabletheme css
:root {
--background: #050607;
--foreground: #E8E1D2;
--card: #111214;
--card-foreground: #E8E1D2;
--popover: #111214;
--popover-foreground: #E8E1D2;
--primary: #E8E1D2;
--primary-foreground: #111111;
--secondary: #8D897F;
--secondary-foreground: #ffffff;
--muted: #8D897F;
--muted-foreground: #E8E1D2;
--accent: #C88A2A;
--accent-foreground: #ffffff;
--destructive: #B05A44;
--border: #D8D0BE;
--input: #D8D0BE;
--ring: #C88A2A;
--chart-1: #E8E1D2;
--chart-2: #8D897F;
--chart-3: #C88A2A;
--chart-4: #A7A18C;
--chart-5: #C88A2A;
--sidebar: #111214;
--sidebar-foreground: #E8E1D2;
--sidebar-primary: #E8E1D2;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #B9B3A6;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #D8D0BE;
--sidebar-ring: #C88A2A;
--radius: 0px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #E8E1D2;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #C88A2A;
--accent-foreground: #ffffff;
--destructive: #B05A44;
--border: #303642;
--input: #303642;
--ring: #C88A2A;
--chart-1: #E8E1D2;
--chart-2: #8D897F;
--chart-3: #C88A2A;
--chart-4: #A7A18C;
--chart-5: #C88A2A;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #E8E1D2;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #C88A2A;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #C88A2A;
--radius: 0px;
}
tsx starter
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 MareMaintenanceConsoleShadcnKit() {
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">Mare Maintenance Console</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>
);
}
theme JSONcompatibility fallback
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "mare-maintenance-console",
"type": "registry:theme",
"title": "Mare Maintenance Console shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#050607",
"foreground": "#E8E1D2",
"card": "#111214",
"card-foreground": "#E8E1D2",
"popover": "#111214",
"popover-foreground": "#E8E1D2",
"primary": "#E8E1D2",
"primary-foreground": "#111111",
"secondary": "#8D897F",
"secondary-foreground": "#ffffff",
"muted": "#8D897F",
"muted-foreground": "#E8E1D2",
"accent": "#C88A2A",
"accent-foreground": "#ffffff",
"destructive": "#B05A44",
"border": "#D8D0BE",
"input": "#D8D0BE",
"ring": "#C88A2A",
"chart-1": "#E8E1D2",
"chart-2": "#8D897F",
"chart-3": "#C88A2A",
"chart-4": "#A7A18C",
"chart-5": "#C88A2A",
"sidebar": "#111214",
"sidebar-foreground": "#E8E1D2",
"sidebar-primary": "#E8E1D2",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#B9B3A6",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D0BE",
"sidebar-ring": "#C88A2A",
"radius": "0px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#E8E1D2",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#C88A2A",
"accent-foreground": "#ffffff",
"destructive": "#B05A44",
"border": "#303642",
"input": "#303642",
"ring": "#C88A2A",
"chart-1": "#E8E1D2",
"chart-2": "#8D897F",
"chart-3": "#C88A2A",
"chart-4": "#A7A18C",
"chart-5": "#C88A2A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#E8E1D2",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#C88A2A",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#C88A2A",
"radius": "0px"
}
},
"meta": {
"source": "katagami",
"languageId": "mare-maintenance-console",
"slug": "mare-maintenance-console",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
component recipescompatibility fallback
# Mare Maintenance Console shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `mare-maintenance-console`
Slug: `mare-maintenance-console`
## Intent
Mare Maintenance Console is a polished moonbase service-terminal language for life-support operators who are not browsing data but preserving breathable silence. It combines disciplined aerospace documentation, quiet late-Y2K hardware specificity, modular terminal forms, and restrained black-and-white manga panel structure without leaning on neon cyberpunk or generic hacker decoration. The system treats every status change as physical: a hatch seal is either holding, a thermal loop is either drifting, an EVA tether is either confirmed, and amber appears only when survival margins require attention.
## Required primitives
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
## Token cues
Colors:
{
"accent": "#C88A2A",
"background": "#050607",
"border": "#D8D0BE",
"error": "#B05A44",
"info": "#B9B3A6",
"muted": "#8D897F",
"primary": "#E8E1D2",
"secondary": "#8D897F",
"success": "#A7A18C",
"surface": "#111214",
"text": "#E8E1D2",
"warning": "#C88A2A"
}
Typography:
{
"base_size": "16px",
"body_font": "Noto Sans",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Condensed:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans:wght@400;500;700&display=swap",
"heading_font": "IBM Plex Sans Condensed",
"letter_spacing": "-0.02em",
"line_height": 1.55,
"mono_font": "IBM Plex Mono",
"scale_ratio": 1.2
}
## Visual character to preserve
- Flat-edged black and regolith panels use 1px bone-white ruled borders plus clipped-corner amber caution tabs placed outside the panel edge.
- Dense checklist tables align monospaced values in narrow columns with box-drawing glyph dividers and square confirmation cells instead of toggles.
- Oversized schematic cutaways use thin white SVG loop lines, hatch arcs, and small amber threshold ticks on a strict aerospace grid.
- Stamped revision strips and access labels sit vertically or at panel corners using condensed uppercase microtype and exact station identifiers.
- Annunciator matrices render status as small square cells in white, gray, or amber, creating a signature hardware panel texture without glow.
## ShadSync visual profile
{
"family": "brutalist",
"material": "ink",
"contour": "pebble",
"border": "solid",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "lift-rotate",
"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/mare-maintenance-console/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 amber only for caution tabs, active checklist confirmations, oxygen or power thresholds, and hazard labeling.; Keep all panels flat-edged with 0px radius, ruled borders, corner ticks, and restrained shadows only for depth separation on black.; Build screens around named life-support tasks such as hatch seal inspection, thermal loop balancing, EVA tether confirmation, or O2 reserve purge.; Let monospaced values align in columns and use abbreviated aerospace labels where the context is clear.; Use manga influence as black/white line discipline, panel cropping, and schematic framing, not as character imagery.; Create at least one dense operational form and one spacious schematic or void to avoid uniform dashboard rhythm.; Prefer physical labels such as REV 04-C, BAY M-12, SEAL HOLD, and LOOP DELTA over abstract UI names.
- Do not: Do not use green terminal rain, decorative code waterfalls, or hacker wallpaper texture.; Do not introduce neon cyan, purple, magenta, rainbow gradients, glow halos, or cyberpunk nightclub color.; Do not arrange content as three equal SaaS cards, analytics widgets, CRM panels, or generic KPI tiles.; Do not use rounded pills, bubbly toggles, pastel surfaces, or friendly consumer-app affordances.; Do not use anime characters, fan-art faces, or illustration as the primary identity signal.; Do not make every section equally dense; procedural compression must contrast with quiet black space.; Do not combine one-sided accent borders with rounded elements; amber indicators must be separate flat plates.
## 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 MareMaintenanceConsoleShadcnKit() {
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">Mare Maintenance Console</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
```
## Layout notes
{
"breakpoints": "Mobile 375px single column, tablet 768px two stacked zones with condensed matrices, desktop 1440px asymmetric 12-column service grid.",
"density": "High information density is appropriate because the scene is a survival-system maintenance console, but density is concentrated in procedure rows while the main schematic has deliberate black negative space.",
"grid": "Desktop uses a 12-column grid at max-width 1360px with 16px gutters, a dominant 7-column schematic area, and 5-column stacked procedure/readout rails; tablet collapses to 6 columns; mobile becomes a single column with preserved row alignment.",
"responsive": "At small widths, vertical stamps become horizontal header metadata, matrix cells shrink, noncritical ruler ticks hide, and procedure rows remain readable without horizontal scrolling.",
"whitespace": "Whitespace behaves like vacuum: broad 64px to 96px voids surround the hero schematic, while checklist internals use 4px to 8px gaps to create procedural compression."
}
preview shotscompatibility fallback
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"generator": "katagami-ui-compatibility-projection",
"generatedBy": "katagami-ui-projection",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": {
"id": "mare-maintenance-console",
"name": "Mare Maintenance Console",
"slug": "mare-maintenance-console"
},
"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": [
"Flat-edged black and regolith panels use 1px bone-white ruled borders plus clipped-corner amber caution tabs placed outside the panel edge.",
"Dense checklist tables align monospaced values in narrow columns with box-drawing glyph dividers and square confirmation cells instead of toggles.",
"Oversized schematic cutaways use thin white SVG loop lines, hatch arcs, and small amber threshold ticks on a strict aerospace grid.",
"Stamped revision strips and access labels sit vertically or at panel corners using condensed uppercase microtype and exact station identifiers.",
"Annunciator matrices render status as small square cells in white, gray, or amber, creating a signature hardware panel texture without glow."
],
"visualProfile": {
"family": "brutalist",
"material": "ink",
"contour": "pebble",
"border": "solid",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "lift-rotate",
"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": "Mare Maintenance Console 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 amber only for caution tabs, active checklist confirmations, oxygen or power thresholds, and hazard labeling.",
"Keep all panels flat-edged with 0px radius, ruled borders, corner ticks, and restrained shadows only for depth separation on black.",
"Build screens around named life-support tasks such as hatch seal inspection, thermal loop balancing, EVA tether confirmation, or O2 reserve purge.",
"Let monospaced values align in columns and use abbreviated aerospace labels where the context is clear.",
"Use manga influence as black/white line discipline, panel cropping, and schematic framing, not as character imagery.",
"Create at least one dense operational form and one spacious schematic or void to avoid uniform dashboard rhythm.",
"Prefer physical labels such as REV 04-C, BAY M-12, SEAL HOLD, and LOOP DELTA over abstract UI names."
],
"dont": [
"Do not use green terminal rain, decorative code waterfalls, or hacker wallpaper texture.",
"Do not introduce neon cyan, purple, magenta, rainbow gradients, glow halos, or cyberpunk nightclub color.",
"Do not arrange content as three equal SaaS cards, analytics widgets, CRM panels, or generic KPI tiles.",
"Do not use rounded pills, bubbly toggles, pastel surfaces, or friendly consumer-app affordances.",
"Do not use anime characters, fan-art faces, or illustration as the primary identity signal.",
"Do not make every section equally dense; procedural compression must contrast with quiet black space.",
"Do not combine one-sided accent borders with rounded elements; amber indicators must be separate flat plates."
]
}
}
related