back to gallery
design language·katagami-context-map-system

Katagami Context Map System

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
A calm, light, text-first workspace language for AYA where navigation behaves like a context map rather than a dashboard. The system translates katagami craft, washi restraint, weaving, negative space, and rhythm into product-grade structure: fine hairline dividers, deliberate apertures for reading, woven trails between threads and documents, and quiet marginal signals that show state without taking over the canvas. Japanese inspiration stays abstract and operational: precision cuts, layered context, proportion, material restraint, and attentive whitespace. The result is a crisp gray-white reading environment with charcoal sumi typography, blue-black indigo selection logic, low-chroma semantic status, and tiny persimmon attention marks used only for change or urgency.
values
text remains the primary surface; data and status live inline or in margins rather than as dashboard blocksnavigation is a context map of threads, documents, references, metrics, and tracesJapanese influence appears through craft principles, rhythm, restraint, layering, and negative space, never literal motifsprecision density: compact wayfinding and metadata with generous reading measure and calm line heightstate is visible through rails, hairlines, indentation, notches, and marginalia instead of saturated fillslightness is earned through hierarchy, contrast, and spacing, not pale inaccessible textevery accent has a job: indigo for location and selection, low-chroma tints for state, persimmon for micro-attention
anti-values
×literal Japanese waves, cranes, sakura, torii, brush-stroke logos, tourist patterns, or stencil ornament×dashboard-first layouts that reduce the workspace to KPI cards before text and documents×decorative background patterns pretending to be katagami×large saturated color fields, neon accents, or multi-color module branding×low-contrast gray minimalism that compromises reading or accessibility×generic SaaS card walls with heavy shadows and no context continuity
tokens
borders4 items
accent width
2px
character
Fine hairline dividers and indigo state rails; borders act like precise cut edges rather than decoration.
default width
1px
style
solid
colors16 items
accent
#C75B2A
background
#F6F7F5
border
#DADDD8
border_faint
#ECEEEA
error
#A44A43
info
#456B8D
muted
#6B716D
primary
#162B45
primary_soft
#E8EEF5
selection
#203D63
subtle
#8D948F
success
#4F7661
surface
#FFFFFF
surface_washi
#FAFAF7
text
#202421
warning
#9B6A2F
motion3 items
duration
140ms
easing
cubic-bezier(0.2, 0, 0, 1)
philosophy
Motion is quiet and confirmatory: rails draw in, marginal notes fade, nested context expands by one level, and focus outlines sharpen without bounce.
radii6 items
full
9999px
lg
10px
md
6px
none
0
sm
2px
xl
14px
shadows3 items
lg
0 24px 56px rgba(32,36,33,0.10)
md
0 10px 24px rgba(32,36,33,0.07)
sm
0 1px 2px rgba(32,36,33,0.04)
spacing2 items
base
4px
scale
2, 4, 6, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80
surfaces3 items
bg pattern
None by default; if needed, only a nearly invisible 4px baseline/grid guide inside engineering views, never a motif.
card style
White or washi-white rectangles with 1px hairline borders, 6-10px radii, restrained padding, and no decorative patterning.
treatment
Crisp light gray-white app shell with flat sheets, faint tonal gutters, and document-first panels.
typography9 items
base size
16px
body font
Source Serif 4
google fonts url
https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap
heading font
Inter
letter spacing
-0.01em
line height
1.58
mono font
IBM Plex Mono
scale ratio
1.18
ui font
Inter
rules
composition
Use a minimal app shell with a compact left context map, a dominant central reading/work pane, and an optional right marginalia rail. Avoid dashboard-first composition: metrics belong inline with documents, beside section headings, or in quiet side summaries. Arrange context as nested routes, thread traces, document clusters, and reference links with indentation and connecting hairlines.
density
Precision density: navigation, breadcrumbs, references, and compact summaries can be tight, but the reading column must keep 65-78 character measures, 1.55-1.65 line height, and generous paragraph rhythm. Tables are secondary and should feel like annotated text lists, not enterprise grids.
hierarchy
Start with readable body text, strong section titles, and calm metadata. Use sumi charcoal for primary content, muted gray for supporting labels, and indigo only for navigational state, selection, focus, and active trace lines. Reserve persimmon for small badges that signal change, review needed, or attention.
signature patterns
Context map navigation: nested thread/document/reference rows with a 2px indigo active rail, fine continuation lines, and small counters aligned on the margin.Document marginalia: status, references, metrics, and AI traces sit in a narrow margin as quiet text chips or hairline-linked notes.Layer apertures: summaries open as small in-context cutouts under headings, preserving the reading flow instead of launching dashboard cards.Stateful traces: recently changed or referenced items receive a faint indigo wash plus a tiny persimmon dot or badge, never a large alert block.Rhythmic grid: align nav rows, document baselines, and marginal notes on a 4px/8px rhythm so dense context feels woven rather than cluttered.
layout
breakpoints
Mobile <= 640px collapses the context map into a top breadcrumb stack and hides marginalia behind inline disclosure. Tablet 641-1024px keeps document plus collapsible context drawer. Desktop >= 1025px shows context map, reading pane, and optional marginalia rail.
density
Compact in navigation and metadata, relaxed in prose. Use 28-36px nav rows, 12-16px chip height/padding rhythm, 20-24px document section spacing, and 40-64px breathing room at major transitions.
grid
Desktop uses a 12-column shell: 232-280px context map, flexible 680-820px reading/work pane, and 220-300px marginalia rail. All modules align to a 4px base with 8px row rhythm and 24-32px page gutters.
responsive
Preserve reading order first. Navigation becomes a context trail above the document; marginal metrics become inline summary rows below relevant headings; secondary references collapse into labeled disclosure groups.
whitespace
Whitespace is active negative space: it separates layers, gives documents room, and prevents context from feeling like dashboard clutter. Prefer empty margins with a few signals over filled sidebars.
guidance
do
  • Make reading the center of gravity; place analytics as marginal or inline context.
  • Use indigo consistently for location, active route, selected object, focus, and thread continuation.
  • Express katagami through precise cut edges, apertures, layering, and craft restraint rather than patterns.
  • Use whitespace as structure: generous document gutters, disciplined indentation, and clear negative space around active text.
  • Keep status low-chroma and text-labeled; let semantic color support hierarchy, not dominate it.
  • Design hover/selected/active states with rails, outlines, slight tonal fills, and marginal markers.
  • Style all controls deliberately with custom borders, focus rings, and readable labels.
avoid
  • Do not use literal Japanese motifs, tourist cliches, stencil flowers, waves, cranes, torii, seals, or faux calligraphy.
  • Do not lead with KPI cards, chart grids, or a dashboard homepage when the product task is reading and synthesis.
  • Do not turn katagami into a decorative background pattern or lace overlay.
  • Do not use indigo as a large brand wash; keep it as a navigation and state instrument.
  • Do not make persimmon a second primary color; use it only as micro-attention.
  • Do not rely on shadows to separate core surfaces when hairlines and spacing are enough.
  • Do not compress the reading column for the sake of showing every metric at once.
katagami spec
# Katagami Context Map System

## Philosophy

A calm, light, text-first workspace language for AYA where navigation behaves like a context map rather than a dashboard. The system translates katagami craft, washi restraint, weaving, negative space, and rhythm into product-grade structure: fine hairline dividers, deliberate apertures for reading, woven trails between threads and documents, and quiet marginal signals that show state without taking over the canvas. Japanese inspiration stays abstract and operational: precision cuts, layered context, proportion, material restraint, and attentive whitespace. The result is a crisp gray-white reading environment with charcoal sumi typography, blue-black indigo selection logic, low-chroma semantic status, and tiny persimmon attention marks used only for change or urgency.

### Values

- text remains the primary surface; data and status live inline or in margins rather than as dashboard blocks
- navigation is a context map of threads, documents, references, metrics, and traces
- Japanese influence appears through craft principles, rhythm, restraint, layering, and negative space, never literal motifs
- precision density: compact wayfinding and metadata with generous reading measure and calm line height
- state is visible through rails, hairlines, indentation, notches, and marginalia instead of saturated fills
- lightness is earned through hierarchy, contrast, and spacing, not pale inaccessible text
- every accent has a job: indigo for location and selection, low-chroma tints for state, persimmon for micro-attention

### Anti-Values

- literal Japanese waves, cranes, sakura, torii, brush-stroke logos, tourist patterns, or stencil ornament
- dashboard-first layouts that reduce the workspace to KPI cards before text and documents
- decorative background patterns pretending to be katagami
- large saturated color fields, neon accents, or multi-color module branding
- low-contrast gray minimalism that compromises reading or accessibility
- generic SaaS card walls with heavy shadows and no context continuity

### Visual Character

- A gray-white canvas supports long reading with charcoal text, disciplined measures, and faint paper-like tonal shifts that never become texture decoration.
- Context relationships are shown by indentation, vertical thread lines, soft rails, breadcrumbs, reference chips, and marginal annotations.
- Cards are mostly flat white or warm-white sheets separated by 1px hairlines; shadows are almost absent and used only for active overlays.
- Compact metrics appear beside documents as small text rows, counters, deltas, or marginal capsules instead of a dashboard grid.
- Interaction states feel cut and placed: indigo edge marks, inset outlines, thin selected rails, and tiny persimmon change badges.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: Fine hairline dividers and indigo state rails; borders act like precise cut edges rather than decoration.
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#C75B2A` |
| background | `#F6F7F5` |
| border | `#DADDD8` |
| border_faint | `#ECEEEA` |
| error | `#A44A43` |
| info | `#456B8D` |
| muted | `#6B716D` |
| primary | `#162B45` |
| primary_soft | `#E8EEF5` |
| selection | `#203D63` |
| subtle | `#8D948F` |
| success | `#4F7661` |
| surface | `#FFFFFF` |
| surface_washi | `#FAFAF7` |
| text | `#202421` |
| warning | `#9B6A2F` |

### Motion

- **Duration**: 140ms
- **Easing**: cubic-bezier(0.2, 0, 0, 1)
- **Philosophy**: Motion is quiet and confirmatory: rails draw in, marginal notes fade, nested context expands by one level, and focus outlines sharpen without bounce.

### Radii

- **Full**: 9999px
- **Lg**: 10px
- **Md**: 6px
- **None**: 0
- **Sm**: 2px
- **Xl**: 14px

### Shadows

- **Lg**: 0 24px 56px rgba(32,36,33,0.10)
- **Md**: 0 10px 24px rgba(32,36,33,0.07)
- **Sm**: 0 1px 2px rgba(32,36,33,0.04)

### Spacing

- **Base**: 4px
- **Scale**: [2,4,6,8,12,16,20,24,32,40,48,64,80]

### Surfaces

- **Bg Pattern**: None by default; if needed, only a nearly invisible 4px baseline/grid guide inside engineering views, never a motif.
- **Card Style**: White or washi-white rectangles with 1px hairline borders, 6-10px radii, restrained padding, and no decorative patterning.
- **Treatment**: Crisp light gray-white app shell with flat sheets, faint tonal gutters, and document-first panels.

### Typography

- **Base Size**: 16px
- **Body Font**: Source Serif 4
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap
- **Heading Font**: Inter
- **Letter Spacing**: -0.01em
- **Line Height**: 1.58
- **Mono Font**: IBM Plex Mono
- **Scale Ratio**: 1.18
- **Ui Font**: Inter

## Rules

### Composition

Use a minimal app shell with a compact left context map, a dominant central reading/work pane, and an optional right marginalia rail. Avoid dashboard-first composition: metrics belong inline with documents, beside section headings, or in quiet side summaries. Arrange context as nested routes, thread traces, document clusters, and reference links with indentation and connecting hairlines.

### Density

Precision density: navigation, breadcrumbs, references, and compact summaries can be tight, but the reading column must keep 65-78 character measures, 1.55-1.65 line height, and generous paragraph rhythm. Tables are secondary and should feel like annotated text lists, not enterprise grids.

### Hierarchy

Start with readable body text, strong section titles, and calm metadata. Use sumi charcoal for primary content, muted gray for supporting labels, and indigo only for navigational state, selection, focus, and active trace lines. Reserve persimmon for small badges that signal change, review needed, or attention.

### Signature Patterns

- Context map navigation: nested thread/document/reference rows with a 2px indigo active rail, fine continuation lines, and small counters aligned on the margin.
- Document marginalia: status, references, metrics, and AI traces sit in a narrow margin as quiet text chips or hairline-linked notes.
- Layer apertures: summaries open as small in-context cutouts under headings, preserving the reading flow instead of launching dashboard cards.
- Stateful traces: recently changed or referenced items receive a faint indigo wash plus a tiny persimmon dot or badge, never a large alert block.
- Rhythmic grid: align nav rows, document baselines, and marginal notes on a 4px/8px rhythm so dense context feels woven rather than cluttered.

## Layout

### Breakpoints

Mobile <= 640px collapses the context map into a top breadcrumb stack and hides marginalia behind inline disclosure. Tablet 641-1024px keeps document plus collapsible context drawer. Desktop >= 1025px shows context map, reading pane, and optional marginalia rail.

### Density

Compact in navigation and metadata, relaxed in prose. Use 28-36px nav rows, 12-16px chip height/padding rhythm, 20-24px document section spacing, and 40-64px breathing room at major transitions.

### Grid

Desktop uses a 12-column shell: 232-280px context map, flexible 680-820px reading/work pane, and 220-300px marginalia rail. All modules align to a 4px base with 8px row rhythm and 24-32px page gutters.

### Responsive

Preserve reading order first. Navigation becomes a context trail above the document; marginal metrics become inline summary rows below relevant headings; secondary references collapse into labeled disclosure groups.

### Whitespace

Whitespace is active negative space: it separates layers, gives documents room, and prevents context from feeling like dashboard clutter. Prefer empty margins with a few signals over filled sidebars.

## Guidance

### Do

- Make reading the center of gravity; place analytics as marginal or inline context.
- Use indigo consistently for location, active route, selected object, focus, and thread continuation.
- Express katagami through precise cut edges, apertures, layering, and craft restraint rather than patterns.
- Use whitespace as structure: generous document gutters, disciplined indentation, and clear negative space around active text.
- Keep status low-chroma and text-labeled; let semantic color support hierarchy, not dominate it.
- Design hover/selected/active states with rails, outlines, slight tonal fills, and marginal markers.
- Style all controls deliberately with custom borders, focus rings, and readable labels.

### Don't

- Do not use literal Japanese motifs, tourist cliches, stencil flowers, waves, cranes, torii, seals, or faux calligraphy.
- Do not lead with KPI cards, chart grids, or a dashboard homepage when the product task is reading and synthesis.
- Do not turn katagami into a decorative background pattern or lace overlay.
- Do not use indigo as a large brand wash; keep it as a navigation and state instrument.
- Do not make persimmon a second primary color; use it only as micro-attention.
- Do not rely on shadows to separate core surfaces when hairlines and spacing are enough.
- Do not compress the reading column for the sake of showing every metric at once.

### Accessibility

Maintain WCAG AA contrast for body and controls; charcoal text should remain near #202421 on light surfaces. Indigo focus states use a visible 2px ring or rail with text labels. Status chips include labels, not color alone. Avoid text below 12px except decorative-free mono timestamps or counters.

### Usage Context

Best for AYA-like knowledge workspaces, research editors, AI copilots, document operations, reference management, and product surfaces that must weave context around long-form reading.
DESIGN.md
---
version: "alpha"
name: "Katagami Context Map System"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#C75B2A"
  background: "#F6F7F5"
  border: "#DADDD8"
  border_faint: "#ECEEEA"
  error: "#A44A43"
  info: "#456B8D"
  muted: "#6B716D"
  primary: "#162B45"
  primary_soft: "#E8EEF5"
  selection: "#203D63"
  subtle: "#8D948F"
  success: "#4F7661"
  surface: "#FFFFFF"
  surface_washi: "#FAFAF7"
  text: "#202421"
  warning: "#9B6A2F"
typography:
  headline-lg:
    fontFamily: "Inter"
    fontSize: "1.643rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Inter"
    fontSize: "1.392rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Source Serif 4"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.58
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "10px"
  md: "6px"
  none: "0px"
  sm: "2px"
  xl: "14px"
spacing:
  base: "4px"
  xs: "2px"
  sm: "4px"
  md: "6px"
  lg: "8px"
  xl: "12px"
  2xl: "16px"
  3xl: "20px"
  4xl: "24px"
  step-8: "32px"
  step-9: "40px"
  step-10: "48px"
  step-11: "64px"
  step-12: "80px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-border_faint:
    backgroundColor: "{colors.border_faint}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-primary_soft:
    backgroundColor: "{colors.primary_soft}"
  color-reference-selection:
    backgroundColor: "{colors.selection}"
  color-reference-subtle:
    backgroundColor: "{colors.subtle}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_washi:
    backgroundColor: "{colors.surface_washi}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#ffffff"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Katagami Context Map System

## Overview

A calm, light, text-first workspace language for AYA where navigation behaves like a context map rather than a dashboard. The system translates katagami craft, washi restraint, weaving, negative space, and rhythm into product-grade structure: fine hairline dividers, deliberate apertures for reading, woven trails between threads and documents, and quiet marginal signals that show state without taking over the canvas. Japanese inspiration stays abstract and operational: precision cuts, layered context, proportion, material restraint, and attentive whitespace. The result is a crisp gray-white reading environment with charcoal sumi typography, blue-black indigo selection logic, low-chroma semantic status, and tiny persimmon attention marks used only for change or urgency.

### Values

- text remains the primary surface; data and status live inline or in margins rather than as dashboard blocks
- navigation is a context map of threads, documents, references, metrics, and traces
- Japanese influence appears through craft principles, rhythm, restraint, layering, and negative space, never literal motifs
- precision density: compact wayfinding and metadata with generous reading measure and calm line height
- state is visible through rails, hairlines, indentation, notches, and marginalia instead of saturated fills
- lightness is earned through hierarchy, contrast, and spacing, not pale inaccessible text
- every accent has a job: indigo for location and selection, low-chroma tints for state, persimmon for micro-attention

### Anti-Values

- literal Japanese waves, cranes, sakura, torii, brush-stroke logos, tourist patterns, or stencil ornament
- dashboard-first layouts that reduce the workspace to KPI cards before text and documents
- decorative background patterns pretending to be katagami
- large saturated color fields, neon accents, or multi-color module branding
- low-contrast gray minimalism that compromises reading or accessibility
- generic SaaS card walls with heavy shadows and no context continuity

### Visual Character

- A gray-white canvas supports long reading with charcoal text, disciplined measures, and faint paper-like tonal shifts that never become texture decoration.
- Context relationships are shown by indentation, vertical thread lines, soft rails, breadcrumbs, reference chips, and marginal annotations.
- Cards are mostly flat white or warm-white sheets separated by 1px hairlines; shadows are almost absent and used only for active overlays.
- Compact metrics appear beside documents as small text rows, counters, deltas, or marginal capsules instead of a dashboard grid.
- Interaction states feel cut and placed: indigo edge marks, inset outlines, thin selected rails, and tiny persimmon change badges.

## Colors

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

| Token | Value |
|-------|-------|
| accent | `#C75B2A` |
| background | `#F6F7F5` |
| border | `#DADDD8` |
| border_faint | `#ECEEEA` |
| error | `#A44A43` |
| info | `#456B8D` |
| muted | `#6B716D` |
| primary | `#162B45` |
| primary_soft | `#E8EEF5` |
| selection | `#203D63` |
| subtle | `#8D948F` |
| success | `#4F7661` |
| surface | `#FFFFFF` |
| surface_washi | `#FAFAF7` |
| text | `#202421` |
| warning | `#9B6A2F` |

## Typography

- **Headline-Lg**: Inter, 1.643rem, weight 700, line-height 1.1.
- **Headline-Md**: Inter, 1.392rem, weight 600, line-height 1.15.
- **Body-Md**: Source Serif 4, 16px, weight 400, line-height 1.58.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `4px`
- **Xs**: `2px`
- **Sm**: `4px`
- **Md**: `6px`
- **Lg**: `8px`
- **Xl**: `12px`
- **2xl**: `16px`
- **3xl**: `20px`
- **4xl**: `24px`
- **Step-8**: `32px`
- **Step-9**: `40px`
- **Step-10**: `48px`
- **Step-11**: `64px`
- **Step-12**: `80px`

### Breakpoints

Mobile <= 640px collapses the context map into a top breadcrumb stack and hides marginalia behind inline disclosure. Tablet 641-1024px keeps document plus collapsible context drawer. Desktop >= 1025px shows context map, reading pane, and optional marginalia rail.

### Density

Compact in navigation and metadata, relaxed in prose. Use 28-36px nav rows, 12-16px chip height/padding rhythm, 20-24px document section spacing, and 40-64px breathing room at major transitions.

### Grid

Desktop uses a 12-column shell: 232-280px context map, flexible 680-820px reading/work pane, and 220-300px marginalia rail. All modules align to a 4px base with 8px row rhythm and 24-32px page gutters.

### Responsive

Preserve reading order first. Navigation becomes a context trail above the document; marginal metrics become inline summary rows below relevant headings; secondary references collapse into labeled disclosure groups.

### Whitespace

Whitespace is active negative space: it separates layers, gives documents room, and prevents context from feeling like dashboard clutter. Prefer empty margins with a few signals over filled sidebars.

## Elevation & Depth

### Shadows

- **Lg**: 0 24px 56px rgba(32,36,33,0.10)
- **Md**: 0 10px 24px rgba(32,36,33,0.07)
- **Sm**: 0 1px 2px rgba(32,36,33,0.04)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `10px`
- **Md**: `6px`
- **None**: `0px`
- **Sm**: `2px`
- **Xl**: `14px`

### Surfaces

- **Bg Pattern**: None by default; if needed, only a nearly invisible 4px baseline/grid guide inside engineering views, never a motif.
- **Card Style**: White or washi-white rectangles with 1px hairline borders, 6-10px radii, restrained padding, and no decorative patterning.
- **Treatment**: Crisp light gray-white app shell with flat sheets, faint tonal gutters, and document-first panels.

### Borders

- **Accent Width**: 2px
- **Character**: Fine hairline dividers and indigo state rails; borders act like precise cut edges rather than decoration.
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Use a minimal app shell with a compact left context map, a dominant central reading/work pane, and an optional right marginalia rail. Avoid dashboard-first composition: metrics belong inline with documents, beside section headings, or in quiet side summaries. Arrange context as nested routes, thread traces, document clusters, and reference links with indentation and connecting hairlines.

### Density

Precision density: navigation, breadcrumbs, references, and compact summaries can be tight, but the reading column must keep 65-78 character measures, 1.55-1.65 line height, and generous paragraph rhythm. Tables are secondary and should feel like annotated text lists, not enterprise grids.

### Hierarchy

Start with readable body text, strong section titles, and calm metadata. Use sumi charcoal for primary content, muted gray for supporting labels, and indigo only for navigational state, selection, focus, and active trace lines. Reserve persimmon for small badges that signal change, review needed, or attention.

### Signature Patterns

- Context map navigation: nested thread/document/reference rows with a 2px indigo active rail, fine continuation lines, and small counters aligned on the margin.
- Document marginalia: status, references, metrics, and AI traces sit in a narrow margin as quiet text chips or hairline-linked notes.
- Layer apertures: summaries open as small in-context cutouts under headings, preserving the reading flow instead of launching dashboard cards.
- Stateful traces: recently changed or referenced items receive a faint indigo wash plus a tiny persimmon dot or badge, never a large alert block.
- Rhythmic grid: align nav rows, document baselines, and marginal notes on a 4px/8px rhythm so dense context feels woven rather than cluttered.

## 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/katagami-context-map-system/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 reading the center of gravity; place analytics as marginal or inline context.
- Do Use indigo consistently for location, active route, selected object, focus, and thread continuation.
- Do Express katagami through precise cut edges, apertures, layering, and craft restraint rather than patterns.
- Do Use whitespace as structure: generous document gutters, disciplined indentation, and clear negative space around active text.
- Do Keep status low-chroma and text-labeled; let semantic color support hierarchy, not dominate it.
- Do Design hover/selected/active states with rails, outlines, slight tonal fills, and marginal markers.
- Do Style all controls deliberately with custom borders, focus rings, and readable labels.
- Don't Do not use literal Japanese motifs, tourist cliches, stencil flowers, waves, cranes, torii, seals, or faux calligraphy.
- Don't Do not lead with KPI cards, chart grids, or a dashboard homepage when the product task is reading and synthesis.
- Don't Do not turn katagami into a decorative background pattern or lace overlay.
- Don't Do not use indigo as a large brand wash; keep it as a navigation and state instrument.
- Don't Do not make persimmon a second primary color; use it only as micro-attention.
- Don't Do not rely on shadows to separate core surfaces when hairlines and spacing are enough.
- Don't Do not compress the reading column for the sake of showing every metric at once.

### Accessibility

Maintain WCAG AA contrast for body and controls; charcoal text should remain near #202421 on light surfaces. Indigo focus states use a visible 2px ring or rail with text labels. Status chips include labels, not color alone. Avoid text below 12px except decorative-free mono timestamps or counters.

### Usage Context

Best for AYA-like knowledge workspaces, research editors, AI copilots, document operations, reference management, and product surfaces that must weave context around long-form reading.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "katagami-context-map-system",
  "type": "registry:theme",
  "title": "Katagami Context Map System shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F6F7F5",
      "foreground": "#202421",
      "card": "#FFFFFF",
      "card-foreground": "#202421",
      "popover": "#FFFFFF",
      "popover-foreground": "#202421",
      "primary": "#162B45",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#6B716D",
      "muted-foreground": "#202421",
      "accent": "#C75B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#A44A43",
      "border": "#DADDD8",
      "input": "#DADDD8",
      "ring": "#C75B2A",
      "chart-1": "#162B45",
      "chart-2": "#f4f4f5",
      "chart-3": "#C75B2A",
      "chart-4": "#4F7661",
      "chart-5": "#9B6A2F",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#202421",
      "sidebar-primary": "#162B45",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#456B8D",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#DADDD8",
      "sidebar-ring": "#C75B2A",
      "radius": "6px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#162B45",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C75B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#A44A43",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C75B2A",
      "chart-1": "#162B45",
      "chart-2": "#f4f4f5",
      "chart-3": "#C75B2A",
      "chart-4": "#4F7661",
      "chart-5": "#9B6A2F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#162B45",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#C75B2A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C75B2A",
      "radius": "6px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "katagami-context-map-system",
    "slug": "katagami-context-map-system",
    "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": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "border_faint",
        "error",
        "info",
        "muted",
        "primary",
        "primary_soft",
        "selection",
        "subtle",
        "success",
        "surface",
        "surface_washi",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm",
        "xl"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio",
        "ui_font"
      ]
    }
  }
}
```
in the wild

embodiments

Design Language Preview

Katagami Context Map System

Color Palette

primary
secondary
accent
background
surface
text
muted
border
error
success
warning
info

Typography

h1

Heading One

h2

Heading Two

h3

Heading Three

h4

Heading Four

body

Body text demonstrates the reading experience. Good typography is invisible — it lets the content speak without drawing attention to the letterforms themselves.

caption

Caption text for supplementary information and metadata.

code
const theme = applyTokens(designLanguage);
render(<App theme={theme} />);

Buttons

Form Controls

Navigation

tabs
Overview content area with contextual information about the design language.
segmented control
dropdown menu

Feedback & Status

badges
NewDefaultActivePendingErrorOutline
alerts
Info: A new version is available.
Success: Changes saved successfully.
Warning: Storage is almost full.
Error: Failed to process request.
progress
66% complete
tooltip
avatar
AKJDML

Containers & Overlays

card

Card Title

Cards group related content and actions. This example shows a basic content card with a title and description.

accordion

Design tokens are the atomic values of a design system — colors, spacing, typography, and other values stored as key-value pairs.

dialog
separator

Data Display

table
NameStatusCategoryScore
Neo BrutalismPublishedMaximalist94
Aero GlassDraftSpatial87
Signal UIReviewEnterprise91
stat cards
Languages
42
+12%
Elements
3,150
+8%
Usage
18.4k
+23%
DESIGN.md

at a glance

Palette

Typography

headline-lgInter · 26px · 700

The quick brown fox jumps

headline-mdInter · 22px · 600

The quick brown fox jumps

body-mdSource Serif 4 · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

Components rendered with this language’s tokens — colors, type, and rounded corners as specified.

Spacing

  • base4px
  • xs2px
  • sm4px
  • md6px
  • lg8px
  • xl12px
  • 2xl16px
  • 3xl20px
  • 4xl24px
  • step-832px
  • step-940px
  • step-1048px
  • step-1164px
  • step-1280px

Shape

full9999px
lg10px
md6px
none0px
sm2px
xl14px
shadcn/ui

implementation kit

needs agent-authored kitcompatibility fallback
shadcn compatibility only
The generated theme variables are available, but the polished shadcn component recipes and shots have not been authored by the Katagami agent yet.
fallbackprimitives render
Compatibility proof
Local shadcn-style primitives accept the generated theme variables.
primaryaccentsurfacemutedwarningerror
table rhythm
buttonok
cardok
inputok
recommendedcompatibility fallback

DESIGN.md with shadcn

Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.

advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table
theme css
:root {
  --background: #F6F7F5;
  --foreground: #202421;
  --card: #FFFFFF;
  --card-foreground: #202421;
  --popover: #FFFFFF;
  --popover-foreground: #202421;
  --primary: #162B45;
  --primary-foreground: #ffffff;
  --secondary: #f4f4f5;
  --secondary-foreground: #111111;
  --muted: #6B716D;
  --muted-foreground: #202421;
  --accent: #C75B2A;
  --accent-foreground: #ffffff;
  --destructive: #A44A43;
  --border: #DADDD8;
  --input: #DADDD8;
  --ring: #C75B2A;
  --chart-1: #162B45;
  --chart-2: #f4f4f5;
  --chart-3: #C75B2A;
  --chart-4: #4F7661;
  --chart-5: #9B6A2F;
  --sidebar: #FFFFFF;
  --sidebar-foreground: #202421;
  --sidebar-primary: #162B45;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #456B8D;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #DADDD8;
  --sidebar-ring: #C75B2A;
  --radius: 6px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #162B45;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #C75B2A;
  --accent-foreground: #ffffff;
  --destructive: #A44A43;
  --border: #303642;
  --input: #303642;
  --ring: #C75B2A;
  --chart-1: #162B45;
  --chart-2: #f4f4f5;
  --chart-3: #C75B2A;
  --chart-4: #4F7661;
  --chart-5: #9B6A2F;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #162B45;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #C75B2A;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #C75B2A;
  --radius: 6px;
}
tsx starter
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";

export function KatagamiContextMapSystemShadcnKit() {
  return (
    <section className="grid gap-4 rounded-[var(--radius)] border bg-background p-4 text-foreground">
      <div className="flex items-start justify-between gap-4">
        <div>
          <Badge variant="outline">shadcn/ui</Badge>
          <h2 className="mt-3 text-2xl font-semibold tracking-tight">Katagami Context Map System</h2>
          <p className="mt-1 max-w-xl text-sm text-muted-foreground">
            Use the Katagami registry theme, then compose these shadcn primitives
            with the language-specific component recipes.
          </p>
        </div>
        <Button>Apply theme</Button>
      </div>

      <Tabs defaultValue="components">
        <TabsList>
          <TabsTrigger value="components">Components</TabsTrigger>
          <TabsTrigger value="states">States</TabsTrigger>
          <TabsTrigger value="export">Export</TabsTrigger>
        </TabsList>
      </Tabs>

      <Card>
        <CardHeader>
          <CardTitle>Component recipe</CardTitle>
          <CardDescription>
            Replace this starter content with the agent-authored product scene
            from components.md and preview-shots.json.
          </CardDescription>
        </CardHeader>
        <CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
          <Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
          <Button variant="secondary">Preview state</Button>
        </CardContent>
        <CardFooter className="justify-between">
          <Badge>Ready</Badge>
          <Button variant="outline">Copy recipe</Button>
        </CardFooter>
      </Card>
    </section>
  );
}
theme JSONcompatibility fallback
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "katagami-context-map-system",
  "type": "registry:theme",
  "title": "Katagami Context Map System shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F6F7F5",
      "foreground": "#202421",
      "card": "#FFFFFF",
      "card-foreground": "#202421",
      "popover": "#FFFFFF",
      "popover-foreground": "#202421",
      "primary": "#162B45",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#6B716D",
      "muted-foreground": "#202421",
      "accent": "#C75B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#A44A43",
      "border": "#DADDD8",
      "input": "#DADDD8",
      "ring": "#C75B2A",
      "chart-1": "#162B45",
      "chart-2": "#f4f4f5",
      "chart-3": "#C75B2A",
      "chart-4": "#4F7661",
      "chart-5": "#9B6A2F",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#202421",
      "sidebar-primary": "#162B45",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#456B8D",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#DADDD8",
      "sidebar-ring": "#C75B2A",
      "radius": "6px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#162B45",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C75B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#A44A43",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C75B2A",
      "chart-1": "#162B45",
      "chart-2": "#f4f4f5",
      "chart-3": "#C75B2A",
      "chart-4": "#4F7661",
      "chart-5": "#9B6A2F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#162B45",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#C75B2A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C75B2A",
      "radius": "6px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "katagami-context-map-system",
    "slug": "katagami-context-map-system",
    "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": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "border_faint",
        "error",
        "info",
        "muted",
        "primary",
        "primary_soft",
        "selection",
        "subtle",
        "success",
        "surface",
        "surface_washi",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm",
        "xl"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio",
        "ui_font"
      ]
    }
  }
}
component recipescompatibility fallback
# Katagami Context Map System shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `katagami-context-map-system`
Slug: `katagami-context-map-system`

## Intent

A calm, light, text-first workspace language for AYA where navigation behaves like a context map rather than a dashboard. The system translates katagami craft, washi restraint, weaving, negative space, and rhythm into product-grade structure: fine hairline dividers, deliberate apertures for reading, woven trails between threads and documents, and quiet marginal signals that show state without taking over the canvas. Japanese inspiration stays abstract and operational: precision cuts, layered context, proportion, material restraint, and attentive whitespace. The result is a crisp gray-white reading environment with charcoal sumi typography, blue-black indigo selection logic, low-chroma semantic status, and tiny persimmon attention marks used only for change or urgency.

## Required primitives

- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

## Token cues

Colors:

{
  "accent": "#C75B2A",
  "background": "#F6F7F5",
  "border": "#DADDD8",
  "border_faint": "#ECEEEA",
  "error": "#A44A43",
  "info": "#456B8D",
  "muted": "#6B716D",
  "primary": "#162B45",
  "primary_soft": "#E8EEF5",
  "selection": "#203D63",
  "subtle": "#8D948F",
  "success": "#4F7661",
  "surface": "#FFFFFF",
  "surface_washi": "#FAFAF7",
  "text": "#202421",
  "warning": "#9B6A2F"
}

Typography:

{
  "base_size": "16px",
  "body_font": "Source Serif 4",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap",
  "heading_font": "Inter",
  "letter_spacing": "-0.01em",
  "line_height": 1.58,
  "mono_font": "IBM Plex Mono",
  "scale_ratio": 1.18,
  "ui_font": "Inter"
}

## Visual character to preserve

- A gray-white canvas supports long reading with charcoal text, disciplined measures, and faint paper-like tonal shifts that never become texture decoration.
- Context relationships are shown by indentation, vertical thread lines, soft rails, breadcrumbs, reference chips, and marginal annotations.
- Cards are mostly flat white or warm-white sheets separated by 1px hairlines; shadows are almost absent and used only for active overlays.
- Compact metrics appear beside documents as small text rows, counters, deltas, or marginal capsules instead of a dashboard grid.
- Interaction states feel cut and placed: indigo edge marks, inset outlines, thin selected rails, and tiny persimmon change badges.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "default",
  "border": "solid",
  "underlay": false,
  "grain": true,
  "stickerBadges": true,
  "motion": "still",
  "density": "dense",
  "accents": [
    "primary",
    "accent",
    "secondary",
    "muted"
  ]
}

## Signature component recipes

### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.

### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.

### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.

### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.

### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.

## Preview shots

- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.

## Implementation contract

- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/katagami-context-map-system/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Make reading the center of gravity; place analytics as marginal or inline context.; Use indigo consistently for location, active route, selected object, focus, and thread continuation.; Express katagami through precise cut edges, apertures, layering, and craft restraint rather than patterns.; Use whitespace as structure: generous document gutters, disciplined indentation, and clear negative space around active text.; Keep status low-chroma and text-labeled; let semantic color support hierarchy, not dominate it.; Design hover/selected/active states with rails, outlines, slight tonal fills, and marginal markers.; Style all controls deliberately with custom borders, focus rings, and readable labels.
- Do not: Do not use literal Japanese motifs, tourist cliches, stencil flowers, waves, cranes, torii, seals, or faux calligraphy.; Do not lead with KPI cards, chart grids, or a dashboard homepage when the product task is reading and synthesis.; Do not turn katagami into a decorative background pattern or lace overlay.; Do not use indigo as a large brand wash; keep it as a navigation and state instrument.; Do not make persimmon a second primary color; use it only as micro-attention.; Do not rely on shadows to separate core surfaces when hairlines and spacing are enough.; Do not compress the reading column for the sake of showing every metric at once.

## Copy-paste component example

This generated starter proves the import shape. Production Katagami agents should replace it with a language-specific product composition.

```tsx
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";

export function KatagamiContextMapSystemShadcnKit() {
  return (
    <section className="grid gap-4 rounded-[var(--radius)] border bg-background p-4 text-foreground">
      <div className="flex items-start justify-between gap-4">
        <div>
          <Badge variant="outline">shadcn/ui</Badge>
          <h2 className="mt-3 text-2xl font-semibold tracking-tight">Katagami Context Map System</h2>
          <p className="mt-1 max-w-xl text-sm text-muted-foreground">
            Use the Katagami registry theme, then compose these shadcn primitives
            with the language-specific component recipes.
          </p>
        </div>
        <Button>Apply theme</Button>
      </div>

      <Tabs defaultValue="components">
        <TabsList>
          <TabsTrigger value="components">Components</TabsTrigger>
          <TabsTrigger value="states">States</TabsTrigger>
          <TabsTrigger value="export">Export</TabsTrigger>
        </TabsList>
      </Tabs>

      <Card>
        <CardHeader>
          <CardTitle>Component recipe</CardTitle>
          <CardDescription>
            Replace this starter content with the agent-authored product scene
            from components.md and preview-shots.json.
          </CardDescription>
        </CardHeader>
        <CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
          <Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
          <Button variant="secondary">Preview state</Button>
        </CardContent>
        <CardFooter className="justify-between">
          <Badge>Ready</Badge>
          <Button variant="outline">Copy recipe</Button>
        </CardFooter>
      </Card>
    </section>
  );
}
```

## Layout notes

{
  "breakpoints": "Mobile <= 640px collapses the context map into a top breadcrumb stack and hides marginalia behind inline disclosure. Tablet 641-1024px keeps document plus collapsible context drawer. Desktop >= 1025px shows context map, reading pane, and optional marginalia rail.",
  "density": "Compact in navigation and metadata, relaxed in prose. Use 28-36px nav rows, 12-16px chip height/padding rhythm, 20-24px document section spacing, and 40-64px breathing room at major transitions.",
  "grid": "Desktop uses a 12-column shell: 232-280px context map, flexible 680-820px reading/work pane, and 220-300px marginalia rail. All modules align to a 4px base with 8px row rhythm and 24-32px page gutters.",
  "responsive": "Preserve reading order first. Navigation becomes a context trail above the document; marginal metrics become inline summary rows below relevant headings; secondary references collapse into labeled disclosure groups.",
  "whitespace": "Whitespace is active negative space: it separates layers, gives documents room, and prevents context from feeling like dashboard clutter. Prefer empty margins with a few signals over filled sidebars."
}
preview shotscompatibility fallback
{
  "artifact": "katagami:shadcn-preview-shots",
  "version": "preview-shots-v1",
  "generator": "katagami-ui-compatibility-projection",
  "generatedBy": "katagami-ui-projection",
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "renderable": true,
  "language": {
    "id": "katagami-context-map-system",
    "name": "Katagami Context Map System",
    "slug": "katagami-context-map-system"
  },
  "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
  "primitives": [
    "button",
    "card",
    "input",
    "textarea",
    "select",
    "dialog",
    "sheet",
    "tabs",
    "badge",
    "separator",
    "checkbox",
    "switch",
    "slider",
    "tooltip",
    "dropdown-menu",
    "table"
  ],
  "identityNotes": [
    "A gray-white canvas supports long reading with charcoal text, disciplined measures, and faint paper-like tonal shifts that never become texture decoration.",
    "Context relationships are shown by indentation, vertical thread lines, soft rails, breadcrumbs, reference chips, and marginal annotations.",
    "Cards are mostly flat white or warm-white sheets separated by 1px hairlines; shadows are almost absent and used only for active overlays.",
    "Compact metrics appear beside documents as small text rows, counters, deltas, or marginal capsules instead of a dashboard grid.",
    "Interaction states feel cut and placed: indigo edge marks, inset outlines, thin selected rails, and tiny persimmon change badges."
  ],
  "visualProfile": {
    "family": "paper-collage",
    "material": "paper",
    "contour": "default",
    "border": "solid",
    "underlay": false,
    "grain": true,
    "stickerBadges": true,
    "motion": "still",
    "density": "dense",
    "accents": [
      "primary",
      "accent",
      "secondary",
      "muted"
    ]
  },
  "shots": [
    {
      "id": "application-shell",
      "title": "Application shell",
      "viewport": "desktop",
      "primitives": [
        "button",
        "card",
        "input",
        "select",
        "tabs",
        "badge",
        "separator",
        "table"
      ],
      "composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
      "mustShow": [
        "primary and secondary actions",
        "card hierarchy",
        "filterable state",
        "table or list density"
      ],
      "avoid": [
        "component inventory walls",
        "placeholder-only content",
        "generic rounded SaaS chrome"
      ],
      "scene": {
        "eyebrow": "workspace spread",
        "headline": "Katagami Context Map System launch room",
        "description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
        "primaryAction": "Apply theme",
        "secondaryAction": "Review states",
        "stats": [
          {
            "label": "components",
            "value": "16",
            "tone": "accent"
          },
          {
            "label": "states",
            "value": "ready"
          },
          {
            "label": "density",
            "value": "balanced",
            "tone": "warning"
          }
        ],
        "rows": [
          {
            "label": "Primary flow",
            "value": "mapped",
            "status": "active"
          },
          {
            "label": "Token coverage",
            "value": "semantic",
            "status": "synced"
          },
          {
            "label": "Responsive proof",
            "value": "queued",
            "status": "review"
          }
        ],
        "statuses": [
          "Active",
          "Synced",
          "Draft"
        ]
      }
    },
    {
      "id": "detail-editor",
      "title": "Detail editor",
      "viewport": "tablet",
      "primitives": [
        "button",
        "card",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "dialog",
        "sheet"
      ],
      "composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
      "mustShow": [
        "focus ring",
        "error or destructive state",
        "dialog or sheet treatment",
        "written guidance content"
      ],
      "avoid": [
        "unstyled browser controls",
        "floating cards inside cards",
        "missing labels"
      ],
      "scene": {
        "eyebrow": "editing flow",
        "headline": "Language recipe editor",
        "description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
        "primaryAction": "Save recipe",
        "secondaryAction": "Open sheet",
        "fields": [
          {
            "label": "Component family",
            "value": "Narrative cards"
          },
          {
            "label": "State treatment",
            "value": "Visible focus + validation"
          },
          {
            "label": "Motion",
            "value": "Small lift, no opacity-only fade"
          }
        ],
        "statuses": [
          "Focus",
          "Invalid",
          "Confirmed"
        ]
      }
    },
    {
      "id": "data-operations",
      "title": "Data operations",
      "viewport": "mobile",
      "primitives": [
        "button",
        "tabs",
        "badge",
        "dropdown-menu",
        "table",
        "tooltip",
        "separator"
      ],
      "composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
      "mustShow": [
        "responsive reflow",
        "dense row styling",
        "menu affordance",
        "status badge system"
      ],
      "avoid": [
        "desktop-only tables",
        "text overflow",
        "default shadcn spacing without Katagami character"
      ],
      "scene": {
        "eyebrow": "operations",
        "headline": "Compact review queue",
        "description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
        "primaryAction": "Resolve",
        "secondaryAction": "Filter",
        "rows": [
          {
            "label": "Button hierarchy",
            "value": "approved",
            "status": "ok"
          },
          {
            "label": "Table rhythm",
            "value": "needs pass",
            "status": "watch"
          },
          {
            "label": "Empty state",
            "value": "designed",
            "status": "done"
          }
        ],
        "statuses": [
          "Queued",
          "Blocked",
          "Done"
        ]
      }
    }
  ],
  "componentRecipes": [
    {
      "primitive": "button",
      "intent": "Prove action hierarchy, focus, disabled, and destructive states."
    },
    {
      "primitive": "card",
      "intent": "Carry the language surface, border, elevation, and density rules."
    },
    {
      "primitive": "input",
      "intent": "Show labels, focus rings, validation, and spacing rhythm."
    },
    {
      "primitive": "textarea",
      "intent": "Show longer guidance, validation copy, and writing density."
    },
    {
      "primitive": "select",
      "intent": "Show filtering, selection contrast, and menu trigger styling."
    },
    {
      "primitive": "dialog",
      "intent": "Show centered decision states and overlay treatment."
    },
    {
      "primitive": "sheet",
      "intent": "Show contextual side panels and responsive editing."
    },
    {
      "primitive": "tabs",
      "intent": "Show navigational structure and active/inactive contrast."
    },
    {
      "primitive": "badge",
      "intent": "Show compact status vocabulary and semantic colors."
    },
    {
      "primitive": "separator",
      "intent": "Show section rhythm without generic gray dividers."
    },
    {
      "primitive": "checkbox",
      "intent": "Show binary selection with visible focus and checked states."
    },
    {
      "primitive": "switch",
      "intent": "Show settings toggles and on/off contrast."
    },
    {
      "primitive": "slider",
      "intent": "Show numeric adjustment with track/thumb styling."
    },
    {
      "primitive": "tooltip",
      "intent": "Show concise explanation styling above compact controls."
    },
    {
      "primitive": "dropdown-menu",
      "intent": "Show action menus, destructive items, and grouped choices."
    },
    {
      "primitive": "table",
      "intent": "Show dense operational data, separators, row states, and responsive behavior."
    }
  ],
  "qualityRules": {
    "do": [
      "Make reading the center of gravity; place analytics as marginal or inline context.",
      "Use indigo consistently for location, active route, selected object, focus, and thread continuation.",
      "Express katagami through precise cut edges, apertures, layering, and craft restraint rather than patterns.",
      "Use whitespace as structure: generous document gutters, disciplined indentation, and clear negative space around active text.",
      "Keep status low-chroma and text-labeled; let semantic color support hierarchy, not dominate it.",
      "Design hover/selected/active states with rails, outlines, slight tonal fills, and marginal markers.",
      "Style all controls deliberately with custom borders, focus rings, and readable labels."
    ],
    "dont": [
      "Do not use literal Japanese motifs, tourist cliches, stencil flowers, waves, cranes, torii, seals, or faux calligraphy.",
      "Do not lead with KPI cards, chart grids, or a dashboard homepage when the product task is reading and synthesis.",
      "Do not turn katagami into a decorative background pattern or lace overlay.",
      "Do not use indigo as a large brand wash; keep it as a navigation and state instrument.",
      "Do not make persimmon a second primary color; use it only as micro-attention.",
      "Do not rely on shadows to separate core surfaces when hairlines and spacing are enough.",
      "Do not compress the reading column for the sake of showing every metric at once."
    ]
  }
}
related

More like this