back to gallerydo avoid
design language·washi-quiet-text-workspace
Washi-Quiet Text Workspace
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
the spec
specification
philosophy
summary
A near-white, text-first workspace language for dense editorial and operational tools. It translates Japanese craft cues into product structure: washi-like matte surfaces, katagami-inspired repetition, sumi ink hierarchy, indigo as the single thread of action, and persimmon reserved for rare interruption. The system is calm but not empty; it uses measured whitespace, hairline borders, compact annotations, and document-adjacent context panels to weave many signals around reading and decision-making without turning the product into a KPI dashboard or a decorative Japanese pastiche.
values
text as the primary surface, with generous line-height and exact measure for long-session readingnon-literal cultural abstraction through rhythm, layering, edge quality, restraint, and negative spacequiet context weaving: inline metrics, marginal notes, chips, and summaries stay near the document they explainneutral-first hierarchy using warm washi surfaces, sumi text contrast, and hairline borders before colorone restrained indigo family for action, focus, active location, references, and connective threadsrare persimmon only for attention, risk, and unresolved exceptions, never as decorationaccessibility and operational durability over fragile minimalism or low-contrast fashion
anti-values
×literal waves, fans, sakura, cranes, faux brush fonts, red sun badges, or tourist-Japan ornament×large saturated dashboard canvases, rainbow category systems, or KPI tiles that overpower reading×paper textures so visible they reduce legibility or feel skeuomorphic×pale gray body text that looks quiet but fails contrast×gratuitous shadows, glassmorphism, or floating layers that weaken document focus×assigning a color to every feature or status when text and placement can carry meaning
tokens
borders4 items
- accent width
- 2px
- character
- Neutral hairlines with slightly irregular-feeling warmth; indigo rails and focus outlines act like stitched thread through dense context.
- default width
- 1px
- style
- solid
colors14 items
accent
#C65F32
background
#F7F3EA
border
#D8D0C2
error
#9F3A2F
info
#274B73
muted
#6F675D
primary
#274B73
primary_soft
#E7EEF6
success
#4F6F53
surface
#FFFDF7
surface_inset
#F1ECE1
surface_warm
#FAF7EF
text
#1E1B17
warning
#A86C19
motion3 items
- duration
- 140ms
- easing
- cubic-bezier(0.2,0,0,1)
- philosophy
- Motion is editorial and confirmatory: panels settle, focus rings draw in, and annotations reveal without bounce.
radii5 items
- full
- 9999px
- lg
- 14px
- md
- 8px
- none
- 0
- sm
- 3px
shadows3 items
- lg
- 0 20px 48px rgba(30,27,23,0.10)
- md
- 0 8px 24px rgba(30,27,23,0.07)
- sm
- 0 1px 2px rgba(30,27,23,0.04)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 40, 48, 64, 80, 96
surfaces3 items
- bg pattern
- Optional barely-visible 16px fiber-line wash in the shell only, below 2% opacity; never behind body text.
- card style
- Low-radius paper panels with 1px warm-neutral borders, minimal elevation, and crisp internal dividers.
- treatment
- Near-white washi canvas with warm off-white reading panels and quiet inset context slips.
typography8 items
- base size
- 16px
- body font
- Inter
- google fonts url
- https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
- heading font
- Source Serif 4
- letter spacing
- -0.01em
- line height
- 1.62
- mono font
- IBM Plex Mono
- scale ratio
- 1.18
rules
composition
Use a reading-dominant workspace: compact context-map navigation, central document or thread, and narrow annotation/summary rail. Keep analytics attached to paragraphs, records, and decisions as inline counts, chips, reference markers, and summary slips. Avoid full dashboard canvases unless the view is explicitly analysis-first.
composition count
5
density
Medium-high textual density with generous line rhythm. Lists and context maps are compact; reading areas keep 24-32px internal padding and clear paragraph intervals. Use marginal signals instead of large widgets when summarizing dense context.
hierarchy
Start with text contrast, measure, and spacing. Body copy should sit around 68-78 characters, line-height around 1.6, and metadata should be compact but readable. Sumi text and warm neutrals do the daily work; indigo identifies action, selection, focus, links, and the current path.
signature patterns
Context map navigation: a slim left rail of sections, sources, and unresolved markers using indigo ticks and tiny counts.Washi reading panel: warm white document surface with hairline dividers, 72ch measure, and soft annotation gutter.Threaded references: indigo underlines, footnote chips, and connector rails bind citations, summaries, and source snippets.Summary slips: small attached panels for counts, status, or AI notes, styled like paper inserts rather than KPI cards.Persimmon exception marks: tiny dots, left-edge bars, or badge text for rare blocked/risk/needs-review states only.
layout
breakpoints
Mobile <= 640px collapses navigation to a top context strip and moves annotations below the document; tablet uses two columns; desktop keeps full context-document-rail structure.
density
Document-first density: compact chrome and metadata, spacious line rhythm, narrow context panels, and no ornamental empty hero areas.
grid
Desktop uses a three-zone shell: 224px context map, flexible 720-880px reading workspace, and 280-340px annotation rail, all on an 8px spacing grid with 24px gutters.
responsive
Maintain reading order first. Side notes become expandable inline blocks, chips wrap under headings, and primary actions remain near the text selection or decision point.
whitespace
Whitespace is ma: intentional pause around dense text. Use 32px page padding on desktop, 24px between major zones, 16px between related text groups, and 8px for metadata clusters.
guidance
- Treat text, annotations, and references as the main visual material.
- Use indigo consistently for primary action, active location, links, keyboard focus, and connective reference thread.
- Keep panels warm off-white with hairline borders and restrained low-radius corners.
- Use inline counts and summary slips for dashboard-like data rather than large KPI canvases.
- Translate katagami into rhythm, alignment, repetition, and small perforation-like separators, not motifs.
- Style every form control and focus state explicitly with accessible contrast.
- Use persimmon only for rare attention states such as blocked, risk, escalation, or unresolved ambiguity.
- Do not use literal Japanese icons, waves, sakura, cranes, fans, torii, faux brush typography, or travel-poster palettes.
- Do not decorate backgrounds with visible paper texture behind long-form text.
- Do not create rainbow statuses or assign arbitrary colors to sources.
- Do not make dashboards the default surface for contextual information.
- Do not use low-contrast beige-on-beige body copy.
- Do not rely on shadow to separate every layer; use borders, spacing, and inset surfaces first.
- Do not turn calmness into emptiness; dense context should remain available and well organized.
katagami spec
# Washi-Quiet Text Workspace ## Philosophy A near-white, text-first workspace language for dense editorial and operational tools. It translates Japanese craft cues into product structure: washi-like matte surfaces, katagami-inspired repetition, sumi ink hierarchy, indigo as the single thread of action, and persimmon reserved for rare interruption. The system is calm but not empty; it uses measured whitespace, hairline borders, compact annotations, and document-adjacent context panels to weave many signals around reading and decision-making without turning the product into a KPI dashboard or a decorative Japanese pastiche. ### Values - text as the primary surface, with generous line-height and exact measure for long-session reading - non-literal cultural abstraction through rhythm, layering, edge quality, restraint, and negative space - quiet context weaving: inline metrics, marginal notes, chips, and summaries stay near the document they explain - neutral-first hierarchy using warm washi surfaces, sumi text contrast, and hairline borders before color - one restrained indigo family for action, focus, active location, references, and connective threads - rare persimmon only for attention, risk, and unresolved exceptions, never as decoration - accessibility and operational durability over fragile minimalism or low-contrast fashion ### Anti-Values - literal waves, fans, sakura, cranes, faux brush fonts, red sun badges, or tourist-Japan ornament - large saturated dashboard canvases, rainbow category systems, or KPI tiles that overpower reading - paper textures so visible they reduce legibility or feel skeuomorphic - pale gray body text that looks quiet but fails contrast - gratuitous shadows, glassmorphism, or floating layers that weaken document focus - assigning a color to every feature or status when text and placement can carry meaning ### Visual Character - Warm off-white canvas and soft white panels separated by 1px neutral hairlines, not heavy cards. - Sumi ink text hierarchy: decisive dark body, muted metadata, compact mono-like IDs, and readable editorial rhythm. - Indigo appears as rails, underlines, focus rings, reference markers, and primary buttons rather than as broad fills. - Katagami abstraction appears as repeated spacing intervals, tiny perforation-like dividers, and aligned marginal markers, never as stencil motifs. - Context lives in narrow side notes, inline counts, small chips, annotation gutters, and summary slips attached to the reading plane. ## Tokens ### Borders - **Accent Width**: 2px - **Character**: Neutral hairlines with slightly irregular-feeling warmth; indigo rails and focus outlines act like stitched thread through dense context. - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#C65F32` | | background | `#F7F3EA` | | border | `#D8D0C2` | | error | `#9F3A2F` | | info | `#274B73` | | muted | `#6F675D` | | primary | `#274B73` | | primary_soft | `#E7EEF6` | | success | `#4F6F53` | | surface | `#FFFDF7` | | surface_inset | `#F1ECE1` | | surface_warm | `#FAF7EF` | | text | `#1E1B17` | | warning | `#A86C19` | ### Motion - **Duration**: 140ms - **Easing**: cubic-bezier(0.2,0,0,1) - **Philosophy**: Motion is editorial and confirmatory: panels settle, focus rings draw in, and annotations reveal without bounce. ### Radii - **Full**: 9999px - **Lg**: 14px - **Md**: 8px - **None**: 0 - **Sm**: 3px ### Shadows - **Lg**: 0 20px 48px rgba(30,27,23,0.10) - **Md**: 0 8px 24px rgba(30,27,23,0.07) - **Sm**: 0 1px 2px rgba(30,27,23,0.04) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,40,48,64,80,96] ### Surfaces - **Bg Pattern**: Optional barely-visible 16px fiber-line wash in the shell only, below 2% opacity; never behind body text. - **Card Style**: Low-radius paper panels with 1px warm-neutral borders, minimal elevation, and crisp internal dividers. - **Treatment**: Near-white washi canvas with warm off-white reading panels and quiet inset context slips. ### Typography - **Base Size**: 16px - **Body Font**: Inter - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap - **Heading Font**: Source Serif 4 - **Letter Spacing**: -0.01em - **Line Height**: 1.62 - **Mono Font**: IBM Plex Mono - **Scale Ratio**: 1.18 ## Rules ### Composition Use a reading-dominant workspace: compact context-map navigation, central document or thread, and narrow annotation/summary rail. Keep analytics attached to paragraphs, records, and decisions as inline counts, chips, reference markers, and summary slips. Avoid full dashboard canvases unless the view is explicitly analysis-first. ### Composition Count 5 ### Density Medium-high textual density with generous line rhythm. Lists and context maps are compact; reading areas keep 24-32px internal padding and clear paragraph intervals. Use marginal signals instead of large widgets when summarizing dense context. ### Hierarchy Start with text contrast, measure, and spacing. Body copy should sit around 68-78 characters, line-height around 1.6, and metadata should be compact but readable. Sumi text and warm neutrals do the daily work; indigo identifies action, selection, focus, links, and the current path. ### Signature Patterns - Context map navigation: a slim left rail of sections, sources, and unresolved markers using indigo ticks and tiny counts. - Washi reading panel: warm white document surface with hairline dividers, 72ch measure, and soft annotation gutter. - Threaded references: indigo underlines, footnote chips, and connector rails bind citations, summaries, and source snippets. - Summary slips: small attached panels for counts, status, or AI notes, styled like paper inserts rather than KPI cards. - Persimmon exception marks: tiny dots, left-edge bars, or badge text for rare blocked/risk/needs-review states only. ## Layout ### Breakpoints Mobile <= 640px collapses navigation to a top context strip and moves annotations below the document; tablet uses two columns; desktop keeps full context-document-rail structure. ### Density Document-first density: compact chrome and metadata, spacious line rhythm, narrow context panels, and no ornamental empty hero areas. ### Grid Desktop uses a three-zone shell: 224px context map, flexible 720-880px reading workspace, and 280-340px annotation rail, all on an 8px spacing grid with 24px gutters. ### Responsive Maintain reading order first. Side notes become expandable inline blocks, chips wrap under headings, and primary actions remain near the text selection or decision point. ### Whitespace Whitespace is ma: intentional pause around dense text. Use 32px page padding on desktop, 24px between major zones, 16px between related text groups, and 8px for metadata clusters. ## Guidance ### Do - Treat text, annotations, and references as the main visual material. - Use indigo consistently for primary action, active location, links, keyboard focus, and connective reference thread. - Keep panels warm off-white with hairline borders and restrained low-radius corners. - Use inline counts and summary slips for dashboard-like data rather than large KPI canvases. - Translate katagami into rhythm, alignment, repetition, and small perforation-like separators, not motifs. - Style every form control and focus state explicitly with accessible contrast. - Use persimmon only for rare attention states such as blocked, risk, escalation, or unresolved ambiguity. ### Don't - Do not use literal Japanese icons, waves, sakura, cranes, fans, torii, faux brush typography, or travel-poster palettes. - Do not decorate backgrounds with visible paper texture behind long-form text. - Do not create rainbow statuses or assign arbitrary colors to sources. - Do not make dashboards the default surface for contextual information. - Do not use low-contrast beige-on-beige body copy. - Do not rely on shadow to separate every layer; use borders, spacing, and inset surfaces first. - Do not turn calmness into emptiness; dense context should remain available and well organized. ### Accessibility Text, controls, chips, and focus states must meet WCAG AA. Do not use muted warm grays below contrast thresholds. Pair color with text labels, rails, icons, or placement; persimmon never carries critical meaning alone. ### Usage Context Best for AI workspaces, research tools, editorial operating systems, knowledge bases, policy review, legal/research annotation, and any dense product where many sources must stay calm and traceable.
DESIGN.md
---
version: "alpha"
name: "Washi-Quiet Text Workspace"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#C65F32"
background: "#F7F3EA"
border: "#D8D0C2"
error: "#9F3A2F"
info: "#274B73"
muted: "#6F675D"
primary: "#274B73"
primary_soft: "#E7EEF6"
success: "#4F6F53"
surface: "#FFFDF7"
surface_inset: "#F1ECE1"
surface_warm: "#FAF7EF"
text: "#1E1B17"
warning: "#A86C19"
typography:
headline-lg:
fontFamily: "Source Serif 4"
fontSize: "1.643rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.01em"
headline-md:
fontFamily: "Source Serif 4"
fontSize: "1.392rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.01em"
body-md:
fontFamily: "Inter"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.62
letterSpacing: "-0.01em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "14px"
md: "8px"
none: "0px"
sm: "3px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "40px"
4xl: "48px"
step-8: "64px"
step-9: "80px"
step-10: "96px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-primary_soft:
backgroundColor: "{colors.primary_soft}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface_inset:
backgroundColor: "{colors.surface_inset}"
color-reference-surface_warm:
backgroundColor: "{colors.surface_warm}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#ffffff"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Washi-Quiet Text Workspace
## Overview
A near-white, text-first workspace language for dense editorial and operational tools. It translates Japanese craft cues into product structure: washi-like matte surfaces, katagami-inspired repetition, sumi ink hierarchy, indigo as the single thread of action, and persimmon reserved for rare interruption. The system is calm but not empty; it uses measured whitespace, hairline borders, compact annotations, and document-adjacent context panels to weave many signals around reading and decision-making without turning the product into a KPI dashboard or a decorative Japanese pastiche.
### Values
- text as the primary surface, with generous line-height and exact measure for long-session reading
- non-literal cultural abstraction through rhythm, layering, edge quality, restraint, and negative space
- quiet context weaving: inline metrics, marginal notes, chips, and summaries stay near the document they explain
- neutral-first hierarchy using warm washi surfaces, sumi text contrast, and hairline borders before color
- one restrained indigo family for action, focus, active location, references, and connective threads
- rare persimmon only for attention, risk, and unresolved exceptions, never as decoration
- accessibility and operational durability over fragile minimalism or low-contrast fashion
### Anti-Values
- literal waves, fans, sakura, cranes, faux brush fonts, red sun badges, or tourist-Japan ornament
- large saturated dashboard canvases, rainbow category systems, or KPI tiles that overpower reading
- paper textures so visible they reduce legibility or feel skeuomorphic
- pale gray body text that looks quiet but fails contrast
- gratuitous shadows, glassmorphism, or floating layers that weaken document focus
- assigning a color to every feature or status when text and placement can carry meaning
### Visual Character
- Warm off-white canvas and soft white panels separated by 1px neutral hairlines, not heavy cards.
- Sumi ink text hierarchy: decisive dark body, muted metadata, compact mono-like IDs, and readable editorial rhythm.
- Indigo appears as rails, underlines, focus rings, reference markers, and primary buttons rather than as broad fills.
- Katagami abstraction appears as repeated spacing intervals, tiny perforation-like dividers, and aligned marginal markers, never as stencil motifs.
- Context lives in narrow side notes, inline counts, small chips, annotation gutters, and summary slips attached to the reading plane.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| accent | `#C65F32` |
| background | `#F7F3EA` |
| border | `#D8D0C2` |
| error | `#9F3A2F` |
| info | `#274B73` |
| muted | `#6F675D` |
| primary | `#274B73` |
| primary_soft | `#E7EEF6` |
| success | `#4F6F53` |
| surface | `#FFFDF7` |
| surface_inset | `#F1ECE1` |
| surface_warm | `#FAF7EF` |
| text | `#1E1B17` |
| warning | `#A86C19` |
## Typography
- **Headline-Lg**: Source Serif 4, 1.643rem, weight 700, line-height 1.1.
- **Headline-Md**: Source Serif 4, 1.392rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 16px, weight 400, line-height 1.62.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `40px`
- **4xl**: `48px`
- **Step-8**: `64px`
- **Step-9**: `80px`
- **Step-10**: `96px`
### Breakpoints
Mobile <= 640px collapses navigation to a top context strip and moves annotations below the document; tablet uses two columns; desktop keeps full context-document-rail structure.
### Density
Document-first density: compact chrome and metadata, spacious line rhythm, narrow context panels, and no ornamental empty hero areas.
### Grid
Desktop uses a three-zone shell: 224px context map, flexible 720-880px reading workspace, and 280-340px annotation rail, all on an 8px spacing grid with 24px gutters.
### Responsive
Maintain reading order first. Side notes become expandable inline blocks, chips wrap under headings, and primary actions remain near the text selection or decision point.
### Whitespace
Whitespace is ma: intentional pause around dense text. Use 32px page padding on desktop, 24px between major zones, 16px between related text groups, and 8px for metadata clusters.
## Elevation & Depth
### Shadows
- **Lg**: 0 20px 48px rgba(30,27,23,0.10)
- **Md**: 0 8px 24px rgba(30,27,23,0.07)
- **Sm**: 0 1px 2px rgba(30,27,23,0.04)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `14px`
- **Md**: `8px`
- **None**: `0px`
- **Sm**: `3px`
### Surfaces
- **Bg Pattern**: Optional barely-visible 16px fiber-line wash in the shell only, below 2% opacity; never behind body text.
- **Card Style**: Low-radius paper panels with 1px warm-neutral borders, minimal elevation, and crisp internal dividers.
- **Treatment**: Near-white washi canvas with warm off-white reading panels and quiet inset context slips.
### Borders
- **Accent Width**: 2px
- **Character**: Neutral hairlines with slightly irregular-feeling warmth; indigo rails and focus outlines act like stitched thread through dense context.
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
Use a reading-dominant workspace: compact context-map navigation, central document or thread, and narrow annotation/summary rail. Keep analytics attached to paragraphs, records, and decisions as inline counts, chips, reference markers, and summary slips. Avoid full dashboard canvases unless the view is explicitly analysis-first.
### Composition Count
5
### Density
Medium-high textual density with generous line rhythm. Lists and context maps are compact; reading areas keep 24-32px internal padding and clear paragraph intervals. Use marginal signals instead of large widgets when summarizing dense context.
### Hierarchy
Start with text contrast, measure, and spacing. Body copy should sit around 68-78 characters, line-height around 1.6, and metadata should be compact but readable. Sumi text and warm neutrals do the daily work; indigo identifies action, selection, focus, links, and the current path.
### Signature Patterns
- Context map navigation: a slim left rail of sections, sources, and unresolved markers using indigo ticks and tiny counts.
- Washi reading panel: warm white document surface with hairline dividers, 72ch measure, and soft annotation gutter.
- Threaded references: indigo underlines, footnote chips, and connector rails bind citations, summaries, and source snippets.
- Summary slips: small attached panels for counts, status, or AI notes, styled like paper inserts rather than KPI cards.
- Persimmon exception marks: tiny dots, left-edge bars, or badge text for rare blocked/risk/needs-review states only.
## 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-ed9c-77d3-b8c8-d5d8ade91f7e/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 Treat text, annotations, and references as the main visual material.
- Do Use indigo consistently for primary action, active location, links, keyboard focus, and connective reference thread.
- Do Keep panels warm off-white with hairline borders and restrained low-radius corners.
- Do Use inline counts and summary slips for dashboard-like data rather than large KPI canvases.
- Do Translate katagami into rhythm, alignment, repetition, and small perforation-like separators, not motifs.
- Do Style every form control and focus state explicitly with accessible contrast.
- Do Use persimmon only for rare attention states such as blocked, risk, escalation, or unresolved ambiguity.
- Don't Do not use literal Japanese icons, waves, sakura, cranes, fans, torii, faux brush typography, or travel-poster palettes.
- Don't Do not decorate backgrounds with visible paper texture behind long-form text.
- Don't Do not create rainbow statuses or assign arbitrary colors to sources.
- Don't Do not make dashboards the default surface for contextual information.
- Don't Do not use low-contrast beige-on-beige body copy.
- Don't Do not rely on shadow to separate every layer; use borders, spacing, and inset surfaces first.
- Don't Do not turn calmness into emptiness; dense context should remain available and well organized.
### Accessibility
Text, controls, chips, and focus states must meet WCAG AA. Do not use muted warm grays below contrast thresholds. Pair color with text labels, rails, icons, or placement; persimmon never carries critical meaning alone.
### Usage Context
Best for AI workspaces, research tools, editorial operating systems, knowledge bases, policy review, legal/research annotation, and any dense product where many sources must stay calm and traceable.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "washi-quiet-text-workspace",
"type": "registry:theme",
"title": "Washi-Quiet Text Workspace shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F3EA",
"foreground": "#1E1B17",
"card": "#FFFDF7",
"card-foreground": "#1E1B17",
"popover": "#FFFDF7",
"popover-foreground": "#1E1B17",
"primary": "#274B73",
"primary-foreground": "#ffffff",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#6F675D",
"muted-foreground": "#1E1B17",
"accent": "#C65F32",
"accent-foreground": "#ffffff",
"destructive": "#9F3A2F",
"border": "#D8D0C2",
"input": "#D8D0C2",
"ring": "#C65F32",
"chart-1": "#274B73",
"chart-2": "#f4f4f5",
"chart-3": "#C65F32",
"chart-4": "#4F6F53",
"chart-5": "#A86C19",
"sidebar": "#FFFDF7",
"sidebar-foreground": "#1E1B17",
"sidebar-primary": "#274B73",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#274B73",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D0C2",
"sidebar-ring": "#C65F32",
"radius": "8px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#274B73",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#C65F32",
"accent-foreground": "#ffffff",
"destructive": "#9F3A2F",
"border": "#303642",
"input": "#303642",
"ring": "#C65F32",
"chart-1": "#274B73",
"chart-2": "#f4f4f5",
"chart-3": "#C65F32",
"chart-4": "#4F6F53",
"chart-5": "#A86C19",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#274B73",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#C65F32",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#C65F32",
"radius": "8px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019edd5b-ed9c-77d3-b8c8-d5d8ade91f7e",
"slug": "washi-quiet-text-workspace",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"primary_soft",
"success",
"surface",
"surface_inset",
"surface_warm",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · washi-quiet-text-workspace
DESIGN.md
at a glance
Typography
headline-lgSource Serif 4 · 26px · 700
The quick brown fox jumps
headline-mdSource Serif 4 · 22px · 600
The quick brown fox jumps
body-mdInter · 16px · 400
The quick brown fox jumps
label-mdIBM Plex Mono · 12px · 600
The quick brown fox jumps
Components
New
Card title
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl40px
- 4xl48px
- step-864px
- step-980px
- step-1096px
Shape
full9999px
lg14px
md8px
none0px
sm3px
shadcn/ui
implementation kit
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 tabletheme css
:root {
--background: #F7F3EA;
--foreground: #1E1B17;
--card: #FFFDF7;
--card-foreground: #1E1B17;
--popover: #FFFDF7;
--popover-foreground: #1E1B17;
--primary: #274B73;
--primary-foreground: #ffffff;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #6F675D;
--muted-foreground: #1E1B17;
--accent: #C65F32;
--accent-foreground: #ffffff;
--destructive: #9F3A2F;
--border: #D8D0C2;
--input: #D8D0C2;
--ring: #C65F32;
--chart-1: #274B73;
--chart-2: #f4f4f5;
--chart-3: #C65F32;
--chart-4: #4F6F53;
--chart-5: #A86C19;
--sidebar: #FFFDF7;
--sidebar-foreground: #1E1B17;
--sidebar-primary: #274B73;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #274B73;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #D8D0C2;
--sidebar-ring: #C65F32;
--radius: 8px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #274B73;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #C65F32;
--accent-foreground: #ffffff;
--destructive: #9F3A2F;
--border: #303642;
--input: #303642;
--ring: #C65F32;
--chart-1: #274B73;
--chart-2: #f4f4f5;
--chart-3: #C65F32;
--chart-4: #4F6F53;
--chart-5: #A86C19;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #274B73;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #C65F32;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #C65F32;
--radius: 8px;
}
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 WashiQuietTextWorkspaceShadcnKit() {
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">Washi-Quiet Text Workspace</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": "washi-quiet-text-workspace",
"type": "registry:theme",
"title": "Washi-Quiet Text Workspace shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F3EA",
"foreground": "#1E1B17",
"card": "#FFFDF7",
"card-foreground": "#1E1B17",
"popover": "#FFFDF7",
"popover-foreground": "#1E1B17",
"primary": "#274B73",
"primary-foreground": "#ffffff",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#6F675D",
"muted-foreground": "#1E1B17",
"accent": "#C65F32",
"accent-foreground": "#ffffff",
"destructive": "#9F3A2F",
"border": "#D8D0C2",
"input": "#D8D0C2",
"ring": "#C65F32",
"chart-1": "#274B73",
"chart-2": "#f4f4f5",
"chart-3": "#C65F32",
"chart-4": "#4F6F53",
"chart-5": "#A86C19",
"sidebar": "#FFFDF7",
"sidebar-foreground": "#1E1B17",
"sidebar-primary": "#274B73",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#274B73",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D0C2",
"sidebar-ring": "#C65F32",
"radius": "8px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#274B73",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#C65F32",
"accent-foreground": "#ffffff",
"destructive": "#9F3A2F",
"border": "#303642",
"input": "#303642",
"ring": "#C65F32",
"chart-1": "#274B73",
"chart-2": "#f4f4f5",
"chart-3": "#C65F32",
"chart-4": "#4F6F53",
"chart-5": "#A86C19",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#274B73",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#C65F32",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#C65F32",
"radius": "8px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019edd5b-ed9c-77d3-b8c8-d5d8ade91f7e",
"slug": "washi-quiet-text-workspace",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"primary_soft",
"success",
"surface",
"surface_inset",
"surface_warm",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
component recipescompatibility fallback
# Washi-Quiet Text Workspace shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019edd5b-ed9c-77d3-b8c8-d5d8ade91f7e`
Slug: `washi-quiet-text-workspace`
## Intent
A near-white, text-first workspace language for dense editorial and operational tools. It translates Japanese craft cues into product structure: washi-like matte surfaces, katagami-inspired repetition, sumi ink hierarchy, indigo as the single thread of action, and persimmon reserved for rare interruption. The system is calm but not empty; it uses measured whitespace, hairline borders, compact annotations, and document-adjacent context panels to weave many signals around reading and decision-making without turning the product into a KPI dashboard or a decorative Japanese pastiche.
## Required primitives
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
## Token cues
Colors:
{
"accent": "#C65F32",
"background": "#F7F3EA",
"border": "#D8D0C2",
"error": "#9F3A2F",
"info": "#274B73",
"muted": "#6F675D",
"primary": "#274B73",
"primary_soft": "#E7EEF6",
"success": "#4F6F53",
"surface": "#FFFDF7",
"surface_inset": "#F1ECE1",
"surface_warm": "#FAF7EF",
"text": "#1E1B17",
"warning": "#A86C19"
}
Typography:
{
"base_size": "16px",
"body_font": "Inter",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap",
"heading_font": "Source Serif 4",
"letter_spacing": "-0.01em",
"line_height": 1.62,
"mono_font": "IBM Plex Mono",
"scale_ratio": 1.18
}
## Visual character to preserve
- Warm off-white canvas and soft white panels separated by 1px neutral hairlines, not heavy cards.
- Sumi ink text hierarchy: decisive dark body, muted metadata, compact mono-like IDs, and readable editorial rhythm.
- Indigo appears as rails, underlines, focus rings, reference markers, and primary buttons rather than as broad fills.
- Katagami abstraction appears as repeated spacing intervals, tiny perforation-like dividers, and aligned marginal markers, never as stencil motifs.
- Context lives in narrow side notes, inline counts, small chips, annotation gutters, and summary slips attached to the reading plane.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "blob",
"border": "dashed",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "still",
"density": "dense",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
}
## Signature component recipes
### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.
### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.
### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.
### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.
### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.
## Preview shots
- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.
## Implementation contract
- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/washi-quiet-text-workspace/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: Treat text, annotations, and references as the main visual material.; Use indigo consistently for primary action, active location, links, keyboard focus, and connective reference thread.; Keep panels warm off-white with hairline borders and restrained low-radius corners.; Use inline counts and summary slips for dashboard-like data rather than large KPI canvases.; Translate katagami into rhythm, alignment, repetition, and small perforation-like separators, not motifs.; Style every form control and focus state explicitly with accessible contrast.; Use persimmon only for rare attention states such as blocked, risk, escalation, or unresolved ambiguity.
- Do not: Do not use literal Japanese icons, waves, sakura, cranes, fans, torii, faux brush typography, or travel-poster palettes.; Do not decorate backgrounds with visible paper texture behind long-form text.; Do not create rainbow statuses or assign arbitrary colors to sources.; Do not make dashboards the default surface for contextual information.; Do not use low-contrast beige-on-beige body copy.; Do not rely on shadow to separate every layer; use borders, spacing, and inset surfaces first.; Do not turn calmness into emptiness; dense context should remain available and well organized.
## 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 WashiQuietTextWorkspaceShadcnKit() {
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">Washi-Quiet Text Workspace</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
```
## Layout notes
{
"breakpoints": "Mobile <= 640px collapses navigation to a top context strip and moves annotations below the document; tablet uses two columns; desktop keeps full context-document-rail structure.",
"density": "Document-first density: compact chrome and metadata, spacious line rhythm, narrow context panels, and no ornamental empty hero areas.",
"grid": "Desktop uses a three-zone shell: 224px context map, flexible 720-880px reading workspace, and 280-340px annotation rail, all on an 8px spacing grid with 24px gutters.",
"responsive": "Maintain reading order first. Side notes become expandable inline blocks, chips wrap under headings, and primary actions remain near the text selection or decision point.",
"whitespace": "Whitespace is ma: intentional pause around dense text. Use 32px page padding on desktop, 24px between major zones, 16px between related text groups, and 8px for metadata clusters."
}
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-ed9c-77d3-b8c8-d5d8ade91f7e",
"name": "Washi-Quiet Text Workspace",
"slug": "washi-quiet-text-workspace"
},
"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": [
"Warm off-white canvas and soft white panels separated by 1px neutral hairlines, not heavy cards.",
"Sumi ink text hierarchy: decisive dark body, muted metadata, compact mono-like IDs, and readable editorial rhythm.",
"Indigo appears as rails, underlines, focus rings, reference markers, and primary buttons rather than as broad fills.",
"Katagami abstraction appears as repeated spacing intervals, tiny perforation-like dividers, and aligned marginal markers, never as stencil motifs.",
"Context lives in narrow side notes, inline counts, small chips, annotation gutters, and summary slips attached to the reading plane."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "still",
"density": "dense",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
},
"shots": [
{
"id": "application-shell",
"title": "Application shell",
"viewport": "desktop",
"primitives": [
"button",
"card",
"input",
"select",
"tabs",
"badge",
"separator",
"table"
],
"composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
"mustShow": [
"primary and secondary actions",
"card hierarchy",
"filterable state",
"table or list density"
],
"avoid": [
"component inventory walls",
"placeholder-only content",
"generic rounded SaaS chrome"
],
"scene": {
"eyebrow": "workspace spread",
"headline": "Washi-Quiet Text Workspace 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": [
"Treat text, annotations, and references as the main visual material.",
"Use indigo consistently for primary action, active location, links, keyboard focus, and connective reference thread.",
"Keep panels warm off-white with hairline borders and restrained low-radius corners.",
"Use inline counts and summary slips for dashboard-like data rather than large KPI canvases.",
"Translate katagami into rhythm, alignment, repetition, and small perforation-like separators, not motifs.",
"Style every form control and focus state explicitly with accessible contrast.",
"Use persimmon only for rare attention states such as blocked, risk, escalation, or unresolved ambiguity."
],
"dont": [
"Do not use literal Japanese icons, waves, sakura, cranes, fans, torii, faux brush typography, or travel-poster palettes.",
"Do not decorate backgrounds with visible paper texture behind long-form text.",
"Do not create rainbow statuses or assign arbitrary colors to sources.",
"Do not make dashboards the default surface for contextual information.",
"Do not use low-contrast beige-on-beige body copy.",
"Do not rely on shadow to separate every layer; use borders, spacing, and inset surfaces first.",
"Do not turn calmness into emptiness; dense context should remain available and well organized."
]
}
}
related