back to gallery

Hatchwork

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 — tokens plus the paired art style. Agents must generate real images.

the spec

specification

philosophy
summary
Hatchwork runs the bungu (stationery) counter like a draftsman's table rather than a bright retail shelf. The ground is a deep ink-blue drafting board carrying a fine blueprint cross-hatch; stock is registered to that grid, and the metadata that would be a soft paper price-tag elsewhere is here an engraved brass index-plate with a countersunk screw. The same precision-stationery world, run with the discipline of a measured drawing: ink board, registration grid, brass plates, snap-to-crosshair handling.
values
Registration over arrangement: every surface sits on a blueprint cross-hatch and items align to it, never floating.Engraved metadata: SKUs, prices, and par counts ride on milled brass index-plates with mono numerals, not soft chips.Drafting clarity: codes, par levels, and stock states read as exact as a dimensioned drawing.Snap handling: picking an item up marks a registration crosshair on a 240ms snap, no bounce.Engineered restraint: a deep ink ground with three highlighter accents, nothing competing for attention.Title-block wayfinding: sections open with an index chip, heading, dashed rule, and a drafting stamp.
anti-values
×Warm-paper or white retail shelf grounds that drop the ink drafting-board identity.×Soft paper price-tags, aisle rails, or a serif display face.×Rainbow maximalism or saturated background fields; accents stay on plates and small marks.×Boxed-in floating nav pills; the masthead and rail must sit open.×Decorative or bouncy motion; the snap is functional registration only.
visual character
A deep ink-blue drafting board (#10141C) under a faint cyan cross-hatch grid sits behind flat ink surfaces, so the page reads as a lit drawing sheet rather than a white SaaS panel or a warm-paper shelf.Section headers are title-blocks: a mono index chip, a grotesque heading, a dashed registration rule, and a drafting stamp (Rev. C, sheet n of m) — wayfinding by drawing convention, not an aisle rail.Metadata badges are engraved brass index-plates: a milled gradient body with a countersunk screw rendered by a pseudo-element, carrying Spline Sans Mono numerals that recolour by role.Working surfaces carry the fine cross-hatch field; cards align to it and reveal a corner registration crosshair on hover, never a one-sided border on a rounded component.Interactions snap with a 240ms cubic-bezier(0.16,1,0.3,1) lift and a 1px press, marking registration like lifting an instrument off a drawing board.
tokens
colors21 items
bg
#10141C
surface
#161B26
surface_2
#1C2230
sunk
#0C0F16
text
#E9EEF6
muted
#8B97AC
faint
#5A6577
border
#283246
hairline
rgba(120,150,200,0.13)
grid
rgba(91,208,224,0.10)
accent
#5BD0E0
accent_2
#D9A441
accent_3
#E2604C
on_accent
#0C0F16
cyan_wash
rgba(91,208,224,0.12)
brass_wash
rgba(217,164,65,0.14)
red_wash
rgba(226,96,76,0.13)
success
#52C08A
warning
#D9A441
error
#E2604C
info
#5BD0E0
typography8 items
base size
17px
body font
Space Grotesk
heading font
Space Grotesk
mono font
Spline Sans Mono
heading weight
600
heading transform
none
letter spacing
-0.02em
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600;700&display=swap
radii6 items
none
0px
sm
0px
md
16px
lg
16px
default
0px
full
9999px
shadows4 items
sm
0 1px 0 rgba(0,0,0,0.4)
md
0 12px 30px rgba(0,0,0,0.45)
lg
0 26px 60px rgba(0,0,0,0.55)
inset
inset 0 1px 0 rgba(255,255,255,0.04)
spacing2 items
base
4px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
treatment
deep ink-blue drafting board under a faint cyan cross-hatch grid, flat ink surfaces with inset top-light, no gradients on chrome
card style
flat ink sheet on the cross-hatch field, hard 0px corners, soft shadow + inset top-light, no border, corner crosshair on hover
bg pattern
fine cyan cross-hatch grid at 26px on the page and 13px behind working surfaces
borders4 items
default width
0
accent width
2px
style
none
character
No borders on cards — separation is soft shadow, sunk wells, and the cross-hatch field. The only colour edge is the dashed registration rule in a section title-block and the 2px cyan focus ring on controls.
motion3 items
duration
240ms
easing
cubic-bezier(0.16,1,0.3,1)
philosophy
snap-to-grid drafting handling: cards lift 3px, buttons press 1px, a registration crosshair marks pick-up, no bounce
rules
composition
Keep the interface scene-specific — a fictional drafting-counter inventory for precision stationery, not a generic dashboard or component inventory. Register every working surface to a blueprint cross-hatch grid and align items to it. Put SKUs, prices, and par counts on engraved brass index-plates with mono numerals. Open sections with a title-block (index chip, grotesque heading, dashed rule, drafting stamp). Limit accents to blueprint cyan, brass, and graphite-red; keep colour on plates and small marks, never large fields. Use the ink drafting board and the cross-hatch grid as structural identity so the system survives palette swaps.
hierarchy
Space Grotesk carries display and body with engineered squareness; Spline Sans Mono carries all metadata — SKUs, prices, par levels, index chips, stamps — uppercase and wide-tracked. Title-blocks and active tabs provide wayfinding before colour-filled buttons. Tables are ruled like inventory sheets while cards stay airy on the grid.
density

Comfortable counter browsing by default with one dense ledger; metadata clusters on plates sit tight while sections breathe at 64-96px.

signature
Engraved brass index-plate badges with a countersunk screw and mono numerals; a blueprint cross-hatch registration field behind every surface; a corner registration crosshair revealed on hover; title-block section headers with a dashed rule and drafting stamp; and a 240ms snap-to-grid lift/press across cards and controls.
layout
grid
12 columns desktop, max-width 1280px; working content sits inside registration fields carrying the cross-hatch; a featured wide drawer spans 8 of 12 to break even rows; 16px gutters.
whitespace

Outer margins generous like a drawing border; metadata clusters tight on plates. Surface padding 24-48px; major scene bands separated by 64-96px.

density

comfortable

responsive
Desktop is a full drafting counter with an open index-rail; tablet drops the rail to a horizontal index and stacks the grid to one or two columns; mobile is a single-column flow that hides the aisle/par columns and secondary nav, never overflowing horizontally.
breakpoints
desktop
1440
tablet
900
mobile
560
guidance
do
  • Register every surface to the cross-hatch grid and align items to it.
  • Put SKUs, prices, and par counts on brass index-plates with mono numerals.
  • Open sections with a title-block: index chip, heading, dashed rule, drafting stamp.
  • Keep cyan for the live/primary line, brass for codes and low-stock, graphite-red for alerts only.
  • Style every control explicitly — sunk wells with a 2px cyan focus ring.
  • Keep the masthead and index-rail open; build hierarchy with space, type, and surface.
avoid
  • Do not fall back to a warm-paper or white shelf ground.
  • Do not use soft paper chips, aisle rails, or a serif display face.
  • Do not flood surfaces with saturated colour; accents stay on plates and small marks.
  • Do not box the nav into a floating pill bar.
  • Do not add bounce or decorative motion; the snap is functional registration.
  • Do not leave native browser select, checkbox, or radio styling visible.
imagery
pairs with

tagboard

summary
Tagboard tagged flat-lay product photography reinterpreted onto the ink drafting board: precision stationery instruments shot top-down on a deep ink-blue blueprint ground with a fine cyan cross-hatch, soft crisp studio light, annotated with clipped paper index-tags and brass-rimmed stickers carrying terse mono labels, the instruments and their tags filling the frame in tidy registration-row order, accent reserved to the tags and small color blocks.
subjects
a drafting-instrument flat-lay (pencils, scale, protractor, leads)a single mechanical pencila folded sheet of blueprint grid papera brass protractora tray of refill leads
usage
One full-bleed tagged drafting flat-lay hero per landing on the ink blueprint ground, composed so a measured cartouche can sit over the left; smaller instruments as feature splits and spot product shots.
katagami spec
# Hatchwork

## Philosophy

Hatchwork runs the bungu (stationery) counter like a draftsman's table rather than a bright retail shelf. The ground is a deep ink-blue drafting board carrying a fine blueprint cross-hatch; stock is registered to that grid, and the metadata that would be a soft paper price-tag elsewhere is here an engraved brass index-plate with a countersunk screw. The same precision-stationery world, run with the discipline of a measured drawing: ink board, registration grid, brass plates, snap-to-crosshair handling.

### Values

- Registration over arrangement: every surface sits on a blueprint cross-hatch and items align to it, never floating.
- Engraved metadata: SKUs, prices, and par counts ride on milled brass index-plates with mono numerals, not soft chips.
- Drafting clarity: codes, par levels, and stock states read as exact as a dimensioned drawing.
- Snap handling: picking an item up marks a registration crosshair on a 240ms snap, no bounce.
- Engineered restraint: a deep ink ground with three highlighter accents, nothing competing for attention.
- Title-block wayfinding: sections open with an index chip, heading, dashed rule, and a drafting stamp.

### Anti-Values

- Warm-paper or white retail shelf grounds that drop the ink drafting-board identity.
- Soft paper price-tags, aisle rails, or a serif display face.
- Rainbow maximalism or saturated background fields; accents stay on plates and small marks.
- Boxed-in floating nav pills; the masthead and rail must sit open.
- Decorative or bouncy motion; the snap is functional registration only.

### Visual Character

- A deep ink-blue drafting board (#10141C) under a faint cyan cross-hatch grid sits behind flat ink surfaces, so the page reads as a lit drawing sheet rather than a white SaaS panel or a warm-paper shelf.
- Section headers are title-blocks: a mono index chip, a grotesque heading, a dashed registration rule, and a drafting stamp (Rev. C, sheet n of m) — wayfinding by drawing convention, not an aisle rail.
- Metadata badges are engraved brass index-plates: a milled gradient body with a countersunk screw rendered by a pseudo-element, carrying Spline Sans Mono numerals that recolour by role.
- Working surfaces carry the fine cross-hatch field; cards align to it and reveal a corner registration crosshair on hover, never a one-sided border on a rounded component.
- Interactions snap with a 240ms cubic-bezier(0.16,1,0.3,1) lift and a 1px press, marking registration like lifting an instrument off a drawing board.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#10141C` |
| surface | `#161B26` |
| surface_2 | `#1C2230` |
| sunk | `#0C0F16` |
| text | `#E9EEF6` |
| muted | `#8B97AC` |
| faint | `#5A6577` |
| border | `#283246` |
| hairline | `rgba(120,150,200,0.13)` |
| grid | `rgba(91,208,224,0.10)` |
| accent | `#5BD0E0` |
| accent_2 | `#D9A441` |
| accent_3 | `#E2604C` |
| on_accent | `#0C0F16` |
| cyan_wash | `rgba(91,208,224,0.12)` |
| brass_wash | `rgba(217,164,65,0.14)` |
| red_wash | `rgba(226,96,76,0.13)` |
| success | `#52C08A` |
| warning | `#D9A441` |
| error | `#E2604C` |
| info | `#5BD0E0` |

### Typography

- **Base Size**: 17px
- **Body Font**: Space Grotesk
- **Heading Font**: Space Grotesk
- **Mono Font**: Spline Sans Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600;700&display=swap

### Radii

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

### Shadows

- **Sm**: 0 1px 0 rgba(0,0,0,0.4)
- **Md**: 0 12px 30px rgba(0,0,0,0.45)
- **Lg**: 0 26px 60px rgba(0,0,0,0.55)
- **Inset**: inset 0 1px 0 rgba(255,255,255,0.04)

### Spacing

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

### Surfaces

- **Treatment**: deep ink-blue drafting board under a faint cyan cross-hatch grid, flat ink surfaces with inset top-light, no gradients on chrome
- **Card Style**: flat ink sheet on the cross-hatch field, hard 0px corners, soft shadow + inset top-light, no border, corner crosshair on hover
- **Bg Pattern**: fine cyan cross-hatch grid at 26px on the page and 13px behind working surfaces

### Borders

- **Default Width**: 0
- **Accent Width**: 2px
- **Style**: none
- **Character**: No borders on cards — separation is soft shadow, sunk wells, and the cross-hatch field. The only colour edge is the dashed registration rule in a section title-block and the 2px cyan focus ring on controls.

### Motion

- **Duration**: 240ms
- **Easing**: cubic-bezier(0.16,1,0.3,1)
- **Philosophy**: snap-to-grid drafting handling: cards lift 3px, buttons press 1px, a registration crosshair marks pick-up, no bounce

## Rules

### Composition

Keep the interface scene-specific — a fictional drafting-counter inventory for precision stationery, not a generic dashboard or component inventory. Register every working surface to a blueprint cross-hatch grid and align items to it. Put SKUs, prices, and par counts on engraved brass index-plates with mono numerals. Open sections with a title-block (index chip, grotesque heading, dashed rule, drafting stamp). Limit accents to blueprint cyan, brass, and graphite-red; keep colour on plates and small marks, never large fields. Use the ink drafting board and the cross-hatch grid as structural identity so the system survives palette swaps.

### Hierarchy

Space Grotesk carries display and body with engineered squareness; Spline Sans Mono carries all metadata — SKUs, prices, par levels, index chips, stamps — uppercase and wide-tracked. Title-blocks and active tabs provide wayfinding before colour-filled buttons. Tables are ruled like inventory sheets while cards stay airy on the grid.

### Density

Comfortable counter browsing by default with one dense ledger; metadata clusters on plates sit tight while sections breathe at 64-96px.

### Signature

Engraved brass index-plate badges with a countersunk screw and mono numerals; a blueprint cross-hatch registration field behind every surface; a corner registration crosshair revealed on hover; title-block section headers with a dashed rule and drafting stamp; and a 240ms snap-to-grid lift/press across cards and controls.

## Layout

### Grid

12 columns desktop, max-width 1280px; working content sits inside registration fields carrying the cross-hatch; a featured wide drawer spans 8 of 12 to break even rows; 16px gutters.

### Whitespace

Outer margins generous like a drawing border; metadata clusters tight on plates. Surface padding 24-48px; major scene bands separated by 64-96px.

### Density

comfortable

### Responsive

Desktop is a full drafting counter with an open index-rail; tablet drops the rail to a horizontal index and stacks the grid to one or two columns; mobile is a single-column flow that hides the aisle/par columns and secondary nav, never overflowing horizontally.

### Breakpoints

- **Desktop**: 1440
- **Tablet**: 900
- **Mobile**: 560

## Guidance

### Do

- Register every surface to the cross-hatch grid and align items to it.
- Put SKUs, prices, and par counts on brass index-plates with mono numerals.
- Open sections with a title-block: index chip, heading, dashed rule, drafting stamp.
- Keep cyan for the live/primary line, brass for codes and low-stock, graphite-red for alerts only.
- Style every control explicitly — sunk wells with a 2px cyan focus ring.
- Keep the masthead and index-rail open; build hierarchy with space, type, and surface.

### Don't

- Do not fall back to a warm-paper or white shelf ground.
- Do not use soft paper chips, aisle rails, or a serif display face.
- Do not flood surfaces with saturated colour; accents stay on plates and small marks.
- Do not box the nav into a floating pill bar.
- Do not add bounce or decorative motion; the snap is functional registration.
- Do not leave native browser select, checkbox, or radio styling visible.

### Accessibility

- **Contrast**: AA contrast for body text and controls on the ink ground
- **Focus**: 2px blueprint-cyan focus ring, inset offset, on every control
- **Color**: category and state always include text, never colour alone
- **Motion**: prefers-reduced-motion disables all transforms and reveals

## Imagery Direction

### Pairs With

tagboard

### Summary

Tagboard tagged flat-lay product photography reinterpreted onto the ink drafting board: precision stationery instruments shot top-down on a deep ink-blue blueprint ground with a fine cyan cross-hatch, soft crisp studio light, annotated with clipped paper index-tags and brass-rimmed stickers carrying terse mono labels, the instruments and their tags filling the frame in tidy registration-row order, accent reserved to the tags and small color blocks.

### Subjects

- a drafting-instrument flat-lay (pencils, scale, protractor, leads)
- a single mechanical pencil
- a folded sheet of blueprint grid paper
- a brass protractor
- a tray of refill leads

### Usage

One full-bleed tagged drafting flat-lay hero per landing on the ink blueprint ground, composed so a measured cartouche can sit over the left; smaller instruments as feature splits and spot product shots.
DESIGN.md
---
version: "alpha"
name: "Hatchwork"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#10141C"
  surface: "#161B26"
  surface_2: "#1C2230"
  sunk: "#0C0F16"
  text: "#E9EEF6"
  muted: "#8B97AC"
  faint: "#5A6577"
  border: "#283246"
  accent: "#5BD0E0"
  accent_2: "#D9A441"
  accent_3: "#E2604C"
  on_accent: "#0C0F16"
  success: "#52C08A"
  warning: "#D9A441"
  error: "#E2604C"
  info: "#5BD0E0"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Space Grotesk"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Spline Sans Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "0px"
  md: "16px"
  lg: "16px"
  default: "0px"
  full: "9999px"
spacing:
  base: "4px"
  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-sunk:
    backgroundColor: "{colors.sunk}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-faint:
    backgroundColor: "{colors.faint}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-accent_3:
    backgroundColor: "{colors.accent_3}"
  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"
---

# Hatchwork

## Overview

Hatchwork runs the bungu (stationery) counter like a draftsman's table rather than a bright retail shelf. The ground is a deep ink-blue drafting board carrying a fine blueprint cross-hatch; stock is registered to that grid, and the metadata that would be a soft paper price-tag elsewhere is here an engraved brass index-plate with a countersunk screw. The same precision-stationery world, run with the discipline of a measured drawing: ink board, registration grid, brass plates, snap-to-crosshair handling.

### Values

- Registration over arrangement: every surface sits on a blueprint cross-hatch and items align to it, never floating.
- Engraved metadata: SKUs, prices, and par counts ride on milled brass index-plates with mono numerals, not soft chips.
- Drafting clarity: codes, par levels, and stock states read as exact as a dimensioned drawing.
- Snap handling: picking an item up marks a registration crosshair on a 240ms snap, no bounce.
- Engineered restraint: a deep ink ground with three highlighter accents, nothing competing for attention.
- Title-block wayfinding: sections open with an index chip, heading, dashed rule, and a drafting stamp.

### Anti-Values

- Warm-paper or white retail shelf grounds that drop the ink drafting-board identity.
- Soft paper price-tags, aisle rails, or a serif display face.
- Rainbow maximalism or saturated background fields; accents stay on plates and small marks.
- Boxed-in floating nav pills; the masthead and rail must sit open.
- Decorative or bouncy motion; the snap is functional registration only.

### Visual Character

- A deep ink-blue drafting board (#10141C) under a faint cyan cross-hatch grid sits behind flat ink surfaces, so the page reads as a lit drawing sheet rather than a white SaaS panel or a warm-paper shelf.
- Section headers are title-blocks: a mono index chip, a grotesque heading, a dashed registration rule, and a drafting stamp (Rev. C, sheet n of m) — wayfinding by drawing convention, not an aisle rail.
- Metadata badges are engraved brass index-plates: a milled gradient body with a countersunk screw rendered by a pseudo-element, carrying Spline Sans Mono numerals that recolour by role.
- Working surfaces carry the fine cross-hatch field; cards align to it and reveal a corner registration crosshair on hover, never a one-sided border on a rounded component.
- Interactions snap with a 240ms cubic-bezier(0.16,1,0.3,1) lift and a 1px press, marking registration like lifting an instrument off a drawing board.

## 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 | `#10141C` |
| surface | `#161B26` |
| surface_2 | `#1C2230` |
| sunk | `#0C0F16` |
| text | `#E9EEF6` |
| muted | `#8B97AC` |
| faint | `#5A6577` |
| border | `#283246` |
| accent | `#5BD0E0` |
| accent_2 | `#D9A441` |
| accent_3 | `#E2604C` |
| on_accent | `#0C0F16` |
| success | `#52C08A` |
| warning | `#D9A441` |
| error | `#E2604C` |
| info | `#5BD0E0` |

## Typography

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

## Layout

### Spacing Tokens

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

### Grid

12 columns desktop, max-width 1280px; working content sits inside registration fields carrying the cross-hatch; a featured wide drawer spans 8 of 12 to break even rows; 16px gutters.

### Whitespace

Outer margins generous like a drawing border; metadata clusters tight on plates. Surface padding 24-48px; major scene bands separated by 64-96px.

### Density

comfortable

### Responsive

Desktop is a full drafting counter with an open index-rail; tablet drops the rail to a horizontal index and stacks the grid to one or two columns; mobile is a single-column flow that hides the aisle/par columns and secondary nav, never overflowing horizontally.

### Breakpoints

- **Desktop**: 1440
- **Tablet**: 900
- **Mobile**: 560

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 0 rgba(0,0,0,0.4)
- **Md**: 0 12px 30px rgba(0,0,0,0.45)
- **Lg**: 0 26px 60px rgba(0,0,0,0.55)
- **Inset**: inset 0 1px 0 rgba(255,255,255,0.04)

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: deep ink-blue drafting board under a faint cyan cross-hatch grid, flat ink surfaces with inset top-light, no gradients on chrome
- **Card Style**: flat ink sheet on the cross-hatch field, hard 0px corners, soft shadow + inset top-light, no border, corner crosshair on hover
- **Bg Pattern**: fine cyan cross-hatch grid at 26px on the page and 13px behind working surfaces

### Borders

- **Default Width**: 0
- **Accent Width**: 2px
- **Style**: none
- **Character**: No borders on cards — separation is soft shadow, sunk wells, and the cross-hatch field. The only colour edge is the dashed registration rule in a section title-block and the 2px cyan focus ring on controls.

## Components

### Composition

Keep the interface scene-specific — a fictional drafting-counter inventory for precision stationery, not a generic dashboard or component inventory. Register every working surface to a blueprint cross-hatch grid and align items to it. Put SKUs, prices, and par counts on engraved brass index-plates with mono numerals. Open sections with a title-block (index chip, grotesque heading, dashed rule, drafting stamp). Limit accents to blueprint cyan, brass, and graphite-red; keep colour on plates and small marks, never large fields. Use the ink drafting board and the cross-hatch grid as structural identity so the system survives palette swaps.

### Hierarchy

Space Grotesk carries display and body with engineered squareness; Spline Sans Mono carries all metadata — SKUs, prices, par levels, index chips, stamps — uppercase and wide-tracked. Title-blocks and active tabs provide wayfinding before colour-filled buttons. Tables are ruled like inventory sheets while cards stay airy on the grid.

### Density

Comfortable counter browsing by default with one dense ledger; metadata clusters on plates sit tight while sections breathe at 64-96px.

### Signature

Engraved brass index-plate badges with a countersunk screw and mono numerals; a blueprint cross-hatch registration field behind every surface; a corner registration crosshair revealed on hover; title-block section headers with a dashed rule and drafting stamp; and a 240ms snap-to-grid lift/press across cards and controls.

## 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-019ef9c2-d41f-7ab3-8234-1b6e942676ca/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 Register every surface to the cross-hatch grid and align items to it.
- Do Put SKUs, prices, and par counts on brass index-plates with mono numerals.
- Do Open sections with a title-block: index chip, heading, dashed rule, drafting stamp.
- Do Keep cyan for the live/primary line, brass for codes and low-stock, graphite-red for alerts only.
- Do Style every control explicitly — sunk wells with a 2px cyan focus ring.
- Do Keep the masthead and index-rail open; build hierarchy with space, type, and surface.
- Don't Do not fall back to a warm-paper or white shelf ground.
- Don't Do not use soft paper chips, aisle rails, or a serif display face.
- Don't Do not flood surfaces with saturated colour; accents stay on plates and small marks.
- Don't Do not box the nav into a floating pill bar.
- Don't Do not add bounce or decorative motion; the snap is functional registration.
- Don't Do not leave native browser select, checkbox, or radio styling visible.

### Accessibility

- **Contrast**: AA contrast for body text and controls on the ink ground
- **Focus**: 2px blueprint-cyan focus ring, inset offset, on every control
- **Color**: category and state always include text, never colour alone
- **Motion**: prefers-reduced-motion disables all transforms and reveals

## Imagery Direction

### Pairs With

tagboard

### Summary

Tagboard tagged flat-lay product photography reinterpreted onto the ink drafting board: precision stationery instruments shot top-down on a deep ink-blue blueprint ground with a fine cyan cross-hatch, soft crisp studio light, annotated with clipped paper index-tags and brass-rimmed stickers carrying terse mono labels, the instruments and their tags filling the frame in tidy registration-row order, accent reserved to the tags and small color blocks.

### Subjects

- a drafting-instrument flat-lay (pencils, scale, protractor, leads)
- a single mechanical pencil
- a folded sheet of blueprint grid paper
- a brass protractor
- a tray of refill leads

### Usage

One full-bleed tagged drafting flat-lay hero per landing on the ink blueprint ground, composed so a measured cartouche can sit over the left; smaller instruments as feature splits and spot product shots.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "hatchwork",
  "type": "registry:theme",
  "title": "Hatchwork shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#10141C",
      "foreground": "#E9EEF6",
      "card": "#161B26",
      "card-foreground": "#E9EEF6",
      "popover": "#161B26",
      "popover-foreground": "#E9EEF6",
      "primary": "#E9EEF6",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#8B97AC",
      "muted-foreground": "#E9EEF6",
      "accent": "#5BD0E0",
      "accent-foreground": "#ffffff",
      "destructive": "#E2604C",
      "border": "#283246",
      "input": "#283246",
      "ring": "#5BD0E0",
      "chart-1": "#E9EEF6",
      "chart-2": "#f4f4f5",
      "chart-3": "#5BD0E0",
      "chart-4": "#52C08A",
      "chart-5": "#D9A441",
      "sidebar": "#161B26",
      "sidebar-foreground": "#E9EEF6",
      "sidebar-primary": "#E9EEF6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#5BD0E0",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#283246",
      "sidebar-ring": "#5BD0E0",
      "radius": "0px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E9EEF6",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#5BD0E0",
      "accent-foreground": "#ffffff",
      "destructive": "#E2604C",
      "border": "#303642",
      "input": "#303642",
      "ring": "#5BD0E0",
      "chart-1": "#E9EEF6",
      "chart-2": "#f4f4f5",
      "chart-3": "#5BD0E0",
      "chart-4": "#52C08A",
      "chart-5": "#D9A441",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E9EEF6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#5BD0E0",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#5BD0E0",
      "radius": "0px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef9c2-d41f-7ab3-8234-1b6e942676ca",
    "slug": "hatchwork",
    "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",
        "accent_3",
        "bg",
        "border",
        "brass_wash",
        "cyan_wash",
        "error",
        "faint",
        "grid",
        "hairline",
        "info",
        "muted",
        "on_accent",
        "red_wash",
        "success",
        "sunk",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "mono_font"
      ],
      "radii": [
        "default",
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "inset",
        "lg",
        "md",
        "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

DESIGN.md

at a glance

Typography

headline-lgSpace Grotesk · 33px · 700

The quick brown fox jumps

headline-mdSpace Grotesk · 27px · 600

The quick brown fox jumps

body-mdSpace Grotesk · 17px · 400

The quick brown fox jumps

label-mdSpline Sans Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with
remix lane

try a remix

Keep Hatchwork and swap a palette and an art style onto it. The landing & dashboard recolor live.

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

Family

Evolved from
related

More like this