back to gallery
design language·layered-context-reading-room

Layered Context Reading Room

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
Layered Context Reading Room is a calm, text-first workspace language for AYA: high-contrast sumi prose on washi-warm neutral surfaces, translucent stacked context cards, indigo interaction threads, and tiny persimmon/sumi signals that let dense information feel woven rather than dashboarded.
values
Make text the primary surface: body copy, annotations, summaries, and marginal context carry the interface before charts or decoration.Abstract Japanese craft through spacing, layering, rhythm, edge quality, restraint, and material tactility rather than literal motifs.Treat navigation as a context map that helps readers understand where a thread sits in the whole workspace.Keep analytics document-adjacent: inline counts, compact chips, quiet annotations, and small contextual panels instead of KPI canvases.Use color as a sparse thread through dense context: one indigo family for action/focus/selection, rare persimmon for emphasis, and sumi for semantic seriousness.Preserve calm under density by alternating precise information clusters with generous negative space and soft neutral bands.
anti-values
×No literal waves, fans, sakura, cranes, torii, faux-brush typography, tourist patterns, or generalized Japanese ornament.×No large KPI dashboards, candy-colored chart walls, trading terminals, or generic enterprise admin chrome.×No low-contrast gray prose, tiny unreadable metadata, or decoration that competes with reading.×No saturated palette spreads; accent color appears as rules, pins, focus rings, links, and rare chips.×No glassmorphism spectacle; translucency should imply paper layering and context depth, not futuristic gloss.
tokens
accessibility3 items
bodyContrast
Use #161411 on #FFFCF6 or #F7F4ED for AAA-like reading contrast.
focus
2px indigo outline plus 2px warm offset, never color-only.
targets
Minimum 40px interactive height in dense panes.
color21 items
bandIndigoMist
#EEF1F7
bandWashiWarm
#F1ECE2
border
#DCD4C8
borderStrong
#BDB2A2
canvas
#F7F4ED
danger
#9B3A31
focus
#2F4F8F
indigo
#2F4F8F
indigoHover
#253F73
indigoSoft
#DDE5F4
persimmon
#B85C2B
persimmonSoft
#F2DED1
success
#436B4A
sumiSemantic
#2A2926
surface
#FFFCF6
surfaceContext
rgba(247,244,237,0.72)
surfaceRaised
#FFFFFF
text
#161411
textMuted
#5D5850
textSubtle
#827B70
warning
#9A6324
motion3 items
base
180ms cubic-bezier(.2,.8,.2,1)
fast
120ms ease-out
slow
280ms cubic-bezier(.2,.8,.2,1)
radius4 items
card
14px
chip
999px
panel
18px
paper
10px
shadow3 items
hairline
0 0 0 1px rgba(42,41,38,0.08)
lift
0 8px 24px rgba(42,41,38,0.08)
stack
0 1px 0 rgba(42,41,38,0.07), 0 14px 36px rgba(42,41,38,0.06)
space9 items
2xl
32px
3xl
48px
4xl
72px
lg
16px
md
12px
readerGutter
clamp(24px, 5vw, 80px)
sm
8px
xl
24px
xs
4px
typography11 items
body
16px / 1.68
fontMono
IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, monospace
fontSans
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif
fontSerifOptional
Source Serif 4, ui-serif, Georgia, serif
h1
32-40px / 1.12, 650 weight
h2
22-26px / 1.24, 620 weight
h3
17-19px / 1.35, 620 weight
label
11px uppercase / 1.2 with 0.08em letter spacing
measure
62-76 characters
metadata
12px / 1.35 with 0.01em letter spacing
readerBody
17px / 1.76
rules
accessibility
All body and control text must meet WCAG AA minimum; body reading contrast should be substantially higher. Do not encode status by color alone: pair indigo/persimmon/sumi signals with labels, position, or rule style.
composition
Compose screens as layered documents, not dashboards. A central reading surface anchors the page; context cards tuck beside or beneath it; a slim navigation map shows neighboring threads, sources, and status. Use translucent cards and barely tinted bands to reveal relationship depth without visual noise.
density
Place counts and metrics inline with the text they qualify: “12 sources”, “3 unresolved notes”, “last edited 8m ago”. Use tiny chips, pins, and marginal marks rather than separate metric cards.
hierarchy
Hierarchy comes from measure, weight, line-height, inset rules, and proximity. Color supports state and continuity only. Titles are calm and editorial; metadata is compact but legible; summaries sit in soft bands before dense source detail.
interaction states
Hover clarifies layering with a slight surface lift, stronger border, and revealed metadata. Active selection adds an indigo left rule and soft indigo wash. Focus uses a visible indigo outline with warm offset. Disabled states reduce opacity but keep text readable. Loading uses skeleton lines matching text measure, not spinners unless action is blocking.
signature patterns
Context-map rail: a left-side outline of threads with indigo active rule, small neutral count chips, and fine connector lines that resemble woven paths rather than a menu tree.Stacked source cards: translucent overlapping cards with 2px offsets, hairline borders, and compact source metadata; hover raises only the active sheet.Washi context bands: pale warm or indigo-tinted horizontal bands behind summaries, caveats, or quoted context, with soft top/bottom rules instead of filled callouts.Katagami edge rhythm: use tiny repeated notches, perforation-like separators, or modular apertures along panel edges only as structural separators, never as pictorial pattern.Marginal signal pins: 6-8px dots, short rules, or small square pins in indigo/persimmon/sumi that mark annotations, warnings, or open decisions without icons.
layout
breakpoints
Mobile <= 720px collapses context map into an indigo-thread outline sheet and moves annotations inline after their referenced paragraph; tablet uses two panes with a collapsible right rail; desktop allows three quiet layers.
density
Medium-high density allowed in metadata, summaries, and relation lists, but primary prose keeps 1.65+ line-height and paragraph spacing of 14-22px. Dense clusters must be bordered by negative space.
grid
Desktop uses a reading-room shell: 240-280px left context map, central reading column with 720-860px measure, and 300-380px right annotation/context pane. Use 12 columns only as scaffolding; visible structure should feel like nested documents and margins.
responsive
Preserve reading order first: document title, summary, body, contextual annotations, thread map. Never let side panels precede the current reading task on small screens.
whitespace

Use ma-like pauses: broad page gutters, quiet bands between contexts, and 32-72px section separations. Inside chips and metadata rows use 4-12px precision.

guidance
do
  • Start every view with a readable document surface and only then add contextual rails, summaries, and inline metrics.
  • Use indigo consistently for action, selection, links, focus, and navigational continuity.
  • Make Japanese references structural: layered paper, restrained negative space, woven rhythm, precise edges, and quiet craft.
  • Keep metadata compact but meaningful: source, confidence, count, owner, freshness, and state should sit near the relevant text.
  • Prefer fine rules, pins, small chips, and marginal annotations over icon-heavy controls.
  • Use progressive disclosure: summaries first, source stacks second, raw detail third.
avoid
  • Do not use literal Japanese motifs, faux calligraphy, brush fonts, decorative waves, fans, sakura, cranes, or tourist imagery.
  • Do not turn the workspace into a KPI dashboard with large number tiles or colorful chart grids.
  • Do not let translucency, blur, or texture reduce text contrast.
  • Do not introduce many accent colors; if a new color is needed, make it semantic and rare.
  • Do not over-round surfaces into generic SaaS cards; edges should feel paper-precise and lightly softened.
katagami spec
# Layered Context Reading Room

## Philosophy

Layered Context Reading Room is a calm, text-first workspace language for AYA: high-contrast sumi prose on washi-warm neutral surfaces, translucent stacked context cards, indigo interaction threads, and tiny persimmon/sumi signals that let dense information feel woven rather than dashboarded.

### Values

- Make text the primary surface: body copy, annotations, summaries, and marginal context carry the interface before charts or decoration.
- Abstract Japanese craft through spacing, layering, rhythm, edge quality, restraint, and material tactility rather than literal motifs.
- Treat navigation as a context map that helps readers understand where a thread sits in the whole workspace.
- Keep analytics document-adjacent: inline counts, compact chips, quiet annotations, and small contextual panels instead of KPI canvases.
- Use color as a sparse thread through dense context: one indigo family for action/focus/selection, rare persimmon for emphasis, and sumi for semantic seriousness.
- Preserve calm under density by alternating precise information clusters with generous negative space and soft neutral bands.

### Anti-Values

- No literal waves, fans, sakura, cranes, torii, faux-brush typography, tourist patterns, or generalized Japanese ornament.
- No large KPI dashboards, candy-colored chart walls, trading terminals, or generic enterprise admin chrome.
- No low-contrast gray prose, tiny unreadable metadata, or decoration that competes with reading.
- No saturated palette spreads; accent color appears as rules, pins, focus rings, links, and rare chips.
- No glassmorphism spectacle; translucency should imply paper layering and context depth, not futuristic gloss.

### Visual Character

- Near-white washi and warm stone surfaces with very subtle fiber/noise texture, soft context bands, and hairline borders.
- Stacked translucent cards offset by 2-6px and separated by fine shadows/rules to show relationship depth without heaviness.
- High-contrast sumi body text, compact metadata, measured line length, generous line-height, and hierarchy by weight/spacing rather than color.
- Indigo appears as active rails, selected map pins, link underlines, focus rings, and thin connective rules; persimmon is reserved for a single urgent note or human correction.
- Katagami inspiration becomes perforated edge rhythm, modular apertures, repeated micro-notches, and woven panel cadence, never recognizable stencil imagery.

## Tokens

### Accessibility

- **BodyContrast**: Use #161411 on #FFFCF6 or #F7F4ED for AAA-like reading contrast.
- **Focus**: 2px indigo outline plus 2px warm offset, never color-only.
- **Targets**: Minimum 40px interactive height in dense panes.

### Color

- **BandIndigoMist**: #EEF1F7
- **BandWashiWarm**: #F1ECE2
- **Border**: #DCD4C8
- **BorderStrong**: #BDB2A2
- **Canvas**: #F7F4ED
- **Danger**: #9B3A31
- **Focus**: #2F4F8F
- **Indigo**: #2F4F8F
- **IndigoHover**: #253F73
- **IndigoSoft**: #DDE5F4
- **Persimmon**: #B85C2B
- **PersimmonSoft**: #F2DED1
- **Success**: #436B4A
- **SumiSemantic**: #2A2926
- **Surface**: #FFFCF6
- **SurfaceContext**: rgba(247,244,237,0.72)
- **SurfaceRaised**: #FFFFFF
- **Text**: #161411
- **TextMuted**: #5D5850
- **TextSubtle**: #827B70
- **Warning**: #9A6324

### Motion

- **Base**: 180ms cubic-bezier(.2,.8,.2,1)
- **Fast**: 120ms ease-out
- **Slow**: 280ms cubic-bezier(.2,.8,.2,1)

### Radius

- **Card**: 14px
- **Chip**: 999px
- **Panel**: 18px
- **Paper**: 10px

### Shadow

- **Hairline**: 0 0 0 1px rgba(42,41,38,0.08)
- **Lift**: 0 8px 24px rgba(42,41,38,0.08)
- **Stack**: 0 1px 0 rgba(42,41,38,0.07), 0 14px 36px rgba(42,41,38,0.06)

### Space

- **2xl**: 32px
- **3xl**: 48px
- **4xl**: 72px
- **Lg**: 16px
- **Md**: 12px
- **ReaderGutter**: clamp(24px, 5vw, 80px)
- **Sm**: 8px
- **Xl**: 24px
- **Xs**: 4px

### Typography

- **Body**: 16px / 1.68
- **FontMono**: IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, monospace
- **FontSans**: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif
- **FontSerifOptional**: Source Serif 4, ui-serif, Georgia, serif
- **H1**: 32-40px / 1.12, 650 weight
- **H2**: 22-26px / 1.24, 620 weight
- **H3**: 17-19px / 1.35, 620 weight
- **Label**: 11px uppercase / 1.2 with 0.08em letter spacing
- **Measure**: 62-76 characters
- **Metadata**: 12px / 1.35 with 0.01em letter spacing
- **ReaderBody**: 17px / 1.76

## Rules

### Accessibility

All body and control text must meet WCAG AA minimum; body reading contrast should be substantially higher. Do not encode status by color alone: pair indigo/persimmon/sumi signals with labels, position, or rule style.

### Composition

Compose screens as layered documents, not dashboards. A central reading surface anchors the page; context cards tuck beside or beneath it; a slim navigation map shows neighboring threads, sources, and status. Use translucent cards and barely tinted bands to reveal relationship depth without visual noise.

### Density

Place counts and metrics inline with the text they qualify: “12 sources”, “3 unresolved notes”, “last edited 8m ago”. Use tiny chips, pins, and marginal marks rather than separate metric cards.

### Hierarchy

Hierarchy comes from measure, weight, line-height, inset rules, and proximity. Color supports state and continuity only. Titles are calm and editorial; metadata is compact but legible; summaries sit in soft bands before dense source detail.

### Interaction States

Hover clarifies layering with a slight surface lift, stronger border, and revealed metadata. Active selection adds an indigo left rule and soft indigo wash. Focus uses a visible indigo outline with warm offset. Disabled states reduce opacity but keep text readable. Loading uses skeleton lines matching text measure, not spinners unless action is blocking.

### Signature Patterns

- Context-map rail: a left-side outline of threads with indigo active rule, small neutral count chips, and fine connector lines that resemble woven paths rather than a menu tree.
- Stacked source cards: translucent overlapping cards with 2px offsets, hairline borders, and compact source metadata; hover raises only the active sheet.
- Washi context bands: pale warm or indigo-tinted horizontal bands behind summaries, caveats, or quoted context, with soft top/bottom rules instead of filled callouts.
- Katagami edge rhythm: use tiny repeated notches, perforation-like separators, or modular apertures along panel edges only as structural separators, never as pictorial pattern.
- Marginal signal pins: 6-8px dots, short rules, or small square pins in indigo/persimmon/sumi that mark annotations, warnings, or open decisions without icons.

## Layout

### Breakpoints

Mobile <= 720px collapses context map into an indigo-thread outline sheet and moves annotations inline after their referenced paragraph; tablet uses two panes with a collapsible right rail; desktop allows three quiet layers.

### Density

Medium-high density allowed in metadata, summaries, and relation lists, but primary prose keeps 1.65+ line-height and paragraph spacing of 14-22px. Dense clusters must be bordered by negative space.

### Grid

Desktop uses a reading-room shell: 240-280px left context map, central reading column with 720-860px measure, and 300-380px right annotation/context pane. Use 12 columns only as scaffolding; visible structure should feel like nested documents and margins.

### Responsive

Preserve reading order first: document title, summary, body, contextual annotations, thread map. Never let side panels precede the current reading task on small screens.

### Whitespace

Use ma-like pauses: broad page gutters, quiet bands between contexts, and 32-72px section separations. Inside chips and metadata rows use 4-12px precision.

## Guidance

### Do

- Start every view with a readable document surface and only then add contextual rails, summaries, and inline metrics.
- Use indigo consistently for action, selection, links, focus, and navigational continuity.
- Make Japanese references structural: layered paper, restrained negative space, woven rhythm, precise edges, and quiet craft.
- Keep metadata compact but meaningful: source, confidence, count, owner, freshness, and state should sit near the relevant text.
- Prefer fine rules, pins, small chips, and marginal annotations over icon-heavy controls.
- Use progressive disclosure: summaries first, source stacks second, raw detail third.

### Don't

- Do not use literal Japanese motifs, faux calligraphy, brush fonts, decorative waves, fans, sakura, cranes, or tourist imagery.
- Do not turn the workspace into a KPI dashboard with large number tiles or colorful chart grids.
- Do not let translucency, blur, or texture reduce text contrast.
- Do not introduce many accent colors; if a new color is needed, make it semantic and rare.
- Do not over-round surfaces into generic SaaS cards; edges should feel paper-precise and lightly softened.

### Accessibility

Use high-contrast sumi text, 16px+ body size, comfortable line-height, keyboard-visible focus, non-color status cues, and responsive annotation placement that keeps references adjacent to the relevant text.

### Usage Context

Best for research workspaces, AI context assembly, knowledge bases, editorial tools, source review, document collaboration, and any product where users read, compare, annotate, and weave many pieces of context.
DESIGN.md
---
version: "alpha"
name: "Layered Context Reading Room"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
typography:
  headline-lg:
    fontFamily: "Inter"
    fontSize: "1.953rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Inter"
    fontSize: "1.563rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Inter"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Inter"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
---

# Layered Context Reading Room

## Overview

Layered Context Reading Room is a calm, text-first workspace language for AYA: high-contrast sumi prose on washi-warm neutral surfaces, translucent stacked context cards, indigo interaction threads, and tiny persimmon/sumi signals that let dense information feel woven rather than dashboarded.

### Values

- Make text the primary surface: body copy, annotations, summaries, and marginal context carry the interface before charts or decoration.
- Abstract Japanese craft through spacing, layering, rhythm, edge quality, restraint, and material tactility rather than literal motifs.
- Treat navigation as a context map that helps readers understand where a thread sits in the whole workspace.
- Keep analytics document-adjacent: inline counts, compact chips, quiet annotations, and small contextual panels instead of KPI canvases.
- Use color as a sparse thread through dense context: one indigo family for action/focus/selection, rare persimmon for emphasis, and sumi for semantic seriousness.
- Preserve calm under density by alternating precise information clusters with generous negative space and soft neutral bands.

### Anti-Values

- No literal waves, fans, sakura, cranes, torii, faux-brush typography, tourist patterns, or generalized Japanese ornament.
- No large KPI dashboards, candy-colored chart walls, trading terminals, or generic enterprise admin chrome.
- No low-contrast gray prose, tiny unreadable metadata, or decoration that competes with reading.
- No saturated palette spreads; accent color appears as rules, pins, focus rings, links, and rare chips.
- No glassmorphism spectacle; translucency should imply paper layering and context depth, not futuristic gloss.

### Visual Character

- Near-white washi and warm stone surfaces with very subtle fiber/noise texture, soft context bands, and hairline borders.
- Stacked translucent cards offset by 2-6px and separated by fine shadows/rules to show relationship depth without heaviness.
- High-contrast sumi body text, compact metadata, measured line length, generous line-height, and hierarchy by weight/spacing rather than color.
- Indigo appears as active rails, selected map pins, link underlines, focus rings, and thin connective rules; persimmon is reserved for a single urgent note or human correction.
- Katagami inspiration becomes perforated edge rhythm, modular apertures, repeated micro-notches, and woven panel cadence, never recognizable stencil imagery.

## Typography

- **Headline-Lg**: Inter, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Inter, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 16px, weight 400, line-height 1.5.
- **Label-Md**: Inter, 0.75rem, weight 600, line-height 1.

## Layout

### Breakpoints

Mobile <= 720px collapses context map into an indigo-thread outline sheet and moves annotations inline after their referenced paragraph; tablet uses two panes with a collapsible right rail; desktop allows three quiet layers.

### Density

Medium-high density allowed in metadata, summaries, and relation lists, but primary prose keeps 1.65+ line-height and paragraph spacing of 14-22px. Dense clusters must be bordered by negative space.

### Grid

Desktop uses a reading-room shell: 240-280px left context map, central reading column with 720-860px measure, and 300-380px right annotation/context pane. Use 12 columns only as scaffolding; visible structure should feel like nested documents and margins.

### Responsive

Preserve reading order first: document title, summary, body, contextual annotations, thread map. Never let side panels precede the current reading task on small screens.

### Whitespace

Use ma-like pauses: broad page gutters, quiet bands between contexts, and 32-72px section separations. Inside chips and metadata rows use 4-12px precision.

## Components

### Accessibility

All body and control text must meet WCAG AA minimum; body reading contrast should be substantially higher. Do not encode status by color alone: pair indigo/persimmon/sumi signals with labels, position, or rule style.

### Composition

Compose screens as layered documents, not dashboards. A central reading surface anchors the page; context cards tuck beside or beneath it; a slim navigation map shows neighboring threads, sources, and status. Use translucent cards and barely tinted bands to reveal relationship depth without visual noise.

### Density

Place counts and metrics inline with the text they qualify: “12 sources”, “3 unresolved notes”, “last edited 8m ago”. Use tiny chips, pins, and marginal marks rather than separate metric cards.

### Hierarchy

Hierarchy comes from measure, weight, line-height, inset rules, and proximity. Color supports state and continuity only. Titles are calm and editorial; metadata is compact but legible; summaries sit in soft bands before dense source detail.

### Interaction States

Hover clarifies layering with a slight surface lift, stronger border, and revealed metadata. Active selection adds an indigo left rule and soft indigo wash. Focus uses a visible indigo outline with warm offset. Disabled states reduce opacity but keep text readable. Loading uses skeleton lines matching text measure, not spinners unless action is blocking.

### Signature Patterns

- Context-map rail: a left-side outline of threads with indigo active rule, small neutral count chips, and fine connector lines that resemble woven paths rather than a menu tree.
- Stacked source cards: translucent overlapping cards with 2px offsets, hairline borders, and compact source metadata; hover raises only the active sheet.
- Washi context bands: pale warm or indigo-tinted horizontal bands behind summaries, caveats, or quoted context, with soft top/bottom rules instead of filled callouts.
- Katagami edge rhythm: use tiny repeated notches, perforation-like separators, or modular apertures along panel edges only as structural separators, never as pictorial pattern.
- Marginal signal pins: 6-8px dots, short rules, or small square pins in indigo/persimmon/sumi that mark annotations, warnings, or open decisions without icons.

## 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-019edd5b-df09-73e2-a525-b574117747b8/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 Start every view with a readable document surface and only then add contextual rails, summaries, and inline metrics.
- Do Use indigo consistently for action, selection, links, focus, and navigational continuity.
- Do Make Japanese references structural: layered paper, restrained negative space, woven rhythm, precise edges, and quiet craft.
- Do Keep metadata compact but meaningful: source, confidence, count, owner, freshness, and state should sit near the relevant text.
- Do Prefer fine rules, pins, small chips, and marginal annotations over icon-heavy controls.
- Do Use progressive disclosure: summaries first, source stacks second, raw detail third.
- Don't Do not use literal Japanese motifs, faux calligraphy, brush fonts, decorative waves, fans, sakura, cranes, or tourist imagery.
- Don't Do not turn the workspace into a KPI dashboard with large number tiles or colorful chart grids.
- Don't Do not let translucency, blur, or texture reduce text contrast.
- Don't Do not introduce many accent colors; if a new color is needed, make it semantic and rare.
- Don't Do not over-round surfaces into generic SaaS cards; edges should feel paper-precise and lightly softened.

### Accessibility

Use high-contrast sumi text, 16px+ body size, comfortable line-height, keyboard-visible focus, non-color status cues, and responsive annotation placement that keeps references adjacent to the relevant text.

### Usage Context

Best for research workspaces, AI context assembly, knowledge bases, editorial tools, source review, document collaboration, and any product where users read, compare, annotate, and weave many pieces of context.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "layered-context-reading-room",
  "type": "registry:theme",
  "title": "Layered Context Reading Room shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#ffffff",
      "foreground": "#111111",
      "card": "#ffffff",
      "card-foreground": "#111111",
      "popover": "#ffffff",
      "popover-foreground": "#111111",
      "primary": "#111111",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#f4f4f5",
      "muted-foreground": "#111111",
      "accent": "#111111",
      "accent-foreground": "#ffffff",
      "destructive": "#dc2626",
      "border": "#e4e4e7",
      "input": "#e4e4e7",
      "ring": "#111111",
      "chart-1": "#111111",
      "chart-2": "#f4f4f5",
      "chart-3": "#111111",
      "chart-4": "#16a34a",
      "chart-5": "#d97706",
      "sidebar": "#ffffff",
      "sidebar-foreground": "#111111",
      "sidebar-primary": "#111111",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#111111",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#e4e4e7",
      "sidebar-ring": "#111111",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#111111",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#111111",
      "accent-foreground": "#ffffff",
      "destructive": "#dc2626",
      "border": "#303642",
      "input": "#303642",
      "ring": "#111111",
      "chart-1": "#111111",
      "chart-2": "#f4f4f5",
      "chart-3": "#111111",
      "chart-4": "#16a34a",
      "chart-5": "#d97706",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#111111",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#111111",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#111111",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019edd5b-df09-73e2-a525-b574117747b8",
    "slug": "layered-context-reading-room",
    "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": {
      "accessibility": [
        "bodyContrast",
        "focus",
        "targets"
      ],
      "color": [
        "bandIndigoMist",
        "bandWashiWarm",
        "border",
        "borderStrong",
        "canvas",
        "danger",
        "focus",
        "indigo",
        "indigoHover",
        "indigoSoft",
        "persimmon",
        "persimmonSoft",
        "success",
        "sumiSemantic",
        "surface",
        "surfaceContext",
        "surfaceRaised",
        "text",
        "textMuted",
        "textSubtle",
        "warning"
      ],
      "motion": [
        "base",
        "fast",
        "slow"
      ],
      "radius": [
        "card",
        "chip",
        "panel",
        "paper"
      ],
      "shadow": [
        "hairline",
        "lift",
        "stack"
      ],
      "space": [
        "2xl",
        "3xl",
        "4xl",
        "lg",
        "md",
        "readerGutter",
        "sm",
        "xl",
        "xs"
      ],
      "typography": [
        "body",
        "fontMono",
        "fontSans",
        "fontSerifOptional",
        "h1",
        "h2",
        "h3",
        "label",
        "measure",
        "metadata",
        "readerBody"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · layered-context-reading-room
DESIGN.md

at a glance

Typography

headline-lgInter · 31px · 700

The quick brown fox jumps

headline-mdInter · 25px · 600

The quick brown fox jumps

body-mdInter · 16px · 400

The quick brown fox jumps

label-mdInter · 12px · 600

The quick brown fox jumps

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: #ffffff;
  --foreground: #111111;
  --card: #ffffff;
  --card-foreground: #111111;
  --popover: #ffffff;
  --popover-foreground: #111111;
  --primary: #111111;
  --primary-foreground: #ffffff;
  --secondary: #f4f4f5;
  --secondary-foreground: #111111;
  --muted: #f4f4f5;
  --muted-foreground: #111111;
  --accent: #111111;
  --accent-foreground: #ffffff;
  --destructive: #dc2626;
  --border: #e4e4e7;
  --input: #e4e4e7;
  --ring: #111111;
  --chart-1: #111111;
  --chart-2: #f4f4f5;
  --chart-3: #111111;
  --chart-4: #16a34a;
  --chart-5: #d97706;
  --sidebar: #ffffff;
  --sidebar-foreground: #111111;
  --sidebar-primary: #111111;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #111111;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #e4e4e7;
  --sidebar-ring: #111111;
  --radius: 0.625rem;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #111111;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #111111;
  --accent-foreground: #ffffff;
  --destructive: #dc2626;
  --border: #303642;
  --input: #303642;
  --ring: #111111;
  --chart-1: #111111;
  --chart-2: #f4f4f5;
  --chart-3: #111111;
  --chart-4: #16a34a;
  --chart-5: #d97706;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #111111;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #111111;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #111111;
  --radius: 0.625rem;
}
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 LayeredContextReadingRoomShadcnKit() {
  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">Layered Context Reading Room</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": "layered-context-reading-room",
  "type": "registry:theme",
  "title": "Layered Context Reading Room shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#ffffff",
      "foreground": "#111111",
      "card": "#ffffff",
      "card-foreground": "#111111",
      "popover": "#ffffff",
      "popover-foreground": "#111111",
      "primary": "#111111",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#f4f4f5",
      "muted-foreground": "#111111",
      "accent": "#111111",
      "accent-foreground": "#ffffff",
      "destructive": "#dc2626",
      "border": "#e4e4e7",
      "input": "#e4e4e7",
      "ring": "#111111",
      "chart-1": "#111111",
      "chart-2": "#f4f4f5",
      "chart-3": "#111111",
      "chart-4": "#16a34a",
      "chart-5": "#d97706",
      "sidebar": "#ffffff",
      "sidebar-foreground": "#111111",
      "sidebar-primary": "#111111",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#111111",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#e4e4e7",
      "sidebar-ring": "#111111",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#111111",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#111111",
      "accent-foreground": "#ffffff",
      "destructive": "#dc2626",
      "border": "#303642",
      "input": "#303642",
      "ring": "#111111",
      "chart-1": "#111111",
      "chart-2": "#f4f4f5",
      "chart-3": "#111111",
      "chart-4": "#16a34a",
      "chart-5": "#d97706",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#111111",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#111111",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#111111",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019edd5b-df09-73e2-a525-b574117747b8",
    "slug": "layered-context-reading-room",
    "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": {
      "accessibility": [
        "bodyContrast",
        "focus",
        "targets"
      ],
      "color": [
        "bandIndigoMist",
        "bandWashiWarm",
        "border",
        "borderStrong",
        "canvas",
        "danger",
        "focus",
        "indigo",
        "indigoHover",
        "indigoSoft",
        "persimmon",
        "persimmonSoft",
        "success",
        "sumiSemantic",
        "surface",
        "surfaceContext",
        "surfaceRaised",
        "text",
        "textMuted",
        "textSubtle",
        "warning"
      ],
      "motion": [
        "base",
        "fast",
        "slow"
      ],
      "radius": [
        "card",
        "chip",
        "panel",
        "paper"
      ],
      "shadow": [
        "hairline",
        "lift",
        "stack"
      ],
      "space": [
        "2xl",
        "3xl",
        "4xl",
        "lg",
        "md",
        "readerGutter",
        "sm",
        "xl",
        "xs"
      ],
      "typography": [
        "body",
        "fontMono",
        "fontSans",
        "fontSerifOptional",
        "h1",
        "h2",
        "h3",
        "label",
        "measure",
        "metadata",
        "readerBody"
      ]
    }
  }
}
component recipescompatibility fallback
# Layered Context Reading Room shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019edd5b-df09-73e2-a525-b574117747b8`
Slug: `layered-context-reading-room`

## Intent

Layered Context Reading Room is a calm, text-first workspace language for AYA: high-contrast sumi prose on washi-warm neutral surfaces, translucent stacked context cards, indigo interaction threads, and tiny persimmon/sumi signals that let dense information feel woven rather than dashboarded.

## 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:

Defined by the Katagami source fields.

Typography:

{
  "body": "16px / 1.68",
  "fontMono": "IBM Plex Mono, ui-monospace, SFMono-Regular, Menlo, monospace",
  "fontSans": "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif",
  "fontSerifOptional": "Source Serif 4, ui-serif, Georgia, serif",
  "h1": "32-40px / 1.12, 650 weight",
  "h2": "22-26px / 1.24, 620 weight",
  "h3": "17-19px / 1.35, 620 weight",
  "label": "11px uppercase / 1.2 with 0.08em letter spacing",
  "measure": "62-76 characters",
  "metadata": "12px / 1.35 with 0.01em letter spacing",
  "readerBody": "17px / 1.76"
}

## Visual character to preserve

- Near-white washi and warm stone surfaces with very subtle fiber/noise texture, soft context bands, and hairline borders.
- Stacked translucent cards offset by 2-6px and separated by fine shadows/rules to show relationship depth without heaviness.
- High-contrast sumi body text, compact metadata, measured line length, generous line-height, and hierarchy by weight/spacing rather than color.
- Indigo appears as active rails, selected map pins, link underlines, focus rings, and thin connective rules; persimmon is reserved for a single urgent note or human correction.
- Katagami inspiration becomes perforated edge rhythm, modular apertures, repeated micro-notches, and woven panel cadence, never recognizable stencil imagery.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "default",
  "border": "solid",
  "underlay": true,
  "grain": true,
  "stickerBadges": false,
  "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/layered-context-reading-room/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: Start every view with a readable document surface and only then add contextual rails, summaries, and inline metrics.; Use indigo consistently for action, selection, links, focus, and navigational continuity.; Make Japanese references structural: layered paper, restrained negative space, woven rhythm, precise edges, and quiet craft.; Keep metadata compact but meaningful: source, confidence, count, owner, freshness, and state should sit near the relevant text.; Prefer fine rules, pins, small chips, and marginal annotations over icon-heavy controls.; Use progressive disclosure: summaries first, source stacks second, raw detail third.
- Do not: Do not use literal Japanese motifs, faux calligraphy, brush fonts, decorative waves, fans, sakura, cranes, or tourist imagery.; Do not turn the workspace into a KPI dashboard with large number tiles or colorful chart grids.; Do not let translucency, blur, or texture reduce text contrast.; Do not introduce many accent colors; if a new color is needed, make it semantic and rare.; Do not over-round surfaces into generic SaaS cards; edges should feel paper-precise and lightly softened.

## 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 LayeredContextReadingRoomShadcnKit() {
  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">Layered Context Reading Room</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 <= 720px collapses context map into an indigo-thread outline sheet and moves annotations inline after their referenced paragraph; tablet uses two panes with a collapsible right rail; desktop allows three quiet layers.",
  "density": "Medium-high density allowed in metadata, summaries, and relation lists, but primary prose keeps 1.65+ line-height and paragraph spacing of 14-22px. Dense clusters must be bordered by negative space.",
  "grid": "Desktop uses a reading-room shell: 240-280px left context map, central reading column with 720-860px measure, and 300-380px right annotation/context pane. Use 12 columns only as scaffolding; visible structure should feel like nested documents and margins.",
  "responsive": "Preserve reading order first: document title, summary, body, contextual annotations, thread map. Never let side panels precede the current reading task on small screens.",
  "whitespace": "Use ma-like pauses: broad page gutters, quiet bands between contexts, and 32-72px section separations. Inside chips and metadata rows use 4-12px precision."
}
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": "en-019edd5b-df09-73e2-a525-b574117747b8",
    "name": "Layered Context Reading Room",
    "slug": "layered-context-reading-room"
  },
  "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": [
    "Near-white washi and warm stone surfaces with very subtle fiber/noise texture, soft context bands, and hairline borders.",
    "Stacked translucent cards offset by 2-6px and separated by fine shadows/rules to show relationship depth without heaviness.",
    "High-contrast sumi body text, compact metadata, measured line length, generous line-height, and hierarchy by weight/spacing rather than color.",
    "Indigo appears as active rails, selected map pins, link underlines, focus rings, and thin connective rules; persimmon is reserved for a single urgent note or human correction.",
    "Katagami inspiration becomes perforated edge rhythm, modular apertures, repeated micro-notches, and woven panel cadence, never recognizable stencil imagery."
  ],
  "visualProfile": {
    "family": "paper-collage",
    "material": "paper",
    "contour": "default",
    "border": "solid",
    "underlay": true,
    "grain": true,
    "stickerBadges": false,
    "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": "Layered Context Reading Room 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": [
      "Start every view with a readable document surface and only then add contextual rails, summaries, and inline metrics.",
      "Use indigo consistently for action, selection, links, focus, and navigational continuity.",
      "Make Japanese references structural: layered paper, restrained negative space, woven rhythm, precise edges, and quiet craft.",
      "Keep metadata compact but meaningful: source, confidence, count, owner, freshness, and state should sit near the relevant text.",
      "Prefer fine rules, pins, small chips, and marginal annotations over icon-heavy controls.",
      "Use progressive disclosure: summaries first, source stacks second, raw detail third."
    ],
    "dont": [
      "Do not use literal Japanese motifs, faux calligraphy, brush fonts, decorative waves, fans, sakura, cranes, or tourist imagery.",
      "Do not turn the workspace into a KPI dashboard with large number tiles or colorful chart grids.",
      "Do not let translucency, blur, or texture reduce text contrast.",
      "Do not introduce many accent colors; if a new color is needed, make it semantic and rare.",
      "Do not over-round surfaces into generic SaaS cards; edges should feel paper-precise and lightly softened."
    ]
  }
}
related

More like this