back to gallerydo avoid
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
- 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 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
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
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 tabletheme 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
Compact Editorial Ink Fine Artshares ink-wash · brush-gesture · void-compositionCrossover Editorial Ink Fine Artshares ink-wash · brush-gesture · monochrome-contrastDigital Watercolor Texture Systemshares ink-wash · brush-gesture · void-compositionE-Ink Neurography Manualsshares ink-wash · brush-gesture · void-compositionEditorial Ink Atelier with Electric Accentsshares ink-wash · brush-gesture · void-compositionEditorial Ink Fine Artshares ink-wash · brush-gesture · void-composition