Page-Turn Storyboard
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.
specification
philosophy
tokens
colors12 items
typography8 items
- heading font
- Fraunces
- body font
- IBM Plex Sans
- mono font
- IBM Plex Mono
- base size
- 16px
- scale ratio
- 1.25
- line height
- 1.5
- letter spacing
- -0.02em
- google fonts url
- https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700;9..144,800&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96
radii5 items
- none
- 0px
- sm
- 0px
- md
- 0px
- lg
- 0px
- full
- 9999px
shadows3 items
- sm
- 3px 3px 0 #D8281F
- md
- 6px 6px 0 #D8281F
- lg
- 10px 10px 0 rgba(216,40,31,0.85)
surfaces3 items
- treatment
- paper
- card style
- Pure white paper panels with black ink borders, red offset registration shadows, and faint stippled dot texture.
- bg pattern
- dots
borders4 items
- default width
- 2px
- accent width
- 4px
- style
- solid
- character
- Hand-ruled picture-book frames: square corners, black ink outlines, red offset rule used as a printing-registration echo.
motion3 items
- duration
- 180ms
- easing
- cubic-bezier(0.2, 0.8, 0.2, 1)
- philosophy
- snappy
rules
Use a spread-like composition with a wide title gutter, a sequence of three to five panels, and a rightward reading path. Keep the background pure white. Place data, forms, alerts, and navigation inside story panels that feel like pages rather than floating cards. The most important action belongs on the right edge as the implied page turn. Use black line-art dividers and red arrows to direct the eye, never gradient emphasis.
Large Fraunces display headings establish the story title, IBM Plex Sans labels carry interface clarity, and IBM Plex Mono is reserved for folios, page numbers, and tabular metadata. Section labels appear as small uppercase caption strips. Primary actions receive red fill and arrow notches; secondary actions remain white with black borders. Important numbers sit in framed illustration wells with oversized numerals and short captions.
Moderate, child-readable density: each panel holds one main idea, one action cluster, or one table. Whitespace should feel like margins around a printed spread, with 24px to 48px gutters on desktop and clean stacked panels on mobile.
layout
Desktop uses a 12-column spread grid with max-width 1320px, 24px gutters, and panels spanning 3, 4, 5, or 8 columns to create page-spread rhythm. The hero title occupies a wide left gutter while action panels read across the page.
Breakpoints: 1200px for reducing panel spans, 900px for two-column tablet spreads, 640px for single-column phone layout, and 480px for full-width stacked buttons and simplified table scrolling.
Whitespace behaves like page margins: generous exterior padding, consistent 24px internal panel padding, and deliberate blank areas around headings so the eye can anticipate the next story beat instead of being crowded.
Moderate density with one focal event per panel; tables and controls are compact but framed by large paper margins to preserve the picture-book reading tempo.
12 columns on desktop, 6 columns on tablet, and 1 column on mobile. Right-edge tabs stay visible; tables receive horizontal overflow wrappers; dialog width clamps to the viewport.
guidance
- Build real workflow scenes as sequential spreads with numbered panels and a clear next-page action.
- Use pure white backgrounds, black ink borders, and one red accent for movement, selection, or urgency.
- Place explanatory text in caption bands that visibly interact with nearby images, charts, or controls.
- Use Fraunces for story titles and IBM Plex Sans for all practical interface reading.
- Keep borders square, tactile, and consistent at 2px; use red offset shadows to express printed registration.
- Wrap tables and form groups inside page panels so data feels authored and contextual.
- Maintain accessible contrast and large touch targets, especially for child-readable controls.
- Do not use pastel nursery palettes, rainbow accents, gradient buttons, or decorative cuteness unrelated to sequencing.
- Do not present a component catalog with sections named buttons, inputs, cards, or feedback.
- Do not use rounded card radii; square printed frames are part of the identity.
- Do not cram multiple unrelated dashboards into one spread or break the left-to-right reading path.
- Do not rely on stock photography, glossy glass surfaces, or heavy floating shadows.
- Do not use Poppins, Montserrat, DM Sans, or default browser form styling.
- Do not let mobile layouts require horizontal scrolling except within explicit table wrappers.
katagami spec
# Page-Turn Storyboard ## Philosophy Page-Turn Storyboard translates sequential picture-book visual storytelling into interface design. It treats every screen as a spread: text and image share responsibility, panels imply before and after, and the user advances through carefully paced reveals rather than scanning a generic dashboard. The language borrows from picture-book mechanics, museum-quality children’s book art, and the craft of page turns: generous white paper, framed illustrations, caption bands, running folios, and compositional arrows that guide the eye from setup to consequence. ### Values - Sequential pacing: arrange information as a chain of visible panels so each region feels like a story beat with a beginning, turn, and payoff. - Image-text interdependence: labels, metrics, forms, and captions should complete the meaning of adjacent illustrations or diagrams rather than merely naming them. - Child-readable hierarchy: use large typographic contrasts, clear actions, and tactile controls that can be understood before all text is read. - Museum-book restraint: keep the palette mostly black, white, and one storybook red accent so illustration texture and composition carry the character. - Authored imperfection: include hand-ruled borders, taped captions, stamped page marks, and small registration offsets to evoke printed children’s book production without becoming childish. - Page-turn anticipation: use clipped corner tabs, progress ribbons, and right-edge arrows to make the next action feel like turning a page. ### Anti-Values - Component-catalog neutrality where buttons, cards, forms, and tables are displayed as unrelated specimens. - Pastel nursery decoration, rainbow palettes, bubbly gradients, or cute motifs that reduce children’s book art to sentimentality. - Dense enterprise dashboards that break the spread metaphor with too many simultaneous focal points. - Photorealistic skeuomorphism or heavy shadows that overwhelm flat printed-paper storytelling. ### Visual Character - Every major container uses a 2px hand-ruled black border with a slightly offset red shadow line, creating the feel of ink registration on printed picture-book spreads. - Content is divided into sequential numbered panels with visible folio circles and right-edge page-turn tabs so the layout reads left-to-right as a narrative sequence. - Illustration wells use flat black line-art shapes, stippled paper texture, and caption bands that overlap the image frame by 12px like pasted story labels. - Primary actions and progress cues use a single storybook red accent as arrows, ribbons, and underlines, never as gradients or decorative rainbow color. - Headings use a warm children’s-book serif at large scale while all interface text stays tightly letter-spaced and readable, making typography feel authored rather than generic. ## Tokens ### Colors | Name | Value | |------|-------| | primary | `#000000` | | secondary | `#FFFFFF` | | accent | `#D8281F` | | background | `#FFFFFF` | | surface | `#FFFFFF` | | text | `#000000` | | muted | `#5F5F5F` | | border | `#000000` | | error | `#B42318` | | success | `#207A3A` | | warning | `#A15C00` | | info | `#1F5D9A` | ### Typography - **Heading Font**: Fraunces - **Body Font**: IBM Plex Sans - **Mono Font**: IBM Plex Mono - **Base Size**: 16px - **Scale Ratio**: 1.25 - **Line Height**: 1.5 - **Letter Spacing**: -0.02em - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700;9..144,800&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96] ### Radii - **None**: 0px - **Sm**: 0px - **Md**: 0px - **Lg**: 0px - **Full**: 9999px ### Shadows - **Sm**: 3px 3px 0 #D8281F - **Md**: 6px 6px 0 #D8281F - **Lg**: 10px 10px 0 rgba(216,40,31,0.85) ### Surfaces - **Treatment**: paper - **Card Style**: Pure white paper panels with black ink borders, red offset registration shadows, and faint stippled dot texture. - **Bg Pattern**: dots ### Borders - **Default Width**: 2px - **Accent Width**: 4px - **Style**: solid - **Character**: Hand-ruled picture-book frames: square corners, black ink outlines, red offset rule used as a printing-registration echo. ### Motion - **Duration**: 180ms - **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1) - **Philosophy**: snappy ## Rules ### Composition Use a spread-like composition with a wide title gutter, a sequence of three to five panels, and a rightward reading path. Keep the background pure white. Place data, forms, alerts, and navigation inside story panels that feel like pages rather than floating cards. The most important action belongs on the right edge as the implied page turn. Use black line-art dividers and red arrows to direct the eye, never gradient emphasis. ### Hierarchy Large Fraunces display headings establish the story title, IBM Plex Sans labels carry interface clarity, and IBM Plex Mono is reserved for folios, page numbers, and tabular metadata. Section labels appear as small uppercase caption strips. Primary actions receive red fill and arrow notches; secondary actions remain white with black borders. Important numbers sit in framed illustration wells with oversized numerals and short captions. ### Density Moderate, child-readable density: each panel holds one main idea, one action cluster, or one table. Whitespace should feel like margins around a printed spread, with 24px to 48px gutters on desktop and clean stacked panels on mobile. ### Signature Patterns - Apply a red offset registration shadow to every card, modal, table shell, and main button using box-shadow values like 6px 6px 0 #D8281F. - Give each narrative panel a circular folio badge positioned across the top-left border and a small right-edge tab made with a clipped polygon. - Use overlapping caption bands that sit 12px across illustration wells and form sections, with uppercase mono labels and thick black underlines. - Create simple flat line-art illustration wells with CSS shapes, dotted paper texture, and no photographic imagery, making UI content feel drawn into a picture-book page. - Style primary buttons and progress indicators with a red arrow-notch clip-path so movement through the interface resembles a page turn. ## Layout ### Grid Desktop uses a 12-column spread grid with max-width 1320px, 24px gutters, and panels spanning 3, 4, 5, or 8 columns to create page-spread rhythm. The hero title occupies a wide left gutter while action panels read across the page. ### Breakpoints Breakpoints: 1200px for reducing panel spans, 900px for two-column tablet spreads, 640px for single-column phone layout, and 480px for full-width stacked buttons and simplified table scrolling. ### Whitespace Whitespace behaves like page margins: generous exterior padding, consistent 24px internal panel padding, and deliberate blank areas around headings so the eye can anticipate the next story beat instead of being crowded. ### Density Moderate density with one focal event per panel; tables and controls are compact but framed by large paper margins to preserve the picture-book reading tempo. ### Responsive 12 columns on desktop, 6 columns on tablet, and 1 column on mobile. Right-edge tabs stay visible; tables receive horizontal overflow wrappers; dialog width clamps to the viewport. ## Guidance ### Do - Build real workflow scenes as sequential spreads with numbered panels and a clear next-page action. - Use pure white backgrounds, black ink borders, and one red accent for movement, selection, or urgency. - Place explanatory text in caption bands that visibly interact with nearby images, charts, or controls. - Use Fraunces for story titles and IBM Plex Sans for all practical interface reading. - Keep borders square, tactile, and consistent at 2px; use red offset shadows to express printed registration. - Wrap tables and form groups inside page panels so data feels authored and contextual. - Maintain accessible contrast and large touch targets, especially for child-readable controls. ### Don't - Do not use pastel nursery palettes, rainbow accents, gradient buttons, or decorative cuteness unrelated to sequencing. - Do not present a component catalog with sections named buttons, inputs, cards, or feedback. - Do not use rounded card radii; square printed frames are part of the identity. - Do not cram multiple unrelated dashboards into one spread or break the left-to-right reading path. - Do not rely on stock photography, glossy glass surfaces, or heavy floating shadows. - Do not use Poppins, Montserrat, DM Sans, or default browser form styling. - Do not let mobile layouts require horizontal scrolling except within explicit table wrappers. ### Usage Context Best for education tools, reading trackers, museum-family programming, publishing workflows, classroom planning, children’s media production, and any product that benefits from paced comprehension rather than high-density scanning. ### Accessibility The high-contrast black, white, and red palette must be supported by labels and shapes, not color alone. Touch targets should be at least 44px, focus states must use visible black and red outlines, and caption text must remain readable at mobile sizes.
DESIGN.md
---
version: "alpha"
name: "Page-Turn Storyboard"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
primary: "#000000"
secondary: "#FFFFFF"
accent: "#D8281F"
background: "#FFFFFF"
surface: "#FFFFFF"
text: "#000000"
muted: "#5F5F5F"
border: "#000000"
error: "#B42318"
success: "#207A3A"
warning: "#A15C00"
info: "#1F5D9A"
typography:
headline-lg:
fontFamily: "Fraunces"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Fraunces"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "IBM Plex Sans"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "0px"
md: "0px"
lg: "0px"
full: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
components:
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-info:
backgroundColor: "{colors.info}"
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"
---
# Page-Turn Storyboard
## Overview
Page-Turn Storyboard translates sequential picture-book visual storytelling into interface design. It treats every screen as a spread: text and image share responsibility, panels imply before and after, and the user advances through carefully paced reveals rather than scanning a generic dashboard. The language borrows from picture-book mechanics, museum-quality children’s book art, and the craft of page turns: generous white paper, framed illustrations, caption bands, running folios, and compositional arrows that guide the eye from setup to consequence.
### Values
- Sequential pacing: arrange information as a chain of visible panels so each region feels like a story beat with a beginning, turn, and payoff.
- Image-text interdependence: labels, metrics, forms, and captions should complete the meaning of adjacent illustrations or diagrams rather than merely naming them.
- Child-readable hierarchy: use large typographic contrasts, clear actions, and tactile controls that can be understood before all text is read.
- Museum-book restraint: keep the palette mostly black, white, and one storybook red accent so illustration texture and composition carry the character.
- Authored imperfection: include hand-ruled borders, taped captions, stamped page marks, and small registration offsets to evoke printed children’s book production without becoming childish.
- Page-turn anticipation: use clipped corner tabs, progress ribbons, and right-edge arrows to make the next action feel like turning a page.
### Anti-Values
- Component-catalog neutrality where buttons, cards, forms, and tables are displayed as unrelated specimens.
- Pastel nursery decoration, rainbow palettes, bubbly gradients, or cute motifs that reduce children’s book art to sentimentality.
- Dense enterprise dashboards that break the spread metaphor with too many simultaneous focal points.
- Photorealistic skeuomorphism or heavy shadows that overwhelm flat printed-paper storytelling.
### Visual Character
- Every major container uses a 2px hand-ruled black border with a slightly offset red shadow line, creating the feel of ink registration on printed picture-book spreads.
- Content is divided into sequential numbered panels with visible folio circles and right-edge page-turn tabs so the layout reads left-to-right as a narrative sequence.
- Illustration wells use flat black line-art shapes, stippled paper texture, and caption bands that overlap the image frame by 12px like pasted story labels.
- Primary actions and progress cues use a single storybook red accent as arrows, ribbons, and underlines, never as gradients or decorative rainbow color.
- Headings use a warm children’s-book serif at large scale while all interface text stays tightly letter-spaced and readable, making typography feel authored rather than generic.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| primary | `#000000` |
| secondary | `#FFFFFF` |
| accent | `#D8281F` |
| background | `#FFFFFF` |
| surface | `#FFFFFF` |
| text | `#000000` |
| muted | `#5F5F5F` |
| border | `#000000` |
| error | `#B42318` |
| success | `#207A3A` |
| warning | `#A15C00` |
| info | `#1F5D9A` |
## Typography
- **Headline-Lg**: Fraunces, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Fraunces, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.5.
- **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**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`
### Grid
Desktop uses a 12-column spread grid with max-width 1320px, 24px gutters, and panels spanning 3, 4, 5, or 8 columns to create page-spread rhythm. The hero title occupies a wide left gutter while action panels read across the page.
### Breakpoints
Breakpoints: 1200px for reducing panel spans, 900px for two-column tablet spreads, 640px for single-column phone layout, and 480px for full-width stacked buttons and simplified table scrolling.
### Whitespace
Whitespace behaves like page margins: generous exterior padding, consistent 24px internal panel padding, and deliberate blank areas around headings so the eye can anticipate the next story beat instead of being crowded.
### Density
Moderate density with one focal event per panel; tables and controls are compact but framed by large paper margins to preserve the picture-book reading tempo.
### Responsive
12 columns on desktop, 6 columns on tablet, and 1 column on mobile. Right-edge tabs stay visible; tables receive horizontal overflow wrappers; dialog width clamps to the viewport.
## Elevation & Depth
### Shadows
- **Sm**: 3px 3px 0 #D8281F
- **Md**: 6px 6px 0 #D8281F
- **Lg**: 10px 10px 0 rgba(216,40,31,0.85)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `0px`
- **Md**: `0px`
- **Lg**: `0px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: paper
- **Card Style**: Pure white paper panels with black ink borders, red offset registration shadows, and faint stippled dot texture.
- **Bg Pattern**: dots
### Borders
- **Default Width**: 2px
- **Accent Width**: 4px
- **Style**: solid
- **Character**: Hand-ruled picture-book frames: square corners, black ink outlines, red offset rule used as a printing-registration echo.
## Components
### Composition
Use a spread-like composition with a wide title gutter, a sequence of three to five panels, and a rightward reading path. Keep the background pure white. Place data, forms, alerts, and navigation inside story panels that feel like pages rather than floating cards. The most important action belongs on the right edge as the implied page turn. Use black line-art dividers and red arrows to direct the eye, never gradient emphasis.
### Hierarchy
Large Fraunces display headings establish the story title, IBM Plex Sans labels carry interface clarity, and IBM Plex Mono is reserved for folios, page numbers, and tabular metadata. Section labels appear as small uppercase caption strips. Primary actions receive red fill and arrow notches; secondary actions remain white with black borders. Important numbers sit in framed illustration wells with oversized numerals and short captions.
### Density
Moderate, child-readable density: each panel holds one main idea, one action cluster, or one table. Whitespace should feel like margins around a printed spread, with 24px to 48px gutters on desktop and clean stacked panels on mobile.
### Signature Patterns
- Apply a red offset registration shadow to every card, modal, table shell, and main button using box-shadow values like 6px 6px 0 #D8281F.
- Give each narrative panel a circular folio badge positioned across the top-left border and a small right-edge tab made with a clipped polygon.
- Use overlapping caption bands that sit 12px across illustration wells and form sections, with uppercase mono labels and thick black underlines.
- Create simple flat line-art illustration wells with CSS shapes, dotted paper texture, and no photographic imagery, making UI content feel drawn into a picture-book page.
- Style primary buttons and progress indicators with a red arrow-notch clip-path so movement through the interface resembles a page turn.
## 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/page-turn-storyboard/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 Build real workflow scenes as sequential spreads with numbered panels and a clear next-page action.
- Do Use pure white backgrounds, black ink borders, and one red accent for movement, selection, or urgency.
- Do Place explanatory text in caption bands that visibly interact with nearby images, charts, or controls.
- Do Use Fraunces for story titles and IBM Plex Sans for all practical interface reading.
- Do Keep borders square, tactile, and consistent at 2px; use red offset shadows to express printed registration.
- Do Wrap tables and form groups inside page panels so data feels authored and contextual.
- Do Maintain accessible contrast and large touch targets, especially for child-readable controls.
- Don't Do not use pastel nursery palettes, rainbow accents, gradient buttons, or decorative cuteness unrelated to sequencing.
- Don't Do not present a component catalog with sections named buttons, inputs, cards, or feedback.
- Don't Do not use rounded card radii; square printed frames are part of the identity.
- Don't Do not cram multiple unrelated dashboards into one spread or break the left-to-right reading path.
- Don't Do not rely on stock photography, glossy glass surfaces, or heavy floating shadows.
- Don't Do not use Poppins, Montserrat, DM Sans, or default browser form styling.
- Don't Do not let mobile layouts require horizontal scrolling except within explicit table wrappers.
### Usage Context
Best for education tools, reading trackers, museum-family programming, publishing workflows, classroom planning, children’s media production, and any product that benefits from paced comprehension rather than high-density scanning.
### Accessibility
The high-contrast black, white, and red palette must be supported by labels and shapes, not color alone. Touch targets should be at least 44px, focus states must use visible black and red outlines, and caption text must remain readable at mobile sizes.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "page-turn-storyboard",
"type": "registry:theme",
"title": "Page-Turn Storyboard shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#FFFFFF",
"foreground": "#000000",
"card": "#FFFFFF",
"card-foreground": "#000000",
"popover": "#FFFFFF",
"popover-foreground": "#000000",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#FFFFFF",
"secondary-foreground": "#111111",
"muted": "#5F5F5F",
"muted-foreground": "#000000",
"accent": "#D8281F",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#000000",
"input": "#000000",
"ring": "#D8281F",
"chart-1": "#000000",
"chart-2": "#FFFFFF",
"chart-3": "#D8281F",
"chart-4": "#207A3A",
"chart-5": "#A15C00",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#000000",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#1F5D9A",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#000000",
"sidebar-ring": "#D8281F",
"radius": "0px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#D8281F",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#303642",
"input": "#303642",
"ring": "#D8281F",
"chart-1": "#000000",
"chart-2": "#FFFFFF",
"chart-3": "#D8281F",
"chart-4": "#207A3A",
"chart-5": "#A15C00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#D8281F",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#D8281F",
"radius": "0px"
}
},
"meta": {
"source": "katagami",
"languageId": "page-turn-storyboard",
"slug": "page-turn-storyboard",
"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": {
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"spacing": [
"base",
"scale"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-896px
Shape
implementation kit
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
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #FFFFFF;
--foreground: #000000;
--card: #FFFFFF;
--card-foreground: #000000;
--popover: #FFFFFF;
--popover-foreground: #000000;
--primary: #000000;
--primary-foreground: #ffffff;
--secondary: #FFFFFF;
--secondary-foreground: #111111;
--muted: #5F5F5F;
--muted-foreground: #000000;
--accent: #D8281F;
--accent-foreground: #ffffff;
--destructive: #B42318;
--border: #000000;
--input: #000000;
--ring: #D8281F;
--chart-1: #000000;
--chart-2: #FFFFFF;
--chart-3: #D8281F;
--chart-4: #207A3A;
--chart-5: #A15C00;
--sidebar: #FFFFFF;
--sidebar-foreground: #000000;
--sidebar-primary: #000000;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #1F5D9A;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #000000;
--sidebar-ring: #D8281F;
--radius: 0px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #000000;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #D8281F;
--accent-foreground: #ffffff;
--destructive: #B42318;
--border: #303642;
--input: #303642;
--ring: #D8281F;
--chart-1: #000000;
--chart-2: #FFFFFF;
--chart-3: #D8281F;
--chart-4: #207A3A;
--chart-5: #A15C00;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #000000;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #D8281F;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #D8281F;
--radius: 0px;
}
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 PageTurnStoryboardShadcnKit() {
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">Page-Turn Storyboard</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "page-turn-storyboard",
"type": "registry:theme",
"title": "Page-Turn Storyboard shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#FFFFFF",
"foreground": "#000000",
"card": "#FFFFFF",
"card-foreground": "#000000",
"popover": "#FFFFFF",
"popover-foreground": "#000000",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#FFFFFF",
"secondary-foreground": "#111111",
"muted": "#5F5F5F",
"muted-foreground": "#000000",
"accent": "#D8281F",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#000000",
"input": "#000000",
"ring": "#D8281F",
"chart-1": "#000000",
"chart-2": "#FFFFFF",
"chart-3": "#D8281F",
"chart-4": "#207A3A",
"chart-5": "#A15C00",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#000000",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#1F5D9A",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#000000",
"sidebar-ring": "#D8281F",
"radius": "0px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#D8281F",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#303642",
"input": "#303642",
"ring": "#D8281F",
"chart-1": "#000000",
"chart-2": "#FFFFFF",
"chart-3": "#D8281F",
"chart-4": "#207A3A",
"chart-5": "#A15C00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#D8281F",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#D8281F",
"radius": "0px"
}
},
"meta": {
"source": "katagami",
"languageId": "page-turn-storyboard",
"slug": "page-turn-storyboard",
"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": {
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"spacing": [
"base",
"scale"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
# Page-Turn Storyboard shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `page-turn-storyboard`
Slug: `page-turn-storyboard`
## Intent
Page-Turn Storyboard translates sequential picture-book visual storytelling into interface design. It treats every screen as a spread: text and image share responsibility, panels imply before and after, and the user advances through carefully paced reveals rather than scanning a generic dashboard. The language borrows from picture-book mechanics, museum-quality children’s book art, and the craft of page turns: generous white paper, framed illustrations, caption bands, running folios, and compositional arrows that guide the eye from setup to consequence.
## 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:
{
"primary": "#000000",
"secondary": "#FFFFFF",
"accent": "#D8281F",
"background": "#FFFFFF",
"surface": "#FFFFFF",
"text": "#000000",
"muted": "#5F5F5F",
"border": "#000000",
"error": "#B42318",
"success": "#207A3A",
"warning": "#A15C00",
"info": "#1F5D9A"
}
Typography:
{
"heading_font": "Fraunces",
"body_font": "IBM Plex Sans",
"mono_font": "IBM Plex Mono",
"base_size": "16px",
"scale_ratio": 1.25,
"line_height": 1.5,
"letter_spacing": "-0.02em",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700;9..144,800&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap"
}
## Visual character to preserve
- Every major container uses a 2px hand-ruled black border with a slightly offset red shadow line, creating the feel of ink registration on printed picture-book spreads.
- Content is divided into sequential numbered panels with visible folio circles and right-edge page-turn tabs so the layout reads left-to-right as a narrative sequence.
- Illustration wells use flat black line-art shapes, stippled paper texture, and caption bands that overlap the image frame by 12px like pasted story labels.
- Primary actions and progress cues use a single storybook red accent as arrows, ribbons, and underlines, never as gradients or decorative rainbow color.
- Headings use a warm children’s-book serif at large scale while all interface text stays tightly letter-spaced and readable, making typography feel authored rather than generic.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": true,
"stickerBadges": true,
"motion": "still",
"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/page-turn-storyboard/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: Build real workflow scenes as sequential spreads with numbered panels and a clear next-page action.; Use pure white backgrounds, black ink borders, and one red accent for movement, selection, or urgency.; Place explanatory text in caption bands that visibly interact with nearby images, charts, or controls.; Use Fraunces for story titles and IBM Plex Sans for all practical interface reading.; Keep borders square, tactile, and consistent at 2px; use red offset shadows to express printed registration.; Wrap tables and form groups inside page panels so data feels authored and contextual.; Maintain accessible contrast and large touch targets, especially for child-readable controls.
- Do not: Do not use pastel nursery palettes, rainbow accents, gradient buttons, or decorative cuteness unrelated to sequencing.; Do not present a component catalog with sections named buttons, inputs, cards, or feedback.; Do not use rounded card radii; square printed frames are part of the identity.; Do not cram multiple unrelated dashboards into one spread or break the left-to-right reading path.; Do not rely on stock photography, glossy glass surfaces, or heavy floating shadows.; Do not use Poppins, Montserrat, DM Sans, or default browser form styling.; Do not let mobile layouts require horizontal scrolling except within explicit table wrappers.
## 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 PageTurnStoryboardShadcnKit() {
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">Page-Turn Storyboard</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
{
"grid": "Desktop uses a 12-column spread grid with max-width 1320px, 24px gutters, and panels spanning 3, 4, 5, or 8 columns to create page-spread rhythm. The hero title occupies a wide left gutter while action panels read across the page.",
"breakpoints": "Breakpoints: 1200px for reducing panel spans, 900px for two-column tablet spreads, 640px for single-column phone layout, and 480px for full-width stacked buttons and simplified table scrolling.",
"whitespace": "Whitespace behaves like page margins: generous exterior padding, consistent 24px internal panel padding, and deliberate blank areas around headings so the eye can anticipate the next story beat instead of being crowded.",
"density": "Moderate density with one focal event per panel; tables and controls are compact but framed by large paper margins to preserve the picture-book reading tempo.",
"responsive": "12 columns on desktop, 6 columns on tablet, and 1 column on mobile. Right-edge tabs stay visible; tables receive horizontal overflow wrappers; dialog width clamps to the viewport."
}
{
"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": "page-turn-storyboard",
"name": "Page-Turn Storyboard",
"slug": "page-turn-storyboard"
},
"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": [
"Every major container uses a 2px hand-ruled black border with a slightly offset red shadow line, creating the feel of ink registration on printed picture-book spreads.",
"Content is divided into sequential numbered panels with visible folio circles and right-edge page-turn tabs so the layout reads left-to-right as a narrative sequence.",
"Illustration wells use flat black line-art shapes, stippled paper texture, and caption bands that overlap the image frame by 12px like pasted story labels.",
"Primary actions and progress cues use a single storybook red accent as arrows, ribbons, and underlines, never as gradients or decorative rainbow color.",
"Headings use a warm children’s-book serif at large scale while all interface text stays tightly letter-spaced and readable, making typography feel authored rather than generic."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": true,
"stickerBadges": true,
"motion": "still",
"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": "Page-Turn Storyboard 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": [
"Build real workflow scenes as sequential spreads with numbered panels and a clear next-page action.",
"Use pure white backgrounds, black ink borders, and one red accent for movement, selection, or urgency.",
"Place explanatory text in caption bands that visibly interact with nearby images, charts, or controls.",
"Use Fraunces for story titles and IBM Plex Sans for all practical interface reading.",
"Keep borders square, tactile, and consistent at 2px; use red offset shadows to express printed registration.",
"Wrap tables and form groups inside page panels so data feels authored and contextual.",
"Maintain accessible contrast and large touch targets, especially for child-readable controls."
],
"dont": [
"Do not use pastel nursery palettes, rainbow accents, gradient buttons, or decorative cuteness unrelated to sequencing.",
"Do not present a component catalog with sections named buttons, inputs, cards, or feedback.",
"Do not use rounded card radii; square printed frames are part of the identity.",
"Do not cram multiple unrelated dashboards into one spread or break the left-to-right reading path.",
"Do not rely on stock photography, glossy glass surfaces, or heavy floating shadows.",
"Do not use Poppins, Montserrat, DM Sans, or default browser form styling.",
"Do not let mobile layouts require horizontal scrolling except within explicit table wrappers."
]
}
}