back to gallery
design language·broadside

Broadside

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
Broadside is a publication-first interface conceived as a reversed broadside: one large printed sheet for the screen, poured down a centre fold and photographed on the press bed under darkroom light. The page is the ink and the type is knocked out of it as reversed paper; a single phosphor-green plate carries the signal while amber registration crosshairs pin the sheet to the bed. Depth is ink coverage and reversal, never elevation or shadow.
values
The fold is the grid: every layout begins at a visible foldline with hairline register rails, and content pours down it rather than floating in cards.Reverse, don't float: surfaces are knocked out of solid ink, depth comes from coverage and rule weight, never from drop shadows or offset plates.One plate of light: a single phosphor-green ink is reserved for the lead, the live mark, and the primary action; amber marks the register; everything else runs black.Set in cold metal: Anton sets stacked condensed mastheads, Spline Mono files the specimen data — big and blunt, then small and exact.
anti-values
×Soft SaaS polish — pills, large radii, glass cards, gradient washes — that erases the sense of printed matter.×Floating blocks on offset drop-shadow plates; Broadside lies flat on the bed.×Using the phosphor plate as an ambient background wash or glow instead of reversed light through ink.×Falling back to a cream or white ground; the reversal out of deep press ink is the identity.
tokens
colors13 items
bg
#0d0d0d
surface
#161616
surface_2
#1f1f1f
text
#f4f1e8
muted
#8d897e
border
#2a2a28
accent
#00ff66
accent_2
#ffb000
on_accent
#07120a
success
#00ff66
warning
#ffb000
error
#ff4d4d
info
#5ad1ff
typography9 items
base size
17px
body font
Oswald
heading font
Anton
mono font
Spline Sans Mono
heading weight
400
heading transform
uppercase
letter spacing
-0.01em
line height
1.55
google fonts url
https://fonts.googleapis.com/css2?family=Anton&family=Oswald:wght@300;400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap
radii5 items
none
0
sm
0
md
0
lg
0
full
9999px
shadows4 items
sm
none
md
none
lg
none
philosophy
No drop shadows. Depth is knockout, reversal, and hairline rule weight — the sheet lies flat on the press bed.
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
treatment
reversed-ink-knockout
card style
Register blocks of #161616 on a deep press-ink ground, separated by hairline rules and the gutter; lead blocks invert to a solid phosphor field with reversed dark type. A faint screen-blend halftone grain sits over the page.
bg pattern
halftone-grain
borders4 items
default width
1px
accent width
3px
style
solid
character
Hairline register rules divide columns; a 3px reversed-paper rule marks bold section breaks. Borders are dividing rules, never coloured accent edges on cards.
motion3 items
duration
200ms
easing
cubic-bezier(0.2,0.8,0.2,1)
philosophy
Snappy and mechanical. The settled state is the default (visible with no JS); an inline script gates a hidden start-state and reveals blocks on scroll. Respects prefers-reduced-motion.
rules
composition
Compose the page as one reversed broadside poured down a centre fold: a contained column (max 1180px) reading top-to-bottom, anchored by a stacked-caps masthead and a phosphor knockout lead block, with three-up dispatch columns divided by hairline rules and full-bleed halftone bands that break the column for pull quotes. Only the hero and full-bleed bands span 100vw.
hierarchy
Hierarchy comes from scale contrast and reversal: Anton headlines are dramatically larger than Oswald body; the lead is knocked out of solid phosphor while everything else is paper on ink; Spline Mono kickers and amber numerals form the intermediate layer; controls and labels stay small, high-contrast, and square.
density
Moderately dense and information-rich, with reading rhythm preserved by disciplined spacing bands, hairline dividers, and the gutter. Pad generously above titles.
signature
Every major region registers to a visible foldline with amber crosshair marks at its corners. The lead block is a solid phosphor field with reversed dark type (the knockout); full-bleed halftone-dot bands carry manifestos; one phosphor plate of light per view, amber for the register, black for the rest.
layout
grid
A centred contained column on a fold: desktop reads top-to-bottom with three-up dispatch columns and a dashboard fold-rail sidebar; only the hero and full-bleed bands span 100vw. Tablet stacks dispatch columns to two-up; mobile collapses to a single column with hairline rules turned horizontal.
whitespace
Disciplined rather than airy: tight internal padding for mono labels and controls, larger band spacing between editorial modules, generous padding above every title.
density

Moderately dense, information-rich, with clear module separation by hairline rule and gutter.

responsive
Grids use minmax(0,1fr) + min-width:0 so children shrink instead of overflowing; from ~390px mobile to 2560px+ ultra-wide the contained content caps and centres while only the full-bleed hero and bands span 100vw.
breakpoints
desktop
1440px and above — masthead, knockout lead, three-up dispatches, full register table.
tablet
768px to 1439px — dispatches stack to two columns; dashboard sidebar becomes a horizontal rail.
mobile
390px to 767px — single-column fold, headline first, hairline rules horizontal, full-width buttons.
guidance
do
  • Knock the lead out of solid phosphor and reverse paper type through deep ink.
  • Pin every major block to the foldline and mark its corners with amber registration crosshairs.
  • Set mastheads in stacked Anton caps; file metadata, controls, and wayfinding in Spline Sans Mono.
  • Keep one phosphor plate of light per view — lead, live mark, primary action — and let everything else run black.
avoid
  • Do not float blocks on offset or drop-shadow plates; Broadside lies flat on the press bed.
  • Do not use the phosphor as a background wash or ambient glow — it is reversed light, not fill.
  • Do not soften the system with pill buttons, large radii, glass cards, or grey borders.
  • Do not fall back to a cream or white ground; the reversal out of deep press ink is the identity.
imagery
pairs with

overprint

summary
Full-frame overprint crops of printed ephemera — folded broadsheets, the press bed, the proofing bench — rendered as high-contrast risograph: dense black halftone linework with one misregistered phosphor-green plate, treated as printed matter, reversed onto a deep-ink ground.
subjects
stacks of folded broadsheets seen edge-onthe press bed under raking lighthands at the proofing benchrollers and ink cylinderstaped layout sheets with registration marksmetal type in the case
usage
Hero and full-bleed band imagery are driven by background-image: var(--hero-image) over a dark scrim so type stays legible. Keep the black/phosphor overprint treatment; no text, letters, or logos in the image.
engine hints
model
gpt-image-2
provider
openai
tool
openai-image MCP
size
1536x1024
quality
high
katagami spec
# Broadside

## Philosophy

Broadside is a publication-first interface conceived as a reversed broadside: one large printed sheet for the screen, poured down a centre fold and photographed on the press bed under darkroom light. The page is the ink and the type is knocked out of it as reversed paper; a single phosphor-green plate carries the signal while amber registration crosshairs pin the sheet to the bed. Depth is ink coverage and reversal, never elevation or shadow.

### Values

- The fold is the grid: every layout begins at a visible foldline with hairline register rails, and content pours down it rather than floating in cards.
- Reverse, don't float: surfaces are knocked out of solid ink, depth comes from coverage and rule weight, never from drop shadows or offset plates.
- One plate of light: a single phosphor-green ink is reserved for the lead, the live mark, and the primary action; amber marks the register; everything else runs black.
- Set in cold metal: Anton sets stacked condensed mastheads, Spline Mono files the specimen data — big and blunt, then small and exact.

### Anti-Values

- Soft SaaS polish — pills, large radii, glass cards, gradient washes — that erases the sense of printed matter.
- Floating blocks on offset drop-shadow plates; Broadside lies flat on the bed.
- Using the phosphor plate as an ambient background wash or glow instead of reversed light through ink.
- Falling back to a cream or white ground; the reversal out of deep press ink is the identity.

### Visual Character

- A visible foldline flanked by hairline register rails, with amber crosshair registration marks at the corners of major regions.
- Lead blocks are solid phosphor-green fields with reversed dark type (the knockout); secondary content runs reversed paper on deep ink, divided only by hairline rules and the gutter.
- Full-bleed halftone-dot bands break the column to carry pull quotes and manifestos.
- Stacked condensed Anton caps form vertical mastheads (BROAD / SIDE); Spline Sans Mono labels are letter-spaced uppercase like data filed on the bench.
- Square corners throughout with a faint screen-blend halftone grain over the page; the only full-radius element is the pulsing live-status dot.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#0d0d0d` |
| surface | `#161616` |
| surface_2 | `#1f1f1f` |
| text | `#f4f1e8` |
| muted | `#8d897e` |
| border | `#2a2a28` |
| accent | `#00ff66` |
| accent_2 | `#ffb000` |
| on_accent | `#07120a` |
| success | `#00ff66` |
| warning | `#ffb000` |
| error | `#ff4d4d` |
| info | `#5ad1ff` |

### Typography

- **Base Size**: 17px
- **Body Font**: Oswald
- **Heading Font**: Anton
- **Mono Font**: Spline Sans Mono
- **Heading Weight**: 400
- **Heading Transform**: uppercase
- **Letter Spacing**: -0.01em
- **Line Height**: 1.55
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Anton&family=Oswald:wght@300;400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap

### Radii

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

### Shadows

- **Sm**: none
- **Md**: none
- **Lg**: none
- **Philosophy**: No drop shadows. Depth is knockout, reversal, and hairline rule weight — the sheet lies flat on the press bed.

### Spacing

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

### Surfaces

- **Treatment**: reversed-ink-knockout
- **Card Style**: Register blocks of #161616 on a deep press-ink ground, separated by hairline rules and the gutter; lead blocks invert to a solid phosphor field with reversed dark type. A faint screen-blend halftone grain sits over the page.
- **Bg Pattern**: halftone-grain

### Borders

- **Default Width**: 1px
- **Accent Width**: 3px
- **Style**: solid
- **Character**: Hairline register rules divide columns; a 3px reversed-paper rule marks bold section breaks. Borders are dividing rules, never coloured accent edges on cards.

### Motion

- **Duration**: 200ms
- **Easing**: cubic-bezier(0.2,0.8,0.2,1)
- **Philosophy**: Snappy and mechanical. The settled state is the default (visible with no JS); an inline script gates a hidden start-state and reveals blocks on scroll. Respects prefers-reduced-motion.

## Rules

### Composition

Compose the page as one reversed broadside poured down a centre fold: a contained column (max 1180px) reading top-to-bottom, anchored by a stacked-caps masthead and a phosphor knockout lead block, with three-up dispatch columns divided by hairline rules and full-bleed halftone bands that break the column for pull quotes. Only the hero and full-bleed bands span 100vw.

### Hierarchy

Hierarchy comes from scale contrast and reversal: Anton headlines are dramatically larger than Oswald body; the lead is knocked out of solid phosphor while everything else is paper on ink; Spline Mono kickers and amber numerals form the intermediate layer; controls and labels stay small, high-contrast, and square.

### Density

Moderately dense and information-rich, with reading rhythm preserved by disciplined spacing bands, hairline dividers, and the gutter. Pad generously above titles.

### Signature

Every major region registers to a visible foldline with amber crosshair marks at its corners. The lead block is a solid phosphor field with reversed dark type (the knockout); full-bleed halftone-dot bands carry manifestos; one phosphor plate of light per view, amber for the register, black for the rest.

## Layout

### Grid

A centred contained column on a fold: desktop reads top-to-bottom with three-up dispatch columns and a dashboard fold-rail sidebar; only the hero and full-bleed bands span 100vw. Tablet stacks dispatch columns to two-up; mobile collapses to a single column with hairline rules turned horizontal.

### Whitespace

Disciplined rather than airy: tight internal padding for mono labels and controls, larger band spacing between editorial modules, generous padding above every title.

### Density

Moderately dense, information-rich, with clear module separation by hairline rule and gutter.

### Responsive

Grids use minmax(0,1fr) + min-width:0 so children shrink instead of overflowing; from ~390px mobile to 2560px+ ultra-wide the contained content caps and centres while only the full-bleed hero and bands span 100vw.

### Breakpoints

- **Desktop**: 1440px and above — masthead, knockout lead, three-up dispatches, full register table.
- **Tablet**: 768px to 1439px — dispatches stack to two columns; dashboard sidebar becomes a horizontal rail.
- **Mobile**: 390px to 767px — single-column fold, headline first, hairline rules horizontal, full-width buttons.

## Guidance

### Do

- Knock the lead out of solid phosphor and reverse paper type through deep ink.
- Pin every major block to the foldline and mark its corners with amber registration crosshairs.
- Set mastheads in stacked Anton caps; file metadata, controls, and wayfinding in Spline Sans Mono.
- Keep one phosphor plate of light per view — lead, live mark, primary action — and let everything else run black.

### Don't

- Do not float blocks on offset or drop-shadow plates; Broadside lies flat on the press bed.
- Do not use the phosphor as a background wash or ambient glow — it is reversed light, not fill.
- Do not soften the system with pill buttons, large radii, glass cards, or grey borders.
- Do not fall back to a cream or white ground; the reversal out of deep press ink is the identity.

### Accessibility

High contrast everywhere: warm reversed paper (#f4f1e8) on deep press ink (#0d0d0d) clears AA at body sizes. The phosphor (#00ff66) and amber (#ffb000) fills carry dark text for AA contrast. Every form control is explicitly styled with a visible 2px phosphor focus ring; icons are SVG/CSS primitives, never glyphs or emoji; motion respects prefers-reduced-motion and the fully-rendered state is visible with no JavaScript.

## Imagery Direction

### Pairs With

overprint

### Summary

Full-frame overprint crops of printed ephemera — folded broadsheets, the press bed, the proofing bench — rendered as high-contrast risograph: dense black halftone linework with one misregistered phosphor-green plate, treated as printed matter, reversed onto a deep-ink ground.

### Subjects

- stacks of folded broadsheets seen edge-on
- the press bed under raking light
- hands at the proofing bench
- rollers and ink cylinders
- taped layout sheets with registration marks
- metal type in the case

### Usage

Hero and full-bleed band imagery are driven by background-image: var(--hero-image) over a dark scrim so type stays legible. Keep the black/phosphor overprint treatment; no text, letters, or logos in the image.

### Engine Hints

- **Model**: gpt-image-2
- **Provider**: openai
- **Tool**: openai-image MCP
- **Size**: 1536x1024
- **Quality**: high
DESIGN.md
---
version: "alpha"
name: "Broadside"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#0d0d0d"
  surface: "#161616"
  surface_2: "#1f1f1f"
  text: "#f4f1e8"
  muted: "#8d897e"
  border: "#2a2a28"
  accent: "#00ff66"
  accent_2: "#ffb000"
  on_accent: "#07120a"
  success: "#00ff66"
  warning: "#ffb000"
  error: "#ff4d4d"
  info: "#5ad1ff"
typography:
  headline-lg:
    fontFamily: "Anton"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Anton"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Oswald"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "Spline Sans 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"
  step-8: "96px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_2:
    backgroundColor: "{colors.surface_2}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Broadside

## Overview

Broadside is a publication-first interface conceived as a reversed broadside: one large printed sheet for the screen, poured down a centre fold and photographed on the press bed under darkroom light. The page is the ink and the type is knocked out of it as reversed paper; a single phosphor-green plate carries the signal while amber registration crosshairs pin the sheet to the bed. Depth is ink coverage and reversal, never elevation or shadow.

### Values

- The fold is the grid: every layout begins at a visible foldline with hairline register rails, and content pours down it rather than floating in cards.
- Reverse, don't float: surfaces are knocked out of solid ink, depth comes from coverage and rule weight, never from drop shadows or offset plates.
- One plate of light: a single phosphor-green ink is reserved for the lead, the live mark, and the primary action; amber marks the register; everything else runs black.
- Set in cold metal: Anton sets stacked condensed mastheads, Spline Mono files the specimen data — big and blunt, then small and exact.

### Anti-Values

- Soft SaaS polish — pills, large radii, glass cards, gradient washes — that erases the sense of printed matter.
- Floating blocks on offset drop-shadow plates; Broadside lies flat on the bed.
- Using the phosphor plate as an ambient background wash or glow instead of reversed light through ink.
- Falling back to a cream or white ground; the reversal out of deep press ink is the identity.

### Visual Character

- A visible foldline flanked by hairline register rails, with amber crosshair registration marks at the corners of major regions.
- Lead blocks are solid phosphor-green fields with reversed dark type (the knockout); secondary content runs reversed paper on deep ink, divided only by hairline rules and the gutter.
- Full-bleed halftone-dot bands break the column to carry pull quotes and manifestos.
- Stacked condensed Anton caps form vertical mastheads (BROAD / SIDE); Spline Sans Mono labels are letter-spaced uppercase like data filed on the bench.
- Square corners throughout with a faint screen-blend halftone grain over the page; the only full-radius element is the pulsing live-status dot.

## Colors

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

| Token | Value |
|-------|-------|
| bg | `#0d0d0d` |
| surface | `#161616` |
| surface_2 | `#1f1f1f` |
| text | `#f4f1e8` |
| muted | `#8d897e` |
| border | `#2a2a28` |
| accent | `#00ff66` |
| accent_2 | `#ffb000` |
| on_accent | `#07120a` |
| success | `#00ff66` |
| warning | `#ffb000` |
| error | `#ff4d4d` |
| info | `#5ad1ff` |

## Typography

- **Headline-Lg**: Anton, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Anton, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Oswald, 17px, weight 400, line-height 1.55.
- **Label-Md**: Spline Sans Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

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

### Grid

A centred contained column on a fold: desktop reads top-to-bottom with three-up dispatch columns and a dashboard fold-rail sidebar; only the hero and full-bleed bands span 100vw. Tablet stacks dispatch columns to two-up; mobile collapses to a single column with hairline rules turned horizontal.

### Whitespace

Disciplined rather than airy: tight internal padding for mono labels and controls, larger band spacing between editorial modules, generous padding above every title.

### Density

Moderately dense, information-rich, with clear module separation by hairline rule and gutter.

### Responsive

Grids use minmax(0,1fr) + min-width:0 so children shrink instead of overflowing; from ~390px mobile to 2560px+ ultra-wide the contained content caps and centres while only the full-bleed hero and bands span 100vw.

### Breakpoints

- **Desktop**: 1440px and above — masthead, knockout lead, three-up dispatches, full register table.
- **Tablet**: 768px to 1439px — dispatches stack to two columns; dashboard sidebar becomes a horizontal rail.
- **Mobile**: 390px to 767px — single-column fold, headline first, hairline rules horizontal, full-width buttons.

## Elevation & Depth

### Shadows

- **Sm**: none
- **Md**: none
- **Lg**: none
- **Philosophy**: No drop shadows. Depth is knockout, reversal, and hairline rule weight — the sheet lies flat on the press bed.

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: reversed-ink-knockout
- **Card Style**: Register blocks of #161616 on a deep press-ink ground, separated by hairline rules and the gutter; lead blocks invert to a solid phosphor field with reversed dark type. A faint screen-blend halftone grain sits over the page.
- **Bg Pattern**: halftone-grain

### Borders

- **Default Width**: 1px
- **Accent Width**: 3px
- **Style**: solid
- **Character**: Hairline register rules divide columns; a 3px reversed-paper rule marks bold section breaks. Borders are dividing rules, never coloured accent edges on cards.

## Components

### Composition

Compose the page as one reversed broadside poured down a centre fold: a contained column (max 1180px) reading top-to-bottom, anchored by a stacked-caps masthead and a phosphor knockout lead block, with three-up dispatch columns divided by hairline rules and full-bleed halftone bands that break the column for pull quotes. Only the hero and full-bleed bands span 100vw.

### Hierarchy

Hierarchy comes from scale contrast and reversal: Anton headlines are dramatically larger than Oswald body; the lead is knocked out of solid phosphor while everything else is paper on ink; Spline Mono kickers and amber numerals form the intermediate layer; controls and labels stay small, high-contrast, and square.

### Density

Moderately dense and information-rich, with reading rhythm preserved by disciplined spacing bands, hairline dividers, and the gutter. Pad generously above titles.

### Signature

Every major region registers to a visible foldline with amber crosshair marks at its corners. The lead block is a solid phosphor field with reversed dark type (the knockout); full-bleed halftone-dot bands carry manifestos; one phosphor plate of light per view, amber for the register, black for the rest.

## 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-019efa5d-8ce7-7d80-8fd3-c79b24fdca6f/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 Knock the lead out of solid phosphor and reverse paper type through deep ink.
- Do Pin every major block to the foldline and mark its corners with amber registration crosshairs.
- Do Set mastheads in stacked Anton caps; file metadata, controls, and wayfinding in Spline Sans Mono.
- Do Keep one phosphor plate of light per view — lead, live mark, primary action — and let everything else run black.
- Don't Do not float blocks on offset or drop-shadow plates; Broadside lies flat on the press bed.
- Don't Do not use the phosphor as a background wash or ambient glow — it is reversed light, not fill.
- Don't Do not soften the system with pill buttons, large radii, glass cards, or grey borders.
- Don't Do not fall back to a cream or white ground; the reversal out of deep press ink is the identity.

### Accessibility

High contrast everywhere: warm reversed paper (#f4f1e8) on deep press ink (#0d0d0d) clears AA at body sizes. The phosphor (#00ff66) and amber (#ffb000) fills carry dark text for AA contrast. Every form control is explicitly styled with a visible 2px phosphor focus ring; icons are SVG/CSS primitives, never glyphs or emoji; motion respects prefers-reduced-motion and the fully-rendered state is visible with no JavaScript.

## Imagery Direction

### Pairs With

overprint

### Summary

Full-frame overprint crops of printed ephemera — folded broadsheets, the press bed, the proofing bench — rendered as high-contrast risograph: dense black halftone linework with one misregistered phosphor-green plate, treated as printed matter, reversed onto a deep-ink ground.

### Subjects

- stacks of folded broadsheets seen edge-on
- the press bed under raking light
- hands at the proofing bench
- rollers and ink cylinders
- taped layout sheets with registration marks
- metal type in the case

### Usage

Hero and full-bleed band imagery are driven by background-image: var(--hero-image) over a dark scrim so type stays legible. Keep the black/phosphor overprint treatment; no text, letters, or logos in the image.

### Engine Hints

- **Model**: gpt-image-2
- **Provider**: openai
- **Tool**: openai-image MCP
- **Size**: 1536x1024
- **Quality**: high
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "broadside",
  "type": "registry:theme",
  "title": "Broadside shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0d0d0d",
      "foreground": "#f4f1e8",
      "card": "#161616",
      "card-foreground": "#f4f1e8",
      "popover": "#161616",
      "popover-foreground": "#f4f1e8",
      "primary": "#f4f1e8",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#8d897e",
      "muted-foreground": "#f4f1e8",
      "accent": "#00ff66",
      "accent-foreground": "#111111",
      "destructive": "#ff4d4d",
      "border": "#2a2a28",
      "input": "#2a2a28",
      "ring": "#00ff66",
      "chart-1": "#f4f1e8",
      "chart-2": "#f4f4f5",
      "chart-3": "#00ff66",
      "chart-4": "#00ff66",
      "chart-5": "#ffb000",
      "sidebar": "#161616",
      "sidebar-foreground": "#f4f1e8",
      "sidebar-primary": "#f4f1e8",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#5ad1ff",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#2a2a28",
      "sidebar-ring": "#00ff66",
      "radius": "0"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#f4f1e8",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#00ff66",
      "accent-foreground": "#111111",
      "destructive": "#ff4d4d",
      "border": "#303642",
      "input": "#303642",
      "ring": "#00ff66",
      "chart-1": "#f4f1e8",
      "chart-2": "#f4f4f5",
      "chart-3": "#00ff66",
      "chart-4": "#00ff66",
      "chart-5": "#ffb000",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#f4f1e8",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#00ff66",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#00ff66",
      "radius": "0"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efa5d-8ce7-7d80-8fd3-c79b24fdca6f",
    "slug": "broadside",
    "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",
        "accent_2",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "philosophy",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

bespoke marketing landingopen full page ↗
landing · broadside
DESIGN.md

at a glance

Typography

headline-lgAnton · 33px · 700

The quick brown fox jumps

headline-mdAnton · 27px · 600

The quick brown fox jumps

body-mdOswald · 17px · 400

The quick brown fox jumps

label-mdSpline Sans Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

Keep Broadsideand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.

UI language · fixed
Broadside
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

related

More like this