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
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Portable DESIGN.md source of truth for most agents and apps.
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.
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.
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 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.
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.
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.
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.
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.
Preserve reading order first: document title, summary, body, contextual annotations, thread map. Never let side panels precede the current reading task on small screens.
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.
# 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.
---
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-019edd5a-b328-74b1-a514-d2aaffd08017/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.
```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-019edd5a-b328-74b1-a514-d2aaffd08017",
"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"
]
}
}
}
```The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
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.
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table: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;
}
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>
);
}
{
"$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-019edd5a-b328-74b1-a514-d2aaffd08017",
"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"
]
}
}
}
# Layered Context Reading Room shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019edd5a-b328-74b1-a514-d2aaffd08017`
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."
}
{
"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-019edd5a-b328-74b1-a514-d2aaffd08017",
"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."
]
}
}