Back to gallery

Raster

Raster is Swiss grid modernism for screens, drawn as a printer's proof.

Download DESIGN.md

Tokens and rules, ready for an agent to follow.

Preview

Open full page

Typography

Each face set in this language's own words.

headline lgAfacad Flux, 33px, 700

Raster

headline mdAfacad Flux, 27px, 600

Raster

body mdImprima, 17px, 400

Raster is Swiss grid modernism for screens, drawn as a printer's proof.

label mdIosevka Charon, 12px, 600

Raster is Swiss grid modernism for screens, drawn as a printer's proof.

Specification

Philosophy

summary

Raster is Swiss grid modernism for screens, drawn as a printer's proof. A twelve-column lattice, one oversized grotesk, graphite on warm paper and a single vermilion register mark carry every page. The hero is one full-strength relief print of the lattice with a quiet paper half where the type sits, and each section opens on the origin rule, a short vermilion segment at the left edge. Order is the only decoration: alignment, scale and weight do the work colour and ornament do elsewhere.

It values

  • The grid is the decoration: columns, rules and baselines before any accent.
  • One red, spent on the origin rule and the main action, so it always means start here.
  • Oversized heavy type is the graphic device; figures are tabular and heavy.
  • Separation by rule, tint and space, never by a frame.
  • Tables read like a journal: flush-left labels, one rule under the header, real facts in the rows.

It refuses

  • Gradient scrims over the hero image.
  • Mono eyebrow labels and hairline card frames as ornament.
  • A stamped footer colophon and the overused grotesk and plex font pool.
  • Rounded corners, glass, shadow elevation and a second accent colour.

visual character

  • Warm paper #F4F4F0 ground, cool-white #FBFBF8 panels, graphite #141414 ink.
  • One register red #C63A2B: the origin rule, the lead action, a figure unit.
  • A full-bleed relief print hero in the Hochdruck style, quiet paper on the left half under the type, a portrait crop under 1000px.
  • Afacad Flux 900 at huge sizes with -0.02em tracking, Imprima 17px for prose, Iosevka Charon for tables and figures.
  • A graphite closing band as the one dark block.
  • Square corners on every rectangle.

lineage

Revised in place from the approved Raster take of range round 8. Kept: the paper ground, graphite ink, vermilion register, page order and origin rule. Changed: fonts, a quiet-paper hero without a scrim, corrected muted, warning and error roles, and a table of real breakpoint facts.

Tokens
colors12
bg
#F4F4F0
surface
#FBFBF8
surface 2
#E9E9E3
text
#141414
muted
#555B62
border
#D7D7D1
accent
#C63A2B
on accent
#FFFFFF
success
#1F6B4F
warning
#8A5200
error
#A3123A
info
#245D8C
typography12
heading font
Afacad Flux
body font
Imprima
mono font
Iosevka Charon
heading weight
900
body weight
400
button weight
700
heading transform
none
letter spacing
-0.02em on display and headings; 0 on Iosevka Charon
base size
17px
line height
1.6
scale
15px, 17px, 20px, 26px, 36px, 52px, 72px, 104px, 150px
google fonts url
https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@500;700;900&family=Imprima&family=Iosevka+Charon:wght@400;600&display=swap
radii4
none
0px
md
0px
lg
0px
full
0px
shadows2
overlay
0 1px 2px rgba(20,20,20,.12), 0 18px 36px -14px rgba(20,20,20,.28), only on an open menu or dialog
none
everything else is flat
spacing2
base
8px
scale
4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px, 112px
surfaces4
treatment
flat-paper-lattice
material
Warm paper #F4F4F0 with cool-white panels #FBFBF8 and one graphite band. Flat matte, no gradient, no texture; the relief print in the hero is the only texture.
card style
Flat panels on the ground with no frame. Rails and tables sit on #FBFBF8; separation by a 2px graphite rule, a 1px tint line or space.
bg pattern
none; the visible lattice lives in the hero print
borders3
default width
0
style
none
character
No borders. Structure is drawn as inset rules: a 2px graphite rule above a column heading or under a table header, a 1px paper-tint line between rows, and the 48 by 4 vermilion origin segment above each section heading. Focus is a 3px vermilion outline at 3px offset.
motion3
duration
200ms
easing
ease
philosophy
Structural and quiet: a 200ms brightness shift on buttons. The settled page is the default and renders with no JavaScript; prefers-reduced-motion removes all transitions.
Rules

composition

  • Build on a visible 12-column lattice with uneven spans: a 7-column lead beside a 4-column rail at 9 to 12.
  • Open every section on the origin rule: a 48 by 4 vermilion segment above the heading.
  • Put the type on the quiet paper half of the hero print; never add a scrim.
  • At most one dark band per page, at the close.

hierarchy

  • Display in Afacad Flux 900 up to 104px with 0.92 leading; headings 700 at 36 to 64px.
  • Prose in Imprima 17px; the second tone in muted #555B62.
  • Iosevka Charon for table rows, figure units and breakpoints; heavy figures up to 150px.
  • Red only on the origin rule, the lead action and a figure unit.

density

Moderate: 112px between sections on desktop, 56px on phones, 24px gutters, 16px table rows.

signature patterns

  • The origin rule: a 48 by 4 vermilion segment at the left edge above every section heading.
  • The relief-print hero: one full-strength Hochdruck print with a quiet paper half that carries the type.
  • The editorial table: one 2px graphite rule under the header, 1px tint lines between rows, tabular figures.
  • The heavy figure: a 150px grotesk number with a small vermilion mono unit.
Layout

grid

type
12-column modular lattice
max width
1280px content, centred; only the hero and bands run full bleed
gutter
24px between columns, 56px page edge on desktop
column behavior
Lead block spans 1 to 7 and a rail spans 9 to 12; three-up rows and tables span the full width; every grid child has min-width:0.

whitespace

section gap
112px desktop, 56px phone
card gap
24px to 32px
content padding
28px inside a panel
approach
Rules and space separate; panels are flat #FBFBF8 on the paper.

density

default
moderate
moderate
button height 56pxinput height 52pxrow height 16px padding in table rows

responsive

Desktop is twelve columns; 601 to 1199px is six columns with the lead and rail stacked, two-up modules and the portrait print; phones are one column with the nav cut to two words. Content caps at 1280px.

breakpoints

mobile
390px
tablet
834px
desktop
1280px
ultrawide
2560px
Guidance

Do

  • Open each section on the origin rule.
  • Set the headline on the quiet paper half of the print.
  • Keep red to the origin rule, the lead action and a unit.
  • Rule under a table header, tint lines between rows, tabular figures.
  • Keep every rectangle square and borderless.

Avoid

  • Don't lay a scrim or gradient over the hero print.
  • Don't frame a card with a hairline or add mono eyebrow labels.
  • Don't add a second accent or use red for status.
  • Don't round corners or add shadow elevation to panels.
  • Don't add a footer colophon stamp.
Imagery

pairs with

hochdruck

art style id

en-019ef5c2-a38e-7f63-9d61-5a975edffa19

summary

Two-colour relief prints in Hochdruck: ink black on warm off-white with one solid vermilion square, carved gouge texture, flat planes. The lattice of carved columns on the right, and a quiet paper half on the left for type. A portrait crop puts the lattice at the bottom with calm paper above.

subjects

  • a carved modular lattice of overlapping bars
  • a vermilion register square on a grid intersection
  • stacked printed columns
  • a quiet paper field for type

usage

One full-bleed hero painted with var(--hero-image), right-aligned so the type sits on the paper half; a portrait crop under 1000px. No scrim. Inside pages carry no illustration.

avoid

A third colour, a gradient scrim, the press itself, and text inside the image.

Katagami spec file
# Raster

## Philosophy

Raster is Swiss grid modernism for screens, drawn as a printer's proof. A twelve-column lattice, one oversized grotesk, graphite on warm paper and a single vermilion register mark carry every page. The hero is one full-strength relief print of the lattice with a quiet paper half where the type sits, and each section opens on the origin rule, a short vermilion segment at the left edge. Order is the only decoration: alignment, scale and weight do the work colour and ornament do elsewhere.

### Values

- The grid is the decoration: columns, rules and baselines before any accent.
- One red, spent on the origin rule and the main action, so it always means start here.
- Oversized heavy type is the graphic device; figures are tabular and heavy.
- Separation by rule, tint and space, never by a frame.
- Tables read like a journal: flush-left labels, one rule under the header, real facts in the rows.

### Anti-Values

- Gradient scrims over the hero image.
- Mono eyebrow labels and hairline card frames as ornament.
- A stamped footer colophon and the overused grotesk and plex font pool.
- Rounded corners, glass, shadow elevation and a second accent colour.

### Visual Character

- Warm paper #F4F4F0 ground, cool-white #FBFBF8 panels, graphite #141414 ink.
- One register red #C63A2B: the origin rule, the lead action, a figure unit.
- A full-bleed relief print hero in the Hochdruck style, quiet paper on the left half under the type, a portrait crop under 1000px.
- Afacad Flux 900 at huge sizes with -0.02em tracking, Imprima 17px for prose, Iosevka Charon for tables and figures.
- A graphite closing band as the one dark block.
- Square corners on every rectangle.

### Lineage

> Revised in place from the approved Raster take of range round 8. Kept: the paper ground, graphite ink, vermilion register, page order and origin rule. Changed: fonts, a quiet-paper hero without a scrim, corrected muted, warning and error roles, and a table of real breakpoint facts.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#F4F4F0` |
| surface | `#FBFBF8` |
| surface_2 | `#E9E9E3` |
| text | `#141414` |
| muted | `#555B62` |
| border | `#D7D7D1` |
| accent | `#C63A2B` |
| on_accent | `#FFFFFF` |
| success | `#1F6B4F` |
| warning | `#8A5200` |
| error | `#A3123A` |
| info | `#245D8C` |

### Typography

- **Heading Font**: Afacad Flux
- **Body Font**: Imprima
- **Mono Font**: Iosevka Charon
- **Heading Weight**: 900
- **Body Weight**: 400
- **Button Weight**: 700
- **Heading Transform**: none
- **Letter Spacing**: -0.02em on display and headings; 0 on Iosevka Charon
- **Base Size**: 17px
- **Line Height**: 1.6
- **Scale**: ["15px","17px","20px","26px","36px","52px","72px","104px","150px"]
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@500;700;900&family=Imprima&family=Iosevka+Charon:wght@400;600&display=swap

### Radii

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

### Shadows

- **Overlay**: 0 1px 2px rgba(20,20,20,.12), 0 18px 36px -14px rgba(20,20,20,.28), only on an open menu or dialog
- **None**: everything else is flat

### Spacing

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

### Surfaces

- **Treatment**: flat-paper-lattice
- **Material**: Warm paper #F4F4F0 with cool-white panels #FBFBF8 and one graphite band. Flat matte, no gradient, no texture; the relief print in the hero is the only texture.
- **Card Style**: Flat panels on the ground with no frame. Rails and tables sit on #FBFBF8; separation by a 2px graphite rule, a 1px tint line or space.
- **Bg Pattern**: none; the visible lattice lives in the hero print

### Borders

- **Default Width**: 0
- **Style**: none
- **Character**: No borders. Structure is drawn as inset rules: a 2px graphite rule above a column heading or under a table header, a 1px paper-tint line between rows, and the 48 by 4 vermilion origin segment above each section heading. Focus is a 3px vermilion outline at 3px offset.

### Motion

- **Duration**: 200ms
- **Easing**: ease
- **Philosophy**: Structural and quiet: a 200ms brightness shift on buttons. The settled page is the default and renders with no JavaScript; prefers-reduced-motion removes all transitions.

## Rules

### Composition

- Build on a visible 12-column lattice with uneven spans: a 7-column lead beside a 4-column rail at 9 to 12.
- Open every section on the origin rule: a 48 by 4 vermilion segment above the heading.
- Put the type on the quiet paper half of the hero print; never add a scrim.
- At most one dark band per page, at the close.

### Hierarchy

- Display in Afacad Flux 900 up to 104px with 0.92 leading; headings 700 at 36 to 64px.
- Prose in Imprima 17px; the second tone in muted #555B62.
- Iosevka Charon for table rows, figure units and breakpoints; heavy figures up to 150px.
- Red only on the origin rule, the lead action and a figure unit.

### Density

Moderate: 112px between sections on desktop, 56px on phones, 24px gutters, 16px table rows.

### Signature Patterns

- The origin rule: a 48 by 4 vermilion segment at the left edge above every section heading.
- The relief-print hero: one full-strength Hochdruck print with a quiet paper half that carries the type.
- The editorial table: one 2px graphite rule under the header, 1px tint lines between rows, tabular figures.
- The heavy figure: a 150px grotesk number with a small vermilion mono unit.

## Layout

### Grid

- **Type**: 12-column modular lattice
- **Max Width**: 1280px content, centred; only the hero and bands run full bleed
- **Gutter**: 24px between columns, 56px page edge on desktop
- **Column Behavior**: Lead block spans 1 to 7 and a rail spans 9 to 12; three-up rows and tables span the full width; every grid child has min-width:0.

### Whitespace

- **Section Gap**: 112px desktop, 56px phone
- **Card Gap**: 24px to 32px
- **Content Padding**: 28px inside a panel
- **Approach**: Rules and space separate; panels are flat #FBFBF8 on the paper.

### Density

- **Default**: moderate
- **Moderate**: {"button_height":"56px","input_height":"52px","row_height":"16px padding in table rows"}

### Responsive

Desktop is twelve columns; 601 to 1199px is six columns with the lead and rail stacked, two-up modules and the portrait print; phones are one column with the nav cut to two words. Content caps at 1280px.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 834px
- **Desktop**: 1280px
- **Ultrawide**: 2560px

## Guidance

### Do

- Open each section on the origin rule.
- Set the headline on the quiet paper half of the print.
- Keep red to the origin rule, the lead action and a unit.
- Rule under a table header, tint lines between rows, tabular figures.
- Keep every rectangle square and borderless.

### Don't

- Don't lay a scrim or gradient over the hero print.
- Don't frame a card with a hairline or add mono eyebrow labels.
- Don't add a second accent or use red for status.
- Don't round corners or add shadow elevation to panels.
- Don't add a footer colophon stamp.

### Accessibility

Graphite #141414 on paper is 16.5:1; muted #555B62 is 6.4:1 on #F4F4F0; vermilion #C63A2B is 4.8:1 on paper and 5.2:1 under white text on the button. Body is 17px and table rows 15px. Focus is a 3px vermilion outline. Status pairs a square with a word. The settled page renders with no JavaScript and prefers-reduced-motion removes transitions.

## Imagery Direction

### Pairs With

hochdruck

### Art Style Id

en-019ef5c2-a38e-7f63-9d61-5a975edffa19

### Summary

Two-colour relief prints in Hochdruck: ink black on warm off-white with one solid vermilion square, carved gouge texture, flat planes. The lattice of carved columns on the right, and a quiet paper half on the left for type. A portrait crop puts the lattice at the bottom with calm paper above.

### Subjects

- a carved modular lattice of overlapping bars
- a vermilion register square on a grid intersection
- stacked printed columns
- a quiet paper field for type

### Usage

One full-bleed hero painted with var(--hero-image), right-aligned so the type sits on the paper half; a portrait crop under 1000px. No scrim. Inside pages carry no illustration.

### Avoid

A third colour, a gradient scrim, the press itself, and text inside the image.
DESIGN.md file
---
version: "alpha"
name: "Raster"
description: "Raster is Swiss grid modernism for screens, drawn as a printer's proof. A twelve-column lattice, one oversized grotesk, graphite on warm paper and a single vermilion register mark carry every page. The hero is one full-strength relief pr..."
colors:
  bg: "#F4F4F0"
  surface: "#FBFBF8"
  surface_2: "#E9E9E3"
  text: "#141414"
  muted: "#555B62"
  border: "#D7D7D1"
  accent: "#C63A2B"
  on_accent: "#FFFFFF"
  success: "#1F6B4F"
  warning: "#8A5200"
  error: "#A3123A"
  info: "#245D8C"
typography:
  headline-lg:
    fontFamily: "Afacad Flux"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Afacad Flux"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Imprima"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Iosevka Charon"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  md: "0px"
  lg: "0px"
  full: "0px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
  step-9: "112px"
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-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: "{colors.on_accent}"
    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"
---

# Raster

## Overview

Raster is Swiss grid modernism for screens, drawn as a printer's proof. A twelve-column lattice, one oversized grotesk, graphite on warm paper and a single vermilion register mark carry every page. The hero is one full-strength relief print of the lattice with a quiet paper half where the type sits, and each section opens on the origin rule, a short vermilion segment at the left edge. Order is the only decoration: alignment, scale and weight do the work colour and ornament do elsewhere.

### Values

- The grid is the decoration: columns, rules and baselines before any accent.
- One red, spent on the origin rule and the main action, so it always means start here.
- Oversized heavy type is the graphic device; figures are tabular and heavy.
- Separation by rule, tint and space, never by a frame.
- Tables read like a journal: flush-left labels, one rule under the header, real facts in the rows.

### Anti-Values

- Gradient scrims over the hero image.
- Mono eyebrow labels and hairline card frames as ornament.
- A stamped footer colophon and the overused grotesk and plex font pool.
- Rounded corners, glass, shadow elevation and a second accent colour.

### Visual Character

- Warm paper #F4F4F0 ground, cool-white #FBFBF8 panels, graphite #141414 ink.
- One register red #C63A2B: the origin rule, the lead action, a figure unit.
- A full-bleed relief print hero in the Hochdruck style, quiet paper on the left half under the type, a portrait crop under 1000px.
- Afacad Flux 900 at huge sizes with -0.02em tracking, Imprima 17px for prose, Iosevka Charon for tables and figures.
- A graphite closing band as the one dark block.
- Square corners on every rectangle.

### Lineage

> Revised in place from the approved Raster take of range round 8. Kept: the paper ground, graphite ink, vermilion register, page order and origin rule. Changed: fonts, a quiet-paper hero without a scrim, corrected muted, warning and error roles, and a table of real breakpoint facts.

## 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 | `#F4F4F0` |
| surface | `#FBFBF8` |
| surface_2 | `#E9E9E3` |
| text | `#141414` |
| muted | `#555B62` |
| border | `#D7D7D1` |
| accent | `#C63A2B` |
| on_accent | `#FFFFFF` |
| success | `#1F6B4F` |
| warning | `#8A5200` |
| error | `#A3123A` |
| info | `#245D8C` |

## Typography

Load the fonts from Google Fonts: https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@500;700;900&family=Imprima&family=Iosevka+Charon:wght@400;600&display=swap

- **Headline-Lg**: Afacad Flux, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Afacad Flux, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Imprima, 17px, weight 400, line-height 1.5.
- **Label-Md**: Iosevka Charon, 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`
- **Step-9**: `112px`

### Grid

- **Type**: 12-column modular lattice
- **Max Width**: 1280px content, centred; only the hero and bands run full bleed
- **Gutter**: 24px between columns, 56px page edge on desktop
- **Column Behavior**: Lead block spans 1 to 7 and a rail spans 9 to 12; three-up rows and tables span the full width; every grid child has min-width:0.

### Whitespace

- **Section Gap**: 112px desktop, 56px phone
- **Card Gap**: 24px to 32px
- **Content Padding**: 28px inside a panel
- **Approach**: Rules and space separate; panels are flat #FBFBF8 on the paper.

### Density

- **Default**: moderate
- **Moderate**: {"button_height":"56px","input_height":"52px","row_height":"16px padding in table rows"}

### Responsive

Desktop is twelve columns; 601 to 1199px is six columns with the lead and rail stacked, two-up modules and the portrait print; phones are one column with the nav cut to two words. Content caps at 1280px.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 834px
- **Desktop**: 1280px
- **Ultrawide**: 2560px

## Elevation & Depth

### Shadows

- **Overlay**: 0 1px 2px rgba(20,20,20,.12), 0 18px 36px -14px rgba(20,20,20,.28), only on an open menu or dialog
- **None**: everything else is flat

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: flat-paper-lattice
- **Material**: Warm paper #F4F4F0 with cool-white panels #FBFBF8 and one graphite band. Flat matte, no gradient, no texture; the relief print in the hero is the only texture.
- **Card Style**: Flat panels on the ground with no frame. Rails and tables sit on #FBFBF8; separation by a 2px graphite rule, a 1px tint line or space.
- **Bg Pattern**: none; the visible lattice lives in the hero print

### Borders

- **Default Width**: 0
- **Style**: none
- **Character**: No borders. Structure is drawn as inset rules: a 2px graphite rule above a column heading or under a table header, a 1px paper-tint line between rows, and the 48 by 4 vermilion origin segment above each section heading. Focus is a 3px vermilion outline at 3px offset.

## Components

### Composition

- Build on a visible 12-column lattice with uneven spans: a 7-column lead beside a 4-column rail at 9 to 12.
- Open every section on the origin rule: a 48 by 4 vermilion segment above the heading.
- Put the type on the quiet paper half of the hero print; never add a scrim.
- At most one dark band per page, at the close.

### Hierarchy

- Display in Afacad Flux 900 up to 104px with 0.92 leading; headings 700 at 36 to 64px.
- Prose in Imprima 17px; the second tone in muted #555B62.
- Iosevka Charon for table rows, figure units and breakpoints; heavy figures up to 150px.
- Red only on the origin rule, the lead action and a figure unit.

### Density

Moderate: 112px between sections on desktop, 56px on phones, 24px gutters, 16px table rows.

### Signature Patterns

- The origin rule: a 48 by 4 vermilion segment at the left edge above every section heading.
- The relief-print hero: one full-strength Hochdruck print with a quiet paper half that carries the type.
- The editorial table: one 2px graphite rule under the header, 1px tint lines between rows, tabular figures.
- The heavy figure: a 150px grotesk number with a small vermilion mono unit.

## 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-01a11414-b567-7540-8ba7-4c589741f2b5/DESIGN.with-shadcn.md`.

Machine-readable companions for automation: `/language/en-01a11414-b567-7540-8ba7-4c589741f2b5/shadcn.json` (registry theme), `/language/en-01a11414-b567-7540-8ba7-4c589741f2b5/shadcn-components.md` (component recipes) and `/language/en-01a11414-b567-7540-8ba7-4c589741f2b5/shadcn-shots.json` (preview shots). The human-facing handoff is still 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 Open each section on the origin rule.
- Do Set the headline on the quiet paper half of the print.
- Do Keep red to the origin rule, the lead action and a unit.
- Do Rule under a table header, tint lines between rows, tabular figures.
- Do Keep every rectangle square and borderless.
- Don't Don't lay a scrim or gradient over the hero print.
- Don't Don't frame a card with a hairline or add mono eyebrow labels.
- Don't Don't add a second accent or use red for status.
- Don't Don't round corners or add shadow elevation to panels.
- Don't Don't add a footer colophon stamp.

### Accessibility

Graphite #141414 on paper is 16.5:1; muted #555B62 is 6.4:1 on #F4F4F0; vermilion #C63A2B is 4.8:1 on paper and 5.2:1 under white text on the button. Body is 17px and table rows 15px. Focus is a 3px vermilion outline. Status pairs a square with a word. The settled page renders with no JavaScript and prefers-reduced-motion removes transitions.

## Imagery Direction

### Pairs With

hochdruck

### Art Style Id

en-019ef5c2-a38e-7f63-9d61-5a975edffa19

### Summary

Two-colour relief prints in Hochdruck: ink black on warm off-white with one solid vermilion square, carved gouge texture, flat planes. The lattice of carved columns on the right, and a quiet paper half on the left for type. A portrait crop puts the lattice at the bottom with calm paper above.

### Subjects

- a carved modular lattice of overlapping bars
- a vermilion register square on a grid intersection
- stacked printed columns
- a quiet paper field for type

### Usage

One full-bleed hero painted with var(--hero-image), right-aligned so the type sits on the paper half; a portrait crop under 1000px. No scrim. Inside pages carry no illustration.

### Avoid

A third colour, a gradient scrim, the press itself, and text inside the image.
shadcn/ui theme file
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "raster",
  "type": "registry:theme",
  "title": "Raster shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F4F4F0",
      "foreground": "#141414",
      "card": "#FBFBF8",
      "card-foreground": "#141414",
      "popover": "#FBFBF8",
      "popover-foreground": "#141414",
      "primary": "#141414",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#555B62",
      "muted-foreground": "#141414",
      "accent": "#C63A2B",
      "accent-foreground": "#ffffff",
      "destructive": "#A3123A",
      "border": "#D7D7D1",
      "input": "#D7D7D1",
      "ring": "#C63A2B",
      "chart-1": "#141414",
      "chart-2": "#f4f4f5",
      "chart-3": "#C63A2B",
      "chart-4": "#1F6B4F",
      "chart-5": "#8A5200",
      "sidebar": "#FBFBF8",
      "sidebar-foreground": "#141414",
      "sidebar-primary": "#141414",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#245D8C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D7D7D1",
      "sidebar-ring": "#C63A2B",
      "radius": "0px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#141414",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C63A2B",
      "accent-foreground": "#ffffff",
      "destructive": "#A3123A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C63A2B",
      "chart-1": "#141414",
      "chart-2": "#f4f4f5",
      "chart-3": "#C63A2B",
      "chart-4": "#1F6B4F",
      "chart-5": "#8A5200",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#141414",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#C63A2B",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C63A2B",
      "radius": "0px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-01a11414-b567-7540-8ba7-4c589741f2b5",
    "slug": "raster",
    "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",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "body_weight",
        "button_weight",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none"
      ],
      "shadows": [
        "none",
        "overlay"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "material",
        "treatment"
      ],
      "borders": [
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```

shadcn/ui kit

katagami ✦ Raster