back to gallery
design language·pushpin

Pushpin

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
Pushpin builds interfaces the way you cover a corkboard. Every container is a pastel paper note pressed onto a warm cork ground with a thumbtack; related notes cluster and overlap, separate projects get a wide field of bare cork, and the few things that matter wear a pin or a strip of washi tape. Depth comes from paper and shadow, never from outlines; meaning comes from where a note sits and what colour it is. It is the faithful refinement of Fusen Board — the same sticky-note corkboard idea and warm-cork-pastel colour direction, brought up to standard with a cleaner three-ink palette, coherent geometry, and real components.
values
Tactile paper presence — every container is a note with a soft offset shadowColour carries meaning — note colour signals category and prioritySpatial grouping — clusters and bare cork explain relationshipsReadable imperfection — subtle tilt and hand-drawn marks, never sloppyCheerful high-density — a full board signals a good, busy week
anti-values
×Pure white or pure black surfaces and flat blank-page backgrounds×A single coloured accent edge on a card, or any heavy grey border×Pins, tape, or rotation used as wallpaper instead of restrained accents×Colour alone for state, or an accent ink flooding a whole surface
tokens
colors21 items
bg
#EAE2D2
bg_2
#E2D8C4
surface
#FFF6B0
surface_blue
#C6E4FF
surface_green
#C9F0D6
surface_pink
#FFD3E0
surface_cream
#FBF4E4
tape
#F4ECCF
text
#2C2723
muted
#7A7064
border
rgba(44,39,35,0.14)
accent
#D24B6B
on_accent
#FFFFFF
accent_2
#2E8FA6
on_accent_2
#FFFFFF
accent_3
#C77F1C
on_accent_3
#2C2723
success
#4C8255
warning
#C77F1C
error
#B24545
info
#2E8FA6
typography12 items
base size
17px
body font
Inter
heading font
Fraunces
hand font
Caveat
mono font
Space Mono
heading weight
700
heading transform
none
letter spacing
-0.02em
line height
1.55
display line height
1.08
scale ratio
1.22
google fonts url
https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,600&family=Inter:wght@400;500;600;700&family=Caveat:wght@500;600;700&family=Space+Mono:wght@400;700&display=swap
radii4 items
note
4px
board
16px
pin
9999px
tape
0px
shadows4 items
note
2px 4px 10px rgba(44,39,35,0.16)
note hover
5px 9px 18px rgba(44,39,35,0.22)
pin
1px 2px 4px rgba(44,39,35,0.40)
character
paper depth from soft offset shadow — never removed; depth is shadow, never a border
spacing2 items
base
4px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces4 items
board
Warm cork ground built from layered CSS radial-gradient speckle and a faint linear-gradient fiber weave — no image asset, no white panels.
note
Solid pastel paper colours with a faint multiply paper-fiber pseudo-element and a soft offset shadow; rounds at 4px.
pin
Small radial-gradient thumbtack circle pressed into the board with a tight shadow.
tape
Semi-transparent cream rectangle, multiply-blended, square corners, slight rotation.
borders4 items
default width
1px
style
solid
color
rgba(44,39,35,0.14)
character
near-invisible paper edges and dashed cork dividers; notes are defined by fill, fiber, and shadow — never a heavy grey outline and never a single coloured accent edge
motion6 items
duration fast
120ms
duration
200ms
duration slow
340ms
easing
cubic-bezier(0.34,1.4,0.64,1)
easing gentle
cubic-bezier(0.25,0.46,0.45,0.94)
philosophy
Hover lifts a note and eases its tilt toward flat. The settled board is the default and renders with no JS; an inline script adds html.anim to gate a hidden start-state and reveals notes on scroll, with a hard safety timeout so a no-JS render or gallery/studio preview never shows a blank page. Respects prefers-reduced-motion.
rules
composition
Build screens as one corkboard with notes attached to it, not independent white cards on a page. Anchor each scene with one oversized planning note; cluster medium notes and small pinned reminders around it with tight 8-16px gaps, and reserve broad bare-cork fields between major groups. Let strongly related notes overlap a few px.
hierarchy
Oversized yellow or blue notes carry the main task; primary actions are marker-pink controls on the note; secondary information is teal or compact tape labels; pinned notes are priority and always carry both a pin and a label; pencil-gray Space Mono metadata sits small but never below 12px.
density
High density inside clusters (8-16px gaps) released by broad exposed-cork fields between projects; a full board signals productive activity. Rotations stay subtle (~1.5deg) so long text stays readable, and are removed on mobile.
signature
Pastel paper notes on a CSS cork ground; thumbtack pins as radial-gradient circles marking priority; square translucent washi-tape strips attaching featured or grouped notes; hand-drawn marker underlines (inline SVG) under section heads instead of generic rules; subtle note tilt and overlap. Three marker inks (pink, teal, amber) highlight only what matters and recolour on palette swap.
layout
grid
Asymmetric board grid: desktop 12 columns with a dominant oversized planning note, dense clustered work lane, and narrow pinned reminders; tablet collapses to 6 columns; mobile becomes one column with rotations and overlaps removed. Grids use minmax(0,1fr) + min-width:0 so they never blow out.
whitespace
Whitespace is exposed cork, not blank page. Dramatic rhythm from 4px note details to 96px board margins; always pad above titles so they never stick to a container top.
density

Dense within clusters, generous between projects.

responsive
Renders ~390px to 2560px+. Mobile stacks to a single column, drops rotation/overlap, hides non-essential nav and table columns, never overflows horizontally. Ultra-wide caps and centres the contained board; only the landing hero spans 100vw.
breakpoints
lg
1100px+
md
680-1099px
sm
390-679px
guidance
do
  • Make every container a pastel paper note with a soft offset shadow; pick the colour by meaning.
  • Pin and tape only what matters, and pair every pin with a text label; let the cork breathe between clusters.
  • Use the three marker inks like highlighters on actions, focus rings, and hand-drawn underlines.
  • Keep body text 17px+ at high contrast and explicitly style every form control; anchor scenes with one oversized note rather than equal card rows.
avoid
  • Do not use pure white or pure black surfaces or a flat blank-page background; the warm cork and pastel paper should dominate.
  • Do not put a single coloured accent edge on a note, add a heavy grey border, trap the nav in a pill bar, or nest a card inside a card.
  • Do not let pins, tape, or rotation become wallpaper, rely on colour alone for state, or flood a surface with an accent ink.
  • Do not use emoji or symbol glyphs (triangles, arrows) in copy; use inline SVG primitives.
imagery
pairs with

pasteup

summary
Imagery is handmade torn-and-cut paper collage (the Pasteup technique) that fills the frame edge to edge — many overlapping layers of solid matte construction and kraft paper, each casting a soft real paper drop-shadow, with confident marker outlines, a few translucent washi-tape seams and pressed pin dimples, in the cork-and-pastel palette under warm raking light. The same paper-craft language the CSS speaks, pulled into illustration.
subjects
pinned pastel memo-note clustersa well-used corkboard planning wallstationery still lifes — pencils, tape, coffee cuphand-drawn weekly calendars and checklistspaper-craft botanicals and small everyday objects
usage
Use a full-bleed Pasteup paper-collage scene for the landing hero and feature spots; keep the warm cork ground and pastel paper plus marker-pink/teal/amber outlines, and let the torn edges, paper fiber and stacked shadows show. Never use smooth flat-vector stickers, glossy 3D, photography, or a stark white ground.
katagami spec
# Pushpin

## Philosophy

Pushpin builds interfaces the way you cover a corkboard. Every container is a pastel paper note pressed onto a warm cork ground with a thumbtack; related notes cluster and overlap, separate projects get a wide field of bare cork, and the few things that matter wear a pin or a strip of washi tape. Depth comes from paper and shadow, never from outlines; meaning comes from where a note sits and what colour it is. It is the faithful refinement of Fusen Board — the same sticky-note corkboard idea and warm-cork-pastel colour direction, brought up to standard with a cleaner three-ink palette, coherent geometry, and real components.

### Values

- Tactile paper presence — every container is a note with a soft offset shadow
- Colour carries meaning — note colour signals category and priority
- Spatial grouping — clusters and bare cork explain relationships
- Readable imperfection — subtle tilt and hand-drawn marks, never sloppy
- Cheerful high-density — a full board signals a good, busy week

### Anti-Values

- Pure white or pure black surfaces and flat blank-page backgrounds
- A single coloured accent edge on a card, or any heavy grey border
- Pins, tape, or rotation used as wallpaper instead of restrained accents
- Colour alone for state, or an accent ink flooding a whole surface

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#EAE2D2` |
| bg_2 | `#E2D8C4` |
| surface | `#FFF6B0` |
| surface_blue | `#C6E4FF` |
| surface_green | `#C9F0D6` |
| surface_pink | `#FFD3E0` |
| surface_cream | `#FBF4E4` |
| tape | `#F4ECCF` |
| text | `#2C2723` |
| muted | `#7A7064` |
| border | `rgba(44,39,35,0.14)` |
| accent | `#D24B6B` |
| on_accent | `#FFFFFF` |
| accent_2 | `#2E8FA6` |
| on_accent_2 | `#FFFFFF` |
| accent_3 | `#C77F1C` |
| on_accent_3 | `#2C2723` |
| success | `#4C8255` |
| warning | `#C77F1C` |
| error | `#B24545` |
| info | `#2E8FA6` |

### Typography

- **Base Size**: 17px
- **Body Font**: Inter
- **Heading Font**: Fraunces
- **Hand Font**: Caveat
- **Mono Font**: Space Mono
- **Heading Weight**: 700
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Line Height**: 1.55
- **Display Line Height**: 1.08
- **Scale Ratio**: 1.22
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,600&family=Inter:wght@400;500;600;700&family=Caveat:wght@500;600;700&family=Space+Mono:wght@400;700&display=swap

### Radii

- **Note**: 4px
- **Board**: 16px
- **Pin**: 9999px
- **Tape**: 0px

### Shadows

- **Note**: 2px 4px 10px rgba(44,39,35,0.16)
- **Note Hover**: 5px 9px 18px rgba(44,39,35,0.22)
- **Pin**: 1px 2px 4px rgba(44,39,35,0.40)
- **Character**: paper depth from soft offset shadow — never removed; depth is shadow, never a border

### Spacing

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

### Surfaces

- **Board**: Warm cork ground built from layered CSS radial-gradient speckle and a faint linear-gradient fiber weave — no image asset, no white panels.
- **Note**: Solid pastel paper colours with a faint multiply paper-fiber pseudo-element and a soft offset shadow; rounds at 4px.
- **Pin**: Small radial-gradient thumbtack circle pressed into the board with a tight shadow.
- **Tape**: Semi-transparent cream rectangle, multiply-blended, square corners, slight rotation.

### Borders

- **Default Width**: 1px
- **Style**: solid
- **Color**: rgba(44,39,35,0.14)
- **Character**: near-invisible paper edges and dashed cork dividers; notes are defined by fill, fiber, and shadow — never a heavy grey outline and never a single coloured accent edge

### Motion

- **Duration Fast**: 120ms
- **Duration**: 200ms
- **Duration Slow**: 340ms
- **Easing**: cubic-bezier(0.34,1.4,0.64,1)
- **Easing Gentle**: cubic-bezier(0.25,0.46,0.45,0.94)
- **Philosophy**: Hover lifts a note and eases its tilt toward flat. The settled board is the default and renders with no JS; an inline script adds html.anim to gate a hidden start-state and reveals notes on scroll, with a hard safety timeout so a no-JS render or gallery/studio preview never shows a blank page. Respects prefers-reduced-motion.

## Rules

### Composition

Build screens as one corkboard with notes attached to it, not independent white cards on a page. Anchor each scene with one oversized planning note; cluster medium notes and small pinned reminders around it with tight 8-16px gaps, and reserve broad bare-cork fields between major groups. Let strongly related notes overlap a few px.

### Hierarchy

Oversized yellow or blue notes carry the main task; primary actions are marker-pink controls on the note; secondary information is teal or compact tape labels; pinned notes are priority and always carry both a pin and a label; pencil-gray Space Mono metadata sits small but never below 12px.

### Density

High density inside clusters (8-16px gaps) released by broad exposed-cork fields between projects; a full board signals productive activity. Rotations stay subtle (~1.5deg) so long text stays readable, and are removed on mobile.

### Signature

Pastel paper notes on a CSS cork ground; thumbtack pins as radial-gradient circles marking priority; square translucent washi-tape strips attaching featured or grouped notes; hand-drawn marker underlines (inline SVG) under section heads instead of generic rules; subtle note tilt and overlap. Three marker inks (pink, teal, amber) highlight only what matters and recolour on palette swap.

## Layout

### Grid

Asymmetric board grid: desktop 12 columns with a dominant oversized planning note, dense clustered work lane, and narrow pinned reminders; tablet collapses to 6 columns; mobile becomes one column with rotations and overlaps removed. Grids use minmax(0,1fr) + min-width:0 so they never blow out.

### Whitespace

Whitespace is exposed cork, not blank page. Dramatic rhythm from 4px note details to 96px board margins; always pad above titles so they never stick to a container top.

### Density

Dense within clusters, generous between projects.

### Responsive

Renders ~390px to 2560px+. Mobile stacks to a single column, drops rotation/overlap, hides non-essential nav and table columns, never overflows horizontally. Ultra-wide caps and centres the contained board; only the landing hero spans 100vw.

### Breakpoints

- **Lg**: 1100px+
- **Md**: 680-1099px
- **Sm**: 390-679px

## Guidance

### Do

- Make every container a pastel paper note with a soft offset shadow; pick the colour by meaning.
- Pin and tape only what matters, and pair every pin with a text label; let the cork breathe between clusters.
- Use the three marker inks like highlighters on actions, focus rings, and hand-drawn underlines.
- Keep body text 17px+ at high contrast and explicitly style every form control; anchor scenes with one oversized note rather than equal card rows.

### Don't

- Do not use pure white or pure black surfaces or a flat blank-page background; the warm cork and pastel paper should dominate.
- Do not put a single coloured accent edge on a note, add a heavy grey border, trap the nav in a pill bar, or nest a card inside a card.
- Do not let pins, tape, or rotation become wallpaper, rely on colour alone for state, or flood a surface with an accent ink.
- Do not use emoji or symbol glyphs (triangles, arrows) in copy; use inline SVG primitives.

### Accessibility

4.5:1+ contrast between pencil ink (#2C2723) and every pastel paper. Pins and tape are never the sole indicator of importance — always include a text label. Focus is a 2.5px teal (#2E8FA6) outline with 2px offset on every interactive control. Rotations stay within ~1.5deg and are removed under prefers-reduced-motion. Body text remains 16-17px+.

## Imagery Direction

### Pairs With

pasteup

### Summary

Imagery is handmade torn-and-cut paper collage (the Pasteup technique) that fills the frame edge to edge — many overlapping layers of solid matte construction and kraft paper, each casting a soft real paper drop-shadow, with confident marker outlines, a few translucent washi-tape seams and pressed pin dimples, in the cork-and-pastel palette under warm raking light. The same paper-craft language the CSS speaks, pulled into illustration.

### Subjects

- pinned pastel memo-note clusters
- a well-used corkboard planning wall
- stationery still lifes — pencils, tape, coffee cup
- hand-drawn weekly calendars and checklists
- paper-craft botanicals and small everyday objects

### Usage

Use a full-bleed Pasteup paper-collage scene for the landing hero and feature spots; keep the warm cork ground and pastel paper plus marker-pink/teal/amber outlines, and let the torn edges, paper fiber and stacked shadows show. Never use smooth flat-vector stickers, glossy 3D, photography, or a stark white ground.
DESIGN.md
---
version: "alpha"
name: "Pushpin"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#EAE2D2"
  bg_2: "#E2D8C4"
  surface: "#FFF6B0"
  surface_blue: "#C6E4FF"
  surface_green: "#C9F0D6"
  surface_pink: "#FFD3E0"
  surface_cream: "#FBF4E4"
  tape: "#F4ECCF"
  text: "#2C2723"
  muted: "#7A7064"
  accent: "#D24B6B"
  on_accent: "#FFFFFF"
  accent_2: "#2E8FA6"
  on_accent_2: "#FFFFFF"
  accent_3: "#C77F1C"
  on_accent_3: "#2C2723"
  success: "#4C8255"
  warning: "#C77F1C"
  error: "#B24545"
  info: "#2E8FA6"
typography:
  headline-lg:
    fontFamily: "Fraunces"
    fontSize: "1.929rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Fraunces"
    fontSize: "1.581rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Inter"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Space Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  note: "4px"
  board: "16px"
  pin: "9999px"
  tape: "0px"
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-bg_2:
    backgroundColor: "{colors.bg_2}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_blue:
    backgroundColor: "{colors.surface_blue}"
  color-reference-surface_green:
    backgroundColor: "{colors.surface_green}"
  color-reference-surface_pink:
    backgroundColor: "{colors.surface_pink}"
  color-reference-surface_cream:
    backgroundColor: "{colors.surface_cream}"
  color-reference-tape:
    backgroundColor: "{colors.tape}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-on_accent_2:
    backgroundColor: "{colors.on_accent_2}"
  color-reference-accent_3:
    backgroundColor: "{colors.accent_3}"
  color-reference-on_accent_3:
    backgroundColor: "{colors.on_accent_3}"
  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: "16px"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "16px"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "16px"
    height: "44px"
---

# Pushpin

## Overview

Pushpin builds interfaces the way you cover a corkboard. Every container is a pastel paper note pressed onto a warm cork ground with a thumbtack; related notes cluster and overlap, separate projects get a wide field of bare cork, and the few things that matter wear a pin or a strip of washi tape. Depth comes from paper and shadow, never from outlines; meaning comes from where a note sits and what colour it is. It is the faithful refinement of Fusen Board — the same sticky-note corkboard idea and warm-cork-pastel colour direction, brought up to standard with a cleaner three-ink palette, coherent geometry, and real components.

### Values

- Tactile paper presence — every container is a note with a soft offset shadow
- Colour carries meaning — note colour signals category and priority
- Spatial grouping — clusters and bare cork explain relationships
- Readable imperfection — subtle tilt and hand-drawn marks, never sloppy
- Cheerful high-density — a full board signals a good, busy week

### Anti-Values

- Pure white or pure black surfaces and flat blank-page backgrounds
- A single coloured accent edge on a card, or any heavy grey border
- Pins, tape, or rotation used as wallpaper instead of restrained accents
- Colour alone for state, or an accent ink flooding a whole surface

## 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 | `#EAE2D2` |
| bg_2 | `#E2D8C4` |
| surface | `#FFF6B0` |
| surface_blue | `#C6E4FF` |
| surface_green | `#C9F0D6` |
| surface_pink | `#FFD3E0` |
| surface_cream | `#FBF4E4` |
| tape | `#F4ECCF` |
| text | `#2C2723` |
| muted | `#7A7064` |
| accent | `#D24B6B` |
| on_accent | `#FFFFFF` |
| accent_2 | `#2E8FA6` |
| on_accent_2 | `#FFFFFF` |
| accent_3 | `#C77F1C` |
| on_accent_3 | `#2C2723` |
| success | `#4C8255` |
| warning | `#C77F1C` |
| error | `#B24545` |
| info | `#2E8FA6` |

## Typography

- **Headline-Lg**: Fraunces, 1.929rem, weight 700, line-height 1.1.
- **Headline-Md**: Fraunces, 1.581rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 17px, weight 400, line-height 1.55.
- **Label-Md**: Space 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

Asymmetric board grid: desktop 12 columns with a dominant oversized planning note, dense clustered work lane, and narrow pinned reminders; tablet collapses to 6 columns; mobile becomes one column with rotations and overlaps removed. Grids use minmax(0,1fr) + min-width:0 so they never blow out.

### Whitespace

Whitespace is exposed cork, not blank page. Dramatic rhythm from 4px note details to 96px board margins; always pad above titles so they never stick to a container top.

### Density

Dense within clusters, generous between projects.

### Responsive

Renders ~390px to 2560px+. Mobile stacks to a single column, drops rotation/overlap, hides non-essential nav and table columns, never overflows horizontally. Ultra-wide caps and centres the contained board; only the landing hero spans 100vw.

### Breakpoints

- **Lg**: 1100px+
- **Md**: 680-1099px
- **Sm**: 390-679px

## Elevation & Depth

### Shadows

- **Note**: 2px 4px 10px rgba(44,39,35,0.16)
- **Note Hover**: 5px 9px 18px rgba(44,39,35,0.22)
- **Pin**: 1px 2px 4px rgba(44,39,35,0.40)
- **Character**: paper depth from soft offset shadow — never removed; depth is shadow, never a border

## Shapes

### Rounded

- **Note**: `4px`
- **Board**: `16px`
- **Pin**: `9999px`
- **Tape**: `0px`

### Surfaces

- **Board**: Warm cork ground built from layered CSS radial-gradient speckle and a faint linear-gradient fiber weave — no image asset, no white panels.
- **Note**: Solid pastel paper colours with a faint multiply paper-fiber pseudo-element and a soft offset shadow; rounds at 4px.
- **Pin**: Small radial-gradient thumbtack circle pressed into the board with a tight shadow.
- **Tape**: Semi-transparent cream rectangle, multiply-blended, square corners, slight rotation.

### Borders

- **Default Width**: 1px
- **Style**: solid
- **Color**: rgba(44,39,35,0.14)
- **Character**: near-invisible paper edges and dashed cork dividers; notes are defined by fill, fiber, and shadow — never a heavy grey outline and never a single coloured accent edge

## Components

### Composition

Build screens as one corkboard with notes attached to it, not independent white cards on a page. Anchor each scene with one oversized planning note; cluster medium notes and small pinned reminders around it with tight 8-16px gaps, and reserve broad bare-cork fields between major groups. Let strongly related notes overlap a few px.

### Hierarchy

Oversized yellow or blue notes carry the main task; primary actions are marker-pink controls on the note; secondary information is teal or compact tape labels; pinned notes are priority and always carry both a pin and a label; pencil-gray Space Mono metadata sits small but never below 12px.

### Density

High density inside clusters (8-16px gaps) released by broad exposed-cork fields between projects; a full board signals productive activity. Rotations stay subtle (~1.5deg) so long text stays readable, and are removed on mobile.

### Signature

Pastel paper notes on a CSS cork ground; thumbtack pins as radial-gradient circles marking priority; square translucent washi-tape strips attaching featured or grouped notes; hand-drawn marker underlines (inline SVG) under section heads instead of generic rules; subtle note tilt and overlap. Three marker inks (pink, teal, amber) highlight only what matters and recolour on palette swap.

## 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-019efb5a-2247-7de0-9f7b-7aa45db28f7f/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 Make every container a pastel paper note with a soft offset shadow; pick the colour by meaning.
- Do Pin and tape only what matters, and pair every pin with a text label; let the cork breathe between clusters.
- Do Use the three marker inks like highlighters on actions, focus rings, and hand-drawn underlines.
- Do Keep body text 17px+ at high contrast and explicitly style every form control; anchor scenes with one oversized note rather than equal card rows.
- Don't Do not use pure white or pure black surfaces or a flat blank-page background; the warm cork and pastel paper should dominate.
- Don't Do not put a single coloured accent edge on a note, add a heavy grey border, trap the nav in a pill bar, or nest a card inside a card.
- Don't Do not let pins, tape, or rotation become wallpaper, rely on colour alone for state, or flood a surface with an accent ink.
- Don't Do not use emoji or symbol glyphs (triangles, arrows) in copy; use inline SVG primitives.

### Accessibility

4.5:1+ contrast between pencil ink (#2C2723) and every pastel paper. Pins and tape are never the sole indicator of importance — always include a text label. Focus is a 2.5px teal (#2E8FA6) outline with 2px offset on every interactive control. Rotations stay within ~1.5deg and are removed under prefers-reduced-motion. Body text remains 16-17px+.

## Imagery Direction

### Pairs With

pasteup

### Summary

Imagery is handmade torn-and-cut paper collage (the Pasteup technique) that fills the frame edge to edge — many overlapping layers of solid matte construction and kraft paper, each casting a soft real paper drop-shadow, with confident marker outlines, a few translucent washi-tape seams and pressed pin dimples, in the cork-and-pastel palette under warm raking light. The same paper-craft language the CSS speaks, pulled into illustration.

### Subjects

- pinned pastel memo-note clusters
- a well-used corkboard planning wall
- stationery still lifes — pencils, tape, coffee cup
- hand-drawn weekly calendars and checklists
- paper-craft botanicals and small everyday objects

### Usage

Use a full-bleed Pasteup paper-collage scene for the landing hero and feature spots; keep the warm cork ground and pastel paper plus marker-pink/teal/amber outlines, and let the torn edges, paper fiber and stacked shadows show. Never use smooth flat-vector stickers, glossy 3D, photography, or a stark white ground.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "pushpin",
  "type": "registry:theme",
  "title": "Pushpin shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#EAE2D2",
      "foreground": "#2C2723",
      "card": "#FFF6B0",
      "card-foreground": "#2C2723",
      "popover": "#FFF6B0",
      "popover-foreground": "#2C2723",
      "primary": "#2C2723",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#7A7064",
      "muted-foreground": "#2C2723",
      "accent": "#D24B6B",
      "accent-foreground": "#ffffff",
      "destructive": "#B24545",
      "border": "rgba(44,39,35,0.14)",
      "input": "rgba(44,39,35,0.14)",
      "ring": "#D24B6B",
      "chart-1": "#2C2723",
      "chart-2": "#f4f4f5",
      "chart-3": "#D24B6B",
      "chart-4": "#4C8255",
      "chart-5": "#C77F1C",
      "sidebar": "#FFF6B0",
      "sidebar-foreground": "#2C2723",
      "sidebar-primary": "#2C2723",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2E8FA6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "rgba(44,39,35,0.14)",
      "sidebar-ring": "#D24B6B",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#2C2723",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D24B6B",
      "accent-foreground": "#ffffff",
      "destructive": "#B24545",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D24B6B",
      "chart-1": "#2C2723",
      "chart-2": "#f4f4f5",
      "chart-3": "#D24B6B",
      "chart-4": "#4C8255",
      "chart-5": "#C77F1C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#2C2723",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D24B6B",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D24B6B",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efb5a-2247-7de0-9f7b-7aa45db28f7f",
    "slug": "pushpin",
    "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",
        "bg_2",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "on_accent_2",
        "on_accent_3",
        "success",
        "surface",
        "surface_blue",
        "surface_cream",
        "surface_green",
        "surface_pink",
        "tape",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "display_line_height",
        "google_fonts_url",
        "hand_font",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "radii": [
        "board",
        "note",
        "pin",
        "tape"
      ],
      "shadows": [
        "character",
        "note",
        "note_hover",
        "pin"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "board",
        "note",
        "pin",
        "tape"
      ],
      "borders": [
        "character",
        "color",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "duration_fast",
        "duration_slow",
        "easing",
        "easing_gentle",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

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

at a glance

Typography

headline-lgFraunces · 31px · 700

The quick brown fox jumps

headline-mdFraunces · 25px · 600

The quick brown fox jumps

body-mdInter · 17px · 400

The quick brown fox jumps

label-mdSpace Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

produced by claude-opus-4-8 · sourced by claude-opus-4-8 · images by gpt-image-2

remix lane

try a remix

Keep Pushpinand 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
Pushpin
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

related

More like this