back to gallery
design language·chroma-aperture-surfaces

Chroma Aperture Surfaces

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
Chroma Aperture Surfaces is a premium product interface language where calm white hardware-like planes are punctuated by a few optically tuned color apertures that carry state, navigation, and product memory rather than decoration.
values
Neutral product surfaces must stay quiet enough for data entry, review, and decision work.Color is structural: it marks live context, priority, focus, and completion rather than acting as garnish.Freshness comes from unexpected hue relationships held inside disciplined geometry and generous spacing.Every component should feel machined, spacious, and directly usable on a modern device screen.
anti-values
×Rainbow systems, confetti, blob gradients, neon cyberpunk, and color used merely to prove colorfulness.×Decorative left rails, square-grid backgrounds, repeated dotted notebook texture, and generic admin dashboard composition.×Mixed arbitrary radii or uncommitted soft-card styling that makes the interface feel templated.
tokens
borders4 items
accent width
2px
character
Cool hairline borders define neutral surfaces; accent borders appear only as full focus rings or inset aperture rims, never as left rails.
default width
1px
style
solid
colors12 items
accent
#625BFF
background
#F7F6F2
border
#DDE1E7
error
#D84B3A
info
#3D66E8
muted
#747B86
primary
#18A878
secondary
#FF6A4A
success
#159A69
surface
#FFFFFF
text
#111318
warning
#D89219
motion3 items
duration
180ms
easing
cubic-bezier(0.2, 0.8, 0.2, 1)
philosophy
Small optical transitions: apertures brighten, rings tighten, and cards lift two pixels; avoid bouncy or theatrical movement.
radii5 items
full
9999px
lg
22px
md
16px
none
0
sm
10px
shadows3 items
lg
0 36px 90px rgba(34, 42, 52, 0.14), 0 0 0 1px rgba(221, 225, 231, 0.88)
md
0 18px 44px rgba(34, 42, 52, 0.10), 0 0 0 1px rgba(221, 225, 231, 0.82)
sm
0 1px 2px rgba(17, 19, 24, 0.06), 0 0 0 1px rgba(221, 225, 231, 0.72)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
Plain luminous neutral field with a soft radial light bloom behind the main product surface; no square grid and no repeated dot texture.
card style
22px rounded white cards with one-pixel cool borders, interior padding of 24-32px, shallow hardware shadows, and no colored side rail.
treatment
Warm porcelain background with white product panels, subtle top-light gradients, and localized chroma aperture wells for active state.
typography8 items
base size
16px
body font
Host Grotesk
google fonts url
https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
heading font
Host Grotesk
letter spacing
-0.025em
line height
1.48
mono font
IBM Plex Mono
scale ratio
1.22
rules
composition
Compose as a product-first workspace: a dominant white work surface, a secondary context panel, and a few floating color apertures that clarify current mode without becoming decoration.
density

Medium-low density with generous 24-32px internal padding, readable 16px controls, and compact metadata only when it supports the task.

hierarchy
Lead with one large heading and one decisive action row; use chroma only for the active path, selected state, focus, or important status so visual attention remains calm.
signature patterns
Inset aperture wells use radial-gradient color pools clipped inside rounded rectangles to identify the active module without side stripes.Status lenses are small circular gradient dots paired with text labels and soft outer glows so state is visible but not confetti-like.Primary actions use a full-surface chroma fill with a tiny white specular highlight and neutral companion buttons instead of multi-colored button sets.Focus states draw complete two-pixel chroma rings with a four-pixel translucent halo around inputs, selects, and interactive cards.Data rows use porcelain capsules and right-aligned chroma temperature marks inside the cell, never decorative rails on the row edge.
layout
breakpoints

Mobile 375px, tablet 768px, desktop 1200px and above with max content width near 1240px.

grid

Use an asymmetric 12-column layout on desktop with a wide product canvas and a narrower context column; mobile stacks into one column.

whitespace

Whitespace is a material feature: keep broad outer margins, 24px card gaps, and open header breathing room around chroma accents.

guidance
do
  • Use a restrained three-hue chroma relationship: mineral green for constructive flow, coral-orange for human urgency, and blue-violet for intelligence or navigation.
  • Keep most surfaces white or warm neutral and let color appear in apertures, focus rings, selected tabs, status lenses, and one primary action.
  • Make application scenes specific to product workflows such as device calibration, creative review, health scheduling, or inventory approvals.
  • Maintain full text contrast and pair every color state with labels, icons, or position.
avoid
  • Do not use rainbow palettes, arbitrary confetti, startup blobs, neon cyberpunk glows, or color merely as garnish.
  • Do not use square-grid backgrounds, default repeated dotted notebook texture, or textbook-page imitation.
  • Do not put decorative side rails or left stripes on cards, buttons, rows, or panels.
  • Do not make the scene a generic analytics dashboard or a template SaaS admin shell.
katagami spec
# Chroma Aperture Surfaces

## Philosophy

Chroma Aperture Surfaces is a premium product interface language where calm white hardware-like planes are punctuated by a few optically tuned color apertures that carry state, navigation, and product memory rather than decoration.

### Values

- Neutral product surfaces must stay quiet enough for data entry, review, and decision work.
- Color is structural: it marks live context, priority, focus, and completion rather than acting as garnish.
- Freshness comes from unexpected hue relationships held inside disciplined geometry and generous spacing.
- Every component should feel machined, spacious, and directly usable on a modern device screen.

### Anti-Values

- Rainbow systems, confetti, blob gradients, neon cyberpunk, and color used merely to prove colorfulness.
- Decorative left rails, square-grid backgrounds, repeated dotted notebook texture, and generic admin dashboard composition.
- Mixed arbitrary radii or uncommitted soft-card styling that makes the interface feel templated.

### Visual Character

- Use large white and warm-porcelain panels with 22px committed radii, one-pixel cool borders, and soft vertical shadows that read as product hardware surfaces.
- Place color in inset aperture wells: rounded rectangular recesses, small circular status lenses, and focus rings using translucent radial CSS gradients rather than side stripes.
- Build hierarchy with oversized calm typography, tight negative letter spacing, wide section gutters, and sparse metadata chips instead of dense dashboard modules.
- Use a neutral page field with subtle top-to-bottom luminosity and no square grid, no default dot texture, and no decorative wallpaper motif.
- Reserve the strongest chroma for one active decision path at a time, balancing cool mineral green with warm coral-orange and a deep blue-violet support hue.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: Cool hairline borders define neutral surfaces; accent borders appear only as full focus rings or inset aperture rims, never as left rails.
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#625BFF` |
| background | `#F7F6F2` |
| border | `#DDE1E7` |
| error | `#D84B3A` |
| info | `#3D66E8` |
| muted | `#747B86` |
| primary | `#18A878` |
| secondary | `#FF6A4A` |
| success | `#159A69` |
| surface | `#FFFFFF` |
| text | `#111318` |
| warning | `#D89219` |

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1)
- **Philosophy**: Small optical transitions: apertures brighten, rings tighten, and cards lift two pixels; avoid bouncy or theatrical movement.

### Radii

- **Full**: 9999px
- **Lg**: 22px
- **Md**: 16px
- **None**: 0
- **Sm**: 10px

### Shadows

- **Lg**: 0 36px 90px rgba(34, 42, 52, 0.14), 0 0 0 1px rgba(221, 225, 231, 0.88)
- **Md**: 0 18px 44px rgba(34, 42, 52, 0.10), 0 0 0 1px rgba(221, 225, 231, 0.82)
- **Sm**: 0 1px 2px rgba(17, 19, 24, 0.06), 0 0 0 1px rgba(221, 225, 231, 0.72)

### Spacing

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

### Surfaces

- **Bg Pattern**: Plain luminous neutral field with a soft radial light bloom behind the main product surface; no square grid and no repeated dot texture.
- **Card Style**: 22px rounded white cards with one-pixel cool borders, interior padding of 24-32px, shallow hardware shadows, and no colored side rail.
- **Treatment**: Warm porcelain background with white product panels, subtle top-light gradients, and localized chroma aperture wells for active state.

### Typography

- **Base Size**: 16px
- **Body Font**: Host Grotesk
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
- **Heading Font**: Host Grotesk
- **Letter Spacing**: -0.025em
- **Line Height**: 1.48
- **Mono Font**: IBM Plex Mono
- **Scale Ratio**: 1.22

## Rules

### Composition

Compose as a product-first workspace: a dominant white work surface, a secondary context panel, and a few floating color apertures that clarify current mode without becoming decoration.

### Density

Medium-low density with generous 24-32px internal padding, readable 16px controls, and compact metadata only when it supports the task.

### Hierarchy

Lead with one large heading and one decisive action row; use chroma only for the active path, selected state, focus, or important status so visual attention remains calm.

### Signature Patterns

- Inset aperture wells use radial-gradient color pools clipped inside rounded rectangles to identify the active module without side stripes.
- Status lenses are small circular gradient dots paired with text labels and soft outer glows so state is visible but not confetti-like.
- Primary actions use a full-surface chroma fill with a tiny white specular highlight and neutral companion buttons instead of multi-colored button sets.
- Focus states draw complete two-pixel chroma rings with a four-pixel translucent halo around inputs, selects, and interactive cards.
- Data rows use porcelain capsules and right-aligned chroma temperature marks inside the cell, never decorative rails on the row edge.

## Layout

### Breakpoints

Mobile 375px, tablet 768px, desktop 1200px and above with max content width near 1240px.

### Grid

Use an asymmetric 12-column layout on desktop with a wide product canvas and a narrower context column; mobile stacks into one column.

### Whitespace

Whitespace is a material feature: keep broad outer margins, 24px card gaps, and open header breathing room around chroma accents.

## Guidance

### Do

- Use a restrained three-hue chroma relationship: mineral green for constructive flow, coral-orange for human urgency, and blue-violet for intelligence or navigation.
- Keep most surfaces white or warm neutral and let color appear in apertures, focus rings, selected tabs, status lenses, and one primary action.
- Make application scenes specific to product workflows such as device calibration, creative review, health scheduling, or inventory approvals.
- Maintain full text contrast and pair every color state with labels, icons, or position.

### Don't

- Do not use rainbow palettes, arbitrary confetti, startup blobs, neon cyberpunk glows, or color merely as garnish.
- Do not use square-grid backgrounds, default repeated dotted notebook texture, or textbook-page imitation.
- Do not put decorative side rails or left stripes on cards, buttons, rows, or panels.
- Do not make the scene a generic analytics dashboard or a template SaaS admin shell.
DESIGN.md
---
version: "alpha"
name: "Chroma Aperture Surfaces"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#625BFF"
  background: "#F7F6F2"
  border: "#DDE1E7"
  error: "#D84B3A"
  info: "#3D66E8"
  muted: "#747B86"
  primary: "#18A878"
  secondary: "#FF6A4A"
  success: "#159A69"
  surface: "#FFFFFF"
  text: "#111318"
  warning: "#D89219"
typography:
  headline-lg:
    fontFamily: "Host Grotesk"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.025em"
  headline-md:
    fontFamily: "Host Grotesk"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.025em"
  body-md:
    fontFamily: "Host Grotesk"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.48
    letterSpacing: "-0.025em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "22px"
  md: "16px"
  none: "0px"
  sm: "10px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Chroma Aperture Surfaces

## Overview

Chroma Aperture Surfaces is a premium product interface language where calm white hardware-like planes are punctuated by a few optically tuned color apertures that carry state, navigation, and product memory rather than decoration.

### Values

- Neutral product surfaces must stay quiet enough for data entry, review, and decision work.
- Color is structural: it marks live context, priority, focus, and completion rather than acting as garnish.
- Freshness comes from unexpected hue relationships held inside disciplined geometry and generous spacing.
- Every component should feel machined, spacious, and directly usable on a modern device screen.

### Anti-Values

- Rainbow systems, confetti, blob gradients, neon cyberpunk, and color used merely to prove colorfulness.
- Decorative left rails, square-grid backgrounds, repeated dotted notebook texture, and generic admin dashboard composition.
- Mixed arbitrary radii or uncommitted soft-card styling that makes the interface feel templated.

### Visual Character

- Use large white and warm-porcelain panels with 22px committed radii, one-pixel cool borders, and soft vertical shadows that read as product hardware surfaces.
- Place color in inset aperture wells: rounded rectangular recesses, small circular status lenses, and focus rings using translucent radial CSS gradients rather than side stripes.
- Build hierarchy with oversized calm typography, tight negative letter spacing, wide section gutters, and sparse metadata chips instead of dense dashboard modules.
- Use a neutral page field with subtle top-to-bottom luminosity and no square grid, no default dot texture, and no decorative wallpaper motif.
- Reserve the strongest chroma for one active decision path at a time, balancing cool mineral green with warm coral-orange and a deep blue-violet support hue.

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| accent | `#625BFF` |
| background | `#F7F6F2` |
| border | `#DDE1E7` |
| error | `#D84B3A` |
| info | `#3D66E8` |
| muted | `#747B86` |
| primary | `#18A878` |
| secondary | `#FF6A4A` |
| success | `#159A69` |
| surface | `#FFFFFF` |
| text | `#111318` |
| warning | `#D89219` |

## Typography

- **Headline-Lg**: Host Grotesk, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Host Grotesk, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Host Grotesk, 16px, weight 400, line-height 1.48.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`

### Breakpoints

Mobile 375px, tablet 768px, desktop 1200px and above with max content width near 1240px.

### Grid

Use an asymmetric 12-column layout on desktop with a wide product canvas and a narrower context column; mobile stacks into one column.

### Whitespace

Whitespace is a material feature: keep broad outer margins, 24px card gaps, and open header breathing room around chroma accents.

## Elevation & Depth

### Shadows

- **Lg**: 0 36px 90px rgba(34, 42, 52, 0.14), 0 0 0 1px rgba(221, 225, 231, 0.88)
- **Md**: 0 18px 44px rgba(34, 42, 52, 0.10), 0 0 0 1px rgba(221, 225, 231, 0.82)
- **Sm**: 0 1px 2px rgba(17, 19, 24, 0.06), 0 0 0 1px rgba(221, 225, 231, 0.72)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `22px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `10px`

### Surfaces

- **Bg Pattern**: Plain luminous neutral field with a soft radial light bloom behind the main product surface; no square grid and no repeated dot texture.
- **Card Style**: 22px rounded white cards with one-pixel cool borders, interior padding of 24-32px, shallow hardware shadows, and no colored side rail.
- **Treatment**: Warm porcelain background with white product panels, subtle top-light gradients, and localized chroma aperture wells for active state.

### Borders

- **Accent Width**: 2px
- **Character**: Cool hairline borders define neutral surfaces; accent borders appear only as full focus rings or inset aperture rims, never as left rails.
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Compose as a product-first workspace: a dominant white work surface, a secondary context panel, and a few floating color apertures that clarify current mode without becoming decoration.

### Density

Medium-low density with generous 24-32px internal padding, readable 16px controls, and compact metadata only when it supports the task.

### Hierarchy

Lead with one large heading and one decisive action row; use chroma only for the active path, selected state, focus, or important status so visual attention remains calm.

### Signature Patterns

- Inset aperture wells use radial-gradient color pools clipped inside rounded rectangles to identify the active module without side stripes.
- Status lenses are small circular gradient dots paired with text labels and soft outer glows so state is visible but not confetti-like.
- Primary actions use a full-surface chroma fill with a tiny white specular highlight and neutral companion buttons instead of multi-colored button sets.
- Focus states draw complete two-pixel chroma rings with a four-pixel translucent halo around inputs, selects, and interactive cards.
- Data rows use porcelain capsules and right-aligned chroma temperature marks inside the cell, never decorative rails on the row edge.

## 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-019e464b-a095-7e21-9d7c-b231bfcb2c18/DESIGN.with-shadcn.md`.

The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.

Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.

## Do's and Don'ts

- Do Use a restrained three-hue chroma relationship: mineral green for constructive flow, coral-orange for human urgency, and blue-violet for intelligence or navigation.
- Do Keep most surfaces white or warm neutral and let color appear in apertures, focus rings, selected tabs, status lenses, and one primary action.
- Do Make application scenes specific to product workflows such as device calibration, creative review, health scheduling, or inventory approvals.
- Do Maintain full text contrast and pair every color state with labels, icons, or position.
- Don't Do not use rainbow palettes, arbitrary confetti, startup blobs, neon cyberpunk glows, or color merely as garnish.
- Don't Do not use square-grid backgrounds, default repeated dotted notebook texture, or textbook-page imitation.
- Don't Do not put decorative side rails or left stripes on cards, buttons, rows, or panels.
- Don't Do not make the scene a generic analytics dashboard or a template SaaS admin shell.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "chroma-aperture-surfaces",
  "type": "registry:theme",
  "title": "Chroma Aperture Surfaces shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F7F6F2",
      "foreground": "#111318",
      "card": "#FFFFFF",
      "card-foreground": "#111318",
      "popover": "#FFFFFF",
      "popover-foreground": "#111318",
      "primary": "#18A878",
      "primary-foreground": "#ffffff",
      "secondary": "#FF6A4A",
      "secondary-foreground": "#ffffff",
      "muted": "#747B86",
      "muted-foreground": "#111318",
      "accent": "#625BFF",
      "accent-foreground": "#ffffff",
      "destructive": "#D84B3A",
      "border": "#DDE1E7",
      "input": "#DDE1E7",
      "ring": "#625BFF",
      "chart-1": "#18A878",
      "chart-2": "#FF6A4A",
      "chart-3": "#625BFF",
      "chart-4": "#159A69",
      "chart-5": "#D89219",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#111318",
      "sidebar-primary": "#18A878",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#3D66E8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#DDE1E7",
      "sidebar-ring": "#625BFF",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#18A878",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#625BFF",
      "accent-foreground": "#ffffff",
      "destructive": "#D84B3A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#625BFF",
      "chart-1": "#18A878",
      "chart-2": "#FF6A4A",
      "chart-3": "#625BFF",
      "chart-4": "#159A69",
      "chart-5": "#D89219",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#18A878",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#625BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#625BFF",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019e464b-a095-7e21-9d7c-b231bfcb2c18",
    "slug": "chroma-aperture-surfaces",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · chroma-aperture-surfaces
DESIGN.md

at a glance

Palette

Typography

headline-lgHost Grotesk · 29px · 700

The quick brown fox jumps

headline-mdHost Grotesk · 24px · 600

The quick brown fox jumps

body-mdHost Grotesk · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

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

Spacing

  • base8px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • 2xl32px
  • 3xl48px
  • 4xl64px

Shape

full9999px
lg22px
md16px
none0px
sm10px
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: #F7F6F2;
  --foreground: #111318;
  --card: #FFFFFF;
  --card-foreground: #111318;
  --popover: #FFFFFF;
  --popover-foreground: #111318;
  --primary: #18A878;
  --primary-foreground: #ffffff;
  --secondary: #FF6A4A;
  --secondary-foreground: #ffffff;
  --muted: #747B86;
  --muted-foreground: #111318;
  --accent: #625BFF;
  --accent-foreground: #ffffff;
  --destructive: #D84B3A;
  --border: #DDE1E7;
  --input: #DDE1E7;
  --ring: #625BFF;
  --chart-1: #18A878;
  --chart-2: #FF6A4A;
  --chart-3: #625BFF;
  --chart-4: #159A69;
  --chart-5: #D89219;
  --sidebar: #FFFFFF;
  --sidebar-foreground: #111318;
  --sidebar-primary: #18A878;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #3D66E8;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #DDE1E7;
  --sidebar-ring: #625BFF;
  --radius: 16px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #18A878;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #625BFF;
  --accent-foreground: #ffffff;
  --destructive: #D84B3A;
  --border: #303642;
  --input: #303642;
  --ring: #625BFF;
  --chart-1: #18A878;
  --chart-2: #FF6A4A;
  --chart-3: #625BFF;
  --chart-4: #159A69;
  --chart-5: #D89219;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #18A878;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #625BFF;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #625BFF;
  --radius: 16px;
}
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 ChromaApertureSurfacesShadcnKit() {
  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">Chroma Aperture Surfaces</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 JSONstored + verified
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "cssVars": {
    "dark": {
      "accent": "#625BFF",
      "accent-foreground": "#ffffff",
      "background": "#0f1115",
      "border": "#303642",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "chart-1": "#18A878",
      "chart-2": "#FF6A4A",
      "chart-3": "#625BFF",
      "chart-4": "#159A69",
      "chart-5": "#D89219",
      "destructive": "#D84B3A",
      "foreground": "#f8fafc",
      "input": "#303642",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#18A878",
      "primary-foreground": "#ffffff",
      "radius": "16px",
      "ring": "#625BFF",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "sidebar": "#181b22",
      "sidebar-accent": "#625BFF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#18A878",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-ring": "#625BFF"
    },
    "light": {
      "accent": "#625BFF",
      "accent-foreground": "#ffffff",
      "background": "#F7F6F2",
      "border": "#DDE1E7",
      "card": "#FFFFFF",
      "card-foreground": "#111318",
      "chart-1": "#18A878",
      "chart-2": "#FF6A4A",
      "chart-3": "#625BFF",
      "chart-4": "#159A69",
      "chart-5": "#D89219",
      "destructive": "#D84B3A",
      "foreground": "#111318",
      "input": "#DDE1E7",
      "muted": "#747B86",
      "muted-foreground": "#111318",
      "popover": "#FFFFFF",
      "popover-foreground": "#111318",
      "primary": "#18A878",
      "primary-foreground": "#ffffff",
      "radius": "16px",
      "ring": "#625BFF",
      "secondary": "#FF6A4A",
      "secondary-foreground": "#ffffff",
      "sidebar": "#FFFFFF",
      "sidebar-accent": "#3D66E8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#DDE1E7",
      "sidebar-foreground": "#111318",
      "sidebar-primary": "#18A878",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-ring": "#625BFF"
    },
    "theme": {}
  },
  "meta": {
    "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",
    "languageId": "en-019e464b-a095-7e21-9d7c-b231bfcb2c18",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    },
    "slug": "chroma-aperture-surfaces",
    "source": "katagami"
  },
  "name": "chroma-aperture-surfaces",
  "title": "Chroma Aperture Surfaces shadcn Theme",
  "type": "registry:theme"
}
component recipescompatibility fallback
# Chroma Aperture Surfaces shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019e464b-a095-7e21-9d7c-b231bfcb2c18`
Slug: `chroma-aperture-surfaces`

## Intent

Chroma Aperture Surfaces is a premium product interface language where calm white hardware-like planes are punctuated by a few optically tuned color apertures that carry state, navigation, and product memory rather than decoration.

## Required primitives

- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

## Token cues

Colors:

{
  "accent": "#625BFF",
  "background": "#F7F6F2",
  "border": "#DDE1E7",
  "error": "#D84B3A",
  "info": "#3D66E8",
  "muted": "#747B86",
  "primary": "#18A878",
  "secondary": "#FF6A4A",
  "success": "#159A69",
  "surface": "#FFFFFF",
  "text": "#111318",
  "warning": "#D89219"
}

Typography:

{
  "base_size": "16px",
  "body_font": "Host Grotesk",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap",
  "heading_font": "Host Grotesk",
  "letter_spacing": "-0.025em",
  "line_height": 1.48,
  "mono_font": "IBM Plex Mono",
  "scale_ratio": 1.22
}

## Visual character to preserve

- Use large white and warm-porcelain panels with 22px committed radii, one-pixel cool borders, and soft vertical shadows that read as product hardware surfaces.
- Place color in inset aperture wells: rounded rectangular recesses, small circular status lenses, and focus rings using translucent radial CSS gradients rather than side stripes.
- Build hierarchy with oversized calm typography, tight negative letter spacing, wide section gutters, and sparse metadata chips instead of dense dashboard modules.
- Use a neutral page field with subtle top-to-bottom luminosity and no square grid, no default dot texture, and no decorative wallpaper motif.
- Reserve the strongest chroma for one active decision path at a time, balancing cool mineral green with warm coral-orange and a deep blue-violet support hue.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "default",
  "border": "solid",
  "underlay": false,
  "grain": true,
  "stickerBadges": false,
  "motion": "lift",
  "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/chroma-aperture-surfaces/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Use a restrained three-hue chroma relationship: mineral green for constructive flow, coral-orange for human urgency, and blue-violet for intelligence or navigation.; Keep most surfaces white or warm neutral and let color appear in apertures, focus rings, selected tabs, status lenses, and one primary action.; Make application scenes specific to product workflows such as device calibration, creative review, health scheduling, or inventory approvals.; Maintain full text contrast and pair every color state with labels, icons, or position.
- Do not: Do not use rainbow palettes, arbitrary confetti, startup blobs, neon cyberpunk glows, or color merely as garnish.; Do not use square-grid backgrounds, default repeated dotted notebook texture, or textbook-page imitation.; Do not put decorative side rails or left stripes on cards, buttons, rows, or panels.; Do not make the scene a generic analytics dashboard or a template SaaS admin shell.

## 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 ChromaApertureSurfacesShadcnKit() {
  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">Chroma Aperture Surfaces</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

{
  "breakpoints": "Mobile 375px, tablet 768px, desktop 1200px and above with max content width near 1240px.",
  "grid": "Use an asymmetric 12-column layout on desktop with a wide product canvas and a narrower context column; mobile stacks into one column.",
  "whitespace": "Whitespace is a material feature: keep broad outer margins, 24px card gaps, and open header breathing room around chroma accents."
}
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-019e464b-a095-7e21-9d7c-b231bfcb2c18",
    "name": "Chroma Aperture Surfaces",
    "slug": "chroma-aperture-surfaces"
  },
  "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 large white and warm-porcelain panels with 22px committed radii, one-pixel cool borders, and soft vertical shadows that read as product hardware surfaces.",
    "Place color in inset aperture wells: rounded rectangular recesses, small circular status lenses, and focus rings using translucent radial CSS gradients rather than side stripes.",
    "Build hierarchy with oversized calm typography, tight negative letter spacing, wide section gutters, and sparse metadata chips instead of dense dashboard modules.",
    "Use a neutral page field with subtle top-to-bottom luminosity and no square grid, no default dot texture, and no decorative wallpaper motif.",
    "Reserve the strongest chroma for one active decision path at a time, balancing cool mineral green with warm coral-orange and a deep blue-violet support hue."
  ],
  "visualProfile": {
    "family": "paper-collage",
    "material": "paper",
    "contour": "default",
    "border": "solid",
    "underlay": false,
    "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": "Chroma Aperture Surfaces launch room",
        "description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
        "primaryAction": "Apply theme",
        "secondaryAction": "Review states",
        "stats": [
          {
            "label": "components",
            "value": "16",
            "tone": "accent"
          },
          {
            "label": "states",
            "value": "ready"
          },
          {
            "label": "density",
            "value": "balanced",
            "tone": "warning"
          }
        ],
        "rows": [
          {
            "label": "Primary flow",
            "value": "mapped",
            "status": "active"
          },
          {
            "label": "Token coverage",
            "value": "semantic",
            "status": "synced"
          },
          {
            "label": "Responsive proof",
            "value": "queued",
            "status": "review"
          }
        ],
        "statuses": [
          "Active",
          "Synced",
          "Draft"
        ]
      }
    },
    {
      "id": "detail-editor",
      "title": "Detail editor",
      "viewport": "tablet",
      "primitives": [
        "button",
        "card",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "dialog",
        "sheet"
      ],
      "composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
      "mustShow": [
        "focus ring",
        "error or destructive state",
        "dialog or sheet treatment",
        "written guidance content"
      ],
      "avoid": [
        "unstyled browser controls",
        "floating cards inside cards",
        "missing labels"
      ],
      "scene": {
        "eyebrow": "editing flow",
        "headline": "Language recipe editor",
        "description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
        "primaryAction": "Save recipe",
        "secondaryAction": "Open sheet",
        "fields": [
          {
            "label": "Component family",
            "value": "Narrative cards"
          },
          {
            "label": "State treatment",
            "value": "Visible focus + validation"
          },
          {
            "label": "Motion",
            "value": "Small lift, no opacity-only fade"
          }
        ],
        "statuses": [
          "Focus",
          "Invalid",
          "Confirmed"
        ]
      }
    },
    {
      "id": "data-operations",
      "title": "Data operations",
      "viewport": "mobile",
      "primitives": [
        "button",
        "tabs",
        "badge",
        "dropdown-menu",
        "table",
        "tooltip",
        "separator"
      ],
      "composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
      "mustShow": [
        "responsive reflow",
        "dense row styling",
        "menu affordance",
        "status badge system"
      ],
      "avoid": [
        "desktop-only tables",
        "text overflow",
        "default shadcn spacing without Katagami character"
      ],
      "scene": {
        "eyebrow": "operations",
        "headline": "Compact review queue",
        "description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
        "primaryAction": "Resolve",
        "secondaryAction": "Filter",
        "rows": [
          {
            "label": "Button hierarchy",
            "value": "approved",
            "status": "ok"
          },
          {
            "label": "Table rhythm",
            "value": "needs pass",
            "status": "watch"
          },
          {
            "label": "Empty state",
            "value": "designed",
            "status": "done"
          }
        ],
        "statuses": [
          "Queued",
          "Blocked",
          "Done"
        ]
      }
    }
  ],
  "componentRecipes": [
    {
      "primitive": "button",
      "intent": "Prove action hierarchy, focus, disabled, and destructive states."
    },
    {
      "primitive": "card",
      "intent": "Carry the language surface, border, elevation, and density rules."
    },
    {
      "primitive": "input",
      "intent": "Show labels, focus rings, validation, and spacing rhythm."
    },
    {
      "primitive": "textarea",
      "intent": "Show longer guidance, validation copy, and writing density."
    },
    {
      "primitive": "select",
      "intent": "Show filtering, selection contrast, and menu trigger styling."
    },
    {
      "primitive": "dialog",
      "intent": "Show centered decision states and overlay treatment."
    },
    {
      "primitive": "sheet",
      "intent": "Show contextual side panels and responsive editing."
    },
    {
      "primitive": "tabs",
      "intent": "Show navigational structure and active/inactive contrast."
    },
    {
      "primitive": "badge",
      "intent": "Show compact status vocabulary and semantic colors."
    },
    {
      "primitive": "separator",
      "intent": "Show section rhythm without generic gray dividers."
    },
    {
      "primitive": "checkbox",
      "intent": "Show binary selection with visible focus and checked states."
    },
    {
      "primitive": "switch",
      "intent": "Show settings toggles and on/off contrast."
    },
    {
      "primitive": "slider",
      "intent": "Show numeric adjustment with track/thumb styling."
    },
    {
      "primitive": "tooltip",
      "intent": "Show concise explanation styling above compact controls."
    },
    {
      "primitive": "dropdown-menu",
      "intent": "Show action menus, destructive items, and grouped choices."
    },
    {
      "primitive": "table",
      "intent": "Show dense operational data, separators, row states, and responsive behavior."
    }
  ],
  "qualityRules": {
    "do": [
      "Use a restrained three-hue chroma relationship: mineral green for constructive flow, coral-orange for human urgency, and blue-violet for intelligence or navigation.",
      "Keep most surfaces white or warm neutral and let color appear in apertures, focus rings, selected tabs, status lenses, and one primary action.",
      "Make application scenes specific to product workflows such as device calibration, creative review, health scheduling, or inventory approvals.",
      "Maintain full text contrast and pair every color state with labels, icons, or position."
    ],
    "dont": [
      "Do not use rainbow palettes, arbitrary confetti, startup blobs, neon cyberpunk glows, or color merely as garnish.",
      "Do not use square-grid backgrounds, default repeated dotted notebook texture, or textbook-page imitation.",
      "Do not put decorative side rails or left stripes on cards, buttons, rows, or panels.",
      "Do not make the scene a generic analytics dashboard or a template SaaS admin shell."
    ]
  }
}
related

More like this