back to gallerydo avoid
design language·techo-page
Techo Page
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
tokens
borders7 items
- color
- rgba(42,37,32,0.12)
- radius lg
- 4px
- radius md
- 3px
- radius sm
- 2px
- style default
- solid
- width medium
- 1.5px
- width thin
- 1px
colors14 items
accent
#e8a830
background
#f8f6f0
border
rgba(42,37,32,0.12)
error
#c84040
grid
rgba(42,37,32,0.07)
highlight_pink
rgba(200,90,138,0.2)
highlight_yellow
rgba(232,168,48,0.25)
muted
#8a8478
primary
#2a5a8a
secondary
#c85a8a
success
#4a8a5a
surface
#fdfcf8
text
#2a2520
warning
#d89030
motion7 items
- duration base
- 300ms
- duration fast
- 150ms
- duration slow
- 500ms
- easing default
- ease-in-out
- easing page turn
- cubic-bezier(0.4, 0, 0.2, 1)
- page turn
- 300ms ease-in-out
- scale subtle
- scale(0.98)
shadows4 items
- page
- 0 1px 3px rgba(0,0,0,0.06)
- page stack
- 0 2px 6px rgba(0,0,0,0.08)
- stamp
- 1px 1px 0 rgba(42,37,32,0.08)
- sticker
- 0 1px 2px rgba(0,0,0,0.05)
spacing9 items
- gutter
- 24px
- lg
- 24px
- md
- 16px
- page margin
- 40px
- sm
- 8px
- unit
- 4px
- xl
- 32px
- xs
- 4px
- xxl
- 48px
surfaces4 items
- highlight
- inline rgba(232,168,48,0.25) or rgba(200,90,138,0.2) marker swashes with 2px padding overshoot
- note
- #fffefa inset note panels with rgba(42,37,32,0.12) hairline border and no gradient
- page
- #fdfcf8 paper sheet over #f8f6f0 desk field with radial-gradient dot grid at 20px intervals
- tab
- muted colored paper tabs clipped to protrude from the right page edge
typography9 items
- base size
- 15px
- font body
- Source Sans 3, system-ui, sans-serif
- font heading
- Crimson Pro, Georgia, serif
- font mono
- Fira Code, Consolas, monospace
- google fonts url
- https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&family=Fira+Code:wght@400;500;600&display=swap
- line heights
- base 1.6·relaxed 1.75·tight 1.25
- scale ratio
- 1.25
- sizes
- base 15px·lg 23.4px·md 18.75px·sm 13.5px·xl 29.3px·xs 12px·xxl 36.6px
- weights
- bold 700·light 300·medium 500·regular 400·semibold 600
rules
composition
Content is arranged on a page spread. On desktop, use a two-column layout mimicking an open planner with left and right facing pages separated by a visible gutter. Margins are generous — planners have wide margins for annotations. Each section is visually bounded by subtle rules or light borders, never heavy dividers. Whitespace is sacred; the page must breathe like real paper. Stacking order: dot grid background, then content areas, then margin annotations, then floating stamps and stickers.
hierarchy
Date stamps and section headers establish primary hierarchy through size and weight contrast. Headings use Crimson Pro serif at semibold or bold, clearly distinct from Source Sans 3 body text. Highlighted passages (marker-style backgrounds) create secondary emphasis without changing font properties. Margin annotations are tertiary — smaller, lighter, offset. Monospace date stamps in bordered rectangles anchor temporal context. Color hierarchy: primary blue for actionable elements, muted gray for secondary content, accent yellow for attention, secondary pink for emphasis.
density
Medium density modeled on a well-organized planner page — structured enough to be useful, spacious enough to feel handwritten. Line height is generous (1.6 base). Lists use comfortable spacing between items. The hourly timeline is the densest element and uses consistent vertical rhythm. Notes sections have more breathing room. Never pack content so tightly that the analog feel is lost.
signature patterns
Dot grid background: 1px circular dots at rgba(42,37,32,0.07) repeating every 20px across the entire page surface, created with radial-gradientDate stamps: monospace text in small bordered rectangles with 1-2 degree rotation and a subtle shadow, placed in margins or section headers like rubber stampsHighlighter marks: inline text wrapped in spans with semi-transparent background colors (highlight_yellow or highlight_pink) extending slightly beyond the text bounds with 2px padding, mimicking real marker strokes on paperPage tabs: tab-shaped elements along the right edge using clip-path or asymmetric border-radius, with slightly different background colors per section, protruding from the page edgePen-stroke underlines: decorative underlines using wavy SVG paths or repeating-linear-gradient patterns instead of straight CSS borders, giving an organic hand-drawn quality
layout
not set
guidance
- Use dot grid background on every page surface — it is the foundational visual identity
- Apply highlighter-style backgrounds for emphasis using semi-transparent yellow or pink with slight padding overshoot
- Use date stamps in monospace with bordered rectangles and slight rotation for temporal markers
- Maintain the two-page spread metaphor on desktop with a visible center gutter
- Use Crimson Pro for all headings to evoke formal handwritten notes
- Keep borders light and subtle — paper sections are defined by whitespace and thin rules, not heavy boxes
- Apply pen-stroke style underlines using SVG wavy paths for decorative emphasis
- Use sticker-like badges with dotted borders and 1-2 degree rotation for status indicators and tags
- Place margin annotations in lighter color offset to the side, connected by thin guide lines
- Maintain generous whitespace — the page must breathe like a real planner with room to write
- Never use heavy drop shadows — planners sit flat on a desk, not floating in space
- Never use perfectly straight mechanical underlines — they break the analog illusion
- Avoid large border-radius values — paper corners are nearly square (max 4px)
- Do not use bright saturated backgrounds for containers — surfaces should be paper-white or cream
- Avoid centered text layouts — planners are left-aligned with structured margins
- Never use gradient backgrounds — paper is flat, not dimensional
- Do not overcrowd the page — if it would not fit on a real A5 planner spread, it is too dense
- Avoid generic sans-serif buttons — interactive elements should feel like they belong on the page (stamps, checkboxes, tabs)
- Never use animations longer than 500ms — analog tools respond immediately
- Do not use neon or electric colors — the palette is fountain pen inks, markers, and pencil graphite
katagami spec
# Techo Page
## Philosophy
### Visual Character
- Tomoe River paper spread with a visible center gutter, cream #fdfcf8 surfaces, 1px rgba(42,37,32,0.12) rules, and radial-gradient dot grid every 20px.
- Hand-kept planner artifacts: rotated monospace date stamps, dotted sticker badges, edge page tabs using clip-path, and margin notes connected by thin guide lines.
- Analog emphasis instead of digital chrome: translucent highlighter spans in yellow or pink, wavy pen-stroke underlines, square 2-4px corners, and almost-flat shadows.
## Tokens
### Borders
- **Color**: rgba(42,37,32,0.12)
- **Radius Lg**: 4px
- **Radius Md**: 3px
- **Radius Sm**: 2px
- **Style Default**: solid
- **Width Medium**: 1.5px
- **Width Thin**: 1px
### Colors
| Name | Value |
|------|-------|
| accent | `#e8a830` |
| background | `#f8f6f0` |
| border | `rgba(42,37,32,0.12)` |
| error | `#c84040` |
| grid | `rgba(42,37,32,0.07)` |
| highlight_pink | `rgba(200,90,138,0.2)` |
| highlight_yellow | `rgba(232,168,48,0.25)` |
| muted | `#8a8478` |
| primary | `#2a5a8a` |
| secondary | `#c85a8a` |
| success | `#4a8a5a` |
| surface | `#fdfcf8` |
| text | `#2a2520` |
| warning | `#d89030` |
### Motion
- **Duration Base**: 300ms
- **Duration Fast**: 150ms
- **Duration Slow**: 500ms
- **Easing Default**: ease-in-out
- **Easing Page Turn**: cubic-bezier(0.4, 0, 0.2, 1)
- **Page Turn**: 300ms ease-in-out
- **Scale Subtle**: scale(0.98)
### Shadows
- **Page**: 0 1px 3px rgba(0,0,0,0.06)
- **Page Stack**: 0 2px 6px rgba(0,0,0,0.08)
- **Stamp**: 1px 1px 0 rgba(42,37,32,0.08)
- **Sticker**: 0 1px 2px rgba(0,0,0,0.05)
### Spacing
- **Gutter**: 24px
- **Lg**: 24px
- **Md**: 16px
- **Page Margin**: 40px
- **Sm**: 8px
- **Unit**: 4px
- **Xl**: 32px
- **Xs**: 4px
- **Xxl**: 48px
### Surfaces
- **Highlight**: inline rgba(232,168,48,0.25) or rgba(200,90,138,0.2) marker swashes with 2px padding overshoot
- **Note**: #fffefa inset note panels with rgba(42,37,32,0.12) hairline border and no gradient
- **Page**: #fdfcf8 paper sheet over #f8f6f0 desk field with radial-gradient dot grid at 20px intervals
- **Tab**: muted colored paper tabs clipped to protrude from the right page edge
### Typography
- **Base Size**: 15px
- **Font Body**: Source Sans 3, system-ui, sans-serif
- **Font Heading**: Crimson Pro, Georgia, serif
- **Font Mono**: Fira Code, Consolas, monospace
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&family=Fira+Code:wght@400;500;600&display=swap
- **Line Heights**: {"base":"1.6","relaxed":"1.75","tight":"1.25"}
- **Scale Ratio**: 1.25
- **Sizes**: {"base":"15px","lg":"23.4px","md":"18.75px","sm":"13.5px","xl":"29.3px","xs":"12px","xxl":"36.6px"}
- **Weights**: {"bold":700,"light":300,"medium":500,"regular":400,"semibold":600}
## Rules
### Composition
Content is arranged on a page spread. On desktop, use a two-column layout mimicking an open planner with left and right facing pages separated by a visible gutter. Margins are generous — planners have wide margins for annotations. Each section is visually bounded by subtle rules or light borders, never heavy dividers. Whitespace is sacred; the page must breathe like real paper. Stacking order: dot grid background, then content areas, then margin annotations, then floating stamps and stickers.
### Hierarchy
Date stamps and section headers establish primary hierarchy through size and weight contrast. Headings use Crimson Pro serif at semibold or bold, clearly distinct from Source Sans 3 body text. Highlighted passages (marker-style backgrounds) create secondary emphasis without changing font properties. Margin annotations are tertiary — smaller, lighter, offset. Monospace date stamps in bordered rectangles anchor temporal context. Color hierarchy: primary blue for actionable elements, muted gray for secondary content, accent yellow for attention, secondary pink for emphasis.
### Density
Medium density modeled on a well-organized planner page — structured enough to be useful, spacious enough to feel handwritten. Line height is generous (1.6 base). Lists use comfortable spacing between items. The hourly timeline is the densest element and uses consistent vertical rhythm. Notes sections have more breathing room. Never pack content so tightly that the analog feel is lost.
### Signature Patterns
- Dot grid background: 1px circular dots at rgba(42,37,32,0.07) repeating every 20px across the entire page surface, created with radial-gradient
- Date stamps: monospace text in small bordered rectangles with 1-2 degree rotation and a subtle shadow, placed in margins or section headers like rubber stamps
- Highlighter marks: inline text wrapped in spans with semi-transparent background colors (highlight_yellow or highlight_pink) extending slightly beyond the text bounds with 2px padding, mimicking real marker strokes on paper
- Page tabs: tab-shaped elements along the right edge using clip-path or asymmetric border-radius, with slightly different background colors per section, protruding from the page edge
- Pen-stroke underlines: decorative underlines using wavy SVG paths or repeating-linear-gradient patterns instead of straight CSS borders, giving an organic hand-drawn quality
## Guidance
### Do
- Use dot grid background on every page surface — it is the foundational visual identity
- Apply highlighter-style backgrounds for emphasis using semi-transparent yellow or pink with slight padding overshoot
- Use date stamps in monospace with bordered rectangles and slight rotation for temporal markers
- Maintain the two-page spread metaphor on desktop with a visible center gutter
- Use Crimson Pro for all headings to evoke formal handwritten notes
- Keep borders light and subtle — paper sections are defined by whitespace and thin rules, not heavy boxes
- Apply pen-stroke style underlines using SVG wavy paths for decorative emphasis
- Use sticker-like badges with dotted borders and 1-2 degree rotation for status indicators and tags
- Place margin annotations in lighter color offset to the side, connected by thin guide lines
- Maintain generous whitespace — the page must breathe like a real planner with room to write
### Don't
- Never use heavy drop shadows — planners sit flat on a desk, not floating in space
- Never use perfectly straight mechanical underlines — they break the analog illusion
- Avoid large border-radius values — paper corners are nearly square (max 4px)
- Do not use bright saturated backgrounds for containers — surfaces should be paper-white or cream
- Avoid centered text layouts — planners are left-aligned with structured margins
- Never use gradient backgrounds — paper is flat, not dimensional
- Do not overcrowd the page — if it would not fit on a real A5 planner spread, it is too dense
- Avoid generic sans-serif buttons — interactive elements should feel like they belong on the page (stamps, checkboxes, tabs)
- Never use animations longer than 500ms — analog tools respond immediately
- Do not use neon or electric colors — the palette is fountain pen inks, markers, and pencil graphite
### Usage Context
Best suited for personal productivity apps, daily planners, journaling interfaces, note-taking tools, habit trackers, reading logs, and any interface where the user maintains an ongoing personal record. Works exceptionally well for single-user focused experiences where intimacy and personal ownership matter. Also appropriate for dashboards that present temporal data (schedules, timelines, calendars). Not ideal for e-commerce, social media feeds, or high-density data tables.
### Accessibility
Minimum contrast ratio 4.5:1 for body text (#2a2520 on #f8f6f0 passes WCAG AA at 11.2:1). Dot grid must remain subtle enough to not interfere with screen readers or create visual noise for users with sensory sensitivities. Highlighter backgrounds must not be the only indicator of emphasis — pair with font weight or text decoration. All interactive elements (stamps, tabs, checkboxes) must have clear focus states using the primary blue outline. Date stamps must use semantic time elements. Motion reduced to zero for prefers-reduced-motion. Minimum touch target 44x44px for all interactive planner elements.
DESIGN.md
---
version: "alpha"
name: "Techo Page"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#e8a830"
background: "#f8f6f0"
error: "#c84040"
muted: "#8a8478"
primary: "#2a5a8a"
secondary: "#c85a8a"
success: "#4a8a5a"
surface: "#fdfcf8"
text: "#2a2520"
warning: "#d89030"
typography:
headline-lg:
fontFamily: "Inter"
fontSize: "1.831rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Inter"
fontSize: "1.465rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Inter"
fontSize: "15px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "Inter"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
spacing:
gutter: "24px"
lg: "24px"
md: "16px"
page_margin: "40px"
sm: "8px"
unit: "4px"
xl: "32px"
xs: "4px"
xxl: "48px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#ffffff"
typography: "{typography.label-md}"
rounded: "16px"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "16px"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "16px"
height: "44px"
---
# Techo Page
## Overview
Techo Page is an agent-curated design language from Katagami.
### Visual Character
- Tomoe River paper spread with a visible center gutter, cream #fdfcf8 surfaces, 1px rgba(42,37,32,0.12) rules, and radial-gradient dot grid every 20px.
- Hand-kept planner artifacts: rotated monospace date stamps, dotted sticker badges, edge page tabs using clip-path, and margin notes connected by thin guide lines.
- Analog emphasis instead of digital chrome: translucent highlighter spans in yellow or pink, wavy pen-stroke underlines, square 2-4px corners, and almost-flat shadows.
## 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 | `#e8a830` |
| background | `#f8f6f0` |
| error | `#c84040` |
| muted | `#8a8478` |
| primary | `#2a5a8a` |
| secondary | `#c85a8a` |
| success | `#4a8a5a` |
| surface | `#fdfcf8` |
| text | `#2a2520` |
| warning | `#d89030` |
## Typography
- **Headline-Lg**: Inter, 1.831rem, weight 700, line-height 1.1.
- **Headline-Md**: Inter, 1.465rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 15px, weight 400, line-height 1.5.
- **Label-Md**: Inter, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Gutter**: `24px`
- **Lg**: `24px`
- **Md**: `16px`
- **Page Margin**: `40px`
- **Sm**: `8px`
- **Unit**: `4px`
- **Xl**: `32px`
- **Xs**: `4px`
- **Xxl**: `48px`
## Elevation & Depth
### Shadows
- **Page**: 0 1px 3px rgba(0,0,0,0.06)
- **Page Stack**: 0 2px 6px rgba(0,0,0,0.08)
- **Stamp**: 1px 1px 0 rgba(42,37,32,0.08)
- **Sticker**: 0 1px 2px rgba(0,0,0,0.05)
## Shapes
### Surfaces
- **Highlight**: inline rgba(232,168,48,0.25) or rgba(200,90,138,0.2) marker swashes with 2px padding overshoot
- **Note**: #fffefa inset note panels with rgba(42,37,32,0.12) hairline border and no gradient
- **Page**: #fdfcf8 paper sheet over #f8f6f0 desk field with radial-gradient dot grid at 20px intervals
- **Tab**: muted colored paper tabs clipped to protrude from the right page edge
### Borders
- **Color**: rgba(42,37,32,0.12)
- **Radius Lg**: 4px
- **Radius Md**: 3px
- **Radius Sm**: 2px
- **Style Default**: solid
- **Width Medium**: 1.5px
- **Width Thin**: 1px
## Components
### Composition
Content is arranged on a page spread. On desktop, use a two-column layout mimicking an open planner with left and right facing pages separated by a visible gutter. Margins are generous — planners have wide margins for annotations. Each section is visually bounded by subtle rules or light borders, never heavy dividers. Whitespace is sacred; the page must breathe like real paper. Stacking order: dot grid background, then content areas, then margin annotations, then floating stamps and stickers.
### Hierarchy
Date stamps and section headers establish primary hierarchy through size and weight contrast. Headings use Crimson Pro serif at semibold or bold, clearly distinct from Source Sans 3 body text. Highlighted passages (marker-style backgrounds) create secondary emphasis without changing font properties. Margin annotations are tertiary — smaller, lighter, offset. Monospace date stamps in bordered rectangles anchor temporal context. Color hierarchy: primary blue for actionable elements, muted gray for secondary content, accent yellow for attention, secondary pink for emphasis.
### Density
Medium density modeled on a well-organized planner page — structured enough to be useful, spacious enough to feel handwritten. Line height is generous (1.6 base). Lists use comfortable spacing between items. The hourly timeline is the densest element and uses consistent vertical rhythm. Notes sections have more breathing room. Never pack content so tightly that the analog feel is lost.
### Signature Patterns
- Dot grid background: 1px circular dots at rgba(42,37,32,0.07) repeating every 20px across the entire page surface, created with radial-gradient
- Date stamps: monospace text in small bordered rectangles with 1-2 degree rotation and a subtle shadow, placed in margins or section headers like rubber stamps
- Highlighter marks: inline text wrapped in spans with semi-transparent background colors (highlight_yellow or highlight_pink) extending slightly beyond the text bounds with 2px padding, mimicking real marker strokes on paper
- Page tabs: tab-shaped elements along the right edge using clip-path or asymmetric border-radius, with slightly different background colors per section, protruding from the page edge
- Pen-stroke underlines: decorative underlines using wavy SVG paths or repeating-linear-gradient patterns instead of straight CSS borders, giving an organic hand-drawn quality
## 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-019dacd5-f890-7970-951c-b5d87d89e5c2/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 Use dot grid background on every page surface — it is the foundational visual identity
- Do Apply highlighter-style backgrounds for emphasis using semi-transparent yellow or pink with slight padding overshoot
- Do Use date stamps in monospace with bordered rectangles and slight rotation for temporal markers
- Do Maintain the two-page spread metaphor on desktop with a visible center gutter
- Do Use Crimson Pro for all headings to evoke formal handwritten notes
- Do Keep borders light and subtle — paper sections are defined by whitespace and thin rules, not heavy boxes
- Do Apply pen-stroke style underlines using SVG wavy paths for decorative emphasis
- Do Use sticker-like badges with dotted borders and 1-2 degree rotation for status indicators and tags
- Do Place margin annotations in lighter color offset to the side, connected by thin guide lines
- Do Maintain generous whitespace — the page must breathe like a real planner with room to write
- Don't Never use heavy drop shadows — planners sit flat on a desk, not floating in space
- Don't Never use perfectly straight mechanical underlines — they break the analog illusion
- Don't Avoid large border-radius values — paper corners are nearly square (max 4px)
- Don't Do not use bright saturated backgrounds for containers — surfaces should be paper-white or cream
- Don't Avoid centered text layouts — planners are left-aligned with structured margins
- Don't Never use gradient backgrounds — paper is flat, not dimensional
- Don't Do not overcrowd the page — if it would not fit on a real A5 planner spread, it is too dense
- Don't Avoid generic sans-serif buttons — interactive elements should feel like they belong on the page (stamps, checkboxes, tabs)
- Don't Never use animations longer than 500ms — analog tools respond immediately
- Don't Do not use neon or electric colors — the palette is fountain pen inks, markers, and pencil graphite
### Usage Context
Best suited for personal productivity apps, daily planners, journaling interfaces, note-taking tools, habit trackers, reading logs, and any interface where the user maintains an ongoing personal record. Works exceptionally well for single-user focused experiences where intimacy and personal ownership matter. Also appropriate for dashboards that present temporal data (schedules, timelines, calendars). Not ideal for e-commerce, social media feeds, or high-density data tables.
### Accessibility
Minimum contrast ratio 4.5:1 for body text (#2a2520 on #f8f6f0 passes WCAG AA at 11.2:1). Dot grid must remain subtle enough to not interfere with screen readers or create visual noise for users with sensory sensitivities. Highlighter backgrounds must not be the only indicator of emphasis — pair with font weight or text decoration. All interactive elements (stamps, tabs, checkboxes) must have clear focus states using the primary blue outline. Date stamps must use semantic time elements. Motion reduced to zero for prefers-reduced-motion. Minimum touch target 44x44px for all interactive planner elements.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "techo-page",
"type": "registry:theme",
"title": "Techo Page shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#f8f6f0",
"foreground": "#2a2520",
"card": "#fdfcf8",
"card-foreground": "#2a2520",
"popover": "#fdfcf8",
"popover-foreground": "#2a2520",
"primary": "#2a5a8a",
"primary-foreground": "#ffffff",
"secondary": "#c85a8a",
"secondary-foreground": "#ffffff",
"muted": "#8a8478",
"muted-foreground": "#2a2520",
"accent": "#e8a830",
"accent-foreground": "#ffffff",
"destructive": "#c84040",
"border": "rgba(42,37,32,0.12)",
"input": "rgba(42,37,32,0.12)",
"ring": "#e8a830",
"chart-1": "#2a5a8a",
"chart-2": "#c85a8a",
"chart-3": "#e8a830",
"chart-4": "#4a8a5a",
"chart-5": "#d89030",
"sidebar": "#fdfcf8",
"sidebar-foreground": "#2a2520",
"sidebar-primary": "#2a5a8a",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#e8a830",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "rgba(42,37,32,0.12)",
"sidebar-ring": "#e8a830",
"radius": "0.625rem"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#2a5a8a",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#e8a830",
"accent-foreground": "#ffffff",
"destructive": "#c84040",
"border": "#303642",
"input": "#303642",
"ring": "#e8a830",
"chart-1": "#2a5a8a",
"chart-2": "#c85a8a",
"chart-3": "#e8a830",
"chart-4": "#4a8a5a",
"chart-5": "#d89030",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#2a5a8a",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#e8a830",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#e8a830",
"radius": "0.625rem"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019dacd5-f890-7970-951c-b5d87d89e5c2",
"slug": "techo-page",
"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": [
"color",
"radius_lg",
"radius_md",
"radius_sm",
"style_default",
"width_medium",
"width_thin"
],
"colors": [
"accent",
"background",
"border",
"error",
"grid",
"highlight_pink",
"highlight_yellow",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration_base",
"duration_fast",
"duration_slow",
"easing_default",
"easing_page_turn",
"page_turn",
"scale_subtle"
],
"shadows": [
"page",
"page_stack",
"stamp",
"sticker"
],
"spacing": [
"gutter",
"lg",
"md",
"page_margin",
"sm",
"unit",
"xl",
"xs",
"xxl"
],
"surfaces": [
"highlight",
"note",
"page",
"tab"
],
"typography": [
"base_size",
"font_body",
"font_heading",
"font_mono",
"google_fonts_url",
"line_heights",
"scale_ratio",
"sizes",
"weights"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · techo-page
DESIGN.md
at a glance
Typography
headline-lgInter · 29px · 700
The quick brown fox jumps
headline-mdInter · 23px · 600
The quick brown fox jumps
body-mdInter · 15px · 400
The quick brown fox jumps
label-mdInter · 12px · 600
The quick brown fox jumps
Spacing
- gutter24px
- lg24px
- md16px
- page_margin40px
- sm8px
- unit4px
- xl32px
- xs4px
- xxl48px
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: #f8f6f0;
--foreground: #2a2520;
--card: #fdfcf8;
--card-foreground: #2a2520;
--popover: #fdfcf8;
--popover-foreground: #2a2520;
--primary: #2a5a8a;
--primary-foreground: #ffffff;
--secondary: #c85a8a;
--secondary-foreground: #ffffff;
--muted: #8a8478;
--muted-foreground: #2a2520;
--accent: #e8a830;
--accent-foreground: #ffffff;
--destructive: #c84040;
--border: rgba(42,37,32,0.12);
--input: rgba(42,37,32,0.12);
--ring: #e8a830;
--chart-1: #2a5a8a;
--chart-2: #c85a8a;
--chart-3: #e8a830;
--chart-4: #4a8a5a;
--chart-5: #d89030;
--sidebar: #fdfcf8;
--sidebar-foreground: #2a2520;
--sidebar-primary: #2a5a8a;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #e8a830;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: rgba(42,37,32,0.12);
--sidebar-ring: #e8a830;
--radius: 0.625rem;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #2a5a8a;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #e8a830;
--accent-foreground: #ffffff;
--destructive: #c84040;
--border: #303642;
--input: #303642;
--ring: #e8a830;
--chart-1: #2a5a8a;
--chart-2: #c85a8a;
--chart-3: #e8a830;
--chart-4: #4a8a5a;
--chart-5: #d89030;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #2a5a8a;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #e8a830;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #e8a830;
--radius: 0.625rem;
}
tsx starter
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function TechoPageShadcnKit() {
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">Techo Page</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": "techo-page",
"type": "registry:theme",
"title": "Techo Page shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#f8f6f0",
"foreground": "#2a2520",
"card": "#fdfcf8",
"card-foreground": "#2a2520",
"popover": "#fdfcf8",
"popover-foreground": "#2a2520",
"primary": "#2a5a8a",
"primary-foreground": "#ffffff",
"secondary": "#c85a8a",
"secondary-foreground": "#ffffff",
"muted": "#8a8478",
"muted-foreground": "#2a2520",
"accent": "#e8a830",
"accent-foreground": "#ffffff",
"destructive": "#c84040",
"border": "rgba(42,37,32,0.12)",
"input": "rgba(42,37,32,0.12)",
"ring": "#e8a830",
"chart-1": "#2a5a8a",
"chart-2": "#c85a8a",
"chart-3": "#e8a830",
"chart-4": "#4a8a5a",
"chart-5": "#d89030",
"sidebar": "#fdfcf8",
"sidebar-foreground": "#2a2520",
"sidebar-primary": "#2a5a8a",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#e8a830",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "rgba(42,37,32,0.12)",
"sidebar-ring": "#e8a830",
"radius": "0.625rem"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#2a5a8a",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#e8a830",
"accent-foreground": "#ffffff",
"destructive": "#c84040",
"border": "#303642",
"input": "#303642",
"ring": "#e8a830",
"chart-1": "#2a5a8a",
"chart-2": "#c85a8a",
"chart-3": "#e8a830",
"chart-4": "#4a8a5a",
"chart-5": "#d89030",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#2a5a8a",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#e8a830",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#e8a830",
"radius": "0.625rem"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019dacd5-f890-7970-951c-b5d87d89e5c2",
"slug": "techo-page",
"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": [
"color",
"radius_lg",
"radius_md",
"radius_sm",
"style_default",
"width_medium",
"width_thin"
],
"colors": [
"accent",
"background",
"border",
"error",
"grid",
"highlight_pink",
"highlight_yellow",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration_base",
"duration_fast",
"duration_slow",
"easing_default",
"easing_page_turn",
"page_turn",
"scale_subtle"
],
"shadows": [
"page",
"page_stack",
"stamp",
"sticker"
],
"spacing": [
"gutter",
"lg",
"md",
"page_margin",
"sm",
"unit",
"xl",
"xs",
"xxl"
],
"surfaces": [
"highlight",
"note",
"page",
"tab"
],
"typography": [
"base_size",
"font_body",
"font_heading",
"font_mono",
"google_fonts_url",
"line_heights",
"scale_ratio",
"sizes",
"weights"
]
}
}
}
component recipescompatibility fallback
# Techo Page shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019dacd5-f890-7970-951c-b5d87d89e5c2`
Slug: `techo-page`
## Intent
shadcn/ui component recipes for the Katagami language Techo Page.
## 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": "#e8a830",
"background": "#f8f6f0",
"border": "rgba(42,37,32,0.12)",
"error": "#c84040",
"grid": "rgba(42,37,32,0.07)",
"highlight_pink": "rgba(200,90,138,0.2)",
"highlight_yellow": "rgba(232,168,48,0.25)",
"muted": "#8a8478",
"primary": "#2a5a8a",
"secondary": "#c85a8a",
"success": "#4a8a5a",
"surface": "#fdfcf8",
"text": "#2a2520",
"warning": "#d89030"
}
Typography:
{
"base_size": "15px",
"font_body": "Source Sans 3, system-ui, sans-serif",
"font_heading": "Crimson Pro, Georgia, serif",
"font_mono": "Fira Code, Consolas, monospace",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&family=Fira+Code:wght@400;500;600&display=swap",
"line_heights": {
"base": "1.6",
"relaxed": "1.75",
"tight": "1.25"
},
"scale_ratio": "1.25",
"sizes": {
"base": "15px",
"lg": "23.4px",
"md": "18.75px",
"sm": "13.5px",
"xl": "29.3px",
"xs": "12px",
"xxl": "36.6px"
},
"weights": {
"bold": 700,
"light": 300,
"medium": 500,
"regular": 400,
"semibold": 600
}
}
## Visual character to preserve
- Tomoe River paper spread with a visible center gutter, cream #fdfcf8 surfaces, 1px rgba(42,37,32,0.12) rules, and radial-gradient dot grid every 20px.
- Hand-kept planner artifacts: rotated monospace date stamps, dotted sticker badges, edge page tabs using clip-path, and margin notes connected by thin guide lines.
- Analog emphasis instead of digital chrome: translucent highlighter spans in yellow or pink, wavy pen-stroke underlines, square 2-4px corners, and almost-flat shadows.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "lift-rotate",
"density": "balanced",
"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/techo-page/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: Use dot grid background on every page surface — it is the foundational visual identity; Apply highlighter-style backgrounds for emphasis using semi-transparent yellow or pink with slight padding overshoot; Use date stamps in monospace with bordered rectangles and slight rotation for temporal markers; Maintain the two-page spread metaphor on desktop with a visible center gutter; Use Crimson Pro for all headings to evoke formal handwritten notes; Keep borders light and subtle — paper sections are defined by whitespace and thin rules, not heavy boxes; Apply pen-stroke style underlines using SVG wavy paths for decorative emphasis; Use sticker-like badges with dotted borders and 1-2 degree rotation for status indicators and tags; Place margin annotations in lighter color offset to the side, connected by thin guide lines; Maintain generous whitespace — the page must breathe like a real planner with room to write
- Do not: Never use heavy drop shadows — planners sit flat on a desk, not floating in space; Never use perfectly straight mechanical underlines — they break the analog illusion; Avoid large border-radius values — paper corners are nearly square (max 4px); Do not use bright saturated backgrounds for containers — surfaces should be paper-white or cream; Avoid centered text layouts — planners are left-aligned with structured margins; Never use gradient backgrounds — paper is flat, not dimensional; Do not overcrowd the page — if it would not fit on a real A5 planner spread, it is too dense; Avoid generic sans-serif buttons — interactive elements should feel like they belong on the page (stamps, checkboxes, tabs); Never use animations longer than 500ms — analog tools respond immediately; Do not use neon or electric colors — the palette is fountain pen inks, markers, and pencil graphite
## 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 TechoPageShadcnKit() {
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">Techo Page</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
Defined by the Katagami source fields.
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-019dacd5-f890-7970-951c-b5d87d89e5c2",
"name": "Techo Page",
"slug": "techo-page"
},
"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": [
"Tomoe River paper spread with a visible center gutter, cream #fdfcf8 surfaces, 1px rgba(42,37,32,0.12) rules, and radial-gradient dot grid every 20px.",
"Hand-kept planner artifacts: rotated monospace date stamps, dotted sticker badges, edge page tabs using clip-path, and margin notes connected by thin guide lines.",
"Analog emphasis instead of digital chrome: translucent highlighter spans in yellow or pink, wavy pen-stroke underlines, square 2-4px corners, and almost-flat shadows."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "lift-rotate",
"density": "balanced",
"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": "Techo Page 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": [
"Use dot grid background on every page surface — it is the foundational visual identity",
"Apply highlighter-style backgrounds for emphasis using semi-transparent yellow or pink with slight padding overshoot",
"Use date stamps in monospace with bordered rectangles and slight rotation for temporal markers",
"Maintain the two-page spread metaphor on desktop with a visible center gutter",
"Use Crimson Pro for all headings to evoke formal handwritten notes",
"Keep borders light and subtle — paper sections are defined by whitespace and thin rules, not heavy boxes",
"Apply pen-stroke style underlines using SVG wavy paths for decorative emphasis",
"Use sticker-like badges with dotted borders and 1-2 degree rotation for status indicators and tags",
"Place margin annotations in lighter color offset to the side, connected by thin guide lines",
"Maintain generous whitespace — the page must breathe like a real planner with room to write"
],
"dont": [
"Never use heavy drop shadows — planners sit flat on a desk, not floating in space",
"Never use perfectly straight mechanical underlines — they break the analog illusion",
"Avoid large border-radius values — paper corners are nearly square (max 4px)",
"Do not use bright saturated backgrounds for containers — surfaces should be paper-white or cream",
"Avoid centered text layouts — planners are left-aligned with structured margins",
"Never use gradient backgrounds — paper is flat, not dimensional",
"Do not overcrowd the page — if it would not fit on a real A5 planner spread, it is too dense",
"Avoid generic sans-serif buttons — interactive elements should feel like they belong on the page (stamps, checkboxes, tabs)",
"Never use animations longer than 500ms — analog tools respond immediately",
"Do not use neon or electric colors — the palette is fountain pen inks, markers, and pencil graphite"
]
}
}
related
More like this
Buncho Scrapbookshares japanese-ma · paper-texture · asymmetric-spaceBungu Minimalshares japanese-ma · paper-texture · asymmetric-spaceFusen Boardshares japanese-ma · paper-texture · asymmetric-spaceInk Wash Motionshares japanese-ma · paper-texture · asymmetric-spaceJapanese Stationery Grid Systemshares japanese-ma · paper-texture · asymmetric-spaceKukan Press Gridshares japanese-ma · paper-texture · asymmetric-space