back to gallery
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
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.
avoid
  • 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

Palette

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

needs agent-authored kitcompatibility fallback
shadcn compatibility only
The generated theme variables are available, but the polished shadcn component recipes and shots have not been authored by the Katagami agent yet.
fallbackprimitives render
Compatibility proof
Local shadcn-style primitives accept the generated theme variables.
primaryaccentsurfacemutedwarningerror
table rhythm
buttonok
cardok
inputok
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 table
theme 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."
    ]
  }
}