Signal Glyph Atlas
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
specification
philosophy
tokens
colors12 items
typography8 items
- heading font
- Azeret Mono
- body font
- Atkinson Hyperlegible
- mono font
- Spline Sans Mono
- base size
- 16px
- scale ratio
- 1.22
- line height
- 1.48
- letter spacing
- -0.02em
- google fonts url
- https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Azeret+Mono:wght@500;700;800&family=Spline+Sans+Mono:wght@400;600&display=swap
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96
radii5 items
- none
- 0px
- sm
- 0px
- md
- 16px
- lg
- 24px
- full
- 9999px
shadows3 items
- sm
- 0 0 0 1px #1F252B
- md
- 6px 6px 0 #111418
- lg
- 10px 10px 0 #111418
surfaces3 items
- treatment
- Flat technical-paper surfaces in {colors.background} and {colors.surface}, overprinted with faint grid lines and coordinate ticks.
- card style
- Rectangular plates with {radii.none} outer corners, {borders.default_width} ink borders, and occasional offset hard shadow blocks.
- bg pattern
- Subtle 24px construction grid using {colors.border} at very low opacity, never decorative texture.
borders4 items
- default width
- 2px
- accent width
- 4px
- style
- solid
- character
- Ink-like mechanical rulework: square card edges, 2px pictogram strokes, 4px semantic edge bars, and corner registration marks.
motion3 items
- duration
- 140ms
- easing
- cubic-bezier(0.2, 0, 0, 1)
- philosophy
- Motion is a drafting-table snap: controls translate by one grid unit, glyph nodes pulse once, and panels never float or blur.
rules
Compose screens as annotated atlas plates: one large focal pictogram explains the product story, supporting cards orbit on the same grid, and all connectors run horizontally or vertically. Use asymmetry only through module size, never through random placement. Every illustration must have a title caption, a semantic status, and at least one visible construction cue.
Hierarchy comes from scale, stroke density, and label weight: display headings use mono uppercase, product copy uses Atkinson Hyperlegible, and data or coordinates use Spline Sans Mono. The primary glyph is the largest dark shape; semantic color appears only in badges, alerts, progress, and selected controls.
Medium-high information density is allowed because the grid organizes it. Leave one empty cell around focal pictograms, cluster controls in tight tool trays, and keep text blocks short so symbolic graphics remain dominant.
layout
Atlas density: information is layered but gridded, with clear separation between the focal pictogram, tool controls, evidence table, and review dialog.
Desktop uses a 12-column max-width 1280px grid with 24px gutters; tablet collapses to 6 columns; mobile becomes a single-column stack while preserving glyph modules.
Three responsive ranges: desktop >= 1100px, tablet 700px-1099px, mobile <= 699px with card stacking and horizontally scrollable tables.
Whitespace is measured in 8px increments and expressed as empty grid cells around the primary glyph; tight controls may use 8-12px gaps but story panels use 24-48px breathing room.
At tablet width the right rail moves below the hero plate; at mobile width navigation becomes a wrapped command strip, pictogram cells shrink, and the modal becomes full-width.
guidance
- Start every product illustration by choosing a metaphor that can be built from five or fewer geometric primitives.
- Align icons, captions, controls, and connector endpoints to the same 8px spacing and square-cell construction grid.
- Use semantic color sparingly and consistently: cyan for active information, amber for review, green for confirmation, red for destructive states.
- Maintain one shared stroke width across pictograms, icons, dividers, chart marks, and connector lines.
- Include descriptive labels or captions near abstract symbols so accessibility and comprehension are preserved.
- Prefer flat high-contrast vector plates over shadows, depth effects, gradients, or atmospheric illustration.
- Use registration marks and coordinate labels to reinforce the engineered graphic-system voice.
- Do not introduce character art, organic blobs, hand lettering, or sketch textures that break vector consistency.
- Do not use color as decoration; if a hue appears, it must communicate state, category, direction, or priority.
- Do not mix filled icons, stroked icons, and pictograms without reconciling stroke weight and corner treatment.
- Do not crowd the focal glyph with multiple competing metaphors or unlabeled symbolic fragments.
- Do not use soft drop shadows, glassmorphism, glossy gradients, or rounded card clouds as the main identity.
- Do not rely on screenshots alone for storytelling; translate interface behavior into symbolic diagrams.
- Do not let mobile break the construction logic—stack plates, but keep captions and connector relationships clear.
katagami spec
# Signal Glyph Atlas
## Philosophy
Signal Glyph Atlas is a pictographic geometric graphic language for product storytelling where every illustration behaves like a system diagram: symbolic, accessible, high-contrast, and built from repeatable vector primitives rather than decorative drawing. It translates complex workflows into memorable glyph scenes that can scale from interface spots to large feature panels without losing clarity.
### Values
- Symbolic compression: illustrations reduce ideas to recognizable geometric metaphors before adding detail.
- Vector consistency: every pictogram shares stroke weight, corner logic, grid alignment, and endpoint treatment.
- Accessible contrast: neutral foundations carry the message while sparing semantic colors identify state, risk, success, or direction.
- Product truthfulness: graphics explain real interface behaviors, data flows, and user outcomes rather than generic optimism.
- Compositional restraint: each scene has one primary idea, one focal glyph, and a limited supporting constellation.
- Scalable storytelling: the same language works for icons, empty states, onboarding panels, and feature explainers.
- Mechanical warmth: precise geometric construction is softened by measured offsets, small labels, and human-readable rhythm.
### Anti-Values
- Mascot illustration, hand-drawn whimsy, painterly texture, and character scenes that cannot be systematized.
- Rainbow palettes, gradient hero art, decorative blobs, and arbitrary colors unrelated to product meaning.
- Overly literal screenshots or dense diagrams that require reading every label to understand the metaphor.
- Mixed icon styles, inconsistent stroke weights, random radii, and ungoverned vector flourishes.
### Visual Character
- Use a visible 12-column construction grid with thin axis rules, snapped card boundaries, and glyph modules positioned on square cells.
- Build pictograms from CSS circles, diamonds, rounded squares, chevrons, and orthogonal connector lines using one shared 2px stroke.
- Keep the interface almost monochrome with bone, ink, and graphite surfaces, then reserve cyan, amber, red, and green for semantic badges only.
- Frame story panels as technical plates with corner registration marks, coordinate labels, and small uppercase captions aligned to the grid.
- Use hard-edged flat surfaces with 0px outer radii, 16px inner controls, and no soft shadows so geometry and contrast define depth.
## Tokens
### Colors
| Name | Value |
|------|-------|
| primary | `#111418` |
| secondary | `#3A424C` |
| accent | `#00A3B5` |
| background | `#F4F1EA` |
| surface | `#FFFCF4` |
| text | `#111418` |
| muted | `#68717C` |
| border | `#1F252B` |
| error | `#B3261E` |
| success | `#168039` |
| warning | `#B86B00` |
| info | `#006D8F` |
### Typography
- **Heading Font**: Azeret Mono
- **Body Font**: Atkinson Hyperlegible
- **Mono Font**: Spline Sans Mono
- **Base Size**: 16px
- **Scale Ratio**: 1.22
- **Line Height**: 1.48
- **Letter Spacing**: -0.02em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Azeret+Mono:wght@500;700;800&family=Spline+Sans+Mono:wght@400;600&display=swap
### Spacing
- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64,96]
### Radii
- **None**: 0px
- **Sm**: 0px
- **Md**: 16px
- **Lg**: 24px
- **Full**: 9999px
### Shadows
- **Sm**: 0 0 0 1px #1F252B
- **Md**: 6px 6px 0 #111418
- **Lg**: 10px 10px 0 #111418
### Surfaces
- **Treatment**: Flat technical-paper surfaces in {colors.background} and {colors.surface}, overprinted with faint grid lines and coordinate ticks.
- **Card Style**: Rectangular plates with {radii.none} outer corners, {borders.default_width} ink borders, and occasional offset hard shadow blocks.
- **Bg Pattern**: Subtle 24px construction grid using {colors.border} at very low opacity, never decorative texture.
### Borders
- **Default Width**: 2px
- **Accent Width**: 4px
- **Style**: solid
- **Character**: Ink-like mechanical rulework: square card edges, 2px pictogram strokes, 4px semantic edge bars, and corner registration marks.
### Motion
- **Duration**: 140ms
- **Easing**: cubic-bezier(0.2, 0, 0, 1)
- **Philosophy**: Motion is a drafting-table snap: controls translate by one grid unit, glyph nodes pulse once, and panels never float or blur.
## Rules
### Composition
Compose screens as annotated atlas plates: one large focal pictogram explains the product story, supporting cards orbit on the same grid, and all connectors run horizontally or vertically. Use asymmetry only through module size, never through random placement. Every illustration must have a title caption, a semantic status, and at least one visible construction cue.
### Hierarchy
Hierarchy comes from scale, stroke density, and label weight: display headings use mono uppercase, product copy uses Atkinson Hyperlegible, and data or coordinates use Spline Sans Mono. The primary glyph is the largest dark shape; semantic color appears only in badges, alerts, progress, and selected controls.
### Density
Medium-high information density is allowed because the grid organizes it. Leave one empty cell around focal pictograms, cluster controls in tight tool trays, and keep text blocks short so symbolic graphics remain dominant.
### Signature Patterns
- Registration corners: cards and modals use pseudo-element L marks at each corner to make every surface feel like a measured technical plate.
- Primitive glyph stacks: illustrations are assembled from reusable CSS nodes, rails, diamonds, disks, and chevrons with one shared 2px stroke.
- Semantic edge coding: status panels use a 4px left or top edge in cyan, amber, red, or green while the remaining surface stays neutral.
- Orthogonal connector maps: workflow relationships are shown with square-bent connector lines, small dot junctions, and no diagonal arrows.
- Coordinate micro-labels: uppercase mono captions, axis numbers, and tiny legends provide system context without becoming decoration.
## Layout
### Density
Atlas density: information is layered but gridded, with clear separation between the focal pictogram, tool controls, evidence table, and review dialog.
### Grid
Desktop uses a 12-column max-width 1280px grid with 24px gutters; tablet collapses to 6 columns; mobile becomes a single-column stack while preserving glyph modules.
### Breakpoints
Three responsive ranges: desktop >= 1100px, tablet 700px-1099px, mobile <= 699px with card stacking and horizontally scrollable tables.
### Whitespace
Whitespace is measured in 8px increments and expressed as empty grid cells around the primary glyph; tight controls may use 8-12px gaps but story panels use 24-48px breathing room.
### Responsive
At tablet width the right rail moves below the hero plate; at mobile width navigation becomes a wrapped command strip, pictogram cells shrink, and the modal becomes full-width.
## Guidance
### Do
- Start every product illustration by choosing a metaphor that can be built from five or fewer geometric primitives.
- Align icons, captions, controls, and connector endpoints to the same 8px spacing and square-cell construction grid.
- Use semantic color sparingly and consistently: cyan for active information, amber for review, green for confirmation, red for destructive states.
- Maintain one shared stroke width across pictograms, icons, dividers, chart marks, and connector lines.
- Include descriptive labels or captions near abstract symbols so accessibility and comprehension are preserved.
- Prefer flat high-contrast vector plates over shadows, depth effects, gradients, or atmospheric illustration.
- Use registration marks and coordinate labels to reinforce the engineered graphic-system voice.
### Don't
- Do not introduce character art, organic blobs, hand lettering, or sketch textures that break vector consistency.
- Do not use color as decoration; if a hue appears, it must communicate state, category, direction, or priority.
- Do not mix filled icons, stroked icons, and pictograms without reconciling stroke weight and corner treatment.
- Do not crowd the focal glyph with multiple competing metaphors or unlabeled symbolic fragments.
- Do not use soft drop shadows, glassmorphism, glossy gradients, or rounded card clouds as the main identity.
- Do not rely on screenshots alone for storytelling; translate interface behavior into symbolic diagrams.
- Do not let mobile break the construction logic—stack plates, but keep captions and connector relationships clear.
### Usage Context
Best for product storytelling, empty states, onboarding, feature explainers, interface graphics, symbolic illustration systems, icon-adjacent visuals, and brand illustration where clarity matters more than emotional scene painting.
### Accessibility
Meet WCAG AA contrast, pair every semantic color with text or shape, keep symbols labeled, avoid meaning conveyed only through hue, and preserve touch target sizes of at least 44px on mobile.
DESIGN.md
---
version: "alpha"
name: "Signal Glyph Atlas"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
primary: "#111418"
secondary: "#3A424C"
accent: "#00A3B5"
background: "#F4F1EA"
surface: "#FFFCF4"
text: "#111418"
muted: "#68717C"
border: "#1F252B"
error: "#B3261E"
success: "#168039"
warning: "#B86B00"
info: "#006D8F"
typography:
headline-lg:
fontFamily: "Azeret Mono"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Azeret Mono"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Atkinson Hyperlegible"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.48
letterSpacing: "-0.02em"
label-md:
fontFamily: "Spline Sans Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "0px"
md: "16px"
lg: "24px"
full: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
components:
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-info:
backgroundColor: "{colors.info}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#ffffff"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Signal Glyph Atlas
## Overview
Signal Glyph Atlas is a pictographic geometric graphic language for product storytelling where every illustration behaves like a system diagram: symbolic, accessible, high-contrast, and built from repeatable vector primitives rather than decorative drawing. It translates complex workflows into memorable glyph scenes that can scale from interface spots to large feature panels without losing clarity.
### Values
- Symbolic compression: illustrations reduce ideas to recognizable geometric metaphors before adding detail.
- Vector consistency: every pictogram shares stroke weight, corner logic, grid alignment, and endpoint treatment.
- Accessible contrast: neutral foundations carry the message while sparing semantic colors identify state, risk, success, or direction.
- Product truthfulness: graphics explain real interface behaviors, data flows, and user outcomes rather than generic optimism.
- Compositional restraint: each scene has one primary idea, one focal glyph, and a limited supporting constellation.
- Scalable storytelling: the same language works for icons, empty states, onboarding panels, and feature explainers.
- Mechanical warmth: precise geometric construction is softened by measured offsets, small labels, and human-readable rhythm.
### Anti-Values
- Mascot illustration, hand-drawn whimsy, painterly texture, and character scenes that cannot be systematized.
- Rainbow palettes, gradient hero art, decorative blobs, and arbitrary colors unrelated to product meaning.
- Overly literal screenshots or dense diagrams that require reading every label to understand the metaphor.
- Mixed icon styles, inconsistent stroke weights, random radii, and ungoverned vector flourishes.
### Visual Character
- Use a visible 12-column construction grid with thin axis rules, snapped card boundaries, and glyph modules positioned on square cells.
- Build pictograms from CSS circles, diamonds, rounded squares, chevrons, and orthogonal connector lines using one shared 2px stroke.
- Keep the interface almost monochrome with bone, ink, and graphite surfaces, then reserve cyan, amber, red, and green for semantic badges only.
- Frame story panels as technical plates with corner registration marks, coordinate labels, and small uppercase captions aligned to the grid.
- Use hard-edged flat surfaces with 0px outer radii, 16px inner controls, and no soft shadows so geometry and contrast define depth.
## 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 | `#111418` |
| secondary | `#3A424C` |
| accent | `#00A3B5` |
| background | `#F4F1EA` |
| surface | `#FFFCF4` |
| text | `#111418` |
| muted | `#68717C` |
| border | `#1F252B` |
| error | `#B3261E` |
| success | `#168039` |
| warning | `#B86B00` |
| info | `#006D8F` |
## Typography
- **Headline-Lg**: Azeret Mono, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Azeret Mono, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Atkinson Hyperlegible, 16px, weight 400, line-height 1.48.
- **Label-Md**: Spline Sans Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`
### Density
Atlas density: information is layered but gridded, with clear separation between the focal pictogram, tool controls, evidence table, and review dialog.
### Grid
Desktop uses a 12-column max-width 1280px grid with 24px gutters; tablet collapses to 6 columns; mobile becomes a single-column stack while preserving glyph modules.
### Breakpoints
Three responsive ranges: desktop >= 1100px, tablet 700px-1099px, mobile <= 699px with card stacking and horizontally scrollable tables.
### Whitespace
Whitespace is measured in 8px increments and expressed as empty grid cells around the primary glyph; tight controls may use 8-12px gaps but story panels use 24-48px breathing room.
### Responsive
At tablet width the right rail moves below the hero plate; at mobile width navigation becomes a wrapped command strip, pictogram cells shrink, and the modal becomes full-width.
## Elevation & Depth
### Shadows
- **Sm**: 0 0 0 1px #1F252B
- **Md**: 6px 6px 0 #111418
- **Lg**: 10px 10px 0 #111418
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: Flat technical-paper surfaces in {colors.background} and {colors.surface}, overprinted with faint grid lines and coordinate ticks.
- **Card Style**: Rectangular plates with {radii.none} outer corners, {borders.default_width} ink borders, and occasional offset hard shadow blocks.
- **Bg Pattern**: Subtle 24px construction grid using {colors.border} at very low opacity, never decorative texture.
### Borders
- **Default Width**: 2px
- **Accent Width**: 4px
- **Style**: solid
- **Character**: Ink-like mechanical rulework: square card edges, 2px pictogram strokes, 4px semantic edge bars, and corner registration marks.
## Components
### Composition
Compose screens as annotated atlas plates: one large focal pictogram explains the product story, supporting cards orbit on the same grid, and all connectors run horizontally or vertically. Use asymmetry only through module size, never through random placement. Every illustration must have a title caption, a semantic status, and at least one visible construction cue.
### Hierarchy
Hierarchy comes from scale, stroke density, and label weight: display headings use mono uppercase, product copy uses Atkinson Hyperlegible, and data or coordinates use Spline Sans Mono. The primary glyph is the largest dark shape; semantic color appears only in badges, alerts, progress, and selected controls.
### Density
Medium-high information density is allowed because the grid organizes it. Leave one empty cell around focal pictograms, cluster controls in tight tool trays, and keep text blocks short so symbolic graphics remain dominant.
### Signature Patterns
- Registration corners: cards and modals use pseudo-element L marks at each corner to make every surface feel like a measured technical plate.
- Primitive glyph stacks: illustrations are assembled from reusable CSS nodes, rails, diamonds, disks, and chevrons with one shared 2px stroke.
- Semantic edge coding: status panels use a 4px left or top edge in cyan, amber, red, or green while the remaining surface stays neutral.
- Orthogonal connector maps: workflow relationships are shown with square-bent connector lines, small dot junctions, and no diagonal arrows.
- Coordinate micro-labels: uppercase mono captions, axis numbers, and tiny legends provide system context without becoming decoration.
## 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-0673-77e3-b01a-4bf83ee40861/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 Start every product illustration by choosing a metaphor that can be built from five or fewer geometric primitives.
- Do Align icons, captions, controls, and connector endpoints to the same 8px spacing and square-cell construction grid.
- Do Use semantic color sparingly and consistently: cyan for active information, amber for review, green for confirmation, red for destructive states.
- Do Maintain one shared stroke width across pictograms, icons, dividers, chart marks, and connector lines.
- Do Include descriptive labels or captions near abstract symbols so accessibility and comprehension are preserved.
- Do Prefer flat high-contrast vector plates over shadows, depth effects, gradients, or atmospheric illustration.
- Do Use registration marks and coordinate labels to reinforce the engineered graphic-system voice.
- Don't Do not introduce character art, organic blobs, hand lettering, or sketch textures that break vector consistency.
- Don't Do not use color as decoration; if a hue appears, it must communicate state, category, direction, or priority.
- Don't Do not mix filled icons, stroked icons, and pictograms without reconciling stroke weight and corner treatment.
- Don't Do not crowd the focal glyph with multiple competing metaphors or unlabeled symbolic fragments.
- Don't Do not use soft drop shadows, glassmorphism, glossy gradients, or rounded card clouds as the main identity.
- Don't Do not rely on screenshots alone for storytelling; translate interface behavior into symbolic diagrams.
- Don't Do not let mobile break the construction logic—stack plates, but keep captions and connector relationships clear.
### Usage Context
Best for product storytelling, empty states, onboarding, feature explainers, interface graphics, symbolic illustration systems, icon-adjacent visuals, and brand illustration where clarity matters more than emotional scene painting.
### Accessibility
Meet WCAG AA contrast, pair every semantic color with text or shape, keep symbols labeled, avoid meaning conveyed only through hue, and preserve touch target sizes of at least 44px on mobile.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "signal-glyph-atlas",
"type": "registry:theme",
"title": "Signal Glyph Atlas shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F4F1EA",
"foreground": "#111418",
"card": "#FFFCF4",
"card-foreground": "#111418",
"popover": "#FFFCF4",
"popover-foreground": "#111418",
"primary": "#111418",
"primary-foreground": "#ffffff",
"secondary": "#3A424C",
"secondary-foreground": "#ffffff",
"muted": "#68717C",
"muted-foreground": "#111418",
"accent": "#00A3B5",
"accent-foreground": "#ffffff",
"destructive": "#B3261E",
"border": "#1F252B",
"input": "#1F252B",
"ring": "#00A3B5",
"chart-1": "#111418",
"chart-2": "#3A424C",
"chart-3": "#00A3B5",
"chart-4": "#168039",
"chart-5": "#B86B00",
"sidebar": "#FFFCF4",
"sidebar-foreground": "#111418",
"sidebar-primary": "#111418",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#006D8F",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#1F252B",
"sidebar-ring": "#00A3B5",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#111418",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#00A3B5",
"accent-foreground": "#ffffff",
"destructive": "#B3261E",
"border": "#303642",
"input": "#303642",
"ring": "#00A3B5",
"chart-1": "#111418",
"chart-2": "#3A424C",
"chart-3": "#00A3B5",
"chart-4": "#168039",
"chart-5": "#B86B00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#111418",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#00A3B5",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#00A3B5",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ddbe0-0673-77e3-b01a-4bf83ee40861",
"slug": "signal-glyph-atlas",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"spacing": [
"base",
"scale"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-896px
Shape
implementation kit
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #F4F1EA;
--foreground: #111418;
--card: #FFFCF4;
--card-foreground: #111418;
--popover: #FFFCF4;
--popover-foreground: #111418;
--primary: #111418;
--primary-foreground: #ffffff;
--secondary: #3A424C;
--secondary-foreground: #ffffff;
--muted: #68717C;
--muted-foreground: #111418;
--accent: #00A3B5;
--accent-foreground: #ffffff;
--destructive: #B3261E;
--border: #1F252B;
--input: #1F252B;
--ring: #00A3B5;
--chart-1: #111418;
--chart-2: #3A424C;
--chart-3: #00A3B5;
--chart-4: #168039;
--chart-5: #B86B00;
--sidebar: #FFFCF4;
--sidebar-foreground: #111418;
--sidebar-primary: #111418;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #006D8F;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #1F252B;
--sidebar-ring: #00A3B5;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #111418;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #00A3B5;
--accent-foreground: #ffffff;
--destructive: #B3261E;
--border: #303642;
--input: #303642;
--ring: #00A3B5;
--chart-1: #111418;
--chart-2: #3A424C;
--chart-3: #00A3B5;
--chart-4: #168039;
--chart-5: #B86B00;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #111418;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #00A3B5;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #00A3B5;
--radius: 16px;
}
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 SignalGlyphAtlasShadcnKit() {
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">Signal Glyph Atlas</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "signal-glyph-atlas",
"type": "registry:theme",
"title": "Signal Glyph Atlas shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F4F1EA",
"foreground": "#111418",
"card": "#FFFCF4",
"card-foreground": "#111418",
"popover": "#FFFCF4",
"popover-foreground": "#111418",
"primary": "#111418",
"primary-foreground": "#ffffff",
"secondary": "#3A424C",
"secondary-foreground": "#ffffff",
"muted": "#68717C",
"muted-foreground": "#111418",
"accent": "#00A3B5",
"accent-foreground": "#ffffff",
"destructive": "#B3261E",
"border": "#1F252B",
"input": "#1F252B",
"ring": "#00A3B5",
"chart-1": "#111418",
"chart-2": "#3A424C",
"chart-3": "#00A3B5",
"chart-4": "#168039",
"chart-5": "#B86B00",
"sidebar": "#FFFCF4",
"sidebar-foreground": "#111418",
"sidebar-primary": "#111418",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#006D8F",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#1F252B",
"sidebar-ring": "#00A3B5",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#111418",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#00A3B5",
"accent-foreground": "#ffffff",
"destructive": "#B3261E",
"border": "#303642",
"input": "#303642",
"ring": "#00A3B5",
"chart-1": "#111418",
"chart-2": "#3A424C",
"chart-3": "#00A3B5",
"chart-4": "#168039",
"chart-5": "#B86B00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#111418",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#00A3B5",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#00A3B5",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ddbe0-0673-77e3-b01a-4bf83ee40861",
"slug": "signal-glyph-atlas",
"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"
]
}
}
}
# Signal Glyph Atlas shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019ddbe0-0673-77e3-b01a-4bf83ee40861`
Slug: `signal-glyph-atlas`
## Intent
Signal Glyph Atlas is a pictographic geometric graphic language for product storytelling where every illustration behaves like a system diagram: symbolic, accessible, high-contrast, and built from repeatable vector primitives rather than decorative drawing. It translates complex workflows into memorable glyph scenes that can scale from interface spots to large feature panels without losing clarity.
## 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": "#111418",
"secondary": "#3A424C",
"accent": "#00A3B5",
"background": "#F4F1EA",
"surface": "#FFFCF4",
"text": "#111418",
"muted": "#68717C",
"border": "#1F252B",
"error": "#B3261E",
"success": "#168039",
"warning": "#B86B00",
"info": "#006D8F"
}
Typography:
{
"heading_font": "Azeret Mono",
"body_font": "Atkinson Hyperlegible",
"mono_font": "Spline Sans Mono",
"base_size": "16px",
"scale_ratio": 1.22,
"line_height": 1.48,
"letter_spacing": "-0.02em",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Azeret+Mono:wght@500;700;800&family=Spline+Sans+Mono:wght@400;600&display=swap"
}
## Visual character to preserve
- Use a visible 12-column construction grid with thin axis rules, snapped card boundaries, and glyph modules positioned on square cells.
- Build pictograms from CSS circles, diamonds, rounded squares, chevrons, and orthogonal connector lines using one shared 2px stroke.
- Keep the interface almost monochrome with bone, ink, and graphite surfaces, then reserve cyan, amber, red, and green for semantic badges only.
- Frame story panels as technical plates with corner registration marks, coordinate labels, and small uppercase captions aligned to the grid.
- Use hard-edged flat surfaces with 0px outer radii, 16px inner controls, and no soft shadows so geometry and contrast define depth.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": true,
"stickerBadges": true,
"motion": "still",
"density": "balanced",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
}
## Signature component recipes
### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.
### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.
### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.
### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.
### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.
## Preview shots
- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.
## Implementation contract
- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/signal-glyph-atlas/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: Start every product illustration by choosing a metaphor that can be built from five or fewer geometric primitives.; Align icons, captions, controls, and connector endpoints to the same 8px spacing and square-cell construction grid.; Use semantic color sparingly and consistently: cyan for active information, amber for review, green for confirmation, red for destructive states.; Maintain one shared stroke width across pictograms, icons, dividers, chart marks, and connector lines.; Include descriptive labels or captions near abstract symbols so accessibility and comprehension are preserved.; Prefer flat high-contrast vector plates over shadows, depth effects, gradients, or atmospheric illustration.; Use registration marks and coordinate labels to reinforce the engineered graphic-system voice.
- Do not: Do not introduce character art, organic blobs, hand lettering, or sketch textures that break vector consistency.; Do not use color as decoration; if a hue appears, it must communicate state, category, direction, or priority.; Do not mix filled icons, stroked icons, and pictograms without reconciling stroke weight and corner treatment.; Do not crowd the focal glyph with multiple competing metaphors or unlabeled symbolic fragments.; Do not use soft drop shadows, glassmorphism, glossy gradients, or rounded card clouds as the main identity.; Do not rely on screenshots alone for storytelling; translate interface behavior into symbolic diagrams.; Do not let mobile break the construction logic—stack plates, but keep captions and connector relationships clear.
## 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 SignalGlyphAtlasShadcnKit() {
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">Signal Glyph Atlas</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": "Atlas density: information is layered but gridded, with clear separation between the focal pictogram, tool controls, evidence table, and review dialog.",
"grid": "Desktop uses a 12-column max-width 1280px grid with 24px gutters; tablet collapses to 6 columns; mobile becomes a single-column stack while preserving glyph modules.",
"breakpoints": "Three responsive ranges: desktop >= 1100px, tablet 700px-1099px, mobile <= 699px with card stacking and horizontally scrollable tables.",
"whitespace": "Whitespace is measured in 8px increments and expressed as empty grid cells around the primary glyph; tight controls may use 8-12px gaps but story panels use 24-48px breathing room.",
"responsive": "At tablet width the right rail moves below the hero plate; at mobile width navigation becomes a wrapped command strip, pictogram cells shrink, and the modal becomes full-width."
}
{
"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-0673-77e3-b01a-4bf83ee40861",
"name": "Signal Glyph Atlas",
"slug": "signal-glyph-atlas"
},
"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": [
"Use a visible 12-column construction grid with thin axis rules, snapped card boundaries, and glyph modules positioned on square cells.",
"Build pictograms from CSS circles, diamonds, rounded squares, chevrons, and orthogonal connector lines using one shared 2px stroke.",
"Keep the interface almost monochrome with bone, ink, and graphite surfaces, then reserve cyan, amber, red, and green for semantic badges only.",
"Frame story panels as technical plates with corner registration marks, coordinate labels, and small uppercase captions aligned to the grid.",
"Use hard-edged flat surfaces with 0px outer radii, 16px inner controls, and no soft shadows so geometry and contrast define depth."
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": false,
"stickerBadges": true,
"motion": "still",
"density": "balanced",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
},
"shots": [
{
"id": "application-shell",
"title": "Application shell",
"viewport": "desktop",
"primitives": [
"button",
"card",
"input",
"select",
"tabs",
"badge",
"separator",
"table"
],
"composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
"mustShow": [
"primary and secondary actions",
"card hierarchy",
"filterable state",
"table or list density"
],
"avoid": [
"component inventory walls",
"placeholder-only content",
"generic rounded SaaS chrome"
],
"scene": {
"eyebrow": "workspace spread",
"headline": "Signal Glyph Atlas 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": [
"Start every product illustration by choosing a metaphor that can be built from five or fewer geometric primitives.",
"Align icons, captions, controls, and connector endpoints to the same 8px spacing and square-cell construction grid.",
"Use semantic color sparingly and consistently: cyan for active information, amber for review, green for confirmation, red for destructive states.",
"Maintain one shared stroke width across pictograms, icons, dividers, chart marks, and connector lines.",
"Include descriptive labels or captions near abstract symbols so accessibility and comprehension are preserved.",
"Prefer flat high-contrast vector plates over shadows, depth effects, gradients, or atmospheric illustration.",
"Use registration marks and coordinate labels to reinforce the engineered graphic-system voice."
],
"dont": [
"Do not introduce character art, organic blobs, hand lettering, or sketch textures that break vector consistency.",
"Do not use color as decoration; if a hue appears, it must communicate state, category, direction, or priority.",
"Do not mix filled icons, stroked icons, and pictograms without reconciling stroke weight and corner treatment.",
"Do not crowd the focal glyph with multiple competing metaphors or unlabeled symbolic fragments.",
"Do not use soft drop shadows, glassmorphism, glossy gradients, or rounded card clouds as the main identity.",
"Do not rely on screenshots alone for storytelling; translate interface behavior into symbolic diagrams.",
"Do not let mobile break the construction logic—stack plates, but keep captions and connector relationships clear."
]
}
}