back to gallery
design language·orbital-graphite-telemetry

Orbital Graphite Telemetry

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md source of truth for most agents and apps.

the spec

specification

philosophy
summary
A restrained brutalist orbital interface language for institutional mission tools: matte graphite structure, off-white instrument typography, glacier-blue telemetry, and amber states reserved for genuine caution.
values
operational restraintinstitutional legibilityorbital systems disciplinesemantic color scarcitymatte material honesty
anti-values
×neon sci-fi spectacle×decorative gradients×soft SaaS friendliness×ambiguous status color×glassy chrome surfaces
tokens
borders4 items
accent width
2px
character
Hairline graphite dividers with cyan used for active selection rails and amber used only for caution thresholds.
default width
1px
style
solid
colors12 items
accent
#D99B43
background
#111416
border
#343B40
error
#D46A5A
info
#7FCBE5
muted
#8B969C
primary
#9EDCF2
secondary
#77838C
success
#8FBF9A
surface
#181D20
text
#E8E4D8
warning
#D99B43
motion3 items
duration
140ms
easing
cubic-bezier(0.2, 0, 0, 1)
philosophy
Motion is diagnostic: instant state confirmation, no floaty easing, no decorative orbital animations beyond restrained trace pulses.
radii5 items
full
9999px
lg
4px
md
2px
none
0
sm
0
shadows3 items
lg
0 30px 90px rgba(0, 0, 0, 0.48)
md
0 18px 60px rgba(0, 0, 0, 0.34)
sm
0 0 0 1px rgba(158, 220, 242, 0.10)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
Low-contrast 24px orthogonal grid plus sparse orbital coordinate ticks embedded into the graphite background.
card style
Square mission panels with 1px borders, clipped serial headers, cyan selection rails, and compact amber caution stamps.
treatment
Matte graphite slabs with no gloss, subtle noise, hard compartment seams, and faint plotted grid overlays.
typography8 items
base size
16px
body font
Atkinson Hyperlegible
google fonts url
https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=IBM+Plex+Mono:wght@400;500;600&family=Saira+Condensed:wght@500;600;700&display=swap
heading font
Saira Condensed
letter spacing
0.01em
line height
1.5
mono font
IBM Plex Mono
scale ratio
1.2
rules
composition
Compose screens as mission-console compartments: a narrow command rail, a dominant orbital plot, stacked telemetry tables, and status strips locked to a strict grid.
density

High-density but readable: compact tables, small serial metadata, and generous internal gutters around the dominant plot prevent dashboard mush.

hierarchy

Hierarchy comes from scale, uppercase condensed labels, border weight, and cyan selection rails; large color fields are avoided so status colors retain meaning.

signature patterns
Graphite plotting panels combine a faint square grid, crosshair ticks, cyan trajectory SVG strokes, and small monospaced coordinate callouts.Active modules show a 2px glacier-blue left rail with bracket-corner marks instead of rounded pills or bright filled buttons.Caution states appear as amber stamped chips with black inset text, threshold hash marks, and never occupy more than a small row segment.Section headers use condensed uppercase mission codes, rule-line extensions, and right-aligned serial numbers to create institutional cadence.Data tables use alternating graphite bands, thin vertical dividers, numeric mono alignment, and color only in semantic status glyphs.
layout
breakpoints

Mobile 375px single-column stack; tablet 768px two-column plot-plus-telemetry; desktop 1200px+ full mission console with side rail.

grid

Twelve-column desktop grid with 8px base increments, fixed command rail, dominant 7-column plot area, and 3-column telemetry stack.

whitespace

Whitespace is measured as instrument clearance: tight within tables, 16-24px around panels, and larger margins only around the primary orbital plot.

guidance
do
  • Use graphite, off-white, glacier cyan, and sparse amber in exactly defined semantic roles.
  • Make every panel feel like a mission artifact with serial labels, units, coordinates, or verification states.
  • Keep corners square or nearly square and rely on borders, grids, and typography for identity.
  • Ensure cyan and amber states have non-color cues such as rails, stamps, icons, labels, or patterns.
  • Maintain strong contrast for off-white text on graphite and reserve muted gray for metadata only.
avoid
  • Do not add neon glow, purple cyberpunk gradients, glassmorphism, starfields, or decorative planets.
  • Do not use amber for brand decoration; it must mean caution, delay, threshold, or pending status.
  • Do not soften the system with large radii, pastel cards, drop-shadow stacks, or generic SaaS dashboards.
  • Do not let dense telemetry become illegible; tables need clear alignment, units, and row rhythm.
  • Do not introduce extra accent colors beyond required semantic error, success, warning, and info states.
katagami spec
# Orbital Graphite Telemetry

## Philosophy

A restrained brutalist orbital interface language for institutional mission tools: matte graphite structure, off-white instrument typography, glacier-blue telemetry, and amber states reserved for genuine caution.

### Values

- operational restraint
- institutional legibility
- orbital systems discipline
- semantic color scarcity
- matte material honesty

### Anti-Values

- neon sci-fi spectacle
- decorative gradients
- soft SaaS friendliness
- ambiguous status color
- glassy chrome surfaces

### Visual Character

- Use a low-chroma near-black graphite page with slightly lighter matte panels separated by 1px rule lines and inset gridded plotting fields.
- Set headings in condensed technical uppercase with wide tracking, while dense readings and identifiers use monospaced off-white instrument text.
- Reserve glacier cyan for telemetry traces, selected tabs, active focus rings, and small coordinate marks instead of filling large surfaces.
- Apply warm amber only to caution chips, threshold ticks, and one or two status rows so warnings read as operational events.
- Build layouts from rectilinear mission-console compartments with square corners, serial labels, hairline dividers, and no decorative softness.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: Hairline graphite dividers with cyan used for active selection rails and amber used only for caution thresholds.
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#D99B43` |
| background | `#111416` |
| border | `#343B40` |
| error | `#D46A5A` |
| info | `#7FCBE5` |
| muted | `#8B969C` |
| primary | `#9EDCF2` |
| secondary | `#77838C` |
| success | `#8FBF9A` |
| surface | `#181D20` |
| text | `#E8E4D8` |
| warning | `#D99B43` |

### Motion

- **Duration**: 140ms
- **Easing**: cubic-bezier(0.2, 0, 0, 1)
- **Philosophy**: Motion is diagnostic: instant state confirmation, no floaty easing, no decorative orbital animations beyond restrained trace pulses.

### Radii

- **Full**: 9999px
- **Lg**: 4px
- **Md**: 2px
- **None**: 0
- **Sm**: 0

### Shadows

- **Lg**: 0 30px 90px rgba(0, 0, 0, 0.48)
- **Md**: 0 18px 60px rgba(0, 0, 0, 0.34)
- **Sm**: 0 0 0 1px rgba(158, 220, 242, 0.10)

### Spacing

- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64]

### Surfaces

- **Bg Pattern**: Low-contrast 24px orthogonal grid plus sparse orbital coordinate ticks embedded into the graphite background.
- **Card Style**: Square mission panels with 1px borders, clipped serial headers, cyan selection rails, and compact amber caution stamps.
- **Treatment**: Matte graphite slabs with no gloss, subtle noise, hard compartment seams, and faint plotted grid overlays.

### Typography

- **Base Size**: 16px
- **Body Font**: Atkinson Hyperlegible
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=IBM+Plex+Mono:wght@400;500;600&family=Saira+Condensed:wght@500;600;700&display=swap
- **Heading Font**: Saira Condensed
- **Letter Spacing**: 0.01em
- **Line Height**: 1.5
- **Mono Font**: IBM Plex Mono
- **Scale Ratio**: 1.2

## Rules

### Composition

Compose screens as mission-console compartments: a narrow command rail, a dominant orbital plot, stacked telemetry tables, and status strips locked to a strict grid.

### Density

High-density but readable: compact tables, small serial metadata, and generous internal gutters around the dominant plot prevent dashboard mush.

### Hierarchy

Hierarchy comes from scale, uppercase condensed labels, border weight, and cyan selection rails; large color fields are avoided so status colors retain meaning.

### Signature Patterns

- Graphite plotting panels combine a faint square grid, crosshair ticks, cyan trajectory SVG strokes, and small monospaced coordinate callouts.
- Active modules show a 2px glacier-blue left rail with bracket-corner marks instead of rounded pills or bright filled buttons.
- Caution states appear as amber stamped chips with black inset text, threshold hash marks, and never occupy more than a small row segment.
- Section headers use condensed uppercase mission codes, rule-line extensions, and right-aligned serial numbers to create institutional cadence.
- Data tables use alternating graphite bands, thin vertical dividers, numeric mono alignment, and color only in semantic status glyphs.

## Layout

### Breakpoints

Mobile 375px single-column stack; tablet 768px two-column plot-plus-telemetry; desktop 1200px+ full mission console with side rail.

### Grid

Twelve-column desktop grid with 8px base increments, fixed command rail, dominant 7-column plot area, and 3-column telemetry stack.

### Whitespace

Whitespace is measured as instrument clearance: tight within tables, 16-24px around panels, and larger margins only around the primary orbital plot.

## Guidance

### Do

- Use graphite, off-white, glacier cyan, and sparse amber in exactly defined semantic roles.
- Make every panel feel like a mission artifact with serial labels, units, coordinates, or verification states.
- Keep corners square or nearly square and rely on borders, grids, and typography for identity.
- Ensure cyan and amber states have non-color cues such as rails, stamps, icons, labels, or patterns.
- Maintain strong contrast for off-white text on graphite and reserve muted gray for metadata only.

### Don't

- Do not add neon glow, purple cyberpunk gradients, glassmorphism, starfields, or decorative planets.
- Do not use amber for brand decoration; it must mean caution, delay, threshold, or pending status.
- Do not soften the system with large radii, pastel cards, drop-shadow stacks, or generic SaaS dashboards.
- Do not let dense telemetry become illegible; tables need clear alignment, units, and row rhythm.
- Do not introduce extra accent colors beyond required semantic error, success, warning, and info states.

### Accessibility

Core text exceeds WCAG AA contrast on graphite; cyan and amber are paired with rails, labels, icons, and patterns so status never depends on hue alone.

### Usage Context

Best for aerospace operations software, satellite fleet monitoring, institutional security telemetry, industrial observability, and restrained sci-fi command systems.
DESIGN.md
---
version: "alpha"
name: "Orbital Graphite Telemetry"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#D99B43"
  background: "#111416"
  border: "#343B40"
  error: "#D46A5A"
  info: "#7FCBE5"
  muted: "#8B969C"
  primary: "#9EDCF2"
  secondary: "#77838C"
  success: "#8FBF9A"
  surface: "#181D20"
  text: "#E8E4D8"
  warning: "#D99B43"
typography:
  headline-lg:
    fontFamily: "Saira Condensed"
    fontSize: "1.728rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "0.01em"
  headline-md:
    fontFamily: "Saira Condensed"
    fontSize: "1.44rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "0.01em"
  body-md:
    fontFamily: "Atkinson Hyperlegible"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "0.01em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "4px"
  md: "2px"
  none: "0px"
  sm: "0px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Orbital Graphite Telemetry

## Overview

A restrained brutalist orbital interface language for institutional mission tools: matte graphite structure, off-white instrument typography, glacier-blue telemetry, and amber states reserved for genuine caution.

### Values

- operational restraint
- institutional legibility
- orbital systems discipline
- semantic color scarcity
- matte material honesty

### Anti-Values

- neon sci-fi spectacle
- decorative gradients
- soft SaaS friendliness
- ambiguous status color
- glassy chrome surfaces

### Visual Character

- Use a low-chroma near-black graphite page with slightly lighter matte panels separated by 1px rule lines and inset gridded plotting fields.
- Set headings in condensed technical uppercase with wide tracking, while dense readings and identifiers use monospaced off-white instrument text.
- Reserve glacier cyan for telemetry traces, selected tabs, active focus rings, and small coordinate marks instead of filling large surfaces.
- Apply warm amber only to caution chips, threshold ticks, and one or two status rows so warnings read as operational events.
- Build layouts from rectilinear mission-console compartments with square corners, serial labels, hairline dividers, and no decorative softness.

## 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 | `#D99B43` |
| background | `#111416` |
| border | `#343B40` |
| error | `#D46A5A` |
| info | `#7FCBE5` |
| muted | `#8B969C` |
| primary | `#9EDCF2` |
| secondary | `#77838C` |
| success | `#8FBF9A` |
| surface | `#181D20` |
| text | `#E8E4D8` |
| warning | `#D99B43` |

## Typography

- **Headline-Lg**: Saira Condensed, 1.728rem, weight 700, line-height 1.1.
- **Headline-Md**: Saira Condensed, 1.44rem, weight 600, line-height 1.15.
- **Body-Md**: Atkinson Hyperlegible, 16px, weight 400, line-height 1.5.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`

### Breakpoints

Mobile 375px single-column stack; tablet 768px two-column plot-plus-telemetry; desktop 1200px+ full mission console with side rail.

### Grid

Twelve-column desktop grid with 8px base increments, fixed command rail, dominant 7-column plot area, and 3-column telemetry stack.

### Whitespace

Whitespace is measured as instrument clearance: tight within tables, 16-24px around panels, and larger margins only around the primary orbital plot.

## Elevation & Depth

### Shadows

- **Lg**: 0 30px 90px rgba(0, 0, 0, 0.48)
- **Md**: 0 18px 60px rgba(0, 0, 0, 0.34)
- **Sm**: 0 0 0 1px rgba(158, 220, 242, 0.10)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `4px`
- **Md**: `2px`
- **None**: `0px`
- **Sm**: `0px`

### Surfaces

- **Bg Pattern**: Low-contrast 24px orthogonal grid plus sparse orbital coordinate ticks embedded into the graphite background.
- **Card Style**: Square mission panels with 1px borders, clipped serial headers, cyan selection rails, and compact amber caution stamps.
- **Treatment**: Matte graphite slabs with no gloss, subtle noise, hard compartment seams, and faint plotted grid overlays.

### Borders

- **Accent Width**: 2px
- **Character**: Hairline graphite dividers with cyan used for active selection rails and amber used only for caution thresholds.
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Compose screens as mission-console compartments: a narrow command rail, a dominant orbital plot, stacked telemetry tables, and status strips locked to a strict grid.

### Density

High-density but readable: compact tables, small serial metadata, and generous internal gutters around the dominant plot prevent dashboard mush.

### Hierarchy

Hierarchy comes from scale, uppercase condensed labels, border weight, and cyan selection rails; large color fields are avoided so status colors retain meaning.

### Signature Patterns

- Graphite plotting panels combine a faint square grid, crosshair ticks, cyan trajectory SVG strokes, and small monospaced coordinate callouts.
- Active modules show a 2px glacier-blue left rail with bracket-corner marks instead of rounded pills or bright filled buttons.
- Caution states appear as amber stamped chips with black inset text, threshold hash marks, and never occupy more than a small row segment.
- Section headers use condensed uppercase mission codes, rule-line extensions, and right-aligned serial numbers to create institutional cadence.
- Data tables use alternating graphite bands, thin vertical dividers, numeric mono alignment, and color only in semantic status glyphs.

## 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-019eaed3-eb97-7972-a8e2-1b00dc1d871e/DESIGN.with-shadcn.md`.

The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.

Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.

## Do's and Don'ts

- Do Use graphite, off-white, glacier cyan, and sparse amber in exactly defined semantic roles.
- Do Make every panel feel like a mission artifact with serial labels, units, coordinates, or verification states.
- Do Keep corners square or nearly square and rely on borders, grids, and typography for identity.
- Do Ensure cyan and amber states have non-color cues such as rails, stamps, icons, labels, or patterns.
- Do Maintain strong contrast for off-white text on graphite and reserve muted gray for metadata only.
- Don't Do not add neon glow, purple cyberpunk gradients, glassmorphism, starfields, or decorative planets.
- Don't Do not use amber for brand decoration; it must mean caution, delay, threshold, or pending status.
- Don't Do not soften the system with large radii, pastel cards, drop-shadow stacks, or generic SaaS dashboards.
- Don't Do not let dense telemetry become illegible; tables need clear alignment, units, and row rhythm.
- Don't Do not introduce extra accent colors beyond required semantic error, success, warning, and info states.

### Accessibility

Core text exceeds WCAG AA contrast on graphite; cyan and amber are paired with rails, labels, icons, and patterns so status never depends on hue alone.

### Usage Context

Best for aerospace operations software, satellite fleet monitoring, institutional security telemetry, industrial observability, and restrained sci-fi command systems.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "orbital-graphite-telemetry",
  "type": "registry:theme",
  "title": "Orbital Graphite Telemetry shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#111416",
      "foreground": "#E8E4D8",
      "card": "#181D20",
      "card-foreground": "#E8E4D8",
      "popover": "#181D20",
      "popover-foreground": "#E8E4D8",
      "primary": "#9EDCF2",
      "primary-foreground": "#111111",
      "secondary": "#77838C",
      "secondary-foreground": "#ffffff",
      "muted": "#8B969C",
      "muted-foreground": "#E8E4D8",
      "accent": "#D99B43",
      "accent-foreground": "#ffffff",
      "destructive": "#D46A5A",
      "border": "#343B40",
      "input": "#343B40",
      "ring": "#D99B43",
      "chart-1": "#9EDCF2",
      "chart-2": "#77838C",
      "chart-3": "#D99B43",
      "chart-4": "#8FBF9A",
      "chart-5": "#D99B43",
      "sidebar": "#181D20",
      "sidebar-foreground": "#E8E4D8",
      "sidebar-primary": "#9EDCF2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#7FCBE5",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#343B40",
      "sidebar-ring": "#D99B43",
      "radius": "2px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#9EDCF2",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D99B43",
      "accent-foreground": "#ffffff",
      "destructive": "#D46A5A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D99B43",
      "chart-1": "#9EDCF2",
      "chart-2": "#77838C",
      "chart-3": "#D99B43",
      "chart-4": "#8FBF9A",
      "chart-5": "#D99B43",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#9EDCF2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#D99B43",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D99B43",
      "radius": "2px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019eaed3-eb97-7972-a8e2-1b00dc1d871e",
    "slug": "orbital-graphite-telemetry",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · orbital-graphite-telemetry
DESIGN.md

at a glance

Palette

Typography

headline-lgSaira Condensed · 28px · 700

The quick brown fox jumps

headline-mdSaira Condensed · 23px · 600

The quick brown fox jumps

body-mdAtkinson Hyperlegible · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

Components rendered with this language’s tokens — colors, type, and rounded corners as specified.

Spacing

  • base8px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • 2xl32px
  • 3xl48px
  • 4xl64px

Shape

full9999px
lg4px
md2px
none0px
sm0px
shadcn/ui

implementation kit

needs agent-authored kitstored
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.
primaryaccentsurfacemutederror
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: #111416;
  --foreground: #E8E4D8;
  --card: #181D20;
  --card-foreground: #E8E4D8;
  --popover: #181D20;
  --popover-foreground: #E8E4D8;
  --primary: #9EDCF2;
  --primary-foreground: #111111;
  --secondary: #77838C;
  --secondary-foreground: #ffffff;
  --muted: #8B969C;
  --muted-foreground: #E8E4D8;
  --accent: #D99B43;
  --accent-foreground: #ffffff;
  --destructive: #D46A5A;
  --border: #343B40;
  --input: #343B40;
  --ring: #D99B43;
  --chart-1: #9EDCF2;
  --chart-2: #77838C;
  --chart-3: #D99B43;
  --chart-4: #8FBF9A;
  --chart-5: #D99B43;
  --sidebar: #181D20;
  --sidebar-foreground: #E8E4D8;
  --sidebar-primary: #9EDCF2;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #7FCBE5;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #343B40;
  --sidebar-ring: #D99B43;
  --radius: 2px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #9EDCF2;
  --primary-foreground: #111111;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #D99B43;
  --accent-foreground: #ffffff;
  --destructive: #D46A5A;
  --border: #303642;
  --input: #303642;
  --ring: #D99B43;
  --chart-1: #9EDCF2;
  --chart-2: #77838C;
  --chart-3: #D99B43;
  --chart-4: #8FBF9A;
  --chart-5: #D99B43;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #9EDCF2;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #D99B43;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #D99B43;
  --radius: 2px;
}
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 OrbitalGraphiteTelemetryShadcnKit() {
  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">Orbital Graphite Telemetry</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": "orbital-graphite-telemetry",
  "type": "registry:theme",
  "title": "Orbital Graphite Telemetry shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#111416",
      "foreground": "#E8E4D8",
      "card": "#181D20",
      "card-foreground": "#E8E4D8",
      "popover": "#181D20",
      "popover-foreground": "#E8E4D8",
      "primary": "#9EDCF2",
      "primary-foreground": "#111111",
      "secondary": "#77838C",
      "secondary-foreground": "#ffffff",
      "muted": "#8B969C",
      "muted-foreground": "#E8E4D8",
      "accent": "#D99B43",
      "accent-foreground": "#ffffff",
      "destructive": "#D46A5A",
      "border": "#343B40",
      "input": "#343B40",
      "ring": "#D99B43",
      "chart-1": "#9EDCF2",
      "chart-2": "#77838C",
      "chart-3": "#D99B43",
      "chart-4": "#8FBF9A",
      "chart-5": "#D99B43",
      "sidebar": "#181D20",
      "sidebar-foreground": "#E8E4D8",
      "sidebar-primary": "#9EDCF2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#7FCBE5",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#343B40",
      "sidebar-ring": "#D99B43",
      "radius": "2px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#9EDCF2",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D99B43",
      "accent-foreground": "#ffffff",
      "destructive": "#D46A5A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D99B43",
      "chart-1": "#9EDCF2",
      "chart-2": "#77838C",
      "chart-3": "#D99B43",
      "chart-4": "#8FBF9A",
      "chart-5": "#D99B43",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#9EDCF2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#D99B43",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D99B43",
      "radius": "2px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019eaed3-eb97-7972-a8e2-1b00dc1d871e",
    "slug": "orbital-graphite-telemetry",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
component recipesstored
# Orbital Graphite Telemetry shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate the mission-console language into local shadcn/ui primitives: matte graphite surfaces, square compartments, off-white typography, glacier-cyan active telemetry, and amber caution only for semantic status.

## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, table.

## Token cues
Use `{colors.background}` for the application field, `{colors.surface}` for panels, `{colors.text}` for instrument text, `{colors.muted}` for metadata, `{colors.info}` and `{colors.primary}` for selected telemetry, `{colors.warning}` for caution, `{colors.border}` for every seam, `{rounded.none}` or `{rounded.sm}` for most components, and `{spacing.2}`/`{spacing.3}` for dense control rhythm.

## Visual character to preserve
Square graphite cards with 1px seams; condensed uppercase section labels; monospaced numeric readings; cyan rails for selected states; amber stamped badges for caution; gridded underlays inside data-heavy panels.

## ShadSync visual profile
family: orbital-institutional; material: matte-graphite; contour: squared; border: hairline-compartment; underlay: telemetry-grid; grain: subtle; stickerBadges: false; motion: diagnostic-snap; density: high; accents: glacier-cyan and sparse amber.

## Signature component recipes
- button: default is transparent graphite with a hairline border; primary adds a 2px cyan left rail; destructive remains muted red text and never glows; warning uses an amber fill only when the action is truly cautionary.
- card: square panel, 1px border, serial-number header slot, optional grid background for telemetry cards, no large radius or soft shadow.
- input, textarea, select: graphite field, square corners, mono value text, cyan focus ring, uppercase mono labels, clear unit/help text.
- dialog and sheet: mission procedure overlays with hard borders, dark scrim, serial headers, and a cyan rail on the active step.
- tabs: active tab uses a cyan top or left rule, inactive tabs remain muted graphite text with no filled pill treatment.
- badge: status badges are compact mono stamps; amber only for caution, cyan for info/selected, green for nominal, red for error.
- separator: one-pixel graphite rule with optional label notch; never decorative gradients.
- checkbox and switch: rectangular/squared controls; checked state shows cyan rail/check, not a glowing blob.
- slider: thin rail with cyan filled track, amber threshold hash mark, and visible numeric readout.
- tooltip and dropdown-menu: matte graphite, square border, mono metadata, no floating glass effect.
- table: compact mono-aligned numeric cells, alternating graphite bands, semantic dot/glyph plus label for status.

## Preview shots
application-shell shows the fleet operations console; detail-editor shows a maneuver authorization form; data-operations shows a telemetry table with filters, thresholds, dropdown actions, and semantic statuses.

## Implementation contract
Import local primitives from `@/components/ui/*`. Do not invent custom component systems. Preserve square radii, hairline seams, dense spacing, high contrast text, and semantic-only cyan/amber accents.

## Copy-paste component example
```tsx
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
import { Input } from "@/components/ui/input"
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"

export function OrbitalTelemetryCard() {
  return (
    <Card className="rounded-none border border-border bg-card text-card-foreground shadow-none">
      <CardHeader className="border-b border-border px-3 py-2">
        <div className="flex items-center justify-between gap-3">
          <CardTitle className="font-heading text-lg uppercase tracking-[0.12em]">Conjunction Queue</CardTitle>
          <Badge className="rounded-none bg-warning px-2 py-1 font-mono text-xs text-background">CAUTION</Badge>
        </div>
      </CardHeader>
      <CardContent className="space-y-3 p-3">
        <Input className="rounded-none border-border bg-background font-mono focus-visible:ring-info" defaultValue="ODAC-17-TRIM-A" />
        <Table>
          <TableHeader><TableRow><TableHead>Object</TableHead><TableHead>Range</TableHead><TableHead>State</TableHead></TableRow></TableHeader>
          <TableBody>
            <TableRow><TableCell className="font-mono">COSMOS-1408</TableCell><TableCell className="font-mono">0.84 km</TableCell><TableCell><Badge variant="outline" className="rounded-none border-info text-info">TRACK</Badge></TableCell></TableRow>
          </TableBody>
        </Table>
        <Button className="rounded-none border-l-2 border-l-info bg-secondary font-mono uppercase tracking-wide">Simulate Burn</Button>
      </CardContent>
    </Card>
  )
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "card",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "input",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "textarea",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "select",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "dialog",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "sheet",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "tabs",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "badge",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "separator",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "checkbox",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "switch",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "slider",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "tooltip",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    },
    {
      "component": "table",
      "recipe": "Use square graphite construction, 1px borders, mono operational labels, cyan active/focus cues, and amber only for warning or pending status."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoid": [
        "neon glow",
        "rounded pill navigation",
        "decorative starfield"
      ],
      "composition": "Mission shell with command rail, active cyan tab, orbital plot card, telemetry table, status badges, and dropdown command menu.",
      "id": "application-shell",
      "mustShowStates": [
        "active cyan selection rail",
        "nominal badge",
        "amber caution badge",
        "hover tooltip on covariance"
      ],
      "primitives": [
        "button",
        "card",
        "tabs",
        "badge",
        "separator",
        "table",
        "tooltip",
        "dropdown-menu"
      ],
      "scene": {
        "actions": [
          "Simulate burn",
          "Open command menu"
        ],
        "description": "Operators compare conjunction probability, covariance freshness, and burn simulation readiness before the next ground-pass window.",
        "eyebrow": "LEO CONSTELLATION / GS-04",
        "headline": "Orbital debris avoidance console",
        "rows": [
          {
            "object": "COSMOS-1408",
            "range": "0.84 km",
            "state": "CAUTION"
          },
          {
            "object": "FLOCK-3P",
            "range": "2.18 km",
            "state": "TRACK"
          },
          {
            "object": "STARLINK-2219",
            "range": "5.60 km",
            "state": "NOMINAL"
          }
        ],
        "stats": [
          {
            "label": "Miss distance",
            "value": "0.84 km"
          },
          {
            "label": "Delta V",
            "value": "0.42 m/s"
          },
          {
            "label": "AOS",
            "value": "06:14"
          },
          {
            "label": "Covariance",
            "value": "17 min stale"
          }
        ]
      }
    },
    {
      "avoid": [
        "soft form cards",
        "large friendly toggles",
        "color without labels"
      ],
      "composition": "Maneuver authorization editor with graphite form fields, cyan focus, amber threshold slider, dual-key confirmation dialog, and compact caution copy.",
      "id": "detail-editor",
      "mustShowStates": [
        "focused input with cyan ring",
        "amber threshold hash",
        "checked rectangular checkbox",
        "open dialog"
      ],
      "primitives": [
        "card",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "button",
        "dialog",
        "badge"
      ],
      "scene": {
        "actions": [
          "Save draft",
          "Request dual key"
        ],
        "description": "A flight dynamics lead prepares a manual-confirm burn package while covariance refresh remains pending.",
        "eyebrow": "MANEUVER DRAFT ODAC-17",
        "fields": [
          {
            "label": "Burn identifier",
            "value": "ODAC-17-TRIM-A"
          },
          {
            "label": "Execution mode",
            "value": "Manual confirm / dual key"
          },
          {
            "label": "Operator note",
            "value": "Hold amber until GS-04 covariance packet arrives."
          }
        ],
        "headline": "Authorize trim burn procedure",
        "stats": [
          {
            "label": "Throttle",
            "value": "42%"
          },
          {
            "label": "Window",
            "value": "T-06:14"
          },
          {
            "label": "Risk",
            "value": "Amber"
          }
        ]
      }
    },
    {
      "avoid": [
        "spreadsheet defaults",
        "rainbow statuses",
        "generic analytics cards"
      ],
      "composition": "Dense telemetry operations table with filters, selected row cyan rail, amber stale data row, sheet detail inspection, and monospaced numeric alignment.",
      "id": "data-operations",
      "mustShowStates": [
        "selected table row",
        "warning status with amber chip",
        "sheet open on right",
        "filter input"
      ],
      "primitives": [
        "table",
        "badge",
        "input",
        "select",
        "button",
        "separator",
        "sheet",
        "tabs",
        "tooltip"
      ],
      "scene": {
        "actions": [
          "Clear filters",
          "Inspect selected"
        ],
        "description": "Subsystem channels are filtered by bus, state, and freshness before operators clear the caution queue.",
        "eyebrow": "TELEMETRY OPERATIONS",
        "headline": "Channel health and threshold review",
        "rows": [
          {
            "channel": "BUS-A",
            "freshness": "00:04",
            "state": "NOM",
            "value": "27.8 V"
          },
          {
            "channel": "RX TEMP",
            "freshness": "00:07",
            "state": "LOW",
            "value": "-04.2 C"
          },
          {
            "channel": "COVAR",
            "freshness": "17:02",
            "state": "STALE",
            "value": "17 MIN"
          },
          {
            "channel": "S-BAND",
            "freshness": "00:02",
            "state": "NOM",
            "value": "81%"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "glacier-cyan-selection",
      "warm-amber-caution-only"
    ],
    "border": "hairline-compartment",
    "contour": "squared",
    "density": "high",
    "family": "orbital-institutional",
    "grain": "subtle-noise",
    "material": "matte-graphite",
    "motion": "diagnostic-snap",
    "stickerBadges": false,
    "underlay": "telemetry-grid"
  }
}
related

More like this