back to gallery
design language·graphite-command-workbench

Graphite Command Workbench

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
Graphite Command Workbench is a dense, keyboard-first system language for production tools where search, selection, and routing decisions matter more than decoration. It borrows the tempo of code editors and command palettes without imitating terminals: warm graphite neutrals, precise hairlines, compact rows, and one electric focus accent make a work surface that feels fast, credible, and maintained by people who ship operational software.
values
Keyboard confidence: every important state has a visible focus treatment, shortcut label, and selected-row behavior.Neutral density: compact information architecture is allowed to feel serious without becoming cramped or hostile.Editor rhythm over dashboard chrome: rows, gutters, panes, and command bars replace generic metric cards and marketing surfaces.Surgical accent use: electric blue appears only for command selection, focus rings, active carets, and primary commit actions.Production credibility: semantic status color is restrained and paired with text, shape, or placement instead of decorative badges.Token discipline: borders, radii, shadows, and motion are deliberately narrow so the system remains coherent at scale.
anti-values
×Terminal cosplay, phosphor glow, hacker green, or novelty monospace atmospherics.×Generic SaaS gradients, oversized rounded cards, cheerful empty-state illustration, or emoji decoration.×Low-density vanity layouts where every panel receives the same weight and no screen looks operational.×Colorful status confetti; no more than one electric command accent and one restrained semantic accent.
tokens
borders4 items
accent width
2px
character
near-invisible neutral separators with electric-blue bracket corners only on focus and selection
default width
1px
style
solid rgba hairline
colors12 items
accent
#2F5BFF
background
#E8E3DA
border
#C8C0B4
error
#9A3A32
info
#2F5BFF
muted
#676B73
primary
#2F5BFF
secondary
#32363E
success
#2F6F55
surface
#F4F0E8
text
#17191D
warning
#9B6500
motion3 items
duration
140ms
easing
cubic-bezier(.2,.8,.2,1)
philosophy
motion is functional and short: palette rows snap, focus brackets draw in, and panels never bounce or drift
radii5 items
full
9999px
lg
24px
md
16px
none
0
sm
0
shadows3 items
lg
0 32px 90px rgba(23,25,29,0.22)
md
0 18px 48px rgba(23,25,29,0.14)
sm
0 1px 0 rgba(23,25,29,0.08)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
bg pattern
background uses a quiet 8px workbench grid at under 4% ink opacity
card style
flat panels with 1px translucent hairlines, inset top rules, 16px radius maximum, and clipped command headers
treatment
warm graphite-tinted neutrals with no decorative gradients; only subtle row-line textures under dense data
typography8 items
base size
16px
body font
Spline Sans
google fonts url
https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@500;600;700&family=Fragment+Mono&family=Spline+Sans:wght@400;500;600;700&display=swap
heading font
Azeret Mono
letter spacing
-0.02em
line height
1.55
mono font
Fragment Mono
scale ratio
1.22
rules
composition
Use an application-shell composition: persistent rail, narrow command index, large detail workspace, and one deliberate overlay. Avoid equal card rows; one panel should dominate while dense supporting panes remain compact. Let vertical dividers, sticky headers, and command strips define the architecture more than decorative containers.
density
High density is intentional: rows can be 34-44px tall, labels can sit close to values, and panes can scroll independently. Large spacing appears only around the main work area and between unrelated sections, preserving the required 8:1 rhythm.
hierarchy
Headings use Azeret Mono in compact uppercase or tight title case with -0.04em display tracking. Body copy uses Spline Sans at 15-16px with -0.02em tracking. Status and shortcuts use Fragment Mono in tabular, high-contrast pills. Electric blue outranks all other signals but appears sparingly.
signature patterns
Focus brackets: selected components draw four small electric-blue corner ticks with pseudo-elements instead of using a full outline glow.Command caret rows: active list and palette rows use a 3px blue left rule, a warm selected fill, and aligned shortcut capsules.Workbench hairlines: panes have translucent 1px borders plus an inset top border that creates a machined editor-tab surface.Row-rhythm texture: dense tables and logs use a low-opacity repeating-linear-gradient background aligned to row height.Shortcut taxonomy: keyboard hints appear as small squared mono pills with exact spacing and muted border tokens, never as colorful badges.
layout
breakpoints
>=1200px full three-pane shell; 768-1199px collapses index to top command strip above detail; <640px stacks rail, search, list, detail, and palette with horizontal shortcut scrolling.
density

Dense by default with 34px rows, 16px panel padding, 48px outer workspace gaps, and independent scrolling panes for operational screens.

grid

Desktop uses a 64px rail, 312px command index, and minmax(0,1fr) detail grid with 16px gutters; detail area contains a 5/3 asymmetric split.

responsive

Keep command search and selected route visible at every viewport; hide noncritical metadata before shrinking text below 15px.

whitespace

Related controls cluster at 4-12px; pane padding is 16-24px; unrelated compositions separate at 64-96px so density has breathing intervals.

guidance
do
  • Use warm neutral backgrounds and graphite text before reaching for accent color.
  • Reserve electric blue for focus, command selection, search affordances, active carets, and the single primary action.
  • Make every interactive element keyboard legible with shortcut pills, visible focus brackets, and selected-row state.
  • Build hierarchy through panes, row density, sticky headers, and typographic roles rather than decorative illustrations.
  • Use one restrained semantic accent such as green for healthy state, always with text or structural position.
  • Align numbers and IDs with mono tabular treatment; use labels close to their values for operational scanning.
  • Include one compositional break such as a floating command palette or wide incident strip, not equal card rows.
avoid
  • Do not use terminal green, scanline theatrics, glowing CRT effects, or hacker-console nostalgia.
  • Do not create rows of three equal metric cards or generic analytics dashboards.
  • Do not add gradients, emoji, colorful badges, or illustration to make the screen feel friendly.
  • Do not use accent blue for background decoration, secondary buttons, charts, and status all at once.
  • Do not lower body text below 15px or rely on pale gray text that fails contrast.
  • Do not mix many radii; use square edges for rails and 16px for functional panels.
  • Do not allow borders to become heavy gray boxes; prefer translucent hairlines and inset rules.
katagami spec
# Graphite Command Workbench

## Philosophy

Graphite Command Workbench is a dense, keyboard-first system language for production tools where search, selection, and routing decisions matter more than decoration. It borrows the tempo of code editors and command palettes without imitating terminals: warm graphite neutrals, precise hairlines, compact rows, and one electric focus accent make a work surface that feels fast, credible, and maintained by people who ship operational software.

### Values

- Keyboard confidence: every important state has a visible focus treatment, shortcut label, and selected-row behavior.
- Neutral density: compact information architecture is allowed to feel serious without becoming cramped or hostile.
- Editor rhythm over dashboard chrome: rows, gutters, panes, and command bars replace generic metric cards and marketing surfaces.
- Surgical accent use: electric blue appears only for command selection, focus rings, active carets, and primary commit actions.
- Production credibility: semantic status color is restrained and paired with text, shape, or placement instead of decorative badges.
- Token discipline: borders, radii, shadows, and motion are deliberately narrow so the system remains coherent at scale.

### Anti-Values

- Terminal cosplay, phosphor glow, hacker green, or novelty monospace atmospherics.
- Generic SaaS gradients, oversized rounded cards, cheerful empty-state illustration, or emoji decoration.
- Low-density vanity layouts where every panel receives the same weight and no screen looks operational.
- Colorful status confetti; no more than one electric command accent and one restrained semantic accent.

### Visual Character

- A three-pane CSS grid with a fixed utility rail, a scrollable command index column, and an asymmetric detail workspace using minmax columns.
- Focused and selected controls use electric-blue bracket corners built with ::before and ::after pseudo-elements rather than soft glows.
- Panels use 1px rgba hairlines, square-to-16px radii, and inset top rules so the interface reads as machined workbench surfaces.
- Dense list rows use subtle repeating-linear-gradient row rhythm and tabular numeric alignment to echo an editor without becoming a terminal.
- Command palette surfaces float as restrained neutral overlays with selected rows indicated by a blue left caret, shortcut pill, and high-contrast text.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: near-invisible neutral separators with electric-blue bracket corners only on focus and selection
- **Default Width**: 1px
- **Style**: solid rgba hairline

### Colors

| Name | Value |
|------|-------|
| accent | `#2F5BFF` |
| background | `#E8E3DA` |
| border | `#C8C0B4` |
| error | `#9A3A32` |
| info | `#2F5BFF` |
| muted | `#676B73` |
| primary | `#2F5BFF` |
| secondary | `#32363E` |
| success | `#2F6F55` |
| surface | `#F4F0E8` |
| text | `#17191D` |
| warning | `#9B6500` |

### Motion

- **Duration**: 140ms
- **Easing**: cubic-bezier(.2,.8,.2,1)
- **Philosophy**: motion is functional and short: palette rows snap, focus brackets draw in, and panels never bounce or drift

### Radii

- **Full**: 9999px
- **Lg**: 24px
- **Md**: 16px
- **None**: 0
- **Sm**: 0

### Shadows

- **Lg**: 0 32px 90px rgba(23,25,29,0.22)
- **Md**: 0 18px 48px rgba(23,25,29,0.14)
- **Sm**: 0 1px 0 rgba(23,25,29,0.08)

### Spacing

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

### Surfaces

- **Bg Pattern**: background uses a quiet 8px workbench grid at under 4% ink opacity
- **Card Style**: flat panels with 1px translucent hairlines, inset top rules, 16px radius maximum, and clipped command headers
- **Treatment**: warm graphite-tinted neutrals with no decorative gradients; only subtle row-line textures under dense data

### Typography

- **Base Size**: 16px
- **Body Font**: Spline Sans
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@500;600;700&family=Fragment+Mono&family=Spline+Sans:wght@400;500;600;700&display=swap
- **Heading Font**: Azeret Mono
- **Letter Spacing**: -0.02em
- **Line Height**: 1.55
- **Mono Font**: Fragment Mono
- **Scale Ratio**: 1.22

## Rules

### Composition

Use an application-shell composition: persistent rail, narrow command index, large detail workspace, and one deliberate overlay. Avoid equal card rows; one panel should dominate while dense supporting panes remain compact. Let vertical dividers, sticky headers, and command strips define the architecture more than decorative containers.

### Density

High density is intentional: rows can be 34-44px tall, labels can sit close to values, and panes can scroll independently. Large spacing appears only around the main work area and between unrelated sections, preserving the required 8:1 rhythm.

### Hierarchy

Headings use Azeret Mono in compact uppercase or tight title case with -0.04em display tracking. Body copy uses Spline Sans at 15-16px with -0.02em tracking. Status and shortcuts use Fragment Mono in tabular, high-contrast pills. Electric blue outranks all other signals but appears sparingly.

### Signature Patterns

- Focus brackets: selected components draw four small electric-blue corner ticks with pseudo-elements instead of using a full outline glow.
- Command caret rows: active list and palette rows use a 3px blue left rule, a warm selected fill, and aligned shortcut capsules.
- Workbench hairlines: panes have translucent 1px borders plus an inset top border that creates a machined editor-tab surface.
- Row-rhythm texture: dense tables and logs use a low-opacity repeating-linear-gradient background aligned to row height.
- Shortcut taxonomy: keyboard hints appear as small squared mono pills with exact spacing and muted border tokens, never as colorful badges.

## Layout

### Breakpoints

>=1200px full three-pane shell; 768-1199px collapses index to top command strip above detail; <640px stacks rail, search, list, detail, and palette with horizontal shortcut scrolling.

### Density

Dense by default with 34px rows, 16px panel padding, 48px outer workspace gaps, and independent scrolling panes for operational screens.

### Grid

Desktop uses a 64px rail, 312px command index, and minmax(0,1fr) detail grid with 16px gutters; detail area contains a 5/3 asymmetric split.

### Responsive

Keep command search and selected route visible at every viewport; hide noncritical metadata before shrinking text below 15px.

### Whitespace

Related controls cluster at 4-12px; pane padding is 16-24px; unrelated compositions separate at 64-96px so density has breathing intervals.

## Guidance

### Do

- Use warm neutral backgrounds and graphite text before reaching for accent color.
- Reserve electric blue for focus, command selection, search affordances, active carets, and the single primary action.
- Make every interactive element keyboard legible with shortcut pills, visible focus brackets, and selected-row state.
- Build hierarchy through panes, row density, sticky headers, and typographic roles rather than decorative illustrations.
- Use one restrained semantic accent such as green for healthy state, always with text or structural position.
- Align numbers and IDs with mono tabular treatment; use labels close to their values for operational scanning.
- Include one compositional break such as a floating command palette or wide incident strip, not equal card rows.

### Don't

- Do not use terminal green, scanline theatrics, glowing CRT effects, or hacker-console nostalgia.
- Do not create rows of three equal metric cards or generic analytics dashboards.
- Do not add gradients, emoji, colorful badges, or illustration to make the screen feel friendly.
- Do not use accent blue for background decoration, secondary buttons, charts, and status all at once.
- Do not lower body text below 15px or rely on pale gray text that fails contrast.
- Do not mix many radii; use square edges for rails and 16px for functional panels.
- Do not allow borders to become heavy gray boxes; prefer translucent hairlines and inset rules.

### Accessibility

Maintain WCAG AA contrast for body text on warm neutral surfaces. Focus brackets must be at least 2px with electric-blue contrast above 3:1. Never communicate status through color alone; pair semantic color with text, icons, or placement. Touch targets should reach 44px on mobile even when desktop density is compact.

### Usage Context

Best for command palettes, infrastructure consoles, enterprise workflow engines, editor-like data systems, routing approvals, search-heavy admin tools, and keyboard-first product surfaces.
DESIGN.md
---
version: "alpha"
name: "Graphite Command Workbench"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#2F5BFF"
  background: "#E8E3DA"
  border: "#C8C0B4"
  error: "#9A3A32"
  info: "#2F5BFF"
  muted: "#676B73"
  primary: "#2F5BFF"
  secondary: "#32363E"
  success: "#2F6F55"
  surface: "#F4F0E8"
  text: "#17191D"
  warning: "#9B6500"
typography:
  headline-lg:
    fontFamily: "Azeret Mono"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Azeret Mono"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Spline Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Fragment Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "24px"
  md: "16px"
  none: "0px"
  sm: "0px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#ffffff"
    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"
---

# Graphite Command Workbench

## Overview

Graphite Command Workbench is a dense, keyboard-first system language for production tools where search, selection, and routing decisions matter more than decoration. It borrows the tempo of code editors and command palettes without imitating terminals: warm graphite neutrals, precise hairlines, compact rows, and one electric focus accent make a work surface that feels fast, credible, and maintained by people who ship operational software.

### Values

- Keyboard confidence: every important state has a visible focus treatment, shortcut label, and selected-row behavior.
- Neutral density: compact information architecture is allowed to feel serious without becoming cramped or hostile.
- Editor rhythm over dashboard chrome: rows, gutters, panes, and command bars replace generic metric cards and marketing surfaces.
- Surgical accent use: electric blue appears only for command selection, focus rings, active carets, and primary commit actions.
- Production credibility: semantic status color is restrained and paired with text, shape, or placement instead of decorative badges.
- Token discipline: borders, radii, shadows, and motion are deliberately narrow so the system remains coherent at scale.

### Anti-Values

- Terminal cosplay, phosphor glow, hacker green, or novelty monospace atmospherics.
- Generic SaaS gradients, oversized rounded cards, cheerful empty-state illustration, or emoji decoration.
- Low-density vanity layouts where every panel receives the same weight and no screen looks operational.
- Colorful status confetti; no more than one electric command accent and one restrained semantic accent.

### Visual Character

- A three-pane CSS grid with a fixed utility rail, a scrollable command index column, and an asymmetric detail workspace using minmax columns.
- Focused and selected controls use electric-blue bracket corners built with ::before and ::after pseudo-elements rather than soft glows.
- Panels use 1px rgba hairlines, square-to-16px radii, and inset top rules so the interface reads as machined workbench surfaces.
- Dense list rows use subtle repeating-linear-gradient row rhythm and tabular numeric alignment to echo an editor without becoming a terminal.
- Command palette surfaces float as restrained neutral overlays with selected rows indicated by a blue left caret, shortcut pill, and high-contrast text.

## 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 | `#2F5BFF` |
| background | `#E8E3DA` |
| border | `#C8C0B4` |
| error | `#9A3A32` |
| info | `#2F5BFF` |
| muted | `#676B73` |
| primary | `#2F5BFF` |
| secondary | `#32363E` |
| success | `#2F6F55` |
| surface | `#F4F0E8` |
| text | `#17191D` |
| warning | `#9B6500` |

## Typography

- **Headline-Lg**: Azeret Mono, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Azeret Mono, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Spline Sans, 16px, weight 400, line-height 1.55.
- **Label-Md**: Fragment Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

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

### Breakpoints

>=1200px full three-pane shell; 768-1199px collapses index to top command strip above detail; <640px stacks rail, search, list, detail, and palette with horizontal shortcut scrolling.

### Density

Dense by default with 34px rows, 16px panel padding, 48px outer workspace gaps, and independent scrolling panes for operational screens.

### Grid

Desktop uses a 64px rail, 312px command index, and minmax(0,1fr) detail grid with 16px gutters; detail area contains a 5/3 asymmetric split.

### Responsive

Keep command search and selected route visible at every viewport; hide noncritical metadata before shrinking text below 15px.

### Whitespace

Related controls cluster at 4-12px; pane padding is 16-24px; unrelated compositions separate at 64-96px so density has breathing intervals.

## Elevation & Depth

### Shadows

- **Lg**: 0 32px 90px rgba(23,25,29,0.22)
- **Md**: 0 18px 48px rgba(23,25,29,0.14)
- **Sm**: 0 1px 0 rgba(23,25,29,0.08)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `0px`

### Surfaces

- **Bg Pattern**: background uses a quiet 8px workbench grid at under 4% ink opacity
- **Card Style**: flat panels with 1px translucent hairlines, inset top rules, 16px radius maximum, and clipped command headers
- **Treatment**: warm graphite-tinted neutrals with no decorative gradients; only subtle row-line textures under dense data

### Borders

- **Accent Width**: 2px
- **Character**: near-invisible neutral separators with electric-blue bracket corners only on focus and selection
- **Default Width**: 1px
- **Style**: solid rgba hairline

## Components

### Composition

Use an application-shell composition: persistent rail, narrow command index, large detail workspace, and one deliberate overlay. Avoid equal card rows; one panel should dominate while dense supporting panes remain compact. Let vertical dividers, sticky headers, and command strips define the architecture more than decorative containers.

### Density

High density is intentional: rows can be 34-44px tall, labels can sit close to values, and panes can scroll independently. Large spacing appears only around the main work area and between unrelated sections, preserving the required 8:1 rhythm.

### Hierarchy

Headings use Azeret Mono in compact uppercase or tight title case with -0.04em display tracking. Body copy uses Spline Sans at 15-16px with -0.02em tracking. Status and shortcuts use Fragment Mono in tabular, high-contrast pills. Electric blue outranks all other signals but appears sparingly.

### Signature Patterns

- Focus brackets: selected components draw four small electric-blue corner ticks with pseudo-elements instead of using a full outline glow.
- Command caret rows: active list and palette rows use a 3px blue left rule, a warm selected fill, and aligned shortcut capsules.
- Workbench hairlines: panes have translucent 1px borders plus an inset top border that creates a machined editor-tab surface.
- Row-rhythm texture: dense tables and logs use a low-opacity repeating-linear-gradient background aligned to row height.
- Shortcut taxonomy: keyboard hints appear as small squared mono pills with exact spacing and muted border tokens, never as colorful badges.

## 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/graphite-command-workbench/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 warm neutral backgrounds and graphite text before reaching for accent color.
- Do Reserve electric blue for focus, command selection, search affordances, active carets, and the single primary action.
- Do Make every interactive element keyboard legible with shortcut pills, visible focus brackets, and selected-row state.
- Do Build hierarchy through panes, row density, sticky headers, and typographic roles rather than decorative illustrations.
- Do Use one restrained semantic accent such as green for healthy state, always with text or structural position.
- Do Align numbers and IDs with mono tabular treatment; use labels close to their values for operational scanning.
- Do Include one compositional break such as a floating command palette or wide incident strip, not equal card rows.
- Don't Do not use terminal green, scanline theatrics, glowing CRT effects, or hacker-console nostalgia.
- Don't Do not create rows of three equal metric cards or generic analytics dashboards.
- Don't Do not add gradients, emoji, colorful badges, or illustration to make the screen feel friendly.
- Don't Do not use accent blue for background decoration, secondary buttons, charts, and status all at once.
- Don't Do not lower body text below 15px or rely on pale gray text that fails contrast.
- Don't Do not mix many radii; use square edges for rails and 16px for functional panels.
- Don't Do not allow borders to become heavy gray boxes; prefer translucent hairlines and inset rules.

### Accessibility

Maintain WCAG AA contrast for body text on warm neutral surfaces. Focus brackets must be at least 2px with electric-blue contrast above 3:1. Never communicate status through color alone; pair semantic color with text, icons, or placement. Touch targets should reach 44px on mobile even when desktop density is compact.

### Usage Context

Best for command palettes, infrastructure consoles, enterprise workflow engines, editor-like data systems, routing approvals, search-heavy admin tools, and keyboard-first product surfaces.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "graphite-command-workbench",
  "type": "registry:theme",
  "title": "Graphite Command Workbench shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#E8E3DA",
      "foreground": "#17191D",
      "card": "#F4F0E8",
      "card-foreground": "#17191D",
      "popover": "#F4F0E8",
      "popover-foreground": "#17191D",
      "primary": "#2F5BFF",
      "primary-foreground": "#ffffff",
      "secondary": "#32363E",
      "secondary-foreground": "#ffffff",
      "muted": "#676B73",
      "muted-foreground": "#17191D",
      "accent": "#2F5BFF",
      "accent-foreground": "#ffffff",
      "destructive": "#9A3A32",
      "border": "#C8C0B4",
      "input": "#C8C0B4",
      "ring": "#2F5BFF",
      "chart-1": "#2F5BFF",
      "chart-2": "#32363E",
      "chart-3": "#2F5BFF",
      "chart-4": "#2F6F55",
      "chart-5": "#9B6500",
      "sidebar": "#F4F0E8",
      "sidebar-foreground": "#17191D",
      "sidebar-primary": "#2F5BFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2F5BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#C8C0B4",
      "sidebar-ring": "#2F5BFF",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#2F5BFF",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#2F5BFF",
      "accent-foreground": "#ffffff",
      "destructive": "#9A3A32",
      "border": "#303642",
      "input": "#303642",
      "ring": "#2F5BFF",
      "chart-1": "#2F5BFF",
      "chart-2": "#32363E",
      "chart-3": "#2F5BFF",
      "chart-4": "#2F6F55",
      "chart-5": "#9B6500",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#2F5BFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2F5BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#2F5BFF",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "graphite-command-workbench",
    "slug": "graphite-command-workbench",
    "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 · graphite-command-workbench
DESIGN.md

at a glance

Palette

Typography

headline-lgAzeret Mono · 29px · 700

The quick brown fox jumps

headline-mdAzeret Mono · 24px · 600

The quick brown fox jumps

body-mdSpline Sans · 16px · 400

The quick brown fox jumps

label-mdFragment 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
  • step-896px

Shape

full9999px
lg24px
md16px
none0px
sm0px
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.
primarysurfacemutedwarningerror
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: #E8E3DA;
  --foreground: #17191D;
  --card: #F4F0E8;
  --card-foreground: #17191D;
  --popover: #F4F0E8;
  --popover-foreground: #17191D;
  --primary: #2F5BFF;
  --primary-foreground: #ffffff;
  --secondary: #32363E;
  --secondary-foreground: #ffffff;
  --muted: #676B73;
  --muted-foreground: #17191D;
  --accent: #2F5BFF;
  --accent-foreground: #ffffff;
  --destructive: #9A3A32;
  --border: #C8C0B4;
  --input: #C8C0B4;
  --ring: #2F5BFF;
  --chart-1: #2F5BFF;
  --chart-2: #32363E;
  --chart-3: #2F5BFF;
  --chart-4: #2F6F55;
  --chart-5: #9B6500;
  --sidebar: #F4F0E8;
  --sidebar-foreground: #17191D;
  --sidebar-primary: #2F5BFF;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #2F5BFF;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #C8C0B4;
  --sidebar-ring: #2F5BFF;
  --radius: 16px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #2F5BFF;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #2F5BFF;
  --accent-foreground: #ffffff;
  --destructive: #9A3A32;
  --border: #303642;
  --input: #303642;
  --ring: #2F5BFF;
  --chart-1: #2F5BFF;
  --chart-2: #32363E;
  --chart-3: #2F5BFF;
  --chart-4: #2F6F55;
  --chart-5: #9B6500;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #2F5BFF;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #2F5BFF;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #2F5BFF;
  --radius: 16px;
}
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 GraphiteCommandWorkbenchShadcnKit() {
  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">Graphite Command Workbench</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": "graphite-command-workbench",
  "type": "registry:theme",
  "title": "Graphite Command Workbench shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#E8E3DA",
      "foreground": "#17191D",
      "card": "#F4F0E8",
      "card-foreground": "#17191D",
      "popover": "#F4F0E8",
      "popover-foreground": "#17191D",
      "primary": "#2F5BFF",
      "primary-foreground": "#ffffff",
      "secondary": "#32363E",
      "secondary-foreground": "#ffffff",
      "muted": "#676B73",
      "muted-foreground": "#17191D",
      "accent": "#2F5BFF",
      "accent-foreground": "#ffffff",
      "destructive": "#9A3A32",
      "border": "#C8C0B4",
      "input": "#C8C0B4",
      "ring": "#2F5BFF",
      "chart-1": "#2F5BFF",
      "chart-2": "#32363E",
      "chart-3": "#2F5BFF",
      "chart-4": "#2F6F55",
      "chart-5": "#9B6500",
      "sidebar": "#F4F0E8",
      "sidebar-foreground": "#17191D",
      "sidebar-primary": "#2F5BFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2F5BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#C8C0B4",
      "sidebar-ring": "#2F5BFF",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#2F5BFF",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#2F5BFF",
      "accent-foreground": "#ffffff",
      "destructive": "#9A3A32",
      "border": "#303642",
      "input": "#303642",
      "ring": "#2F5BFF",
      "chart-1": "#2F5BFF",
      "chart-2": "#32363E",
      "chart-3": "#2F5BFF",
      "chart-4": "#2F6F55",
      "chart-5": "#9B6500",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#2F5BFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2F5BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#2F5BFF",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "graphite-command-workbench",
    "slug": "graphite-command-workbench",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
component recipescompatibility fallback
# Graphite Command Workbench shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `graphite-command-workbench`
Slug: `graphite-command-workbench`

## Intent

Graphite Command Workbench is a dense, keyboard-first system language for production tools where search, selection, and routing decisions matter more than decoration. It borrows the tempo of code editors and command palettes without imitating terminals: warm graphite neutrals, precise hairlines, compact rows, and one electric focus accent make a work surface that feels fast, credible, and maintained by people who ship operational software.

## 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": "#2F5BFF",
  "background": "#E8E3DA",
  "border": "#C8C0B4",
  "error": "#9A3A32",
  "info": "#2F5BFF",
  "muted": "#676B73",
  "primary": "#2F5BFF",
  "secondary": "#32363E",
  "success": "#2F6F55",
  "surface": "#F4F0E8",
  "text": "#17191D",
  "warning": "#9B6500"
}

Typography:

{
  "base_size": "16px",
  "body_font": "Spline Sans",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@500;600;700&family=Fragment+Mono&family=Spline+Sans:wght@400;500;600;700&display=swap",
  "heading_font": "Azeret Mono",
  "letter_spacing": "-0.02em",
  "line_height": 1.55,
  "mono_font": "Fragment Mono",
  "scale_ratio": 1.22
}

## Visual character to preserve

- A three-pane CSS grid with a fixed utility rail, a scrollable command index column, and an asymmetric detail workspace using minmax columns.
- Focused and selected controls use electric-blue bracket corners built with ::before and ::after pseudo-elements rather than soft glows.
- Panels use 1px rgba hairlines, square-to-16px radii, and inset top rules so the interface reads as machined workbench surfaces.
- Dense list rows use subtle repeating-linear-gradient row rhythm and tabular numeric alignment to echo an editor without becoming a terminal.
- Command palette surfaces float as restrained neutral overlays with selected rows indicated by a blue left caret, shortcut pill, and high-contrast text.

## ShadSync visual profile

{
  "family": "brutalist",
  "material": "ink",
  "contour": "pebble",
  "border": "solid",
  "underlay": false,
  "grain": true,
  "stickerBadges": true,
  "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/graphite-command-workbench/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Use warm neutral backgrounds and graphite text before reaching for accent color.; Reserve electric blue for focus, command selection, search affordances, active carets, and the single primary action.; Make every interactive element keyboard legible with shortcut pills, visible focus brackets, and selected-row state.; Build hierarchy through panes, row density, sticky headers, and typographic roles rather than decorative illustrations.; Use one restrained semantic accent such as green for healthy state, always with text or structural position.; Align numbers and IDs with mono tabular treatment; use labels close to their values for operational scanning.; Include one compositional break such as a floating command palette or wide incident strip, not equal card rows.
- Do not: Do not use terminal green, scanline theatrics, glowing CRT effects, or hacker-console nostalgia.; Do not create rows of three equal metric cards or generic analytics dashboards.; Do not add gradients, emoji, colorful badges, or illustration to make the screen feel friendly.; Do not use accent blue for background decoration, secondary buttons, charts, and status all at once.; Do not lower body text below 15px or rely on pale gray text that fails contrast.; Do not mix many radii; use square edges for rails and 16px for functional panels.; Do not allow borders to become heavy gray boxes; prefer translucent hairlines and inset rules.

## 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 GraphiteCommandWorkbenchShadcnKit() {
  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">Graphite Command Workbench</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": ">=1200px full three-pane shell; 768-1199px collapses index to top command strip above detail; <640px stacks rail, search, list, detail, and palette with horizontal shortcut scrolling.",
  "density": "Dense by default with 34px rows, 16px panel padding, 48px outer workspace gaps, and independent scrolling panes for operational screens.",
  "grid": "Desktop uses a 64px rail, 312px command index, and minmax(0,1fr) detail grid with 16px gutters; detail area contains a 5/3 asymmetric split.",
  "responsive": "Keep command search and selected route visible at every viewport; hide noncritical metadata before shrinking text below 15px.",
  "whitespace": "Related controls cluster at 4-12px; pane padding is 16-24px; unrelated compositions separate at 64-96px so density has breathing intervals."
}
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": "graphite-command-workbench",
    "name": "Graphite Command Workbench",
    "slug": "graphite-command-workbench"
  },
  "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
  "primitives": [
    "button",
    "card",
    "input",
    "textarea",
    "select",
    "dialog",
    "sheet",
    "tabs",
    "badge",
    "separator",
    "checkbox",
    "switch",
    "slider",
    "tooltip",
    "dropdown-menu",
    "table"
  ],
  "identityNotes": [
    "A three-pane CSS grid with a fixed utility rail, a scrollable command index column, and an asymmetric detail workspace using minmax columns.",
    "Focused and selected controls use electric-blue bracket corners built with ::before and ::after pseudo-elements rather than soft glows.",
    "Panels use 1px rgba hairlines, square-to-16px radii, and inset top rules so the interface reads as machined workbench surfaces.",
    "Dense list rows use subtle repeating-linear-gradient row rhythm and tabular numeric alignment to echo an editor without becoming a terminal.",
    "Command palette surfaces float as restrained neutral overlays with selected rows indicated by a blue left caret, shortcut pill, and high-contrast text."
  ],
  "visualProfile": {
    "family": "brutalist",
    "material": "ink",
    "contour": "pebble",
    "border": "solid",
    "underlay": false,
    "grain": true,
    "stickerBadges": true,
    "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": "Graphite Command Workbench launch room",
        "description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
        "primaryAction": "Apply theme",
        "secondaryAction": "Review states",
        "stats": [
          {
            "label": "components",
            "value": "16",
            "tone": "accent"
          },
          {
            "label": "states",
            "value": "ready"
          },
          {
            "label": "density",
            "value": "balanced",
            "tone": "warning"
          }
        ],
        "rows": [
          {
            "label": "Primary flow",
            "value": "mapped",
            "status": "active"
          },
          {
            "label": "Token coverage",
            "value": "semantic",
            "status": "synced"
          },
          {
            "label": "Responsive proof",
            "value": "queued",
            "status": "review"
          }
        ],
        "statuses": [
          "Active",
          "Synced",
          "Draft"
        ]
      }
    },
    {
      "id": "detail-editor",
      "title": "Detail editor",
      "viewport": "tablet",
      "primitives": [
        "button",
        "card",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "dialog",
        "sheet"
      ],
      "composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
      "mustShow": [
        "focus ring",
        "error or destructive state",
        "dialog or sheet treatment",
        "written guidance content"
      ],
      "avoid": [
        "unstyled browser controls",
        "floating cards inside cards",
        "missing labels"
      ],
      "scene": {
        "eyebrow": "editing flow",
        "headline": "Language recipe editor",
        "description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
        "primaryAction": "Save recipe",
        "secondaryAction": "Open sheet",
        "fields": [
          {
            "label": "Component family",
            "value": "Narrative cards"
          },
          {
            "label": "State treatment",
            "value": "Visible focus + validation"
          },
          {
            "label": "Motion",
            "value": "Small lift, no opacity-only fade"
          }
        ],
        "statuses": [
          "Focus",
          "Invalid",
          "Confirmed"
        ]
      }
    },
    {
      "id": "data-operations",
      "title": "Data operations",
      "viewport": "mobile",
      "primitives": [
        "button",
        "tabs",
        "badge",
        "dropdown-menu",
        "table",
        "tooltip",
        "separator"
      ],
      "composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
      "mustShow": [
        "responsive reflow",
        "dense row styling",
        "menu affordance",
        "status badge system"
      ],
      "avoid": [
        "desktop-only tables",
        "text overflow",
        "default shadcn spacing without Katagami character"
      ],
      "scene": {
        "eyebrow": "operations",
        "headline": "Compact review queue",
        "description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
        "primaryAction": "Resolve",
        "secondaryAction": "Filter",
        "rows": [
          {
            "label": "Button hierarchy",
            "value": "approved",
            "status": "ok"
          },
          {
            "label": "Table rhythm",
            "value": "needs pass",
            "status": "watch"
          },
          {
            "label": "Empty state",
            "value": "designed",
            "status": "done"
          }
        ],
        "statuses": [
          "Queued",
          "Blocked",
          "Done"
        ]
      }
    }
  ],
  "componentRecipes": [
    {
      "primitive": "button",
      "intent": "Prove action hierarchy, focus, disabled, and destructive states."
    },
    {
      "primitive": "card",
      "intent": "Carry the language surface, border, elevation, and density rules."
    },
    {
      "primitive": "input",
      "intent": "Show labels, focus rings, validation, and spacing rhythm."
    },
    {
      "primitive": "textarea",
      "intent": "Show longer guidance, validation copy, and writing density."
    },
    {
      "primitive": "select",
      "intent": "Show filtering, selection contrast, and menu trigger styling."
    },
    {
      "primitive": "dialog",
      "intent": "Show centered decision states and overlay treatment."
    },
    {
      "primitive": "sheet",
      "intent": "Show contextual side panels and responsive editing."
    },
    {
      "primitive": "tabs",
      "intent": "Show navigational structure and active/inactive contrast."
    },
    {
      "primitive": "badge",
      "intent": "Show compact status vocabulary and semantic colors."
    },
    {
      "primitive": "separator",
      "intent": "Show section rhythm without generic gray dividers."
    },
    {
      "primitive": "checkbox",
      "intent": "Show binary selection with visible focus and checked states."
    },
    {
      "primitive": "switch",
      "intent": "Show settings toggles and on/off contrast."
    },
    {
      "primitive": "slider",
      "intent": "Show numeric adjustment with track/thumb styling."
    },
    {
      "primitive": "tooltip",
      "intent": "Show concise explanation styling above compact controls."
    },
    {
      "primitive": "dropdown-menu",
      "intent": "Show action menus, destructive items, and grouped choices."
    },
    {
      "primitive": "table",
      "intent": "Show dense operational data, separators, row states, and responsive behavior."
    }
  ],
  "qualityRules": {
    "do": [
      "Use warm neutral backgrounds and graphite text before reaching for accent color.",
      "Reserve electric blue for focus, command selection, search affordances, active carets, and the single primary action.",
      "Make every interactive element keyboard legible with shortcut pills, visible focus brackets, and selected-row state.",
      "Build hierarchy through panes, row density, sticky headers, and typographic roles rather than decorative illustrations.",
      "Use one restrained semantic accent such as green for healthy state, always with text or structural position.",
      "Align numbers and IDs with mono tabular treatment; use labels close to their values for operational scanning.",
      "Include one compositional break such as a floating command palette or wide incident strip, not equal card rows."
    ],
    "dont": [
      "Do not use terminal green, scanline theatrics, glowing CRT effects, or hacker-console nostalgia.",
      "Do not create rows of three equal metric cards or generic analytics dashboards.",
      "Do not add gradients, emoji, colorful badges, or illustration to make the screen feel friendly.",
      "Do not use accent blue for background decoration, secondary buttons, charts, and status all at once.",
      "Do not lower body text below 15px or rely on pale gray text that fails contrast.",
      "Do not mix many radii; use square edges for rails and 16px for functional panels.",
      "Do not allow borders to become heavy gray boxes; prefer translucent hairlines and inset rules."
    ]
  }
}
related

More like this