back to gallery
design language·storybook-pagebeat

Storybook Pagebeat

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md source of truth for most agents and apps.

the spec

specification

philosophy
summary
Storybook Pagebeat is a modern picture-book visual language for interfaces that need to feel readable, warm, and sequential for young children and the adults reading with them. It treats the screen like a spread from a contemporary storybook: cream paper, generous pauses, friendly character silhouettes, warm primary cues, and hand-touched gouache and crayon marks that guide attention without clutter. The language is built for early literacy contexts where comprehension matters as much as delight. Every scene should be understandable at a glance, invite read-aloud rhythm, and make the next action feel like turning a page rather than operating software.
values
page-turn rhythm that makes information unfold in small readable beatsrecognizable character-led wayfinding for young readerssoft high-clarity contrast that avoids both glare and mushinesshandmade texture used as a comprehension aid rather than decorationlarge silhouettes and generous whitespace for pre-literate scanningplayful typography that remains legible during read-aloud useage-appropriate complexity with one primary focus per view
anti-values
×dense dashboards with many equal-weight controls×slick tech gradients that erase the storybook material quality×tiny icon-only interactions that require adult interpretation×overstimulating rainbow palettes without narrative hierarchy
tokens
colors12 items
primary
#E94B3C
secondary
#2F80ED
accent
#F6C443
background
#FFF6E3
surface
#FFFFFF
text
#34251D
muted
#7E6657
border
#5B3B2E
error
#C83A32
success
#4B9B63
warning
#F29E38
info
#4AA3C7
typography8 items
heading font
Baloo 2
body font
Atkinson Hyperlegible
mono font
Space Mono
base size
18px
scale ratio
1.22
line height
1.55
letter spacing
-0.02em
google fonts url
https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Baloo+2:wght@600;700;800&family=Space+Mono:wght@400;700&display=swap
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 80, 104
radii5 items
none
0
sm
16px
md
24px
lg
32px
full
9999px
shadows3 items
sm
0 3px 0 #5B3B2E
md
0 8px 0 rgba(91,59,46,0.22)
lg
0 18px 36px rgba(91,59,46,0.20)
surfaces3 items
treatment
warm cream paper with radial crayon speckles and transparent gouache washes
card style
white or pastel panels with thick brown ink border, offset color shadow, and mild rotate transform
bg pattern
low-contrast dotted reading trail and scattered crayon hatch marks
borders4 items
default width
3px
accent width
5px
style
solid
character
warm brown storybook ink with slightly rounded joins and occasional offset underline strokes
motion3 items
duration
220ms
easing
cubic-bezier(.2,.8,.2,1)
philosophy
motion should feel like a paper tab lifting or a page nudging forward; use small translate and rotate, never slippery app-like movement
rules
composition
Build every screen as a two-page spread: a narrative focus panel, a supporting action column, and a visible next-page cue. Keep one dominant character or prop silhouette per section. Use diagonals only as tiny paper tilts, not dynamic chaos. Keep primary actions at child-hand scale. Alternate cream whitespace with colored story panels so the eye pauses between beats. Do not let more than three saturated colors compete in one region.
hierarchy
Headlines use Baloo 2 in large rounded forms for read-aloud emphasis; body uses Atkinson Hyperlegible for adult and emerging-reader clarity; labels may use Space Mono sparingly as page numbers or library tags. The largest illustrated card must carry the page thesis, the next strongest element is the action button, and supporting notes sit in bordered cream chips.
density
Low-to-medium density with generous breathing room. Young readers should see a scene, a few choices, and a path forward; secondary information is tucked into small sticker notes rather than grids.
signature patterns
Offset story-card construction: bordered panels receive a colored shadow block displaced down and right, making each module feel like layered cut paper.Dotted reading trails connect page beats and controls with small circular markers, establishing sequential rhythm without arrows everywhere.Character medallions combine simple circular faces, ear shapes, and prop silhouettes as CSS shapes to provide recognizable nonverbal anchors.Crayon-gouache texture is created with layered radial gradients and short hatch strokes clipped to panels, visible but subtle behind content.Page-turn controls use scalloped tab edges and oversized rounded buttons that lift with a tiny rotate and translate motion on hover.
layout
density

Low-to-medium density chosen for child comprehension: each viewport should expose one main story beat, one supporting cluster, and one clear next action.

grid
Desktop uses a 12-column max-width 1180px spread with 24px gutters; tablet collapses to 6 columns; mobile becomes a single page column with the action tab following the story panel.
breakpoints
mobile
0-639px single-column story stack
tablet
640-959px six-column stacked spread
desktop
960px+ twelve-column two-page spread
whitespace

Use cream margins of at least 24px mobile, 40px tablet, and 64px desktop; separate story beats with 32-64px pauses so the layout breathes like page turns.

responsive
Preserve the sequence of reading beats on smaller screens: hero, trail, choices, read-aloud note, progress. Cards may stack but should keep their border, offset shadow, and medallion anchors.
guidance
do
  • Use one friendly character or prop silhouette to anchor every major scene.
  • Keep copy short, rhythmic, and readable aloud.
  • Reserve saturated red, blue, and yellow for priority cues and story objects.
  • Apply crayon texture subtly to backgrounds and panels rather than over text.
  • Make buttons large, rounded, and labeled with action verbs.
  • Show sequence through numbered beats, page tabs, or dotted trails.
  • Keep silhouettes clear enough to understand without reading labels.
avoid
  • Do not use dense tables, equal-weight widgets, or admin-dashboard metaphors.
  • Do not place textured overlays directly on long body text.
  • Do not rely on icon-only controls for core actions.
  • Do not use neon color or glossy glass effects.
  • Do not introduce more than one decorative type style.
  • Do not shrink touch targets below child-friendly scale.
  • Do not make every card tilted; use rotation as a handmade accent.
katagami spec
# Storybook Pagebeat

## Philosophy

Storybook Pagebeat is a modern picture-book visual language for interfaces that need to feel readable, warm, and sequential for young children and the adults reading with them. It treats the screen like a spread from a contemporary storybook: cream paper, generous pauses, friendly character silhouettes, warm primary cues, and hand-touched gouache and crayon marks that guide attention without clutter. The language is built for early literacy contexts where comprehension matters as much as delight. Every scene should be understandable at a glance, invite read-aloud rhythm, and make the next action feel like turning a page rather than operating software.

### Values

- page-turn rhythm that makes information unfold in small readable beats
- recognizable character-led wayfinding for young readers
- soft high-clarity contrast that avoids both glare and mushiness
- handmade texture used as a comprehension aid rather than decoration
- large silhouettes and generous whitespace for pre-literate scanning
- playful typography that remains legible during read-aloud use
- age-appropriate complexity with one primary focus per view

### Anti-Values

- dense dashboards with many equal-weight controls
- slick tech gradients that erase the storybook material quality
- tiny icon-only interactions that require adult interpretation
- overstimulating rainbow palettes without narrative hierarchy

### Visual Character

- Cream paper background with faint crayon-grain overlays and wide page margins that make each section feel like a picture-book spread.
- Rounded gouache color panels sit slightly askew with thick warm ink outlines so content reads as cut-paper story pieces.
- Large character medallions and simple prop silhouettes anchor navigation, using friendly shapes before text-heavy explanation.
- Sequential page tabs, dotted reading trails, and numbered beat markers create an obvious left-to-right read-aloud rhythm.
- Typography pairs a bouncy rounded display face with a clear schoolbook body face, both tightly tracked for polished readability.

## Tokens

### Colors

| Name | Value |
|------|-------|
| primary | `#E94B3C` |
| secondary | `#2F80ED` |
| accent | `#F6C443` |
| background | `#FFF6E3` |
| surface | `#FFFFFF` |
| text | `#34251D` |
| muted | `#7E6657` |
| border | `#5B3B2E` |
| error | `#C83A32` |
| success | `#4B9B63` |
| warning | `#F29E38` |
| info | `#4AA3C7` |

### Typography

- **Heading Font**: Baloo 2
- **Body Font**: Atkinson Hyperlegible
- **Mono Font**: Space Mono
- **Base Size**: 18px
- **Scale Ratio**: 1.22
- **Line Height**: 1.55
- **Letter Spacing**: -0.02em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Baloo+2:wght@600;700;800&family=Space+Mono:wght@400;700&display=swap

### Spacing

- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64,80,104]

### Radii

- **None**: 0
- **Sm**: 16px
- **Md**: 24px
- **Lg**: 32px
- **Full**: 9999px

### Shadows

- **Sm**: 0 3px 0 #5B3B2E
- **Md**: 0 8px 0 rgba(91,59,46,0.22)
- **Lg**: 0 18px 36px rgba(91,59,46,0.20)

### Surfaces

- **Treatment**: warm cream paper with radial crayon speckles and transparent gouache washes
- **Card Style**: white or pastel panels with thick brown ink border, offset color shadow, and mild rotate transform
- **Bg Pattern**: low-contrast dotted reading trail and scattered crayon hatch marks

### Borders

- **Default Width**: 3px
- **Accent Width**: 5px
- **Style**: solid
- **Character**: warm brown storybook ink with slightly rounded joins and occasional offset underline strokes

### Motion

- **Duration**: 220ms
- **Easing**: cubic-bezier(.2,.8,.2,1)
- **Philosophy**: motion should feel like a paper tab lifting or a page nudging forward; use small translate and rotate, never slippery app-like movement

## Rules

### Composition

Build every screen as a two-page spread: a narrative focus panel, a supporting action column, and a visible next-page cue. Keep one dominant character or prop silhouette per section. Use diagonals only as tiny paper tilts, not dynamic chaos. Keep primary actions at child-hand scale. Alternate cream whitespace with colored story panels so the eye pauses between beats. Do not let more than three saturated colors compete in one region.

### Hierarchy

Headlines use Baloo 2 in large rounded forms for read-aloud emphasis; body uses Atkinson Hyperlegible for adult and emerging-reader clarity; labels may use Space Mono sparingly as page numbers or library tags. The largest illustrated card must carry the page thesis, the next strongest element is the action button, and supporting notes sit in bordered cream chips.

### Density

Low-to-medium density with generous breathing room. Young readers should see a scene, a few choices, and a path forward; secondary information is tucked into small sticker notes rather than grids.

### Signature Patterns

- Offset story-card construction: bordered panels receive a colored shadow block displaced down and right, making each module feel like layered cut paper.
- Dotted reading trails connect page beats and controls with small circular markers, establishing sequential rhythm without arrows everywhere.
- Character medallions combine simple circular faces, ear shapes, and prop silhouettes as CSS shapes to provide recognizable nonverbal anchors.
- Crayon-gouache texture is created with layered radial gradients and short hatch strokes clipped to panels, visible but subtle behind content.
- Page-turn controls use scalloped tab edges and oversized rounded buttons that lift with a tiny rotate and translate motion on hover.

## Layout

### Density

Low-to-medium density chosen for child comprehension: each viewport should expose one main story beat, one supporting cluster, and one clear next action.

### Grid

Desktop uses a 12-column max-width 1180px spread with 24px gutters; tablet collapses to 6 columns; mobile becomes a single page column with the action tab following the story panel.

### Breakpoints

- **Mobile**: 0-639px single-column story stack
- **Tablet**: 640-959px six-column stacked spread
- **Desktop**: 960px+ twelve-column two-page spread

### Whitespace

Use cream margins of at least 24px mobile, 40px tablet, and 64px desktop; separate story beats with 32-64px pauses so the layout breathes like page turns.

### Responsive

Preserve the sequence of reading beats on smaller screens: hero, trail, choices, read-aloud note, progress. Cards may stack but should keep their border, offset shadow, and medallion anchors.

## Guidance

### Do

- Use one friendly character or prop silhouette to anchor every major scene.
- Keep copy short, rhythmic, and readable aloud.
- Reserve saturated red, blue, and yellow for priority cues and story objects.
- Apply crayon texture subtly to backgrounds and panels rather than over text.
- Make buttons large, rounded, and labeled with action verbs.
- Show sequence through numbered beats, page tabs, or dotted trails.
- Keep silhouettes clear enough to understand without reading labels.

### Don't

- Do not use dense tables, equal-weight widgets, or admin-dashboard metaphors.
- Do not place textured overlays directly on long body text.
- Do not rely on icon-only controls for core actions.
- Do not use neon color or glossy glass effects.
- Do not introduce more than one decorative type style.
- Do not shrink touch targets below child-friendly scale.
- Do not make every card tilted; use rotation as a handmade accent.

### Usage Context

Best for children’s picture-book discovery, early literacy tools, read-aloud companions, classroom story stations, family library apps, and playful onboarding for young audiences.

### Accessibility

Maintain WCAG AA contrast on text, keep body text at 18px or larger, pair every silhouette with text, avoid flashing motion, and preserve logical reading order across breakpoints.
DESIGN.md
---
version: "alpha"
name: "Storybook Pagebeat"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  primary: "#E94B3C"
  secondary: "#2F80ED"
  accent: "#F6C443"
  background: "#FFF6E3"
  surface: "#FFFFFF"
  text: "#34251D"
  muted: "#7E6657"
  border: "#5B3B2E"
  error: "#C83A32"
  success: "#4B9B63"
  warning: "#F29E38"
  info: "#4AA3C7"
typography:
  headline-lg:
    fontFamily: "Baloo 2"
    fontSize: "2.043rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Baloo 2"
    fontSize: "1.674rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Atkinson Hyperlegible"
    fontSize: "18px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Space Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "16px"
  md: "24px"
  lg: "32px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "80px"
  step-9: "104px"
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: "#000000"
    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"
---

# Storybook Pagebeat

## Overview

Storybook Pagebeat is a modern picture-book visual language for interfaces that need to feel readable, warm, and sequential for young children and the adults reading with them. It treats the screen like a spread from a contemporary storybook: cream paper, generous pauses, friendly character silhouettes, warm primary cues, and hand-touched gouache and crayon marks that guide attention without clutter. The language is built for early literacy contexts where comprehension matters as much as delight. Every scene should be understandable at a glance, invite read-aloud rhythm, and make the next action feel like turning a page rather than operating software.

### Values

- page-turn rhythm that makes information unfold in small readable beats
- recognizable character-led wayfinding for young readers
- soft high-clarity contrast that avoids both glare and mushiness
- handmade texture used as a comprehension aid rather than decoration
- large silhouettes and generous whitespace for pre-literate scanning
- playful typography that remains legible during read-aloud use
- age-appropriate complexity with one primary focus per view

### Anti-Values

- dense dashboards with many equal-weight controls
- slick tech gradients that erase the storybook material quality
- tiny icon-only interactions that require adult interpretation
- overstimulating rainbow palettes without narrative hierarchy

### Visual Character

- Cream paper background with faint crayon-grain overlays and wide page margins that make each section feel like a picture-book spread.
- Rounded gouache color panels sit slightly askew with thick warm ink outlines so content reads as cut-paper story pieces.
- Large character medallions and simple prop silhouettes anchor navigation, using friendly shapes before text-heavy explanation.
- Sequential page tabs, dotted reading trails, and numbered beat markers create an obvious left-to-right read-aloud rhythm.
- Typography pairs a bouncy rounded display face with a clear schoolbook body face, both tightly tracked for polished readability.

## 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 | `#E94B3C` |
| secondary | `#2F80ED` |
| accent | `#F6C443` |
| background | `#FFF6E3` |
| surface | `#FFFFFF` |
| text | `#34251D` |
| muted | `#7E6657` |
| border | `#5B3B2E` |
| error | `#C83A32` |
| success | `#4B9B63` |
| warning | `#F29E38` |
| info | `#4AA3C7` |

## Typography

- **Headline-Lg**: Baloo 2, 2.043rem, weight 700, line-height 1.1.
- **Headline-Md**: Baloo 2, 1.674rem, weight 600, line-height 1.15.
- **Body-Md**: Atkinson Hyperlegible, 18px, weight 400, line-height 1.55.
- **Label-Md**: Space 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**: `80px`
- **Step-9**: `104px`

### Density

Low-to-medium density chosen for child comprehension: each viewport should expose one main story beat, one supporting cluster, and one clear next action.

### Grid

Desktop uses a 12-column max-width 1180px spread with 24px gutters; tablet collapses to 6 columns; mobile becomes a single page column with the action tab following the story panel.

### Breakpoints

- **Mobile**: 0-639px single-column story stack
- **Tablet**: 640-959px six-column stacked spread
- **Desktop**: 960px+ twelve-column two-page spread

### Whitespace

Use cream margins of at least 24px mobile, 40px tablet, and 64px desktop; separate story beats with 32-64px pauses so the layout breathes like page turns.

### Responsive

Preserve the sequence of reading beats on smaller screens: hero, trail, choices, read-aloud note, progress. Cards may stack but should keep their border, offset shadow, and medallion anchors.

## Elevation & Depth

### Shadows

- **Sm**: 0 3px 0 #5B3B2E
- **Md**: 0 8px 0 rgba(91,59,46,0.22)
- **Lg**: 0 18px 36px rgba(91,59,46,0.20)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `16px`
- **Md**: `24px`
- **Lg**: `32px`
- **Full**: `9999px`

### Surfaces

- **Treatment**: warm cream paper with radial crayon speckles and transparent gouache washes
- **Card Style**: white or pastel panels with thick brown ink border, offset color shadow, and mild rotate transform
- **Bg Pattern**: low-contrast dotted reading trail and scattered crayon hatch marks

### Borders

- **Default Width**: 3px
- **Accent Width**: 5px
- **Style**: solid
- **Character**: warm brown storybook ink with slightly rounded joins and occasional offset underline strokes

## Components

### Composition

Build every screen as a two-page spread: a narrative focus panel, a supporting action column, and a visible next-page cue. Keep one dominant character or prop silhouette per section. Use diagonals only as tiny paper tilts, not dynamic chaos. Keep primary actions at child-hand scale. Alternate cream whitespace with colored story panels so the eye pauses between beats. Do not let more than three saturated colors compete in one region.

### Hierarchy

Headlines use Baloo 2 in large rounded forms for read-aloud emphasis; body uses Atkinson Hyperlegible for adult and emerging-reader clarity; labels may use Space Mono sparingly as page numbers or library tags. The largest illustrated card must carry the page thesis, the next strongest element is the action button, and supporting notes sit in bordered cream chips.

### Density

Low-to-medium density with generous breathing room. Young readers should see a scene, a few choices, and a path forward; secondary information is tucked into small sticker notes rather than grids.

### Signature Patterns

- Offset story-card construction: bordered panels receive a colored shadow block displaced down and right, making each module feel like layered cut paper.
- Dotted reading trails connect page beats and controls with small circular markers, establishing sequential rhythm without arrows everywhere.
- Character medallions combine simple circular faces, ear shapes, and prop silhouettes as CSS shapes to provide recognizable nonverbal anchors.
- Crayon-gouache texture is created with layered radial gradients and short hatch strokes clipped to panels, visible but subtle behind content.
- Page-turn controls use scalloped tab edges and oversized rounded buttons that lift with a tiny rotate and translate motion on hover.

## 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-019ddbe0-cccc-75e3-b399-6f102dbc2d03/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 one friendly character or prop silhouette to anchor every major scene.
- Do Keep copy short, rhythmic, and readable aloud.
- Do Reserve saturated red, blue, and yellow for priority cues and story objects.
- Do Apply crayon texture subtly to backgrounds and panels rather than over text.
- Do Make buttons large, rounded, and labeled with action verbs.
- Do Show sequence through numbered beats, page tabs, or dotted trails.
- Do Keep silhouettes clear enough to understand without reading labels.
- Don't Do not use dense tables, equal-weight widgets, or admin-dashboard metaphors.
- Don't Do not place textured overlays directly on long body text.
- Don't Do not rely on icon-only controls for core actions.
- Don't Do not use neon color or glossy glass effects.
- Don't Do not introduce more than one decorative type style.
- Don't Do not shrink touch targets below child-friendly scale.
- Don't Do not make every card tilted; use rotation as a handmade accent.

### Usage Context

Best for children’s picture-book discovery, early literacy tools, read-aloud companions, classroom story stations, family library apps, and playful onboarding for young audiences.

### Accessibility

Maintain WCAG AA contrast on text, keep body text at 18px or larger, pair every silhouette with text, avoid flashing motion, and preserve logical reading order across breakpoints.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "storybook-pagebeat",
  "type": "registry:theme",
  "title": "Storybook Pagebeat shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFF6E3",
      "foreground": "#34251D",
      "card": "#FFFFFF",
      "card-foreground": "#34251D",
      "popover": "#FFFFFF",
      "popover-foreground": "#34251D",
      "primary": "#E94B3C",
      "primary-foreground": "#ffffff",
      "secondary": "#2F80ED",
      "secondary-foreground": "#ffffff",
      "muted": "#7E6657",
      "muted-foreground": "#34251D",
      "accent": "#F6C443",
      "accent-foreground": "#111111",
      "destructive": "#C83A32",
      "border": "#5B3B2E",
      "input": "#5B3B2E",
      "ring": "#F6C443",
      "chart-1": "#E94B3C",
      "chart-2": "#2F80ED",
      "chart-3": "#F6C443",
      "chart-4": "#4B9B63",
      "chart-5": "#F29E38",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#34251D",
      "sidebar-primary": "#E94B3C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#4AA3C7",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#5B3B2E",
      "sidebar-ring": "#F6C443",
      "radius": "24px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E94B3C",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#F6C443",
      "accent-foreground": "#111111",
      "destructive": "#C83A32",
      "border": "#303642",
      "input": "#303642",
      "ring": "#F6C443",
      "chart-1": "#E94B3C",
      "chart-2": "#2F80ED",
      "chart-3": "#F6C443",
      "chart-4": "#4B9B63",
      "chart-5": "#F29E38",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E94B3C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#F6C443",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#F6C443",
      "radius": "24px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ddbe0-cccc-75e3-b399-6f102dbc2d03",
    "slug": "storybook-pagebeat",
    "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"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · storybook-pagebeat
DESIGN.md

at a glance

Palette

Typography

headline-lgBaloo 2 · 33px · 700

The quick brown fox jumps

headline-mdBaloo 2 · 27px · 600

The quick brown fox jumps

body-mdAtkinson Hyperlegible · 18px · 400

The quick brown fox jumps

label-mdSpace Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

Components rendered with this language’s tokens — colors, type, and rounded corners as specified.

Spacing

  • base8px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • 2xl32px
  • 3xl48px
  • 4xl64px
  • step-880px
  • step-9104px

Shape

none0px
sm16px
md24px
lg32px
full9999px
shadcn/ui

implementation kit

needs agent-authored kitcompatibility fallback
shadcn compatibility only
The generated theme variables are available, but the polished shadcn component recipes and shots have not been authored by the Katagami agent yet.
fallbackprimitives render
Compatibility proof
Local shadcn-style primitives accept the generated theme variables.
primaryaccentsurfacemutedwarningerror
table rhythm
buttonok
cardok
inputok
recommendedcompatibility fallback

DESIGN.md with shadcn

Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.

advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table
theme css
:root {
  --background: #FFF6E3;
  --foreground: #34251D;
  --card: #FFFFFF;
  --card-foreground: #34251D;
  --popover: #FFFFFF;
  --popover-foreground: #34251D;
  --primary: #E94B3C;
  --primary-foreground: #ffffff;
  --secondary: #2F80ED;
  --secondary-foreground: #ffffff;
  --muted: #7E6657;
  --muted-foreground: #34251D;
  --accent: #F6C443;
  --accent-foreground: #111111;
  --destructive: #C83A32;
  --border: #5B3B2E;
  --input: #5B3B2E;
  --ring: #F6C443;
  --chart-1: #E94B3C;
  --chart-2: #2F80ED;
  --chart-3: #F6C443;
  --chart-4: #4B9B63;
  --chart-5: #F29E38;
  --sidebar: #FFFFFF;
  --sidebar-foreground: #34251D;
  --sidebar-primary: #E94B3C;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #4AA3C7;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #5B3B2E;
  --sidebar-ring: #F6C443;
  --radius: 24px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #E94B3C;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #F6C443;
  --accent-foreground: #111111;
  --destructive: #C83A32;
  --border: #303642;
  --input: #303642;
  --ring: #F6C443;
  --chart-1: #E94B3C;
  --chart-2: #2F80ED;
  --chart-3: #F6C443;
  --chart-4: #4B9B63;
  --chart-5: #F29E38;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #E94B3C;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #F6C443;
  --sidebar-accent-foreground: #111111;
  --sidebar-border: #303642;
  --sidebar-ring: #F6C443;
  --radius: 24px;
}
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 StorybookPagebeatShadcnKit() {
  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">Storybook Pagebeat</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": "storybook-pagebeat",
  "type": "registry:theme",
  "title": "Storybook Pagebeat shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFF6E3",
      "foreground": "#34251D",
      "card": "#FFFFFF",
      "card-foreground": "#34251D",
      "popover": "#FFFFFF",
      "popover-foreground": "#34251D",
      "primary": "#E94B3C",
      "primary-foreground": "#ffffff",
      "secondary": "#2F80ED",
      "secondary-foreground": "#ffffff",
      "muted": "#7E6657",
      "muted-foreground": "#34251D",
      "accent": "#F6C443",
      "accent-foreground": "#111111",
      "destructive": "#C83A32",
      "border": "#5B3B2E",
      "input": "#5B3B2E",
      "ring": "#F6C443",
      "chart-1": "#E94B3C",
      "chart-2": "#2F80ED",
      "chart-3": "#F6C443",
      "chart-4": "#4B9B63",
      "chart-5": "#F29E38",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#34251D",
      "sidebar-primary": "#E94B3C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#4AA3C7",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#5B3B2E",
      "sidebar-ring": "#F6C443",
      "radius": "24px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E94B3C",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#F6C443",
      "accent-foreground": "#111111",
      "destructive": "#C83A32",
      "border": "#303642",
      "input": "#303642",
      "ring": "#F6C443",
      "chart-1": "#E94B3C",
      "chart-2": "#2F80ED",
      "chart-3": "#F6C443",
      "chart-4": "#4B9B63",
      "chart-5": "#F29E38",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E94B3C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#F6C443",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#F6C443",
      "radius": "24px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ddbe0-cccc-75e3-b399-6f102dbc2d03",
    "slug": "storybook-pagebeat",
    "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"
      ]
    }
  }
}
component recipescompatibility fallback
# Storybook Pagebeat shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019ddbe0-cccc-75e3-b399-6f102dbc2d03`
Slug: `storybook-pagebeat`

## Intent

Storybook Pagebeat is a modern picture-book visual language for interfaces that need to feel readable, warm, and sequential for young children and the adults reading with them. It treats the screen like a spread from a contemporary storybook: cream paper, generous pauses, friendly character silhouettes, warm primary cues, and hand-touched gouache and crayon marks that guide attention without clutter. The language is built for early literacy contexts where comprehension matters as much as delight. Every scene should be understandable at a glance, invite read-aloud rhythm, and make the next action feel like turning a page rather than operating software.

## 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": "#E94B3C",
  "secondary": "#2F80ED",
  "accent": "#F6C443",
  "background": "#FFF6E3",
  "surface": "#FFFFFF",
  "text": "#34251D",
  "muted": "#7E6657",
  "border": "#5B3B2E",
  "error": "#C83A32",
  "success": "#4B9B63",
  "warning": "#F29E38",
  "info": "#4AA3C7"
}

Typography:

{
  "heading_font": "Baloo 2",
  "body_font": "Atkinson Hyperlegible",
  "mono_font": "Space Mono",
  "base_size": "18px",
  "scale_ratio": 1.22,
  "line_height": 1.55,
  "letter_spacing": "-0.02em",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Baloo+2:wght@600;700;800&family=Space+Mono:wght@400;700&display=swap"
}

## Visual character to preserve

- Cream paper background with faint crayon-grain overlays and wide page margins that make each section feel like a picture-book spread.
- Rounded gouache color panels sit slightly askew with thick warm ink outlines so content reads as cut-paper story pieces.
- Large character medallions and simple prop silhouettes anchor navigation, using friendly shapes before text-heavy explanation.
- Sequential page tabs, dotted reading trails, and numbered beat markers create an obvious left-to-right read-aloud rhythm.
- Typography pairs a bouncy rounded display face with a clear schoolbook body face, both tightly tracked for polished readability.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "blob",
  "border": "solid",
  "underlay": true,
  "grain": true,
  "stickerBadges": false,
  "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/storybook-pagebeat/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 one friendly character or prop silhouette to anchor every major scene.; Keep copy short, rhythmic, and readable aloud.; Reserve saturated red, blue, and yellow for priority cues and story objects.; Apply crayon texture subtly to backgrounds and panels rather than over text.; Make buttons large, rounded, and labeled with action verbs.; Show sequence through numbered beats, page tabs, or dotted trails.; Keep silhouettes clear enough to understand without reading labels.
- Do not: Do not use dense tables, equal-weight widgets, or admin-dashboard metaphors.; Do not place textured overlays directly on long body text.; Do not rely on icon-only controls for core actions.; Do not use neon color or glossy glass effects.; Do not introduce more than one decorative type style.; Do not shrink touch targets below child-friendly scale.; Do not make every card tilted; use rotation as a handmade accent.

## 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 StorybookPagebeatShadcnKit() {
  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">Storybook Pagebeat</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

{
  "density": "Low-to-medium density chosen for child comprehension: each viewport should expose one main story beat, one supporting cluster, and one clear next action.",
  "grid": "Desktop uses a 12-column max-width 1180px spread with 24px gutters; tablet collapses to 6 columns; mobile becomes a single page column with the action tab following the story panel.",
  "breakpoints": {
    "mobile": "0-639px single-column story stack",
    "tablet": "640-959px six-column stacked spread",
    "desktop": "960px+ twelve-column two-page spread"
  },
  "whitespace": "Use cream margins of at least 24px mobile, 40px tablet, and 64px desktop; separate story beats with 32-64px pauses so the layout breathes like page turns.",
  "responsive": "Preserve the sequence of reading beats on smaller screens: hero, trail, choices, read-aloud note, progress. Cards may stack but should keep their border, offset shadow, and medallion anchors."
}
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-019ddbe0-cccc-75e3-b399-6f102dbc2d03",
    "name": "Storybook Pagebeat",
    "slug": "storybook-pagebeat"
  },
  "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": [
    "Cream paper background with faint crayon-grain overlays and wide page margins that make each section feel like a picture-book spread.",
    "Rounded gouache color panels sit slightly askew with thick warm ink outlines so content reads as cut-paper story pieces.",
    "Large character medallions and simple prop silhouettes anchor navigation, using friendly shapes before text-heavy explanation.",
    "Sequential page tabs, dotted reading trails, and numbered beat markers create an obvious left-to-right read-aloud rhythm.",
    "Typography pairs a bouncy rounded display face with a clear schoolbook body face, both tightly tracked for polished readability."
  ],
  "visualProfile": {
    "family": "paper-collage",
    "material": "paper",
    "contour": "blob",
    "border": "solid",
    "underlay": true,
    "grain": true,
    "stickerBadges": false,
    "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": "Storybook Pagebeat 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 one friendly character or prop silhouette to anchor every major scene.",
      "Keep copy short, rhythmic, and readable aloud.",
      "Reserve saturated red, blue, and yellow for priority cues and story objects.",
      "Apply crayon texture subtly to backgrounds and panels rather than over text.",
      "Make buttons large, rounded, and labeled with action verbs.",
      "Show sequence through numbered beats, page tabs, or dotted trails.",
      "Keep silhouettes clear enough to understand without reading labels."
    ],
    "dont": [
      "Do not use dense tables, equal-weight widgets, or admin-dashboard metaphors.",
      "Do not place textured overlays directly on long body text.",
      "Do not rely on icon-only controls for core actions.",
      "Do not use neon color or glossy glass effects.",
      "Do not introduce more than one decorative type style.",
      "Do not shrink touch targets below child-friendly scale.",
      "Do not make every card tilted; use rotation as a handmade accent."
    ]
  }
}
related

More like this