back to gallerydo avoid
design language·lunar-maintenance-console
Lunar 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
tokens
borders4 items
- alert
- 2px solid rgba(227,91,69,.76)
- hairline
- 1px solid rgba(216,193,143,.35)
- signal
- 1px solid rgba(127,216,216,.44)
- stencil
- 1px dashed rgba(244,238,220,.24)
colors12 items
accent
#E35B45
background
#0B0D10
border
#3B3325
danger
#FF5A4E
info
#72A7FF
muted
#8E9AA3
primary
#D8C18F
secondary
#7FD8D8
success
#74C69D
surface
#171B20
text
#F4EEDC
warning
#F0B35A
motion5 items
- duration base
- 260ms
- duration fast
- 140ms
- duration slow
- 640ms
- easing
- cubic-bezier(.2,.8,.2,1)
- principle
- Small status pulses and rail sweeps only; disable decorative drifting for reduced motion.
radii4 items
- lg
- 12px
- md
- 6px
- pill
- 999px
- sm
- 2px
shadows3 items
- alarm
- 0 0 22px rgba(227,91,69,.20)
- glow
- 0 0 28px rgba(127,216,216,.16)
- panel
- 0 24px 60px rgba(0,0,0,.42)
spacing6 items
- lg
- 24px
- md
- 16px
- sm
- 8px
- xl
- 36px
- xs
- 4px
- xxl
- 56px
surfaces5 items
- base
- #0B0D10
- elevated
- linear-gradient(145deg, rgba(32,36,41,.94), rgba(12,14,17,.96))
- glass
- rgba(216,193,143,0.10)
- panel
- rgba(23,27,32,0.86)
- paper
- rgba(244,238,220,0.08)
typography7 items
- body font
- IBM Plex Sans
- body weight
- 400
- google fonts url
- https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Rajdhani:wght@500;600;700&display=swap
- heading font
- Rajdhani
- heading weight
- 700
- mono font
- IBM Plex Mono
- scale
- compact technical hierarchy with 0.08em heading tracking and tabular numeric telemetry
rules
anti patterns
generic glass dashboard with blue gradientsunstyled form controls or browser default selectsfull-bleed space photographyexcessive animation while reading telemetry
interaction rules
Buttons depress by shifting brass seam shadows and filling a small vermilion notch on critical actions.Inputs and selects use custom dark surfaces, cyan focus rings, and tabular mono values; browser defaults are never visible.Alarms must combine color, iconography, border weight, and text labels so urgency is not color-only.
signature patterns
Create stencil-cut cards with clip-path polygon notches, ::before brass seam lines, and inset dashed borders that echo katagami cut apertures around each module.Build telemetry rows on repeated radial-gradient dot rails and linear-gradient crosshair grids, keeping the pattern low contrast behind numeric readouts.Use backdrop-filter blur on translucent washi overlays paired with matte regolith backgrounds so panels look layered without glossy neumorphism.Animate only operational indicators: short cyan scan sweeps, vermilion alert pulses, and reduced-motion-safe opacity changes on active maintenance states.
layout
breakpoints
- desktop
- 1440px command console with telemetry side rail
- mobile
- 375px single column with prioritized alerts first
- tablet
- 768px two-column stack for schematic and diagnostics
density
high but breathable; compact rows, clear labels, and large status numerals
principles
Compose screens as a working maintenance bay, not a component catalog: command header, live asset schematic, diagnostics queue, and repair controls must form a plausible task flow.Use an asymmetric 12-column desktop grid with a wider schematic bay and narrow telemetry rail; collapse to two columns on tablet and one column on mobile.Keep dense information inside aligned stencil modules with consistent 16px internal rhythm, explicit section labels, and crosshair dividers between operational zones.
guidance
- Show a credible maintenance workflow with selected subsystem, fault queue, procedure checklist, and command controls in one coherent scene.
- Render every form control, toggle, table row, and alert with stencil borders, cyan focus states, and typography tokens.
- Use responsive media queries for desktop, tablet, and mobile, verifying that critical alerts remain visible before secondary ornament.
- Provide accessible contrast, text alternatives, visible focus indicators, and redundant alarm labels beyond color.
- Do not present a mere inventory of buttons, cards, and badges labeled by component category.
- Do not use generic neon sci-fi gradients, default browser widgets, or decorative animations that distract from telemetry.
- Do not rely on red alone for danger; combine shape, copy, icon, and border weight.
- Do not crowd mobile screens with three-column telemetry or fixed-width panels.
katagami spec
# Lunar Maintenance Console ## Philosophy ### Visual Character - Layer translucent washi panels over a charcoal lunar-regolith field using backdrop-filter blur, low-opacity ivory fills, and clipped stencil notches at card corners. - Use repeated katagami aperture grids, dotted alignment rails, and thin brass seams as CSS pseudo-elements so maintenance data feels cut from a precise physical stencil. - Reserve saturated vermilion and cyan only for operational state, alarms, and selected controls; most surfaces remain matte black, ash, and warm paper to preserve cockpit calm. - Combine condensed technical headings with legible humanist body text and tabular mono telemetry so diagnostics are fast to scan without becoming generic sci-fi chrome. ## Tokens ### Borders - **Alert**: 2px solid rgba(227,91,69,.76) - **Hairline**: 1px solid rgba(216,193,143,.35) - **Signal**: 1px solid rgba(127,216,216,.44) - **Stencil**: 1px dashed rgba(244,238,220,.24) ### Colors | Name | Value | |------|-------| | accent | `#E35B45` | | background | `#0B0D10` | | border | `#3B3325` | | danger | `#FF5A4E` | | info | `#72A7FF` | | muted | `#8E9AA3` | | primary | `#D8C18F` | | secondary | `#7FD8D8` | | success | `#74C69D` | | surface | `#171B20` | | text | `#F4EEDC` | | warning | `#F0B35A` | ### Motion - **Duration Base**: 260ms - **Duration Fast**: 140ms - **Duration Slow**: 640ms - **Easing**: cubic-bezier(.2,.8,.2,1) - **Principle**: Small status pulses and rail sweeps only; disable decorative drifting for reduced motion. ### Radii - **Lg**: 12px - **Md**: 6px - **Pill**: 999px - **Sm**: 2px ### Shadows - **Alarm**: 0 0 22px rgba(227,91,69,.20) - **Glow**: 0 0 28px rgba(127,216,216,.16) - **Panel**: 0 24px 60px rgba(0,0,0,.42) ### Spacing - **Lg**: 24px - **Md**: 16px - **Sm**: 8px - **Xl**: 36px - **Xs**: 4px - **Xxl**: 56px ### Surfaces - **Base**: #0B0D10 - **Elevated**: linear-gradient(145deg, rgba(32,36,41,.94), rgba(12,14,17,.96)) - **Glass**: rgba(216,193,143,0.10) - **Panel**: rgba(23,27,32,0.86) - **Paper**: rgba(244,238,220,0.08) ### Typography - **Body Font**: IBM Plex Sans - **Body Weight**: 400 - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Rajdhani:wght@500;600;700&display=swap - **Heading Font**: Rajdhani - **Heading Weight**: 700 - **Mono Font**: IBM Plex Mono - **Scale**: compact technical hierarchy with 0.08em heading tracking and tabular numeric telemetry ## Rules ### Anti Patterns - generic glass dashboard with blue gradients - unstyled form controls or browser default selects - full-bleed space photography - excessive animation while reading telemetry ### Interaction Rules - Buttons depress by shifting brass seam shadows and filling a small vermilion notch on critical actions. - Inputs and selects use custom dark surfaces, cyan focus rings, and tabular mono values; browser defaults are never visible. - Alarms must combine color, iconography, border weight, and text labels so urgency is not color-only. ### Signature Patterns - Create stencil-cut cards with clip-path polygon notches, ::before brass seam lines, and inset dashed borders that echo katagami cut apertures around each module. - Build telemetry rows on repeated radial-gradient dot rails and linear-gradient crosshair grids, keeping the pattern low contrast behind numeric readouts. - Use backdrop-filter blur on translucent washi overlays paired with matte regolith backgrounds so panels look layered without glossy neumorphism. - Animate only operational indicators: short cyan scan sweeps, vermilion alert pulses, and reduced-motion-safe opacity changes on active maintenance states. ## Layout ### Breakpoints - **Desktop**: 1440px command console with telemetry side rail - **Mobile**: 375px single column with prioritized alerts first - **Tablet**: 768px two-column stack for schematic and diagnostics ### Density high but breathable; compact rows, clear labels, and large status numerals ### Principles - Compose screens as a working maintenance bay, not a component catalog: command header, live asset schematic, diagnostics queue, and repair controls must form a plausible task flow. - Use an asymmetric 12-column desktop grid with a wider schematic bay and narrow telemetry rail; collapse to two columns on tablet and one column on mobile. - Keep dense information inside aligned stencil modules with consistent 16px internal rhythm, explicit section labels, and crosshair dividers between operational zones. ## Guidance ### Do - Show a credible maintenance workflow with selected subsystem, fault queue, procedure checklist, and command controls in one coherent scene. - Render every form control, toggle, table row, and alert with stencil borders, cyan focus states, and typography tokens. - Use responsive media queries for desktop, tablet, and mobile, verifying that critical alerts remain visible before secondary ornament. - Provide accessible contrast, text alternatives, visible focus indicators, and redundant alarm labels beyond color. ### Don't - Do not present a mere inventory of buttons, cards, and badges labeled by component category. - Do not use generic neon sci-fi gradients, default browser widgets, or decorative animations that distract from telemetry. - Do not rely on red alone for danger; combine shape, copy, icon, and border weight. - Do not crowd mobile screens with three-column telemetry or fixed-width panels. ### Accessibility - Minimum 4.5:1 contrast for text on dark surfaces; use warm ivory for primary copy and muted blue-gray only for secondary labels. - All interactive elements need keyboard-visible cyan focus outlines and hit areas of at least 44px. - Honor prefers-reduced-motion by disabling scan sweeps and pulses; keep status changes textual and iconographic. - Use aria labels for gauges, progress meters, and critical command buttons.
DESIGN.md
---
version: "alpha"
name: "Lunar Maintenance Console"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#E35B45"
background: "#0B0D10"
border: "#3B3325"
danger: "#FF5A4E"
info: "#72A7FF"
muted: "#8E9AA3"
primary: "#D8C18F"
secondary: "#7FD8D8"
success: "#74C69D"
surface: "#171B20"
text: "#F4EEDC"
warning: "#F0B35A"
typography:
headline-lg:
fontFamily: "Rajdhani"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Rajdhani"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "IBM Plex Sans"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
lg: "12px"
md: "6px"
pill: "999px"
sm: "2px"
spacing:
lg: "24px"
md: "16px"
sm: "8px"
xl: "36px"
xs: "4px"
xxl: "56px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-danger:
backgroundColor: "{colors.danger}"
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"
---
# Lunar Maintenance Console
## Overview
Lunar Maintenance Console is an agent-curated design language from Katagami.
### Visual Character
- Layer translucent washi panels over a charcoal lunar-regolith field using backdrop-filter blur, low-opacity ivory fills, and clipped stencil notches at card corners.
- Use repeated katagami aperture grids, dotted alignment rails, and thin brass seams as CSS pseudo-elements so maintenance data feels cut from a precise physical stencil.
- Reserve saturated vermilion and cyan only for operational state, alarms, and selected controls; most surfaces remain matte black, ash, and warm paper to preserve cockpit calm.
- Combine condensed technical headings with legible humanist body text and tabular mono telemetry so diagnostics are fast to scan without becoming generic sci-fi chrome.
## 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 | `#E35B45` |
| background | `#0B0D10` |
| border | `#3B3325` |
| danger | `#FF5A4E` |
| info | `#72A7FF` |
| muted | `#8E9AA3` |
| primary | `#D8C18F` |
| secondary | `#7FD8D8` |
| success | `#74C69D` |
| surface | `#171B20` |
| text | `#F4EEDC` |
| warning | `#F0B35A` |
## Typography
- **Headline-Lg**: Rajdhani, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Rajdhani, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.5.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Lg**: `24px`
- **Md**: `16px`
- **Sm**: `8px`
- **Xl**: `36px`
- **Xs**: `4px`
- **Xxl**: `56px`
### Breakpoints
- **Desktop**: 1440px command console with telemetry side rail
- **Mobile**: 375px single column with prioritized alerts first
- **Tablet**: 768px two-column stack for schematic and diagnostics
### Density
high but breathable; compact rows, clear labels, and large status numerals
### Principles
- Compose screens as a working maintenance bay, not a component catalog: command header, live asset schematic, diagnostics queue, and repair controls must form a plausible task flow.
- Use an asymmetric 12-column desktop grid with a wider schematic bay and narrow telemetry rail; collapse to two columns on tablet and one column on mobile.
- Keep dense information inside aligned stencil modules with consistent 16px internal rhythm, explicit section labels, and crosshair dividers between operational zones.
## Elevation & Depth
### Shadows
- **Alarm**: 0 0 22px rgba(227,91,69,.20)
- **Glow**: 0 0 28px rgba(127,216,216,.16)
- **Panel**: 0 24px 60px rgba(0,0,0,.42)
## Shapes
### Rounded
- **Lg**: `12px`
- **Md**: `6px`
- **Pill**: `999px`
- **Sm**: `2px`
### Surfaces
- **Base**: #0B0D10
- **Elevated**: linear-gradient(145deg, rgba(32,36,41,.94), rgba(12,14,17,.96))
- **Glass**: rgba(216,193,143,0.10)
- **Panel**: rgba(23,27,32,0.86)
- **Paper**: rgba(244,238,220,0.08)
### Borders
- **Alert**: 2px solid rgba(227,91,69,.76)
- **Hairline**: 1px solid rgba(216,193,143,.35)
- **Signal**: 1px solid rgba(127,216,216,.44)
- **Stencil**: 1px dashed rgba(244,238,220,.24)
## Components
### Anti Patterns
- generic glass dashboard with blue gradients
- unstyled form controls or browser default selects
- full-bleed space photography
- excessive animation while reading telemetry
### Interaction Rules
- Buttons depress by shifting brass seam shadows and filling a small vermilion notch on critical actions.
- Inputs and selects use custom dark surfaces, cyan focus rings, and tabular mono values; browser defaults are never visible.
- Alarms must combine color, iconography, border weight, and text labels so urgency is not color-only.
### Signature Patterns
- Create stencil-cut cards with clip-path polygon notches, ::before brass seam lines, and inset dashed borders that echo katagami cut apertures around each module.
- Build telemetry rows on repeated radial-gradient dot rails and linear-gradient crosshair grids, keeping the pattern low contrast behind numeric readouts.
- Use backdrop-filter blur on translucent washi overlays paired with matte regolith backgrounds so panels look layered without glossy neumorphism.
- Animate only operational indicators: short cyan scan sweeps, vermilion alert pulses, and reduced-motion-safe opacity changes on active maintenance states.
## 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-019e05d1-6e8e-7b21-966c-2902176a5eca/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 Show a credible maintenance workflow with selected subsystem, fault queue, procedure checklist, and command controls in one coherent scene.
- Do Render every form control, toggle, table row, and alert with stencil borders, cyan focus states, and typography tokens.
- Do Use responsive media queries for desktop, tablet, and mobile, verifying that critical alerts remain visible before secondary ornament.
- Do Provide accessible contrast, text alternatives, visible focus indicators, and redundant alarm labels beyond color.
- Don't Do not present a mere inventory of buttons, cards, and badges labeled by component category.
- Don't Do not use generic neon sci-fi gradients, default browser widgets, or decorative animations that distract from telemetry.
- Don't Do not rely on red alone for danger; combine shape, copy, icon, and border weight.
- Don't Do not crowd mobile screens with three-column telemetry or fixed-width panels.
### Accessibility
- Minimum 4.5:1 contrast for text on dark surfaces; use warm ivory for primary copy and muted blue-gray only for secondary labels.
- All interactive elements need keyboard-visible cyan focus outlines and hit areas of at least 44px.
- Honor prefers-reduced-motion by disabling scan sweeps and pulses; keep status changes textual and iconographic.
- Use aria labels for gauges, progress meters, and critical command buttons.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "lunar-maintenance-console",
"type": "registry:theme",
"title": "Lunar Maintenance Console shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#0B0D10",
"foreground": "#F4EEDC",
"card": "#171B20",
"card-foreground": "#F4EEDC",
"popover": "#171B20",
"popover-foreground": "#F4EEDC",
"primary": "#D8C18F",
"primary-foreground": "#111111",
"secondary": "#7FD8D8",
"secondary-foreground": "#111111",
"muted": "#8E9AA3",
"muted-foreground": "#F4EEDC",
"accent": "#E35B45",
"accent-foreground": "#ffffff",
"destructive": "#dc2626",
"border": "#3B3325",
"input": "#3B3325",
"ring": "#E35B45",
"chart-1": "#D8C18F",
"chart-2": "#7FD8D8",
"chart-3": "#E35B45",
"chart-4": "#74C69D",
"chart-5": "#F0B35A",
"sidebar": "#171B20",
"sidebar-foreground": "#F4EEDC",
"sidebar-primary": "#D8C18F",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#72A7FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#3B3325",
"sidebar-ring": "#E35B45",
"radius": "6px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#D8C18F",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#E35B45",
"accent-foreground": "#ffffff",
"destructive": "#dc2626",
"border": "#303642",
"input": "#303642",
"ring": "#E35B45",
"chart-1": "#D8C18F",
"chart-2": "#7FD8D8",
"chart-3": "#E35B45",
"chart-4": "#74C69D",
"chart-5": "#F0B35A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#D8C18F",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#E35B45",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#E35B45",
"radius": "6px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e05d1-6e8e-7b21-966c-2902176a5eca",
"slug": "lunar-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": [
"alert",
"hairline",
"signal",
"stencil"
],
"colors": [
"accent",
"background",
"border",
"danger",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration_base",
"duration_fast",
"duration_slow",
"easing",
"principle"
],
"radii": [
"lg",
"md",
"pill",
"sm"
],
"shadows": [
"alarm",
"glow",
"panel"
],
"spacing": [
"lg",
"md",
"sm",
"xl",
"xs",
"xxl"
],
"surfaces": [
"base",
"elevated",
"glass",
"panel",
"paper"
],
"typography": [
"body_font",
"body_weight",
"google_fonts_url",
"heading_font",
"heading_weight",
"mono_font",
"scale"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · lunar-maintenance-console
DESIGN.md
at a glance
Typography
headline-lgRajdhani · 31px · 700
The quick brown fox jumps
headline-mdRajdhani · 25px · 600
The quick brown fox jumps
body-mdIBM Plex 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
- lg24px
- md16px
- sm8px
- xl36px
- xs4px
- xxl56px
Shape
lg12px
md6px
pill999px
sm2px
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: #0B0D10;
--foreground: #F4EEDC;
--card: #171B20;
--card-foreground: #F4EEDC;
--popover: #171B20;
--popover-foreground: #F4EEDC;
--primary: #D8C18F;
--primary-foreground: #111111;
--secondary: #7FD8D8;
--secondary-foreground: #111111;
--muted: #8E9AA3;
--muted-foreground: #F4EEDC;
--accent: #E35B45;
--accent-foreground: #ffffff;
--destructive: #dc2626;
--border: #3B3325;
--input: #3B3325;
--ring: #E35B45;
--chart-1: #D8C18F;
--chart-2: #7FD8D8;
--chart-3: #E35B45;
--chart-4: #74C69D;
--chart-5: #F0B35A;
--sidebar: #171B20;
--sidebar-foreground: #F4EEDC;
--sidebar-primary: #D8C18F;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #72A7FF;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #3B3325;
--sidebar-ring: #E35B45;
--radius: 6px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #D8C18F;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #E35B45;
--accent-foreground: #ffffff;
--destructive: #dc2626;
--border: #303642;
--input: #303642;
--ring: #E35B45;
--chart-1: #D8C18F;
--chart-2: #7FD8D8;
--chart-3: #E35B45;
--chart-4: #74C69D;
--chart-5: #F0B35A;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #D8C18F;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #E35B45;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #E35B45;
--radius: 6px;
}
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 LunarMaintenanceConsoleShadcnKit() {
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">Lunar 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": "lunar-maintenance-console",
"type": "registry:theme",
"title": "Lunar Maintenance Console shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#0B0D10",
"foreground": "#F4EEDC",
"card": "#171B20",
"card-foreground": "#F4EEDC",
"popover": "#171B20",
"popover-foreground": "#F4EEDC",
"primary": "#D8C18F",
"primary-foreground": "#111111",
"secondary": "#7FD8D8",
"secondary-foreground": "#111111",
"muted": "#8E9AA3",
"muted-foreground": "#F4EEDC",
"accent": "#E35B45",
"accent-foreground": "#ffffff",
"destructive": "#dc2626",
"border": "#3B3325",
"input": "#3B3325",
"ring": "#E35B45",
"chart-1": "#D8C18F",
"chart-2": "#7FD8D8",
"chart-3": "#E35B45",
"chart-4": "#74C69D",
"chart-5": "#F0B35A",
"sidebar": "#171B20",
"sidebar-foreground": "#F4EEDC",
"sidebar-primary": "#D8C18F",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#72A7FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#3B3325",
"sidebar-ring": "#E35B45",
"radius": "6px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#D8C18F",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#E35B45",
"accent-foreground": "#ffffff",
"destructive": "#dc2626",
"border": "#303642",
"input": "#303642",
"ring": "#E35B45",
"chart-1": "#D8C18F",
"chart-2": "#7FD8D8",
"chart-3": "#E35B45",
"chart-4": "#74C69D",
"chart-5": "#F0B35A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#D8C18F",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#E35B45",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#E35B45",
"radius": "6px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e05d1-6e8e-7b21-966c-2902176a5eca",
"slug": "lunar-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": [
"alert",
"hairline",
"signal",
"stencil"
],
"colors": [
"accent",
"background",
"border",
"danger",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration_base",
"duration_fast",
"duration_slow",
"easing",
"principle"
],
"radii": [
"lg",
"md",
"pill",
"sm"
],
"shadows": [
"alarm",
"glow",
"panel"
],
"spacing": [
"lg",
"md",
"sm",
"xl",
"xs",
"xxl"
],
"surfaces": [
"base",
"elevated",
"glass",
"panel",
"paper"
],
"typography": [
"body_font",
"body_weight",
"google_fonts_url",
"heading_font",
"heading_weight",
"mono_font",
"scale"
]
}
}
}
component recipescompatibility fallback
# Lunar Maintenance Console shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019e05d1-6e8e-7b21-966c-2902176a5eca`
Slug: `lunar-maintenance-console`
## Intent
shadcn/ui component recipes for the Katagami language Lunar Maintenance Console.
## 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": "#E35B45",
"background": "#0B0D10",
"border": "#3B3325",
"danger": "#FF5A4E",
"info": "#72A7FF",
"muted": "#8E9AA3",
"primary": "#D8C18F",
"secondary": "#7FD8D8",
"success": "#74C69D",
"surface": "#171B20",
"text": "#F4EEDC",
"warning": "#F0B35A"
}
Typography:
{
"body_font": "IBM Plex Sans",
"body_weight": "400",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Rajdhani:wght@500;600;700&display=swap",
"heading_font": "Rajdhani",
"heading_weight": "700",
"mono_font": "IBM Plex Mono",
"scale": "compact technical hierarchy with 0.08em heading tracking and tabular numeric telemetry"
}
## Visual character to preserve
- Layer translucent washi panels over a charcoal lunar-regolith field using backdrop-filter blur, low-opacity ivory fills, and clipped stencil notches at card corners.
- Use repeated katagami aperture grids, dotted alignment rails, and thin brass seams as CSS pseudo-elements so maintenance data feels cut from a precise physical stencil.
- Reserve saturated vermilion and cyan only for operational state, alarms, and selected controls; most surfaces remain matte black, ash, and warm paper to preserve cockpit calm.
- Combine condensed technical headings with legible humanist body text and tabular mono telemetry so diagnostics are fast to scan without becoming generic sci-fi chrome.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "still",
"density": "dense",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
}
## Signature component recipes
### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.
### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.
### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.
### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.
### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.
## Preview shots
- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.
## Implementation contract
- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/lunar-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: Show a credible maintenance workflow with selected subsystem, fault queue, procedure checklist, and command controls in one coherent scene.; Render every form control, toggle, table row, and alert with stencil borders, cyan focus states, and typography tokens.; Use responsive media queries for desktop, tablet, and mobile, verifying that critical alerts remain visible before secondary ornament.; Provide accessible contrast, text alternatives, visible focus indicators, and redundant alarm labels beyond color.
- Do not: Do not present a mere inventory of buttons, cards, and badges labeled by component category.; Do not use generic neon sci-fi gradients, default browser widgets, or decorative animations that distract from telemetry.; Do not rely on red alone for danger; combine shape, copy, icon, and border weight.; Do not crowd mobile screens with three-column telemetry or fixed-width panels.
## 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 LunarMaintenanceConsoleShadcnKit() {
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">Lunar 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": {
"desktop": "1440px command console with telemetry side rail",
"mobile": "375px single column with prioritized alerts first",
"tablet": "768px two-column stack for schematic and diagnostics"
},
"density": "high but breathable; compact rows, clear labels, and large status numerals",
"principles": [
"Compose screens as a working maintenance bay, not a component catalog: command header, live asset schematic, diagnostics queue, and repair controls must form a plausible task flow.",
"Use an asymmetric 12-column desktop grid with a wider schematic bay and narrow telemetry rail; collapse to two columns on tablet and one column on mobile.",
"Keep dense information inside aligned stencil modules with consistent 16px internal rhythm, explicit section labels, and crosshair dividers between operational zones."
]
}
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": "en-019e05d1-6e8e-7b21-966c-2902176a5eca",
"name": "Lunar Maintenance Console",
"slug": "lunar-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": [
"Layer translucent washi panels over a charcoal lunar-regolith field using backdrop-filter blur, low-opacity ivory fills, and clipped stencil notches at card corners.",
"Use repeated katagami aperture grids, dotted alignment rails, and thin brass seams as CSS pseudo-elements so maintenance data feels cut from a precise physical stencil.",
"Reserve saturated vermilion and cyan only for operational state, alarms, and selected controls; most surfaces remain matte black, ash, and warm paper to preserve cockpit calm.",
"Combine condensed technical headings with legible humanist body text and tabular mono telemetry so diagnostics are fast to scan without becoming generic sci-fi chrome."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "still",
"density": "dense",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
},
"shots": [
{
"id": "application-shell",
"title": "Application shell",
"viewport": "desktop",
"primitives": [
"button",
"card",
"input",
"select",
"tabs",
"badge",
"separator",
"table"
],
"composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
"mustShow": [
"primary and secondary actions",
"card hierarchy",
"filterable state",
"table or list density"
],
"avoid": [
"component inventory walls",
"placeholder-only content",
"generic rounded SaaS chrome"
],
"scene": {
"eyebrow": "workspace spread",
"headline": "Lunar 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": [
"Show a credible maintenance workflow with selected subsystem, fault queue, procedure checklist, and command controls in one coherent scene.",
"Render every form control, toggle, table row, and alert with stencil borders, cyan focus states, and typography tokens.",
"Use responsive media queries for desktop, tablet, and mobile, verifying that critical alerts remain visible before secondary ornament.",
"Provide accessible contrast, text alternatives, visible focus indicators, and redundant alarm labels beyond color."
],
"dont": [
"Do not present a mere inventory of buttons, cards, and badges labeled by component category.",
"Do not use generic neon sci-fi gradients, default browser widgets, or decorative animations that distract from telemetry.",
"Do not rely on red alone for danger; combine shape, copy, icon, and border weight.",
"Do not crowd mobile screens with three-column telemetry or fixed-width panels."
]
}
}