back to gallery
design language·terminal-brutalist-interface

Terminal Brutalist Interface

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
Terminal Brutalist Interface turns pixel art into a severe operations language: raw terminal grids, phosphor command lanes, amber warning registers, and square bitmap modules organize high-stakes infrastructure tools without nostalgic arcade clutter.
values
Legible command authorityGrid as product logicLow-color operational restraintVisible machine statesResponsive density without softness
anti-values
×Arcade novelty sprites×Glassmorphism or soft SaaS cards×Decorative neon gradients×Rounded generic dashboard chrome
tokens
borders4 items
accent width
4px
character
Square phosphor outlines, amber left rails for command zones, double-line separators for destructive or locked states.
default width
1px
style
solid
colors12 items
accent
#B6FF4D
background
#050706
border
#21442E
error
#FF5A3D
info
#55D7FF
muted
#6E8A74
primary
#39FF88
secondary
#F2A23A
success
#39FF88
surface
#0A0E0B
text
#D6FFE4
warning
#F2A23A
motion3 items
duration
120ms
easing
steps(2, end)
philosophy
State changes snap in two-step terminal refreshes; hover and focus shift by cell increments rather than smooth floating animation.
radii5 items
full
0px
lg
2px
md
0px
none
0px
sm
0px
shadows3 items
lg
0 0 0 1px rgba(242,162,58,0.32), 0 0 34px rgba(57,255,136,0.11)
md
0 0 0 1px rgba(57,255,136,0.28), 0 0 18px rgba(57,255,136,0.08)
sm
0 0 0 1px rgba(57,255,136,0.18)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
Layered 8px and 64px bitmap grid made with repeating-linear-gradient, with a faint horizontal CRT raster overlay.
card style
Square panels use 1px phosphor borders, inset 4px amber gutters, hard corners, and internal 8px cell divisions.
treatment
Off-black terminal surfaces with no blur, no soft radius, subtle scanlines, and sparse phosphor glow for active regions.
typography8 items
base size
16px
body font
IBM Plex Mono
google fonts url
https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=Martian+Mono:wght@400;500;700;800&display=swap
heading font
Martian Mono
letter spacing
-0.01em
line height
1.45
mono font
Martian Mono
scale ratio
1.2
rules
composition

Compose screens as command consoles: a dominant terminal viewport owns the page, while side registers and bottom logs lock to the 8px grid around it.

density

High density is permitted when the grid is explicit; related values sit in tight 4-8px clusters, with 48-64px gaps reserved for mode changes and major regions.

hierarchy

Hierarchy comes from phosphor brightness, amber command rails, uppercase prompt labels, data density, and block scale rather than shadows or rounded elevation.

signature patterns
Command gutters: active panels carry a 4px amber rail plus a ::before prompt tag that identifies mode and creates immediate navigation hierarchy.CRT raster veil: terminal and map regions include a repeating horizontal scanline overlay that appears only on machine-output surfaces and stays below text contrast.Bitmap state meters: progress, battery, and risk are drawn as discrete square cells with phosphor, amber, or red fills instead of continuous rounded bars.Dithered hazard masks: warning panels use checkerboard CSS gradients at 8px scale to show degraded signal without adding illustrations or icons.Hard cut focus: controls receive a 2px phosphor outline, amber corner ticks, and a one-cell translate on focus/hover using steps timing.
layout
breakpoints

Mobile 375px single command stream; tablet 768px two registers; desktop 1200px+ dominant terminal plus right rail and bottom log.

grid

8px base grid with 64px macro columns, CSS grid shell, square cell cards, and fixed-width terminal gutters.

whitespace

Whitespace is black terminal silence: large 48px and 64px gaps separate modes, while dense readouts use 4px and 8px increments.

guidance
do
  • Use real operational labels, telemetry rows, commands, risk levels, and terminal output so the grid has product meaning.
  • Keep the palette mostly off-black and phosphor; reserve amber for command rails and warnings.
  • Build controls, tables, dialogs, and maps from square cells, hard borders, and monospace hierarchy.
  • Preserve contrast and avoid making scanlines interfere with body copy.
avoid
  • Do not use retro game mascots, rainbow pixel sprites, glossy neon gradients, or novelty 8-bit fonts for long text.
  • Do not round cards into generic SaaS surfaces or add soft drop shadows for elevation.
  • Do not scatter pixel motifs without letting the grid organize navigation, data, and controls.
  • Do not treat error, success, and warning colors as the only signature; the terminal structure must remain visible.
katagami spec
# Terminal Brutalist Interface

## Philosophy

Terminal Brutalist Interface turns pixel art into a severe operations language: raw terminal grids, phosphor command lanes, amber warning registers, and square bitmap modules organize high-stakes infrastructure tools without nostalgic arcade clutter.

### Values

- Legible command authority
- Grid as product logic
- Low-color operational restraint
- Visible machine states
- Responsive density without softness

### Anti-Values

- Arcade novelty sprites
- Glassmorphism or soft SaaS cards
- Decorative neon gradients
- Rounded generic dashboard chrome

### Visual Character

- Use a full-page repeating-linear-gradient 8px terminal grid plus heavier 64px rails to make the background visibly quantized in CSS.
- Render panels as square black blocks with 1px phosphor borders, 4px inset amber command gutters, and clipped pseudo-elements instead of rounded cards.
- Set all headings, labels, tables, and controls in monospace with uppercase micro-labels, tight letter spacing, tabular numerals, and command-prompt prefixes.
- Apply CRT scanline overlays and low-opacity phosphor glows only to active terminals, focus rings, and data maps, never as broad decorative gradients.
- Use bitmap bar meters, stepped progress blocks, and checker dither masks to express status, risk, and throughput inside real interface components.

## Tokens

### Borders

- **Accent Width**: 4px
- **Character**: Square phosphor outlines, amber left rails for command zones, double-line separators for destructive or locked states.
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#B6FF4D` |
| background | `#050706` |
| border | `#21442E` |
| error | `#FF5A3D` |
| info | `#55D7FF` |
| muted | `#6E8A74` |
| primary | `#39FF88` |
| secondary | `#F2A23A` |
| success | `#39FF88` |
| surface | `#0A0E0B` |
| text | `#D6FFE4` |
| warning | `#F2A23A` |

### Motion

- **Duration**: 120ms
- **Easing**: steps(2, end)
- **Philosophy**: State changes snap in two-step terminal refreshes; hover and focus shift by cell increments rather than smooth floating animation.

### Radii

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

### Shadows

- **Lg**: 0 0 0 1px rgba(242,162,58,0.32), 0 0 34px rgba(57,255,136,0.11)
- **Md**: 0 0 0 1px rgba(57,255,136,0.28), 0 0 18px rgba(57,255,136,0.08)
- **Sm**: 0 0 0 1px rgba(57,255,136,0.18)

### Spacing

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

### Surfaces

- **Bg Pattern**: Layered 8px and 64px bitmap grid made with repeating-linear-gradient, with a faint horizontal CRT raster overlay.
- **Card Style**: Square panels use 1px phosphor borders, inset 4px amber gutters, hard corners, and internal 8px cell divisions.
- **Treatment**: Off-black terminal surfaces with no blur, no soft radius, subtle scanlines, and sparse phosphor glow for active regions.

### Typography

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

## Rules

### Composition

Compose screens as command consoles: a dominant terminal viewport owns the page, while side registers and bottom logs lock to the 8px grid around it.

### Density

High density is permitted when the grid is explicit; related values sit in tight 4-8px clusters, with 48-64px gaps reserved for mode changes and major regions.

### Hierarchy

Hierarchy comes from phosphor brightness, amber command rails, uppercase prompt labels, data density, and block scale rather than shadows or rounded elevation.

### Signature Patterns

- Command gutters: active panels carry a 4px amber rail plus a ::before prompt tag that identifies mode and creates immediate navigation hierarchy.
- CRT raster veil: terminal and map regions include a repeating horizontal scanline overlay that appears only on machine-output surfaces and stays below text contrast.
- Bitmap state meters: progress, battery, and risk are drawn as discrete square cells with phosphor, amber, or red fills instead of continuous rounded bars.
- Dithered hazard masks: warning panels use checkerboard CSS gradients at 8px scale to show degraded signal without adding illustrations or icons.
- Hard cut focus: controls receive a 2px phosphor outline, amber corner ticks, and a one-cell translate on focus/hover using steps timing.

## Layout

### Breakpoints

Mobile 375px single command stream; tablet 768px two registers; desktop 1200px+ dominant terminal plus right rail and bottom log.

### Grid

8px base grid with 64px macro columns, CSS grid shell, square cell cards, and fixed-width terminal gutters.

### Whitespace

Whitespace is black terminal silence: large 48px and 64px gaps separate modes, while dense readouts use 4px and 8px increments.

## Guidance

### Do

- Use real operational labels, telemetry rows, commands, risk levels, and terminal output so the grid has product meaning.
- Keep the palette mostly off-black and phosphor; reserve amber for command rails and warnings.
- Build controls, tables, dialogs, and maps from square cells, hard borders, and monospace hierarchy.
- Preserve contrast and avoid making scanlines interfere with body copy.

### Don't

- Do not use retro game mascots, rainbow pixel sprites, glossy neon gradients, or novelty 8-bit fonts for long text.
- Do not round cards into generic SaaS surfaces or add soft drop shadows for elevation.
- Do not scatter pixel motifs without letting the grid organize navigation, data, and controls.
- Do not treat error, success, and warning colors as the only signature; the terminal structure must remain visible.
DESIGN.md
---
version: "alpha"
name: "Terminal Brutalist Interface"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#B6FF4D"
  background: "#050706"
  border: "#21442E"
  error: "#FF5A3D"
  info: "#55D7FF"
  muted: "#6E8A74"
  primary: "#39FF88"
  secondary: "#F2A23A"
  success: "#39FF88"
  surface: "#0A0E0B"
  text: "#D6FFE4"
  warning: "#F2A23A"
typography:
  headline-lg:
    fontFamily: "Martian Mono"
    fontSize: "1.728rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Martian Mono"
    fontSize: "1.44rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.45
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "Martian Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "0px"
  lg: "2px"
  md: "0px"
  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"
---

# Terminal Brutalist Interface

## Overview

Terminal Brutalist Interface turns pixel art into a severe operations language: raw terminal grids, phosphor command lanes, amber warning registers, and square bitmap modules organize high-stakes infrastructure tools without nostalgic arcade clutter.

### Values

- Legible command authority
- Grid as product logic
- Low-color operational restraint
- Visible machine states
- Responsive density without softness

### Anti-Values

- Arcade novelty sprites
- Glassmorphism or soft SaaS cards
- Decorative neon gradients
- Rounded generic dashboard chrome

### Visual Character

- Use a full-page repeating-linear-gradient 8px terminal grid plus heavier 64px rails to make the background visibly quantized in CSS.
- Render panels as square black blocks with 1px phosphor borders, 4px inset amber command gutters, and clipped pseudo-elements instead of rounded cards.
- Set all headings, labels, tables, and controls in monospace with uppercase micro-labels, tight letter spacing, tabular numerals, and command-prompt prefixes.
- Apply CRT scanline overlays and low-opacity phosphor glows only to active terminals, focus rings, and data maps, never as broad decorative gradients.
- Use bitmap bar meters, stepped progress blocks, and checker dither masks to express status, risk, and throughput inside real interface components.

## 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 | `#B6FF4D` |
| background | `#050706` |
| border | `#21442E` |
| error | `#FF5A3D` |
| info | `#55D7FF` |
| muted | `#6E8A74` |
| primary | `#39FF88` |
| secondary | `#F2A23A` |
| success | `#39FF88` |
| surface | `#0A0E0B` |
| text | `#D6FFE4` |
| warning | `#F2A23A` |

## Typography

- **Headline-Lg**: Martian Mono, 1.728rem, weight 700, line-height 1.1.
- **Headline-Md**: Martian Mono, 1.44rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Mono, 16px, weight 400, line-height 1.45.
- **Label-Md**: Martian 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 command stream; tablet 768px two registers; desktop 1200px+ dominant terminal plus right rail and bottom log.

### Grid

8px base grid with 64px macro columns, CSS grid shell, square cell cards, and fixed-width terminal gutters.

### Whitespace

Whitespace is black terminal silence: large 48px and 64px gaps separate modes, while dense readouts use 4px and 8px increments.

## Elevation & Depth

### Shadows

- **Lg**: 0 0 0 1px rgba(242,162,58,0.32), 0 0 34px rgba(57,255,136,0.11)
- **Md**: 0 0 0 1px rgba(57,255,136,0.28), 0 0 18px rgba(57,255,136,0.08)
- **Sm**: 0 0 0 1px rgba(57,255,136,0.18)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: Layered 8px and 64px bitmap grid made with repeating-linear-gradient, with a faint horizontal CRT raster overlay.
- **Card Style**: Square panels use 1px phosphor borders, inset 4px amber gutters, hard corners, and internal 8px cell divisions.
- **Treatment**: Off-black terminal surfaces with no blur, no soft radius, subtle scanlines, and sparse phosphor glow for active regions.

### Borders

- **Accent Width**: 4px
- **Character**: Square phosphor outlines, amber left rails for command zones, double-line separators for destructive or locked states.
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Compose screens as command consoles: a dominant terminal viewport owns the page, while side registers and bottom logs lock to the 8px grid around it.

### Density

High density is permitted when the grid is explicit; related values sit in tight 4-8px clusters, with 48-64px gaps reserved for mode changes and major regions.

### Hierarchy

Hierarchy comes from phosphor brightness, amber command rails, uppercase prompt labels, data density, and block scale rather than shadows or rounded elevation.

### Signature Patterns

- Command gutters: active panels carry a 4px amber rail plus a ::before prompt tag that identifies mode and creates immediate navigation hierarchy.
- CRT raster veil: terminal and map regions include a repeating horizontal scanline overlay that appears only on machine-output surfaces and stays below text contrast.
- Bitmap state meters: progress, battery, and risk are drawn as discrete square cells with phosphor, amber, or red fills instead of continuous rounded bars.
- Dithered hazard masks: warning panels use checkerboard CSS gradients at 8px scale to show degraded signal without adding illustrations or icons.
- Hard cut focus: controls receive a 2px phosphor outline, amber corner ticks, and a one-cell translate on focus/hover using steps timing.

## 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-019e6c91-25cc-72d1-8d7e-a4e7bc216bab/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 real operational labels, telemetry rows, commands, risk levels, and terminal output so the grid has product meaning.
- Do Keep the palette mostly off-black and phosphor; reserve amber for command rails and warnings.
- Do Build controls, tables, dialogs, and maps from square cells, hard borders, and monospace hierarchy.
- Do Preserve contrast and avoid making scanlines interfere with body copy.
- Don't Do not use retro game mascots, rainbow pixel sprites, glossy neon gradients, or novelty 8-bit fonts for long text.
- Don't Do not round cards into generic SaaS surfaces or add soft drop shadows for elevation.
- Don't Do not scatter pixel motifs without letting the grid organize navigation, data, and controls.
- Don't Do not treat error, success, and warning colors as the only signature; the terminal structure must remain visible.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "terminal-brutalist-interface",
  "type": "registry:theme",
  "title": "Terminal Brutalist Interface shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#050706",
      "foreground": "#D6FFE4",
      "card": "#0A0E0B",
      "card-foreground": "#D6FFE4",
      "popover": "#0A0E0B",
      "popover-foreground": "#D6FFE4",
      "primary": "#39FF88",
      "primary-foreground": "#111111",
      "secondary": "#F2A23A",
      "secondary-foreground": "#ffffff",
      "muted": "#6E8A74",
      "muted-foreground": "#D6FFE4",
      "accent": "#B6FF4D",
      "accent-foreground": "#111111",
      "destructive": "#FF5A3D",
      "border": "#21442E",
      "input": "#21442E",
      "ring": "#B6FF4D",
      "chart-1": "#39FF88",
      "chart-2": "#F2A23A",
      "chart-3": "#B6FF4D",
      "chart-4": "#39FF88",
      "chart-5": "#F2A23A",
      "sidebar": "#0A0E0B",
      "sidebar-foreground": "#D6FFE4",
      "sidebar-primary": "#39FF88",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#55D7FF",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#21442E",
      "sidebar-ring": "#B6FF4D",
      "radius": "0px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#39FF88",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#B6FF4D",
      "accent-foreground": "#111111",
      "destructive": "#FF5A3D",
      "border": "#303642",
      "input": "#303642",
      "ring": "#B6FF4D",
      "chart-1": "#39FF88",
      "chart-2": "#F2A23A",
      "chart-3": "#B6FF4D",
      "chart-4": "#39FF88",
      "chart-5": "#F2A23A",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#39FF88",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#B6FF4D",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#B6FF4D",
      "radius": "0px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019e6c91-25cc-72d1-8d7e-a4e7bc216bab",
    "slug": "terminal-brutalist-interface",
    "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 · terminal-brutalist-interface
DESIGN.md

at a glance

Palette

Typography

headline-lgMartian Mono · 28px · 700

The quick brown fox jumps

headline-mdMartian Mono · 23px · 600

The quick brown fox jumps

body-mdIBM Plex Mono · 16px · 400

The quick brown fox jumps

label-mdMartian 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

full0px
lg2px
md0px
none0px
sm0px
shadcn/ui

implementation kit

agent-authored kitstored + verified
shadcn implementation kit
These scenes and recipes came from the Katagami review agent and can be copied as the shadcn implementation layer.
shadsync shotsstored + verifiedpaper-collage

Terminal Brutalist Interface

Agent-authored scenes, component recipes, and visual profile rendered on local shadcn-style primitives.

Square panels use 1px phosphor borders, inset 4px amber gutters, hard corners, and internal 8px cell divisions.
> municipal tunnel gridapplication-shell

Grid Sentinel / 08

Operators reroute pump power through live phosphor nodes while amber locks protect unstable relays.

buttoncardtabsbadgeseparatortabletooltipdropdown-menu
Terminal Brutalist Interface
shadcn layer
Overview
Components
Reviews
Exports
primaryaccentsurfacemutedwarningerror
Continuity
97.4%
Latency
008ms
Amber locks
03
Component coverage
Filters, state, and row density rendered with the generated theme.
SurfaceStateStatus
Primary flowLIVELIVE
Token coverageHOLDHOLD
Responsive proofDEADDEAD
Must show
Avoid
generic KPI card row
rounded dashboard panels
> stage manual commanddetail-editor

Reroute Pump Array T18-PMP-09

A supervisor edits a safe reroute script and confirms which locks are allowed to release.

dialogsheetinputtextareaselectcheckboxswitchslider
Recipe details
Labels, validation, written guidance, and controls stay visible.
Density68
FocusInvalidConfirmed
Context sheet
Generated with the language job
sheet
Target node
T18-PMP-09
Operation
reroute --safe --amber
Supervisor note
Hold drain two until checksum clears.
Must show
Avoid
soft modal blur
pill switches
> relay operationsdata-operations

Subnet Relay Matrix

Technicians audit node load, lock state, and packet routing from a compact data-operations surface.

tabledropdown-menubuttonbadgeseparatorcardsliderswitch
Subnet Relay Matrix
Technicians audit node load, lock state, and packet routing from a compact data-operations surface.
LIVEHOLDDEAD
CheckFindingStatus
Button hierarchyapprovedLIVE
Table rhythmneeds passHOLD
Empty statedesignedDEAD
Responsive table, menu, tooltip, and badge proof.
Must show
Avoid
inventory wall of components
smooth continuous progress bars
recommendedagent kit includedverified

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: #050706;
  --foreground: #D6FFE4;
  --card: #0A0E0B;
  --card-foreground: #D6FFE4;
  --popover: #0A0E0B;
  --popover-foreground: #D6FFE4;
  --primary: #39FF88;
  --primary-foreground: #111111;
  --secondary: #F2A23A;
  --secondary-foreground: #ffffff;
  --muted: #6E8A74;
  --muted-foreground: #D6FFE4;
  --accent: #B6FF4D;
  --accent-foreground: #111111;
  --destructive: #FF5A3D;
  --border: #21442E;
  --input: #21442E;
  --ring: #B6FF4D;
  --chart-1: #39FF88;
  --chart-2: #F2A23A;
  --chart-3: #B6FF4D;
  --chart-4: #39FF88;
  --chart-5: #F2A23A;
  --sidebar: #0A0E0B;
  --sidebar-foreground: #D6FFE4;
  --sidebar-primary: #39FF88;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #55D7FF;
  --sidebar-accent-foreground: #111111;
  --sidebar-border: #21442E;
  --sidebar-ring: #B6FF4D;
  --radius: 0px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #39FF88;
  --primary-foreground: #111111;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #B6FF4D;
  --accent-foreground: #111111;
  --destructive: #FF5A3D;
  --border: #303642;
  --input: #303642;
  --ring: #B6FF4D;
  --chart-1: #39FF88;
  --chart-2: #F2A23A;
  --chart-3: #B6FF4D;
  --chart-4: #39FF88;
  --chart-5: #F2A23A;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #39FF88;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #B6FF4D;
  --sidebar-accent-foreground: #111111;
  --sidebar-border: #303642;
  --sidebar-ring: #B6FF4D;
  --radius: 0px;
}
tsx starter
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";

export function TerminalBrutalistInterfaceShadcnKit() {
  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">Terminal Brutalist Interface</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 JSONstored + verified
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "cssVars": {
    "dark": {
      "accent": "#B6FF4D",
      "accent-foreground": "#111111",
      "background": "#0f1115",
      "border": "#303642",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "chart-1": "#39FF88",
      "chart-2": "#F2A23A",
      "chart-3": "#B6FF4D",
      "chart-4": "#39FF88",
      "chart-5": "#F2A23A",
      "destructive": "#FF5A3D",
      "foreground": "#f8fafc",
      "input": "#303642",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#39FF88",
      "primary-foreground": "#111111",
      "radius": "0px",
      "ring": "#B6FF4D",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "sidebar": "#181b22",
      "sidebar-accent": "#B6FF4D",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#39FF88",
      "sidebar-primary-foreground": "#111111",
      "sidebar-ring": "#B6FF4D"
    },
    "light": {
      "accent": "#B6FF4D",
      "accent-foreground": "#111111",
      "background": "#050706",
      "border": "#21442E",
      "card": "#0A0E0B",
      "card-foreground": "#D6FFE4",
      "chart-1": "#39FF88",
      "chart-2": "#F2A23A",
      "chart-3": "#B6FF4D",
      "chart-4": "#39FF88",
      "chart-5": "#F2A23A",
      "destructive": "#FF5A3D",
      "foreground": "#D6FFE4",
      "input": "#21442E",
      "muted": "#6E8A74",
      "muted-foreground": "#D6FFE4",
      "popover": "#0A0E0B",
      "popover-foreground": "#D6FFE4",
      "primary": "#39FF88",
      "primary-foreground": "#111111",
      "radius": "0px",
      "ring": "#B6FF4D",
      "secondary": "#F2A23A",
      "secondary-foreground": "#ffffff",
      "sidebar": "#0A0E0B",
      "sidebar-accent": "#55D7FF",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#21442E",
      "sidebar-foreground": "#D6FFE4",
      "sidebar-primary": "#39FF88",
      "sidebar-primary-foreground": "#111111",
      "sidebar-ring": "#B6FF4D"
    },
    "theme": {}
  },
  "meta": {
    "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",
    "languageId": "en-019e6c91-25cc-72d1-8d7e-a4e7bc216bab",
    "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"
      ]
    },
    "slug": "terminal-brutalist-interface",
    "source": "katagami"
  },
  "name": "terminal-brutalist-interface",
  "title": "Terminal Brutalist Interface shadcn Theme",
  "type": "registry:theme"
}
component recipesstored + verified
# Terminal Brutalist Interface shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate Terminal Brutalist Interface into local shadcn/ui primitives for command consoles, telemetry editors, and data operations screens. The system must feel like a square phosphor terminal, not a generic dark dashboard.

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

## Token cues
Use `{colors.background}` for the page, `{colors.surface}` for cards, `{colors.primary}` for active phosphor, `{colors.secondary}` for amber command rails, `{colors.border}` for one-pixel outlines, `{typography.mono_font}` for labels and figures, `{spacing.*}` in 8px multiples, and `{rounded.none}` for almost every primitive.

## Visual character to preserve
- 8px/64px terminal grid backgrounds.
- Square panels with 1px phosphor borders and 4px amber command gutters.
- Monospace uppercase prompt labels and tabular numerals.
- CRT scanline overlays only on machine-output cards.
- Bitmap cell meters for progress, risk, and state.

## ShadSync visual profile
family: terminal-brutalist; material: off-black CRT glass; contour: square; border: phosphor-1px-with-amber-gutter; underlay: terminal-grid; grain: scanline; stickerBadges: false; motion: stepped-cell-snap; density: high; accents: phosphor-green and amber.

## Signature component recipes
- button: square, uppercase, `border border-primary`, no radius, hover translates one 4px cell with amber offset shadow; destructive uses red text with double border.
- card: surface black, one-pixel phosphor border, optional `before` amber gutter for command cards; data cards can add a scanline pseudo-element.
- input: black inset field, 1px border, phosphor focus outline with amber corner ticks; values use tabular monospace.
- textarea: same as input but with faint 8px baseline grid for command scripts.
- select: square trigger with amber chevron cell and uppercase current mode.
- dialog: hard-edged modal with 4px amber top rail, no overlay blur, terminal title prefix `> CONFIRM`.
- sheet: side register with fixed 64px grid subdivisions and dense rows.
- tabs: tab triggers look like command modes; active tab receives phosphor fill line and amber left rail.
- badge: square micro labels with one-pixel border; success green, warning amber, error red.
- separator: single phosphor line or double amber line for locked/destructive sections.
- checkbox: 16px square cell that fills phosphor and uses `X` glyph when checked.
- switch: row of discrete cells rather than a pill; active cells glow phosphor.
- slider: segmented bitmap track with square thumb snapping to 8px increments.
- tooltip: black terminal hint with amber prompt prefix and no rounded bubble.
- dropdown-menu: square command list, active item gets amber gutter and phosphor text.
- table: dense monospace rows, fixed grid columns, uppercase amber headers, badges embedded as state cells.

## Preview shots
1. application-shell: tunnel grid sentinel console with navigation register, dominant terminal map, and event log.
2. detail-editor: manual command dialog/sheet for staging a reroute with field focus and warning states.
3. data-operations: relay table with dropdown actions, segmented sliders, switches, and terminal badges.

## Implementation contract
Import local primitives from `@/components/ui/*`. Do not invent a separate component library. Keep all radii square, use no glass blur, and ensure focus states are visible through phosphor outlines and amber gutters.

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

export function TerminalRelayCard() {
  return (
    <Card className="relative overflow-hidden rounded-none border border-primary/50 bg-background text-foreground shadow-[0_0_18px_rgba(57,255,136,.08)] before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:bg-secondary">
      <CardHeader className="pl-6">
        <p className="font-mono text-[10px] uppercase tracking-widest text-secondary">&gt; relay table</p>
        <CardTitle className="font-mono uppercase tracking-[-0.06em] text-primary">Grid Sentinel / 08</CardTitle>
      </CardHeader>
      <CardContent className="space-y-3 pl-6 font-mono">
        <Input className="rounded-none border-border bg-black/40 font-mono focus-visible:ring-2 focus-visible:ring-primary" defaultValue="reroute --safe --amber" />
        <div className="flex gap-2"><Badge className="rounded-none border border-primary bg-transparent text-primary">LIVE</Badge><Badge className="rounded-none border border-secondary bg-transparent text-secondary">AMBER HOLD</Badge></div>
        <Table><TableHeader><TableRow><TableHead>Node</TableHead><TableHead>Load</TableHead><TableHead>State</TableHead></TableRow></TableHeader><TableBody><TableRow><TableCell>T18-PMP-09</TableCell><TableCell>41%</TableCell><TableCell>HOLD</TableCell></TableRow></TableBody></Table>
        <Button className="rounded-none border border-primary bg-transparent font-mono uppercase text-primary hover:translate-x-1 hover:-translate-y-1 hover:bg-transparent hover:shadow-[-4px_4px_0_#F2A23A]">Commit Route</Button>
      </CardContent>
    </Card>
  )
}
```
preview shotsstored + verified
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "card",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "input",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "textarea",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "select",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "dialog",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "sheet",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "tabs",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "badge",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "separator",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "checkbox",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "switch",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "slider",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "tooltip",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    },
    {
      "component": "table",
      "recipe": "Square terminal primitive with 1px phosphor border, no radius, monospace labels, amber gutters for active or command states, and stepped focus motion."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoid": [
        "generic KPI card row",
        "rounded dashboard panels",
        "decorative sprites"
      ],
      "composition": "Three-zone command shell: left command stack, dominant terminal map, right telemetry register, bottom event log locked to the 8px grid.",
      "id": "application-shell",
      "mustShowStates": [
        "active phosphor route",
        "amber hold badge",
        "hovered command button",
        "dead relay row"
      ],
      "primitives": [
        "button",
        "card",
        "tabs",
        "badge",
        "separator",
        "table",
        "tooltip",
        "dropdown-menu"
      ],
      "scene": {
        "actions": [
          "Commit route",
          "Isolate amber zone"
        ],
        "description": "Operators reroute pump power through live phosphor nodes while amber locks protect unstable relays.",
        "eyebrow": "> municipal tunnel grid",
        "headline": "Grid Sentinel / 08",
        "rows": [
          {
            "load": "83%",
            "node": "T18-AUX-04",
            "state": "LIVE"
          },
          {
            "load": "41%",
            "node": "T18-PMP-09",
            "state": "HOLD"
          },
          {
            "load": "00%",
            "node": "T17-DRN-02",
            "state": "DEAD"
          }
        ],
        "stats": [
          {
            "label": "Continuity",
            "value": "97.4%"
          },
          {
            "label": "Latency",
            "value": "008ms"
          },
          {
            "label": "Amber locks",
            "value": "03"
          }
        ]
      }
    },
    {
      "avoid": [
        "soft modal blur",
        "pill switches",
        "large empty form spacing"
      ],
      "composition": "A hard-edged reroute editor opens over a black grid, with amber top rail, command fields, segmented safety slider, and terminal confirmation log.",
      "id": "detail-editor",
      "mustShowStates": [
        "focused input phosphor outline",
        "checked square cell",
        "switch as segmented cells",
        "warning badge"
      ],
      "primitives": [
        "dialog",
        "sheet",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "button",
        "badge",
        "separator",
        "tooltip"
      ],
      "scene": {
        "actions": [
          "Stage command",
          "Abort"
        ],
        "description": "A supervisor edits a safe reroute script and confirms which locks are allowed to release.",
        "eyebrow": "> stage manual command",
        "fields": [
          {
            "label": "Target node",
            "value": "T18-PMP-09"
          },
          {
            "label": "Operation",
            "value": "reroute --safe --amber"
          },
          {
            "label": "Supervisor note",
            "value": "Hold drain two until checksum clears."
          }
        ],
        "headline": "Reroute Pump Array T18-PMP-09",
        "stats": [
          {
            "label": "Risk",
            "value": "AMBER"
          },
          {
            "label": "Cell snap",
            "value": "8px"
          }
        ]
      }
    },
    {
      "avoid": [
        "inventory wall of components",
        "smooth continuous progress bars",
        "unstructured pixel decoration"
      ],
      "composition": "Dense relay operations table with fixed monospace columns, row actions, amber warnings, segmented throughput controls, and tabbed command modes.",
      "id": "data-operations",
      "mustShowStates": [
        "selected table row",
        "open command dropdown",
        "segmented slider",
        "active terminal tab"
      ],
      "primitives": [
        "table",
        "dropdown-menu",
        "button",
        "badge",
        "separator",
        "card",
        "slider",
        "switch",
        "tooltip",
        "tabs",
        "select"
      ],
      "scene": {
        "actions": [
          "Sync selected",
          "Export log"
        ],
        "description": "Technicians audit node load, lock state, and packet routing from a compact data-operations surface.",
        "eyebrow": "> relay operations",
        "headline": "Subnet Relay Matrix",
        "rows": [
          {
            "load": "83%",
            "node": "T18-AUX-04",
            "packets": "18,402",
            "state": "LIVE"
          },
          {
            "load": "41%",
            "node": "T18-PMP-09",
            "packets": "8,119",
            "state": "HOLD"
          },
          {
            "load": "00%",
            "node": "T17-DRN-02",
            "packets": "0",
            "state": "DEAD"
          }
        ],
        "stats": [
          {
            "label": "Mode",
            "value": "MANUAL"
          },
          {
            "label": "Checksum",
            "value": "8F4A"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "phosphor green",
      "#39FF88",
      "amber",
      "#F2A23A",
      "red fault cells"
    ],
    "border": "1px phosphor with 4px amber command gutters",
    "contour": "square",
    "density": "high operational density",
    "family": "terminal-brutalist",
    "grain": "horizontal scanline raster on output regions",
    "material": "off-black CRT terminal glass",
    "motion": "two-step cell snap",
    "stickerBadges": false,
    "underlay": "8px terminal grid plus 64px macro rails"
  }
}
related

More like this