back to gallery
design language·manga-panel-ui

Manga-Panel UI

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
Manga-Panel UI treats the interface as a composed page rather than a neutral application shell. Its primary inspiration is comic grammar: the pause created by a gutter, the rhythm of uneven panels, the way a caption establishes context before a dramatic reveal, and the productive tension between hyper-detailed moments and deliberate white space. Instead of pursuing frictionless invisibility, this language makes structure legible. Users read the interface in beats. Dense clusters of information are framed like close-up panels; calm areas act like empty margins that prepare the next action. The result is an illustration-forward but highly disciplined system where navigation, status, and interaction are staged with the same clarity as sequential storytelling. It borrows the emotional directness of manga layouts while avoiding novelty-for-novelty's sake: framing is functional, asymmetry directs attention, and labels behave like editorial voice. The language values dramatic hierarchy, explicit segmentation, and directional reading cues. It assumes that information can be made more understandable by placing it into scenes with borders, captions, and progression markers. It also values contrast between compression and release: some regions should feel packed with clues, metadata, and emphasis, while neighboring regions stay quiet so the eye can recover. This contrast is what gives the language energy. It is not maximalist chaos, and it is not clean corporate minimalism. It is paced composition. The interface should feel authored, slightly cinematic, and unmistakably constructed. In practice, Manga-Panel UI is useful for products that benefit from narrative scanning: planning surfaces, editorial tools, creator dashboards, knowledge workspaces, incident rooms, or educational flows where the user moves through sequences. The page should feel like it has beats, not just sections. Components are not loose cards floating in space; they are frames in relation to one another. Captions and annotations add interpretation, but sparingly, so the page never collapses into parody. A good embodiment feels readable at a glance, dramatic up close, and structurally memorable after use.
values
Framed clarity: every major region earns a visible boundary so users understand where one thought ends and another begins.Sequential readability: layouts should imply an order of attention through size, angle, captions, and adjacency rather than relying only on menus.Asymmetric tension: imbalance is used intentionally to create momentum and focal pull, not as random decoration.Dense-detail contrast: highly informational areas are balanced by open fields of white or lightly textured space so the page can breathe.Editorial voice: labels, stamps, and callouts interpret information instead of merely naming it.Composed drama: important actions and states are staged with visual consequence so progress feels eventful.Readable energy: the interface should feel animated and alive without becoming loud, childish, or exhausting.
anti-values
×Borderless sameness where all containers dissolve into one continuous slab of UI.×Perfectly even card grids that remove pacing and flatten attention.×Overused comic gimmicks such as constant speech bubbles, explosions, or novelty typography.×Soft anonymous enterprise styling that could belong to any dashboard.×Unbroken density with no white-space release valves or moments of visual silence.
tokens
colors18 items
primary
#121212
secondary
#F7F3E8
accent
#FF5A36
background
#FCFAF5
surface
#FFFDF8
text
#121212
muted
#6D655B
border
#171717
error
#D72638
success
#1E8E5A
warning
#F2A900
info
#2F6BFF
ink_blue
#223A70
panel_yellow
#FFE27A
panel_pink
#F8B4C7
panel_mint
#BFE7D1
shadow
rgba(18,18,18,0.14)
shadow_heavy
rgba(18,18,18,0.24)
typography8 items
heading font
'Archivo Black', 'Arial Black', sans-serif
body font
'IBM Plex Sans JP', 'Inter', sans-serif
mono font
'Azeret Mono', monospace
base size
16px
scale ratio
1.25
line height
1.55
letter spacing
0.01em
google fonts url
https://fonts.googleapis.com/css2?family=Archivo+Black&family=Azeret+Mono:wght@400;600&family=IBM+Plex+Sans+JP:wght@400;500;600;700&display=swap
spacing2 items
base
8px
scale
4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80
radii5 items
none
0
sm
10px
md
18px
lg
28px
full
9999px
shadows3 items
sm
4px 4px 0 rgba(18,18,18,0.08)
md
8px 8px 0 rgba(18,18,18,0.12)
lg
14px 14px 0 rgba(18,18,18,0.18)
surfaces3 items
treatment
paper
card style
warm paper panels with local halftone fields, occasional solid accent fills, and heavy inset framing
bg pattern
dots
borders4 items
default width
3px
accent width
5px
style
solid
character
inked, assertive, editorial borders that feel drawn with a technical pen rather than soft product chrome
motion3 items
duration
180ms
easing
cubic-bezier(0.2, 0.8, 0.2, 1)
philosophy
snappy
rules
composition
Compose the page as a readable sequence of panels with deliberate interruption points. Major panels may span multiple rows or columns, but adjacency should imply narrative flow. Gutters are structural, not decorative, and should remain visually obvious at every breakpoint.
hierarchy
Use panel scale first, then caption strips, then weighty headings, then annotation marks to establish importance. Important regions should look framed and authored before they look interactive.
density
Alternate dense utility panels with open breathing panels. Never place high-detail panels edge-to-edge across the whole canvas; at least one region per view should provide visual release.
signature patterns
Every major panel uses a 3px solid border plus an offset shadow block that makes the frame feel printed and stacked.Caption strips attach to the top edge or corner of panels as small uppercase mono labels on contrasting fills.Feature panels use asymmetric grid spans, including at least one tall portrait panel and one wide panoramic panel.Selected emphasis zones use halftone dot or speed-line textures clipped inside the frame rather than behind the whole page.Guidance appears as a single speech-bubble or margin-note component with a pointed tail, never as a repeated motif.
layout
grid
Desktop uses a 12-column asymmetrical composition with mixed spans; tablet collapses to 8 columns while preserving one hero panel; mobile becomes a stacked panel reel with maintained gutter rhythm and reordered narrative priority.
breakpoints

large desktop at 1200px+, tablet at 768px-1199px, mobile below 768px with additional tightening below 520px.

whitespace

Reserve oversized gutters and selective blank or low-detail regions to create pacing. White space is a narrative beat, not leftover emptiness.

guidance
do
  • Frame every major region clearly and let gutters stay visibly wide.
  • Use captions to tell the user what mode, scene, or context they are entering.
  • Mix tall, wide, and compact panels to control pacing.
  • Keep accent colors localized to labels, alerts, and focal actions so the page stays readable.
  • Use one annotation element to add personality or guidance without turning the page into a gimmick.
avoid
  • Do not turn the interface into a generic component gallery with labeled sections like a design system catalog.
  • Do not apply halftone or comic texture to every surface until text contrast suffers.
  • Do not use speech bubbles for routine labels, placeholders, or repeated navigation items.
  • Do not equalize all panel sizes or remove the gutters on smaller screens.
  • Do not substitute soft glassmorphism, vague gradients, or borderless cards for the defined framing system.
katagami spec
# Manga-Panel UI

## Philosophy

Manga-Panel UI treats the interface as a composed page rather than a neutral application shell. Its primary inspiration is comic grammar: the pause created by a gutter, the rhythm of uneven panels, the way a caption establishes context before a dramatic reveal, and the productive tension between hyper-detailed moments and deliberate white space. Instead of pursuing frictionless invisibility, this language makes structure legible. Users read the interface in beats. Dense clusters of information are framed like close-up panels; calm areas act like empty margins that prepare the next action. The result is an illustration-forward but highly disciplined system where navigation, status, and interaction are staged with the same clarity as sequential storytelling. It borrows the emotional directness of manga layouts while avoiding novelty-for-novelty's sake: framing is functional, asymmetry directs attention, and labels behave like editorial voice.

The language values dramatic hierarchy, explicit segmentation, and directional reading cues. It assumes that information can be made more understandable by placing it into scenes with borders, captions, and progression markers. It also values contrast between compression and release: some regions should feel packed with clues, metadata, and emphasis, while neighboring regions stay quiet so the eye can recover. This contrast is what gives the language energy. It is not maximalist chaos, and it is not clean corporate minimalism. It is paced composition. The interface should feel authored, slightly cinematic, and unmistakably constructed.

In practice, Manga-Panel UI is useful for products that benefit from narrative scanning: planning surfaces, editorial tools, creator dashboards, knowledge workspaces, incident rooms, or educational flows where the user moves through sequences. The page should feel like it has beats, not just sections. Components are not loose cards floating in space; they are frames in relation to one another. Captions and annotations add interpretation, but sparingly, so the page never collapses into parody. A good embodiment feels readable at a glance, dramatic up close, and structurally memorable after use.

### Values

- Framed clarity: every major region earns a visible boundary so users understand where one thought ends and another begins.
- Sequential readability: layouts should imply an order of attention through size, angle, captions, and adjacency rather than relying only on menus.
- Asymmetric tension: imbalance is used intentionally to create momentum and focal pull, not as random decoration.
- Dense-detail contrast: highly informational areas are balanced by open fields of white or lightly textured space so the page can breathe.
- Editorial voice: labels, stamps, and callouts interpret information instead of merely naming it.
- Composed drama: important actions and states are staged with visual consequence so progress feels eventful.
- Readable energy: the interface should feel animated and alive without becoming loud, childish, or exhausting.

### Anti-Values

- Borderless sameness where all containers dissolve into one continuous slab of UI.
- Perfectly even card grids that remove pacing and flatten attention.
- Overused comic gimmicks such as constant speech bubbles, explosions, or novelty typography.
- Soft anonymous enterprise styling that could belong to any dashboard.
- Unbroken density with no white-space release valves or moments of visual silence.

### Visual Character

- Hard 3px-4px ink-like borders around every major container with selective double-rule emphasis on key frames.
- Asymmetric panel grid with oversized gutters and occasional tall or wide hero panels that disrupt regular cadence.
- Caption-strip labels in uppercase mono or condensed type, docked to panel edges like editorial tags.
- Subtle halftone, speed-line, or paper-texture treatments confined to backgrounds and emphasis zones rather than full-page noise.
- Rare speech-bubble or margin-annotation elements used only for guidance, alerts, or human commentary.

## Tokens

### Colors

| Name | Value |
|------|-------|
| primary | `#121212` |
| secondary | `#F7F3E8` |
| accent | `#FF5A36` |
| background | `#FCFAF5` |
| surface | `#FFFDF8` |
| text | `#121212` |
| muted | `#6D655B` |
| border | `#171717` |
| error | `#D72638` |
| success | `#1E8E5A` |
| warning | `#F2A900` |
| info | `#2F6BFF` |
| ink_blue | `#223A70` |
| panel_yellow | `#FFE27A` |
| panel_pink | `#F8B4C7` |
| panel_mint | `#BFE7D1` |
| shadow | `rgba(18,18,18,0.14)` |
| shadow_heavy | `rgba(18,18,18,0.24)` |

### Typography

- **Heading Font**: 'Archivo Black', 'Arial Black', sans-serif
- **Body Font**: 'IBM Plex Sans JP', 'Inter', sans-serif
- **Mono Font**: 'Azeret Mono', monospace
- **Base Size**: 16px
- **Scale Ratio**: 1.25
- **Line Height**: 1.55
- **Letter Spacing**: 0.01em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Archivo+Black&family=Azeret+Mono:wght@400;600&family=IBM+Plex+Sans+JP:wght@400;500;600;700&display=swap

### Spacing

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

### Radii

- **None**: 0
- **Sm**: 10px
- **Md**: 18px
- **Lg**: 28px
- **Full**: 9999px

### Shadows

- **Sm**: 4px 4px 0 rgba(18,18,18,0.08)
- **Md**: 8px 8px 0 rgba(18,18,18,0.12)
- **Lg**: 14px 14px 0 rgba(18,18,18,0.18)

### Surfaces

- **Treatment**: paper
- **Card Style**: warm paper panels with local halftone fields, occasional solid accent fills, and heavy inset framing
- **Bg Pattern**: dots

### Borders

- **Default Width**: 3px
- **Accent Width**: 5px
- **Style**: solid
- **Character**: inked, assertive, editorial borders that feel drawn with a technical pen rather than soft product chrome

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1)
- **Philosophy**: snappy

## Rules

### Composition

Compose the page as a readable sequence of panels with deliberate interruption points. Major panels may span multiple rows or columns, but adjacency should imply narrative flow. Gutters are structural, not decorative, and should remain visually obvious at every breakpoint.

### Hierarchy

Use panel scale first, then caption strips, then weighty headings, then annotation marks to establish importance. Important regions should look framed and authored before they look interactive.

### Density

Alternate dense utility panels with open breathing panels. Never place high-detail panels edge-to-edge across the whole canvas; at least one region per view should provide visual release.

### Signature Patterns

- Every major panel uses a 3px solid border plus an offset shadow block that makes the frame feel printed and stacked.
- Caption strips attach to the top edge or corner of panels as small uppercase mono labels on contrasting fills.
- Feature panels use asymmetric grid spans, including at least one tall portrait panel and one wide panoramic panel.
- Selected emphasis zones use halftone dot or speed-line textures clipped inside the frame rather than behind the whole page.
- Guidance appears as a single speech-bubble or margin-note component with a pointed tail, never as a repeated motif.

## Layout

### Grid

Desktop uses a 12-column asymmetrical composition with mixed spans; tablet collapses to 8 columns while preserving one hero panel; mobile becomes a stacked panel reel with maintained gutter rhythm and reordered narrative priority.

### Breakpoints

large desktop at 1200px+, tablet at 768px-1199px, mobile below 768px with additional tightening below 520px.

### Whitespace

Reserve oversized gutters and selective blank or low-detail regions to create pacing. White space is a narrative beat, not leftover emptiness.

## Guidance

### Do

- Frame every major region clearly and let gutters stay visibly wide.
- Use captions to tell the user what mode, scene, or context they are entering.
- Mix tall, wide, and compact panels to control pacing.
- Keep accent colors localized to labels, alerts, and focal actions so the page stays readable.
- Use one annotation element to add personality or guidance without turning the page into a gimmick.

### Don't

- Do not turn the interface into a generic component gallery with labeled sections like a design system catalog.
- Do not apply halftone or comic texture to every surface until text contrast suffers.
- Do not use speech bubbles for routine labels, placeholders, or repeated navigation items.
- Do not equalize all panel sizes or remove the gutters on smaller screens.
- Do not substitute soft glassmorphism, vague gradients, or borderless cards for the defined framing system.
DESIGN.md
---
version: "alpha"
name: "Manga-Panel UI"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  primary: "#121212"
  secondary: "#F7F3E8"
  accent: "#FF5A36"
  background: "#FCFAF5"
  surface: "#FFFDF8"
  text: "#121212"
  muted: "#6D655B"
  border: "#171717"
  error: "#D72638"
  success: "#1E8E5A"
  warning: "#F2A900"
  info: "#2F6BFF"
  ink_blue: "#223A70"
  panel_yellow: "#FFE27A"
  panel_pink: "#F8B4C7"
  panel_mint: "#BFE7D1"
typography:
  headline-lg:
    fontFamily: "'Archivo Black', 'Arial Black', sans-serif"
    fontSize: "1.953rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "0.01em"
  headline-md:
    fontFamily: "'Archivo Black', 'Arial Black', sans-serif"
    fontSize: "1.563rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "0.01em"
  body-md:
    fontFamily: "'IBM Plex Sans JP', 'Inter', sans-serif"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "0.01em"
  label-md:
    fontFamily: "'Azeret Mono', monospace"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "10px"
  md: "18px"
  lg: "28px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "20px"
  2xl: "24px"
  3xl: "32px"
  4xl: "40px"
  step-8: "48px"
  step-9: "64px"
  step-10: "80px"
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}"
  color-reference-ink_blue:
    backgroundColor: "{colors.ink_blue}"
  color-reference-panel_yellow:
    backgroundColor: "{colors.panel_yellow}"
  color-reference-panel_pink:
    backgroundColor: "{colors.panel_pink}"
  color-reference-panel_mint:
    backgroundColor: "{colors.panel_mint}"
  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"
---

# Manga-Panel UI

## Overview

Manga-Panel UI treats the interface as a composed page rather than a neutral application shell. Its primary inspiration is comic grammar: the pause created by a gutter, the rhythm of uneven panels, the way a caption establishes context before a dramatic reveal, and the productive tension between hyper-detailed moments and deliberate white space. Instead of pursuing frictionless invisibility, this language makes structure legible. Users read the interface in beats. Dense clusters of information are framed like close-up panels; calm areas act like empty margins that prepare the next action. The result is an illustration-forward but highly disciplined system where navigation, status, and interaction are staged with the same clarity as sequential storytelling. It borrows the emotional directness of manga layouts while avoiding novelty-for-novelty's sake: framing is functional, asymmetry directs attention, and labels behave like editorial voice.

The language values dramatic hierarchy, explicit segmentation, and directional reading cues. It assumes that information can be made more understandable by placing it into scenes with borders, captions, and progression markers. It also values contrast between compression and release: some regions should feel packed with clues, metadata, and emphasis, while neighboring regions stay quiet so the eye can recover. This contrast is what gives the language energy. It is not maximalist chaos, and it is not clean corporate minimalism. It is paced composition. The interface should feel authored, slightly cinematic, and unmistakably constructed.

In practice, Manga-Panel UI is useful for products that benefit from narrative scanning: planning surfaces, editorial tools, creator dashboards, knowledge workspaces, incident rooms, or educational flows where the user moves through sequences. The page should feel like it has beats, not just sections. Components are not loose cards floating in space; they are frames in relation to one another. Captions and annotations add interpretation, but sparingly, so the page never collapses into parody. A good embodiment feels readable at a glance, dramatic up close, and structurally memorable after use.

### Values

- Framed clarity: every major region earns a visible boundary so users understand where one thought ends and another begins.
- Sequential readability: layouts should imply an order of attention through size, angle, captions, and adjacency rather than relying only on menus.
- Asymmetric tension: imbalance is used intentionally to create momentum and focal pull, not as random decoration.
- Dense-detail contrast: highly informational areas are balanced by open fields of white or lightly textured space so the page can breathe.
- Editorial voice: labels, stamps, and callouts interpret information instead of merely naming it.
- Composed drama: important actions and states are staged with visual consequence so progress feels eventful.
- Readable energy: the interface should feel animated and alive without becoming loud, childish, or exhausting.

### Anti-Values

- Borderless sameness where all containers dissolve into one continuous slab of UI.
- Perfectly even card grids that remove pacing and flatten attention.
- Overused comic gimmicks such as constant speech bubbles, explosions, or novelty typography.
- Soft anonymous enterprise styling that could belong to any dashboard.
- Unbroken density with no white-space release valves or moments of visual silence.

### Visual Character

- Hard 3px-4px ink-like borders around every major container with selective double-rule emphasis on key frames.
- Asymmetric panel grid with oversized gutters and occasional tall or wide hero panels that disrupt regular cadence.
- Caption-strip labels in uppercase mono or condensed type, docked to panel edges like editorial tags.
- Subtle halftone, speed-line, or paper-texture treatments confined to backgrounds and emphasis zones rather than full-page noise.
- Rare speech-bubble or margin-annotation elements used only for guidance, alerts, or human commentary.

## 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 | `#121212` |
| secondary | `#F7F3E8` |
| accent | `#FF5A36` |
| background | `#FCFAF5` |
| surface | `#FFFDF8` |
| text | `#121212` |
| muted | `#6D655B` |
| border | `#171717` |
| error | `#D72638` |
| success | `#1E8E5A` |
| warning | `#F2A900` |
| info | `#2F6BFF` |
| ink_blue | `#223A70` |
| panel_yellow | `#FFE27A` |
| panel_pink | `#F8B4C7` |
| panel_mint | `#BFE7D1` |

## Typography

- **Headline-Lg**: 'Archivo Black', 'Arial Black', sans-serif, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: 'Archivo Black', 'Arial Black', sans-serif, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: 'IBM Plex Sans JP', 'Inter', sans-serif, 16px, weight 400, line-height 1.55.
- **Label-Md**: 'Azeret Mono', monospace, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `20px`
- **2xl**: `24px`
- **3xl**: `32px`
- **4xl**: `40px`
- **Step-8**: `48px`
- **Step-9**: `64px`
- **Step-10**: `80px`

### Grid

Desktop uses a 12-column asymmetrical composition with mixed spans; tablet collapses to 8 columns while preserving one hero panel; mobile becomes a stacked panel reel with maintained gutter rhythm and reordered narrative priority.

### Breakpoints

large desktop at 1200px+, tablet at 768px-1199px, mobile below 768px with additional tightening below 520px.

### Whitespace

Reserve oversized gutters and selective blank or low-detail regions to create pacing. White space is a narrative beat, not leftover emptiness.

## Elevation & Depth

### Shadows

- **Sm**: 4px 4px 0 rgba(18,18,18,0.08)
- **Md**: 8px 8px 0 rgba(18,18,18,0.12)
- **Lg**: 14px 14px 0 rgba(18,18,18,0.18)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `10px`
- **Md**: `18px`
- **Lg**: `28px`
- **Full**: `9999px`

### Surfaces

- **Treatment**: paper
- **Card Style**: warm paper panels with local halftone fields, occasional solid accent fills, and heavy inset framing
- **Bg Pattern**: dots

### Borders

- **Default Width**: 3px
- **Accent Width**: 5px
- **Style**: solid
- **Character**: inked, assertive, editorial borders that feel drawn with a technical pen rather than soft product chrome

## Components

### Composition

Compose the page as a readable sequence of panels with deliberate interruption points. Major panels may span multiple rows or columns, but adjacency should imply narrative flow. Gutters are structural, not decorative, and should remain visually obvious at every breakpoint.

### Hierarchy

Use panel scale first, then caption strips, then weighty headings, then annotation marks to establish importance. Important regions should look framed and authored before they look interactive.

### Density

Alternate dense utility panels with open breathing panels. Never place high-detail panels edge-to-edge across the whole canvas; at least one region per view should provide visual release.

### Signature Patterns

- Every major panel uses a 3px solid border plus an offset shadow block that makes the frame feel printed and stacked.
- Caption strips attach to the top edge or corner of panels as small uppercase mono labels on contrasting fills.
- Feature panels use asymmetric grid spans, including at least one tall portrait panel and one wide panoramic panel.
- Selected emphasis zones use halftone dot or speed-line textures clipped inside the frame rather than behind the whole page.
- Guidance appears as a single speech-bubble or margin-note component with a pointed tail, never as a repeated motif.

## 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-019d9bb8-ff98-7e33-a100-7236cb9b0212/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 Frame every major region clearly and let gutters stay visibly wide.
- Do Use captions to tell the user what mode, scene, or context they are entering.
- Do Mix tall, wide, and compact panels to control pacing.
- Do Keep accent colors localized to labels, alerts, and focal actions so the page stays readable.
- Do Use one annotation element to add personality or guidance without turning the page into a gimmick.
- Don't Do not turn the interface into a generic component gallery with labeled sections like a design system catalog.
- Don't Do not apply halftone or comic texture to every surface until text contrast suffers.
- Don't Do not use speech bubbles for routine labels, placeholders, or repeated navigation items.
- Don't Do not equalize all panel sizes or remove the gutters on smaller screens.
- Don't Do not substitute soft glassmorphism, vague gradients, or borderless cards for the defined framing system.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "manga-panel-ui",
  "type": "registry:theme",
  "title": "Manga-Panel UI shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FCFAF5",
      "foreground": "#121212",
      "card": "#FFFDF8",
      "card-foreground": "#121212",
      "popover": "#FFFDF8",
      "popover-foreground": "#121212",
      "primary": "#121212",
      "primary-foreground": "#ffffff",
      "secondary": "#F7F3E8",
      "secondary-foreground": "#111111",
      "muted": "#6D655B",
      "muted-foreground": "#121212",
      "accent": "#FF5A36",
      "accent-foreground": "#ffffff",
      "destructive": "#D72638",
      "border": "#171717",
      "input": "#171717",
      "ring": "#FF5A36",
      "chart-1": "#121212",
      "chart-2": "#F7F3E8",
      "chart-3": "#FF5A36",
      "chart-4": "#1E8E5A",
      "chart-5": "#F2A900",
      "sidebar": "#FFFDF8",
      "sidebar-foreground": "#121212",
      "sidebar-primary": "#121212",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2F6BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#171717",
      "sidebar-ring": "#FF5A36",
      "radius": "18px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#121212",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#FF5A36",
      "accent-foreground": "#ffffff",
      "destructive": "#D72638",
      "border": "#303642",
      "input": "#303642",
      "ring": "#FF5A36",
      "chart-1": "#121212",
      "chart-2": "#F7F3E8",
      "chart-3": "#FF5A36",
      "chart-4": "#1E8E5A",
      "chart-5": "#F2A900",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#121212",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#FF5A36",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#FF5A36",
      "radius": "18px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019d9bb8-ff98-7e33-a100-7236cb9b0212",
    "slug": "manga-panel-ui",
    "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",
        "ink_blue",
        "muted",
        "panel_mint",
        "panel_pink",
        "panel_yellow",
        "primary",
        "secondary",
        "shadow",
        "shadow_heavy",
        "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 · manga-panel-ui
DESIGN.md

at a glance

Palette

Typography

headline-lgArchivo Black · 31px · 700

The quick brown fox jumps

headline-mdArchivo Black · 25px · 600

The quick brown fox jumps

body-mdIBM Plex Sans JP · 16px · 400

The quick brown fox jumps

label-mdAzeret 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
  • xl20px
  • 2xl24px
  • 3xl32px
  • 4xl40px
  • step-848px
  • step-964px
  • step-1080px

Shape

none0px
sm10px
md18px
lg28px
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: #FCFAF5;
  --foreground: #121212;
  --card: #FFFDF8;
  --card-foreground: #121212;
  --popover: #FFFDF8;
  --popover-foreground: #121212;
  --primary: #121212;
  --primary-foreground: #ffffff;
  --secondary: #F7F3E8;
  --secondary-foreground: #111111;
  --muted: #6D655B;
  --muted-foreground: #121212;
  --accent: #FF5A36;
  --accent-foreground: #ffffff;
  --destructive: #D72638;
  --border: #171717;
  --input: #171717;
  --ring: #FF5A36;
  --chart-1: #121212;
  --chart-2: #F7F3E8;
  --chart-3: #FF5A36;
  --chart-4: #1E8E5A;
  --chart-5: #F2A900;
  --sidebar: #FFFDF8;
  --sidebar-foreground: #121212;
  --sidebar-primary: #121212;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #2F6BFF;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #171717;
  --sidebar-ring: #FF5A36;
  --radius: 18px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #121212;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #FF5A36;
  --accent-foreground: #ffffff;
  --destructive: #D72638;
  --border: #303642;
  --input: #303642;
  --ring: #FF5A36;
  --chart-1: #121212;
  --chart-2: #F7F3E8;
  --chart-3: #FF5A36;
  --chart-4: #1E8E5A;
  --chart-5: #F2A900;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #121212;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #FF5A36;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #FF5A36;
  --radius: 18px;
}
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 MangaPanelUiShadcnKit() {
  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">Manga-Panel UI</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": "manga-panel-ui",
  "type": "registry:theme",
  "title": "Manga-Panel UI shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FCFAF5",
      "foreground": "#121212",
      "card": "#FFFDF8",
      "card-foreground": "#121212",
      "popover": "#FFFDF8",
      "popover-foreground": "#121212",
      "primary": "#121212",
      "primary-foreground": "#ffffff",
      "secondary": "#F7F3E8",
      "secondary-foreground": "#111111",
      "muted": "#6D655B",
      "muted-foreground": "#121212",
      "accent": "#FF5A36",
      "accent-foreground": "#ffffff",
      "destructive": "#D72638",
      "border": "#171717",
      "input": "#171717",
      "ring": "#FF5A36",
      "chart-1": "#121212",
      "chart-2": "#F7F3E8",
      "chart-3": "#FF5A36",
      "chart-4": "#1E8E5A",
      "chart-5": "#F2A900",
      "sidebar": "#FFFDF8",
      "sidebar-foreground": "#121212",
      "sidebar-primary": "#121212",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2F6BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#171717",
      "sidebar-ring": "#FF5A36",
      "radius": "18px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#121212",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#FF5A36",
      "accent-foreground": "#ffffff",
      "destructive": "#D72638",
      "border": "#303642",
      "input": "#303642",
      "ring": "#FF5A36",
      "chart-1": "#121212",
      "chart-2": "#F7F3E8",
      "chart-3": "#FF5A36",
      "chart-4": "#1E8E5A",
      "chart-5": "#F2A900",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#121212",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#FF5A36",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#FF5A36",
      "radius": "18px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019d9bb8-ff98-7e33-a100-7236cb9b0212",
    "slug": "manga-panel-ui",
    "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",
        "ink_blue",
        "muted",
        "panel_mint",
        "panel_pink",
        "panel_yellow",
        "primary",
        "secondary",
        "shadow",
        "shadow_heavy",
        "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
# Manga-Panel UI shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019d9bb8-ff98-7e33-a100-7236cb9b0212`
Slug: `manga-panel-ui`

## Intent

Manga-Panel UI treats the interface as a composed page rather than a neutral application shell. Its primary inspiration is comic grammar: the pause created by a gutter, the rhythm of uneven panels, the way a caption establishes context before a dramatic reveal, and the productive tension between hyper-detailed moments and deliberate white space. Instead of pursuing frictionless invisibility, this language makes structure legible. Users read the interface in beats. Dense clusters of information are framed like close-up panels; calm areas act like empty margins that prepare the next action. The result is an illustration-forward but highly disciplined system where navigation, status, and interaction are staged with the same clarity as sequential storytelling. It borrows the emotional directness of manga layouts while avoiding novelty-for-novelty's sake: framing is functional, asymmetry directs attention, and labels behave like editorial voice.

The language values dramatic hierarchy, explicit segmentation, and directional reading cues. It assumes that information can be made more understandable by placing it into scenes with borders, captions, and progression markers. It also values contrast between compression and release: some regions should feel packed with clues, metadata, and emphasis, while neighboring regions stay quiet so the eye can recover. This contrast is what gives the language energy. It is not maximalist chaos, and it is not clean corporate minimalism. It is paced composition. The interface should feel authored, slightly cinematic, and unmistakably constructed.

In practice, Manga-Panel UI is useful for products that benefit from narrative scanning: planning surfaces, editorial tools, creator dashboards, knowledge workspaces, incident rooms, or educational flows where the user moves through sequences. The page should feel like it has beats, not just sections. Components are not loose cards floating in space; they are frames in relation to one another. Captions and annotations add interpretation, but sparingly, so the page never collapses into parody. A good embodiment feels readable at a glance, dramatic up close, and structurally memorable after use.

## 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": "#121212",
  "secondary": "#F7F3E8",
  "accent": "#FF5A36",
  "background": "#FCFAF5",
  "surface": "#FFFDF8",
  "text": "#121212",
  "muted": "#6D655B",
  "border": "#171717",
  "error": "#D72638",
  "success": "#1E8E5A",
  "warning": "#F2A900",
  "info": "#2F6BFF",
  "ink_blue": "#223A70",
  "panel_yellow": "#FFE27A",
  "panel_pink": "#F8B4C7",
  "panel_mint": "#BFE7D1",
  "shadow": "rgba(18,18,18,0.14)",
  "shadow_heavy": "rgba(18,18,18,0.24)"
}

Typography:

{
  "heading_font": "'Archivo Black', 'Arial Black', sans-serif",
  "body_font": "'IBM Plex Sans JP', 'Inter', sans-serif",
  "mono_font": "'Azeret Mono', monospace",
  "base_size": "16px",
  "scale_ratio": 1.25,
  "line_height": 1.55,
  "letter_spacing": "0.01em",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=Archivo+Black&family=Azeret+Mono:wght@400;600&family=IBM+Plex+Sans+JP:wght@400;500;600;700&display=swap"
}

## Visual character to preserve

- Hard 3px-4px ink-like borders around every major container with selective double-rule emphasis on key frames.
- Asymmetric panel grid with oversized gutters and occasional tall or wide hero panels that disrupt regular cadence.
- Caption-strip labels in uppercase mono or condensed type, docked to panel edges like editorial tags.
- Subtle halftone, speed-line, or paper-texture treatments confined to backgrounds and emphasis zones rather than full-page noise.
- Rare speech-bubble or margin-annotation elements used only for guidance, alerts, or human commentary.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "default",
  "border": "solid",
  "underlay": true,
  "grain": true,
  "stickerBadges": false,
  "motion": "still",
  "density": "dense",
  "accents": [
    "primary",
    "accent",
    "secondary",
    "muted"
  ]
}

## Signature component recipes

### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.

### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.

### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.

### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.

### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.

## Preview shots

- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.

## Implementation contract

- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/manga-panel-ui/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: Frame every major region clearly and let gutters stay visibly wide.; Use captions to tell the user what mode, scene, or context they are entering.; Mix tall, wide, and compact panels to control pacing.; Keep accent colors localized to labels, alerts, and focal actions so the page stays readable.; Use one annotation element to add personality or guidance without turning the page into a gimmick.
- Do not: Do not turn the interface into a generic component gallery with labeled sections like a design system catalog.; Do not apply halftone or comic texture to every surface until text contrast suffers.; Do not use speech bubbles for routine labels, placeholders, or repeated navigation items.; Do not equalize all panel sizes or remove the gutters on smaller screens.; Do not substitute soft glassmorphism, vague gradients, or borderless cards for the defined framing system.

## 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 MangaPanelUiShadcnKit() {
  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">Manga-Panel UI</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 asymmetrical composition with mixed spans; tablet collapses to 8 columns while preserving one hero panel; mobile becomes a stacked panel reel with maintained gutter rhythm and reordered narrative priority.",
  "breakpoints": "large desktop at 1200px+, tablet at 768px-1199px, mobile below 768px with additional tightening below 520px.",
  "whitespace": "Reserve oversized gutters and selective blank or low-detail regions to create pacing. White space is a narrative beat, not leftover emptiness."
}
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-019d9bb8-ff98-7e33-a100-7236cb9b0212",
    "name": "Manga-Panel UI",
    "slug": "manga-panel-ui"
  },
  "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": [
    "Hard 3px-4px ink-like borders around every major container with selective double-rule emphasis on key frames.",
    "Asymmetric panel grid with oversized gutters and occasional tall or wide hero panels that disrupt regular cadence.",
    "Caption-strip labels in uppercase mono or condensed type, docked to panel edges like editorial tags.",
    "Subtle halftone, speed-line, or paper-texture treatments confined to backgrounds and emphasis zones rather than full-page noise.",
    "Rare speech-bubble or margin-annotation elements used only for guidance, alerts, or human commentary."
  ],
  "visualProfile": {
    "family": "paper-collage",
    "material": "paper",
    "contour": "default",
    "border": "solid",
    "underlay": true,
    "grain": true,
    "stickerBadges": false,
    "motion": "still",
    "density": "dense",
    "accents": [
      "primary",
      "accent",
      "secondary",
      "muted"
    ]
  },
  "shots": [
    {
      "id": "application-shell",
      "title": "Application shell",
      "viewport": "desktop",
      "primitives": [
        "button",
        "card",
        "input",
        "select",
        "tabs",
        "badge",
        "separator",
        "table"
      ],
      "composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
      "mustShow": [
        "primary and secondary actions",
        "card hierarchy",
        "filterable state",
        "table or list density"
      ],
      "avoid": [
        "component inventory walls",
        "placeholder-only content",
        "generic rounded SaaS chrome"
      ],
      "scene": {
        "eyebrow": "workspace spread",
        "headline": "Manga-Panel UI 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": [
      "Frame every major region clearly and let gutters stay visibly wide.",
      "Use captions to tell the user what mode, scene, or context they are entering.",
      "Mix tall, wide, and compact panels to control pacing.",
      "Keep accent colors localized to labels, alerts, and focal actions so the page stays readable.",
      "Use one annotation element to add personality or guidance without turning the page into a gimmick."
    ],
    "dont": [
      "Do not turn the interface into a generic component gallery with labeled sections like a design system catalog.",
      "Do not apply halftone or comic texture to every surface until text contrast suffers.",
      "Do not use speech bubbles for routine labels, placeholders, or repeated navigation items.",
      "Do not equalize all panel sizes or remove the gutters on smaller screens.",
      "Do not substitute soft glassmorphism, vague gradients, or borderless cards for the defined framing system."
    ]
  }
}
related

More like this