back to gallery
design language·signal-press-brutalism

Signal Press Brutalism

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
Signal Press Brutalism is a publication-first interface language shaped by independent magazines, photocopied zines, poster systems, and early brutalist web attitudes. It treats the screen like a production board: headlines are oversized and blunt, utility text is monospaced and annotated, images are cropped like pasted print fragments, and the grid stays visible as part of the composition rather than being hidden behind polish.
values
Editorial hierarchy must feel immediate and forceful, with covers, decks, side notes, and issue labels behaving like print matter translated to screen.Material roughness is a feature: visible rules, registration offsets, grain, hard crops, and taped-note motifs make production artifacts part of the interface identity.Utility and expression coexist: forms, filters, navigation, and reading tools stay usable, but they inherit the same raw typographic and structural language as the feature content.Asymmetry and interruption are encouraged when they sharpen hierarchy and pacing rather than creating random chaos.
anti-values
×Soft SaaS polish, glassmorphism, and luxury gradients that erase the sense of printed matter.×Neutral component-library layouts where every card, button, and panel shares the same generic rounded-box treatment.×Excessive animation smoothness or ornamental motion that makes the interface feel premium rather than mechanical and editorial.
tokens
colors12 items
primary
#0a0a0a
secondary
#f3efe6
accent
#ff5a1f
background
#f1ede3
surface
#fffdf8
text
#111111
muted
#5f5a52
border
#101010
error
#c92a2a
success
#18794e
warning
#d97904
info
#0b7285
typography8 items
heading font
Archivo Condensed
body font
IBM Plex Sans
mono font
IBM Plex Mono
base size
16px
scale ratio
1.25
line height
1.5
letter spacing
0.01em
google fonts url
https://fonts.googleapis.com/css2?family=Archivo+Condensed:wght@600;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
radii5 items
none
0
sm
0
md
0
lg
0
full
9999px
shadows3 items
sm
4px 4px 0 #101010
md
8px 8px 0 #101010
lg
12px 12px 0 #101010
surfaces3 items
treatment
paper
card style
Off-white paper panels with visible grain overlay, stark black rules, and fluorescent offset backplates.
bg pattern
grid
borders4 items
default width
3px
accent width
6px
style
solid
character
Heavy print-shop rules, square-corner frames, divider bars, and label outlines should be a primary visual ingredient, not a finishing detail.
motion3 items
duration
180ms
easing
cubic-bezier(0.2,0.8,0.2,1)
philosophy
snappy
rules
composition
Compose pages like issue covers and feature spreads: anchor the screen with one dominant headline block, support it with stacked metadata bands, then break the grid with secondary stories, pull quotes, and utility panels that feel pinned into place. Major regions should read as editorial modules rather than generic product cards.
hierarchy
Hierarchy comes from scale contrast, border weight, label treatment, and abrupt column shifts. Headlines should be dramatically larger than body text; monospace annotations and issue numerals create intermediate layers; captions and utility controls remain smaller but high-contrast and boxed.
density
Moderately dense. Pack the page with information and visible navigation options, but preserve reading rhythm through disciplined spacing bands, strong dividers, and clear module separation.
signature patterns
Every major panel uses a square 3px black frame plus an offset pseudo-element backplate in fluorescent orange or acid lime to create deliberate misregistration and overprint energy.Section headers combine giant condensed uppercase typography with a horizontal rule stack and small monospace kicker labels, producing a cover-line system instead of standard card titles.Metadata, captions, and control labels sit inside bordered strip elements with uppercase mono text, mimicking pasted tape labels and production notes across the interface.Feature imagery is wrapped with crop-mark corners, grain overlays, and caption bars so media reads like scanned printed matter rather than clean product photography.The layout uses exposed editorial rails: vertical divider lines, asymmetric multi-column spans, and margin notes that intentionally reveal the page grid as a compositional device.
layout
grid
Desktop uses a 12-column editorial grid with persistent left utility rail and flexible feature spans; tablet reduces to 8 columns with stacked rails; mobile becomes a single-column feed with preserved label strips and full-width modules.
breakpoints

Desktop 1440px and above, tablet 768px to 1439px, mobile 375px to 767px.

whitespace
Whitespace is disciplined rather than airy: tight internal padding for labels and controls, larger band spacing between major editorial modules, and deliberate gutters that keep the exposed grid legible.
responsive
desktop
Three-zone composition with masthead, feature well, and utility rail.
tablet
Feature and secondary modules stack into two columns while the utility rail converts into horizontal toolbars.
mobile
Single-column flow with headline block first, controls and metrics stacked, full-width buttons, and horizontally scrollable data only when necessary.
guidance
do
  • Use condensed display typography for headlines and issue numbers, with monospaced labels for metadata, controls, and navigational wayfinding.
  • Keep borders heavy, corners square, and module layering visible through offset plates, rule dividers, crop marks, and caption bars.
  • Treat imagery as editorial material: crop aggressively, add captions, and let grain or duotone treatments reinforce the publication feel.
  • Design complete reading scenes with filters, subscription prompts, issue navigation, and article modules instead of isolated component catalogs.
avoid
  • Do not soften the system with pill buttons, large border radii, translucent glass cards, or ambient gradient washes.
  • Do not rely on neutral product-dashboard composition where all blocks have equal weight and the page loses cover-line hierarchy.
  • Do not use polished icon packs or cute illustrations that undermine the raw print-shop and independent-publication tone.
  • Do not hide the grid under excessive spacing; the structure should remain visibly authored and editorial.
imagery
not set
generative
not set
katagami spec
# Signal Press Brutalism

## Philosophy

Signal Press Brutalism is a publication-first interface language shaped by independent magazines, photocopied zines, poster systems, and early brutalist web attitudes. It treats the screen like a production board: headlines are oversized and blunt, utility text is monospaced and annotated, images are cropped like pasted print fragments, and the grid stays visible as part of the composition rather than being hidden behind polish.

### Values

- Editorial hierarchy must feel immediate and forceful, with covers, decks, side notes, and issue labels behaving like print matter translated to screen.
- Material roughness is a feature: visible rules, registration offsets, grain, hard crops, and taped-note motifs make production artifacts part of the interface identity.
- Utility and expression coexist: forms, filters, navigation, and reading tools stay usable, but they inherit the same raw typographic and structural language as the feature content.
- Asymmetry and interruption are encouraged when they sharpen hierarchy and pacing rather than creating random chaos.

### Anti-Values

- Soft SaaS polish, glassmorphism, and luxury gradients that erase the sense of printed matter.
- Neutral component-library layouts where every card, button, and panel shares the same generic rounded-box treatment.
- Excessive animation smoothness or ornamental motion that makes the interface feel premium rather than mechanical and editorial.

### Visual Character

- Oversized condensed sans-serif headlines sit inside rigid black rule frameworks, often paired with small uppercase monospace metadata strips that read like pasted production labels.
- Cards and panels use thick 3px black borders, square corners, and offset fluorescent underlays or misregistered pseudo-elements so each block looks like an overprinted poster mounted on the page.
- Page sections expose the grid with asymmetric columns, broad gutters, vertical rule dividers, and marginal annotation rails instead of hiding structure behind seamless card masonry.
- Images appear as harsh editorial crops with grayscale or duotone treatment, grain overlays, caption bars, and surrounding crop-mark details that mimic scanned print layouts.
- Accent color is used like spot ink or marker pen in abrupt slashes, label strips, and pull-quote highlights rather than smooth background fills or ambient glows.

## Tokens

### Colors

| Name | Value |
|------|-------|
| primary | `#0a0a0a` |
| secondary | `#f3efe6` |
| accent | `#ff5a1f` |
| background | `#f1ede3` |
| surface | `#fffdf8` |
| text | `#111111` |
| muted | `#5f5a52` |
| border | `#101010` |
| error | `#c92a2a` |
| success | `#18794e` |
| warning | `#d97904` |
| info | `#0b7285` |

### Typography

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

### Spacing

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

### Radii

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

### Shadows

- **Sm**: 4px 4px 0 #101010
- **Md**: 8px 8px 0 #101010
- **Lg**: 12px 12px 0 #101010

### Surfaces

- **Treatment**: paper
- **Card Style**: Off-white paper panels with visible grain overlay, stark black rules, and fluorescent offset backplates.
- **Bg Pattern**: grid

### Borders

- **Default Width**: 3px
- **Accent Width**: 6px
- **Style**: solid
- **Character**: Heavy print-shop rules, square-corner frames, divider bars, and label outlines should be a primary visual ingredient, not a finishing detail.

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2,0.8,0.2,1)
- **Philosophy**: snappy

## Rules

### Composition

Compose pages like issue covers and feature spreads: anchor the screen with one dominant headline block, support it with stacked metadata bands, then break the grid with secondary stories, pull quotes, and utility panels that feel pinned into place. Major regions should read as editorial modules rather than generic product cards.

### Hierarchy

Hierarchy comes from scale contrast, border weight, label treatment, and abrupt column shifts. Headlines should be dramatically larger than body text; monospace annotations and issue numerals create intermediate layers; captions and utility controls remain smaller but high-contrast and boxed.

### Density

Moderately dense. Pack the page with information and visible navigation options, but preserve reading rhythm through disciplined spacing bands, strong dividers, and clear module separation.

### Signature Patterns

- Every major panel uses a square 3px black frame plus an offset pseudo-element backplate in fluorescent orange or acid lime to create deliberate misregistration and overprint energy.
- Section headers combine giant condensed uppercase typography with a horizontal rule stack and small monospace kicker labels, producing a cover-line system instead of standard card titles.
- Metadata, captions, and control labels sit inside bordered strip elements with uppercase mono text, mimicking pasted tape labels and production notes across the interface.
- Feature imagery is wrapped with crop-mark corners, grain overlays, and caption bars so media reads like scanned printed matter rather than clean product photography.
- The layout uses exposed editorial rails: vertical divider lines, asymmetric multi-column spans, and margin notes that intentionally reveal the page grid as a compositional device.

## Layout

### Grid

Desktop uses a 12-column editorial grid with persistent left utility rail and flexible feature spans; tablet reduces to 8 columns with stacked rails; mobile becomes a single-column feed with preserved label strips and full-width modules.

### Breakpoints

Desktop 1440px and above, tablet 768px to 1439px, mobile 375px to 767px.

### Whitespace

Whitespace is disciplined rather than airy: tight internal padding for labels and controls, larger band spacing between major editorial modules, and deliberate gutters that keep the exposed grid legible.

### Responsive

- **Desktop**: Three-zone composition with masthead, feature well, and utility rail.
- **Tablet**: Feature and secondary modules stack into two columns while the utility rail converts into horizontal toolbars.
- **Mobile**: Single-column flow with headline block first, controls and metrics stacked, full-width buttons, and horizontally scrollable data only when necessary.

## Guidance

### Do

- Use condensed display typography for headlines and issue numbers, with monospaced labels for metadata, controls, and navigational wayfinding.
- Keep borders heavy, corners square, and module layering visible through offset plates, rule dividers, crop marks, and caption bars.
- Treat imagery as editorial material: crop aggressively, add captions, and let grain or duotone treatments reinforce the publication feel.
- Design complete reading scenes with filters, subscription prompts, issue navigation, and article modules instead of isolated component catalogs.

### Don't

- Do not soften the system with pill buttons, large border radii, translucent glass cards, or ambient gradient washes.
- Do not rely on neutral product-dashboard composition where all blocks have equal weight and the page loses cover-line hierarchy.
- Do not use polished icon packs or cute illustrations that undermine the raw print-shop and independent-publication tone.
- Do not hide the grid under excessive spacing; the structure should remain visibly authored and editorial.

### Notes

Research synthesis drew from contemporary editorial web references, independent publication aesthetics, photocopy and poster traditions, and brutalist web conventions emphasizing exposed structure, raw typography, and anti-polish production cues.
DESIGN.md
---
version: "alpha"
name: "Signal Press Brutalism"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  primary: "#0a0a0a"
  secondary: "#f3efe6"
  accent: "#ff5a1f"
  background: "#f1ede3"
  surface: "#fffdf8"
  text: "#111111"
  muted: "#5f5a52"
  border: "#101010"
  error: "#c92a2a"
  success: "#18794e"
  warning: "#d97904"
  info: "#0b7285"
typography:
  headline-lg:
    fontFamily: "Archivo Condensed"
    fontSize: "1.953rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "0.01em"
  headline-md:
    fontFamily: "Archivo Condensed"
    fontSize: "1.563rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "0.01em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "0.01em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "0px"
  md: "0px"
  lg: "0px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  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"
---

# Signal Press Brutalism

## Overview

Signal Press Brutalism is a publication-first interface language shaped by independent magazines, photocopied zines, poster systems, and early brutalist web attitudes. It treats the screen like a production board: headlines are oversized and blunt, utility text is monospaced and annotated, images are cropped like pasted print fragments, and the grid stays visible as part of the composition rather than being hidden behind polish.

### Values

- Editorial hierarchy must feel immediate and forceful, with covers, decks, side notes, and issue labels behaving like print matter translated to screen.
- Material roughness is a feature: visible rules, registration offsets, grain, hard crops, and taped-note motifs make production artifacts part of the interface identity.
- Utility and expression coexist: forms, filters, navigation, and reading tools stay usable, but they inherit the same raw typographic and structural language as the feature content.
- Asymmetry and interruption are encouraged when they sharpen hierarchy and pacing rather than creating random chaos.

### Anti-Values

- Soft SaaS polish, glassmorphism, and luxury gradients that erase the sense of printed matter.
- Neutral component-library layouts where every card, button, and panel shares the same generic rounded-box treatment.
- Excessive animation smoothness or ornamental motion that makes the interface feel premium rather than mechanical and editorial.

### Visual Character

- Oversized condensed sans-serif headlines sit inside rigid black rule frameworks, often paired with small uppercase monospace metadata strips that read like pasted production labels.
- Cards and panels use thick 3px black borders, square corners, and offset fluorescent underlays or misregistered pseudo-elements so each block looks like an overprinted poster mounted on the page.
- Page sections expose the grid with asymmetric columns, broad gutters, vertical rule dividers, and marginal annotation rails instead of hiding structure behind seamless card masonry.
- Images appear as harsh editorial crops with grayscale or duotone treatment, grain overlays, caption bars, and surrounding crop-mark details that mimic scanned print layouts.
- Accent color is used like spot ink or marker pen in abrupt slashes, label strips, and pull-quote highlights rather than smooth background fills or ambient glows.

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| primary | `#0a0a0a` |
| secondary | `#f3efe6` |
| accent | `#ff5a1f` |
| background | `#f1ede3` |
| surface | `#fffdf8` |
| text | `#111111` |
| muted | `#5f5a52` |
| border | `#101010` |
| error | `#c92a2a` |
| success | `#18794e` |
| warning | `#d97904` |
| info | `#0b7285` |

## Typography

- **Headline-Lg**: Archivo Condensed, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo Condensed, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.5.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

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

### Grid

Desktop uses a 12-column editorial grid with persistent left utility rail and flexible feature spans; tablet reduces to 8 columns with stacked rails; mobile becomes a single-column feed with preserved label strips and full-width modules.

### Breakpoints

Desktop 1440px and above, tablet 768px to 1439px, mobile 375px to 767px.

### Whitespace

Whitespace is disciplined rather than airy: tight internal padding for labels and controls, larger band spacing between major editorial modules, and deliberate gutters that keep the exposed grid legible.

### Responsive

- **Desktop**: Three-zone composition with masthead, feature well, and utility rail.
- **Tablet**: Feature and secondary modules stack into two columns while the utility rail converts into horizontal toolbars.
- **Mobile**: Single-column flow with headline block first, controls and metrics stacked, full-width buttons, and horizontally scrollable data only when necessary.

## Elevation & Depth

### Shadows

- **Sm**: 4px 4px 0 #101010
- **Md**: 8px 8px 0 #101010
- **Lg**: 12px 12px 0 #101010

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: paper
- **Card Style**: Off-white paper panels with visible grain overlay, stark black rules, and fluorescent offset backplates.
- **Bg Pattern**: grid

### Borders

- **Default Width**: 3px
- **Accent Width**: 6px
- **Style**: solid
- **Character**: Heavy print-shop rules, square-corner frames, divider bars, and label outlines should be a primary visual ingredient, not a finishing detail.

## Components

### Composition

Compose pages like issue covers and feature spreads: anchor the screen with one dominant headline block, support it with stacked metadata bands, then break the grid with secondary stories, pull quotes, and utility panels that feel pinned into place. Major regions should read as editorial modules rather than generic product cards.

### Hierarchy

Hierarchy comes from scale contrast, border weight, label treatment, and abrupt column shifts. Headlines should be dramatically larger than body text; monospace annotations and issue numerals create intermediate layers; captions and utility controls remain smaller but high-contrast and boxed.

### Density

Moderately dense. Pack the page with information and visible navigation options, but preserve reading rhythm through disciplined spacing bands, strong dividers, and clear module separation.

### Signature Patterns

- Every major panel uses a square 3px black frame plus an offset pseudo-element backplate in fluorescent orange or acid lime to create deliberate misregistration and overprint energy.
- Section headers combine giant condensed uppercase typography with a horizontal rule stack and small monospace kicker labels, producing a cover-line system instead of standard card titles.
- Metadata, captions, and control labels sit inside bordered strip elements with uppercase mono text, mimicking pasted tape labels and production notes across the interface.
- Feature imagery is wrapped with crop-mark corners, grain overlays, and caption bars so media reads like scanned printed matter rather than clean product photography.
- The layout uses exposed editorial rails: vertical divider lines, asymmetric multi-column spans, and margin notes that intentionally reveal the page grid as a compositional device.

## 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-019d9bb8-47b5-75b2-8513-86d216577688/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 condensed display typography for headlines and issue numbers, with monospaced labels for metadata, controls, and navigational wayfinding.
- Do Keep borders heavy, corners square, and module layering visible through offset plates, rule dividers, crop marks, and caption bars.
- Do Treat imagery as editorial material: crop aggressively, add captions, and let grain or duotone treatments reinforce the publication feel.
- Do Design complete reading scenes with filters, subscription prompts, issue navigation, and article modules instead of isolated component catalogs.
- Don't Do not soften the system with pill buttons, large border radii, translucent glass cards, or ambient gradient washes.
- Don't Do not rely on neutral product-dashboard composition where all blocks have equal weight and the page loses cover-line hierarchy.
- Don't Do not use polished icon packs or cute illustrations that undermine the raw print-shop and independent-publication tone.
- Don't Do not hide the grid under excessive spacing; the structure should remain visibly authored and editorial.

### Notes

Research synthesis drew from contemporary editorial web references, independent publication aesthetics, photocopy and poster traditions, and brutalist web conventions emphasizing exposed structure, raw typography, and anti-polish production cues.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "signal-press-brutalism",
  "type": "registry:theme",
  "title": "Signal Press Brutalism shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#f1ede3",
      "foreground": "#111111",
      "card": "#fffdf8",
      "card-foreground": "#111111",
      "popover": "#fffdf8",
      "popover-foreground": "#111111",
      "primary": "#0a0a0a",
      "primary-foreground": "#ffffff",
      "secondary": "#f3efe6",
      "secondary-foreground": "#111111",
      "muted": "#5f5a52",
      "muted-foreground": "#111111",
      "accent": "#ff5a1f",
      "accent-foreground": "#ffffff",
      "destructive": "#c92a2a",
      "border": "#101010",
      "input": "#101010",
      "ring": "#ff5a1f",
      "chart-1": "#0a0a0a",
      "chart-2": "#f3efe6",
      "chart-3": "#ff5a1f",
      "chart-4": "#18794e",
      "chart-5": "#d97904",
      "sidebar": "#fffdf8",
      "sidebar-foreground": "#111111",
      "sidebar-primary": "#0a0a0a",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#0b7285",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#101010",
      "sidebar-ring": "#ff5a1f",
      "radius": "0"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0a0a0a",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#ff5a1f",
      "accent-foreground": "#ffffff",
      "destructive": "#c92a2a",
      "border": "#303642",
      "input": "#303642",
      "ring": "#ff5a1f",
      "chart-1": "#0a0a0a",
      "chart-2": "#f3efe6",
      "chart-3": "#ff5a1f",
      "chart-4": "#18794e",
      "chart-5": "#d97904",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0a0a0a",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#ff5a1f",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#ff5a1f",
      "radius": "0"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019d9bb8-47b5-75b2-8513-86d216577688",
    "slug": "signal-press-brutalism",
    "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": {
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · signal-press-brutalism
DESIGN.md

at a glance

Palette

Typography

headline-lgArchivo Condensed · 31px · 700

The quick brown fox jumps

headline-mdArchivo Condensed · 25px · 600

The quick brown fox jumps

body-mdIBM Plex Sans · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

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

Spacing

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

Shape

none0px
sm0px
md0px
lg0px
full9999px
shadcn/ui

implementation kit

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

DESIGN.md with shadcn

Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.

advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table
theme css
:root {
  --background: #f1ede3;
  --foreground: #111111;
  --card: #fffdf8;
  --card-foreground: #111111;
  --popover: #fffdf8;
  --popover-foreground: #111111;
  --primary: #0a0a0a;
  --primary-foreground: #ffffff;
  --secondary: #f3efe6;
  --secondary-foreground: #111111;
  --muted: #5f5a52;
  --muted-foreground: #111111;
  --accent: #ff5a1f;
  --accent-foreground: #ffffff;
  --destructive: #c92a2a;
  --border: #101010;
  --input: #101010;
  --ring: #ff5a1f;
  --chart-1: #0a0a0a;
  --chart-2: #f3efe6;
  --chart-3: #ff5a1f;
  --chart-4: #18794e;
  --chart-5: #d97904;
  --sidebar: #fffdf8;
  --sidebar-foreground: #111111;
  --sidebar-primary: #0a0a0a;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #0b7285;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #101010;
  --sidebar-ring: #ff5a1f;
  --radius: 0;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #0a0a0a;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #ff5a1f;
  --accent-foreground: #ffffff;
  --destructive: #c92a2a;
  --border: #303642;
  --input: #303642;
  --ring: #ff5a1f;
  --chart-1: #0a0a0a;
  --chart-2: #f3efe6;
  --chart-3: #ff5a1f;
  --chart-4: #18794e;
  --chart-5: #d97904;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #0a0a0a;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #ff5a1f;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #ff5a1f;
  --radius: 0;
}
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 SignalPressBrutalismShadcnKit() {
  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">Signal Press Brutalism</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": "signal-press-brutalism",
  "type": "registry:theme",
  "title": "Signal Press Brutalism shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#f1ede3",
      "foreground": "#111111",
      "card": "#fffdf8",
      "card-foreground": "#111111",
      "popover": "#fffdf8",
      "popover-foreground": "#111111",
      "primary": "#0a0a0a",
      "primary-foreground": "#ffffff",
      "secondary": "#f3efe6",
      "secondary-foreground": "#111111",
      "muted": "#5f5a52",
      "muted-foreground": "#111111",
      "accent": "#ff5a1f",
      "accent-foreground": "#ffffff",
      "destructive": "#c92a2a",
      "border": "#101010",
      "input": "#101010",
      "ring": "#ff5a1f",
      "chart-1": "#0a0a0a",
      "chart-2": "#f3efe6",
      "chart-3": "#ff5a1f",
      "chart-4": "#18794e",
      "chart-5": "#d97904",
      "sidebar": "#fffdf8",
      "sidebar-foreground": "#111111",
      "sidebar-primary": "#0a0a0a",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#0b7285",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#101010",
      "sidebar-ring": "#ff5a1f",
      "radius": "0"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0a0a0a",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#ff5a1f",
      "accent-foreground": "#ffffff",
      "destructive": "#c92a2a",
      "border": "#303642",
      "input": "#303642",
      "ring": "#ff5a1f",
      "chart-1": "#0a0a0a",
      "chart-2": "#f3efe6",
      "chart-3": "#ff5a1f",
      "chart-4": "#18794e",
      "chart-5": "#d97904",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0a0a0a",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#ff5a1f",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#ff5a1f",
      "radius": "0"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019d9bb8-47b5-75b2-8513-86d216577688",
    "slug": "signal-press-brutalism",
    "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": {
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
component recipescompatibility fallback
# Signal Press Brutalism shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019d9bb8-47b5-75b2-8513-86d216577688`
Slug: `signal-press-brutalism`

## Intent

Signal Press Brutalism is a publication-first interface language shaped by independent magazines, photocopied zines, poster systems, and early brutalist web attitudes. It treats the screen like a production board: headlines are oversized and blunt, utility text is monospaced and annotated, images are cropped like pasted print fragments, and the grid stays visible as part of the composition rather than being hidden behind polish.

## 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:

{
  "primary": "#0a0a0a",
  "secondary": "#f3efe6",
  "accent": "#ff5a1f",
  "background": "#f1ede3",
  "surface": "#fffdf8",
  "text": "#111111",
  "muted": "#5f5a52",
  "border": "#101010",
  "error": "#c92a2a",
  "success": "#18794e",
  "warning": "#d97904",
  "info": "#0b7285"
}

Typography:

{
  "heading_font": "Archivo Condensed",
  "body_font": "IBM Plex Sans",
  "mono_font": "IBM Plex Mono",
  "base_size": "16px",
  "scale_ratio": 1.25,
  "line_height": 1.5,
  "letter_spacing": "0.01em",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=Archivo+Condensed:wght@600;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap"
}

## Visual character to preserve

- Oversized condensed sans-serif headlines sit inside rigid black rule frameworks, often paired with small uppercase monospace metadata strips that read like pasted production labels.
- Cards and panels use thick 3px black borders, square corners, and offset fluorescent underlays or misregistered pseudo-elements so each block looks like an overprinted poster mounted on the page.
- Page sections expose the grid with asymmetric columns, broad gutters, vertical rule dividers, and marginal annotation rails instead of hiding structure behind seamless card masonry.
- Images appear as harsh editorial crops with grayscale or duotone treatment, grain overlays, caption bars, and surrounding crop-mark details that mimic scanned print layouts.
- Accent color is used like spot ink or marker pen in abrupt slashes, label strips, and pull-quote highlights rather than smooth background fills or ambient glows.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "default",
  "border": "solid",
  "underlay": true,
  "grain": true,
  "stickerBadges": false,
  "motion": "lift",
  "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/signal-press-brutalism/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 condensed display typography for headlines and issue numbers, with monospaced labels for metadata, controls, and navigational wayfinding.; Keep borders heavy, corners square, and module layering visible through offset plates, rule dividers, crop marks, and caption bars.; Treat imagery as editorial material: crop aggressively, add captions, and let grain or duotone treatments reinforce the publication feel.; Design complete reading scenes with filters, subscription prompts, issue navigation, and article modules instead of isolated component catalogs.
- Do not: Do not soften the system with pill buttons, large border radii, translucent glass cards, or ambient gradient washes.; Do not rely on neutral product-dashboard composition where all blocks have equal weight and the page loses cover-line hierarchy.; Do not use polished icon packs or cute illustrations that undermine the raw print-shop and independent-publication tone.; Do not hide the grid under excessive spacing; the structure should remain visibly authored and editorial.

## 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 SignalPressBrutalismShadcnKit() {
  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">Signal Press Brutalism</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

{
  "grid": "Desktop uses a 12-column editorial grid with persistent left utility rail and flexible feature spans; tablet reduces to 8 columns with stacked rails; mobile becomes a single-column feed with preserved label strips and full-width modules.",
  "breakpoints": "Desktop 1440px and above, tablet 768px to 1439px, mobile 375px to 767px.",
  "whitespace": "Whitespace is disciplined rather than airy: tight internal padding for labels and controls, larger band spacing between major editorial modules, and deliberate gutters that keep the exposed grid legible.",
  "responsive": {
    "desktop": "Three-zone composition with masthead, feature well, and utility rail.",
    "tablet": "Feature and secondary modules stack into two columns while the utility rail converts into horizontal toolbars.",
    "mobile": "Single-column flow with headline block first, controls and metrics stacked, full-width buttons, and horizontally scrollable data only when necessary."
  }
}
preview shotscompatibility fallback
{
  "artifact": "katagami:shadcn-preview-shots",
  "version": "preview-shots-v1",
  "generator": "katagami-ui-compatibility-projection",
  "generatedBy": "katagami-ui-projection",
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "renderable": true,
  "language": {
    "id": "en-019d9bb8-47b5-75b2-8513-86d216577688",
    "name": "Signal Press Brutalism",
    "slug": "signal-press-brutalism"
  },
  "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": [
    "Oversized condensed sans-serif headlines sit inside rigid black rule frameworks, often paired with small uppercase monospace metadata strips that read like pasted production labels.",
    "Cards and panels use thick 3px black borders, square corners, and offset fluorescent underlays or misregistered pseudo-elements so each block looks like an overprinted poster mounted on the page.",
    "Page sections expose the grid with asymmetric columns, broad gutters, vertical rule dividers, and marginal annotation rails instead of hiding structure behind seamless card masonry.",
    "Images appear as harsh editorial crops with grayscale or duotone treatment, grain overlays, caption bars, and surrounding crop-mark details that mimic scanned print layouts.",
    "Accent color is used like spot ink or marker pen in abrupt slashes, label strips, and pull-quote highlights rather than smooth background fills or ambient glows."
  ],
  "visualProfile": {
    "family": "paper-collage",
    "material": "paper",
    "contour": "default",
    "border": "solid",
    "underlay": true,
    "grain": true,
    "stickerBadges": false,
    "motion": "still",
    "density": "dense",
    "accents": [
      "primary",
      "accent",
      "secondary",
      "muted"
    ]
  },
  "shots": [
    {
      "id": "application-shell",
      "title": "Application shell",
      "viewport": "desktop",
      "primitives": [
        "button",
        "card",
        "input",
        "select",
        "tabs",
        "badge",
        "separator",
        "table"
      ],
      "composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
      "mustShow": [
        "primary and secondary actions",
        "card hierarchy",
        "filterable state",
        "table or list density"
      ],
      "avoid": [
        "component inventory walls",
        "placeholder-only content",
        "generic rounded SaaS chrome"
      ],
      "scene": {
        "eyebrow": "workspace spread",
        "headline": "Signal Press Brutalism 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 condensed display typography for headlines and issue numbers, with monospaced labels for metadata, controls, and navigational wayfinding.",
      "Keep borders heavy, corners square, and module layering visible through offset plates, rule dividers, crop marks, and caption bars.",
      "Treat imagery as editorial material: crop aggressively, add captions, and let grain or duotone treatments reinforce the publication feel.",
      "Design complete reading scenes with filters, subscription prompts, issue navigation, and article modules instead of isolated component catalogs."
    ],
    "dont": [
      "Do not soften the system with pill buttons, large border radii, translucent glass cards, or ambient gradient washes.",
      "Do not rely on neutral product-dashboard composition where all blocks have equal weight and the page loses cover-line hierarchy.",
      "Do not use polished icon packs or cute illustrations that undermine the raw print-shop and independent-publication tone.",
      "Do not hide the grid under excessive spacing; the structure should remain visibly authored and editorial."
    ]
  }
}
related

More like this