Aqua Dew Candy Minimalism
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
borders4 items
- accent width
- 2px
- character
- Borders should feel like condensation edges: low opacity, rounded, visible through contrast only at component edges.
- default width
- 1px
- style
- solid with rgba(21,33,38,0.08) for default and rgba(105,200,207,0.55) for active dew edges
colors12 items
motion3 items
- duration
- 180ms
- easing
- cubic-bezier(.2,.8,.2,1)
- philosophy
- Small controls brighten and lift by 2px like a dew bead catching light; large panes do not animate except for gentle focus-state opacity.
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 24px
- none
- 0px
- sm
- 16px
shadows3 items
- lg
- 0 34px 90px rgba(54,105,111,0.16)
- md
- 0 18px 44px rgba(54,105,111,0.10)
- sm
- 0 1px 2px rgba(21,33,38,0.05)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
- bg pattern
- A fixed milk field with two extremely soft aqua radial glows, no repeating pattern and no multicolor gradients.
- card style
- Cards use #FFFFFF at 82-96% opacity, 1px rgba(21,33,38,0.08) borders, a committed 24px pane radius, and a tiny top-left dew bead when selected.
- treatment
- Opaque milk-white surfaces dominate; translucent aqua-tinted panes are limited to one or two depth layers with backdrop-filter blur(14px) and solid inner reading panels.
typography8 items
- base size
- 16px
- body font
- Afacad
- google fonts url
- https://fonts.googleapis.com/css2?family=Afacad:wght@400;500;600&family=Bricolage+Grotesque:wght@500;600;700&family=JetBrains+Mono:wght@500&display=swap
- heading font
- Bricolage Grotesque
- letter spacing
- -0.02em
- line height
- 1.56
- mono font
- JetBrains Mono
- scale ratio
- 1.24
rules
Use one dominant translucent work basin or product pane occupying at least forty percent of the viewport, balanced by a narrow column of clustered pill controls. Break the grid with a floating status droplet or strawberry dot marker rather than adding extra cards. Avoid equal-width card rows; every screen needs one clear hero surface and one compact detail cluster. Large panes use the committed 24px radius while tiny controls use compact 16px or full-pill geometry.
Airy by default with 64-96px section gaps, but related controls compress into 4-12px clusters so the interface feels calm rather than sparse.
Display headings use Bricolage Grotesque at tight -0.04em tracking and 1.08 to 1.14 leading. Body copy uses Afacad at 16px with -0.02em tracking. Primary actions are aqua gel pills, secondary actions are ink text links, and destructive or urgent states receive only a strawberry dot plus text label.
layout
Desktop >= 1100px, tablet 720-1099px with stacked basin/control sections, mobile < 720px with single-column panes and horizontal pill scroll only when needed.
Quiet spacious screens with one dense control island; the largest gap is 96px and the tightest repeated gap is 8px to satisfy a strong rhythm ratio.
Desktop uses a 12-column grid with 32px gutters and max-width 1180px; the hero basin spans 7 columns while the control island spans 4 with one empty column as air.
On small screens the translucent basin becomes opaque white for contrast, strawberry dots stay inline, and dew controls expand to comfortable touch targets.
Whitespace is an active material: 64px around major panes, 24-32px inside cards, and 4-12px inside semantic clusters. Never distribute space evenly across unrelated sections.
guidance
- Use milk-white or near-white backgrounds with high-contrast ink text for every functional label.
- Reserve aqua for primary affordances, active borders, progress waterlines, and selected states.
- Use one strawberry dot at a moment of brand delight, alert, or saved-state confirmation.
- Keep translucent surfaces large and rare, then place readable opaque chips above them.
- Pair oversized airy panes with compact clusters of related controls to create rhythm.
- Use near-invisible ink-tinted borders instead of solid gray rules.
- Make the signature dew-edge visible in buttons, toggles, tabs, or progress controls.
- Do not use rainbow gradients, multicolor icon sets, neon cyan, or toy-like candy pastels.
- Do not blur behind small text or place body copy directly on busy translucent areas.
- Do not create three equal cards in a row or a generic SaaS analytics dashboard.
- Do not use strawberry red as a broad background, button fill, or repeated decorative sprinkle.
- Do not add ornamental blobs, confetti, or glass panels merely to fill blank space.
- Do not rely on default browser form styling or solid gray borders.
- Do not reduce contrast below WCAG AA for body text and controls.
katagami spec
# Aqua Dew Candy Minimalism ## Philosophy Aqua Dew Candy Minimalism is a milk-white product language for quiet, readable tools that feel freshly rinsed rather than decorated. It uses soft aqua dew as the main affordance, a single strawberry-red dot as a branded moment, and translucent depth only where it clarifies foreground from background. ### Values - Readability before atmosphere: ink text and clear hierarchy stay stronger than blur or shine. - Freshness through restraint: aqua appears as dew-like affordances, not as a full rainbow pastel system. - Tactile minimalism: controls feel gel-smooth and physical while remaining simple and efficient. - Semantic discipline: strawberry red is reserved for one dot-like brand cue or urgent state, never scattered decoration. - Layered calm: translucent panels create shallow depth without glassmorphism clutter or low-contrast haze. - Soft hierarchy: generous whitespace and asymmetric massing replace decorative density. ### Anti-Values - Rainbow SaaS pastel palettes, synthetic neon cyan, toy-like candy gradients, and evenly distributed accent colors. - Decorative blur behind every card, low-contrast frosted text, or glass effects that reduce usability. - Generic dashboard sameness, equal-card rows, icon confetti, and ornamental blobs used to fill space. - Hard gray borders or default blue controls that break the milk-white dew material. ### Visual Character - Milk-white page fields use subtle cool radial washes and almost invisible ink-tinted borders instead of flat gray panels. - Aqua dew controls are pill-shaped gel surfaces with an inset highlight, a lower aqua meniscus line, and dark readable labels. - Translucent panels appear only as large primary panes using backdrop-filter blur under 18px with opaque text zones layered above. - Strawberry identity is expressed as isolated 6px to 14px circular dots at decision points, never as broad fills or gradients. - Layouts combine one oversized airy work surface with compact clustered micro-controls to create a clear 8-to-1 spacing rhythm. ## Tokens ### Borders - **Accent Width**: 2px - **Character**: Borders should feel like condensation edges: low opacity, rounded, visible through contrast only at component edges. - **Default Width**: 1px - **Style**: solid with rgba(21,33,38,0.08) for default and rgba(105,200,207,0.55) for active dew edges ### Colors | Name | Value | |------|-------| | accent | `#C75A63` | | background | `#FBFCF8` | | border | `#15212614` | | error | `#B94A53` | | info | `#4BA7B2` | | muted | `#6D7E80` | | primary | `#69C8CF` | | secondary | `#DDEFF0` | | success | `#4F9A79` | | surface | `#FFFFFF` | | text | `#152126` | | warning | `#B98644` | ### Motion - **Duration**: 180ms - **Easing**: cubic-bezier(.2,.8,.2,1) - **Philosophy**: Small controls brighten and lift by 2px like a dew bead catching light; large panes do not animate except for gentle focus-state opacity. ### Radii - **Full**: 9999px - **Lg**: 24px - **Md**: 24px - **None**: 0px - **Sm**: 16px ### Shadows - **Lg**: 0 34px 90px rgba(54,105,111,0.16) - **Md**: 0 18px 44px rgba(54,105,111,0.10) - **Sm**: 0 1px 2px rgba(21,33,38,0.05) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96] ### Surfaces - **Bg Pattern**: A fixed milk field with two extremely soft aqua radial glows, no repeating pattern and no multicolor gradients. - **Card Style**: Cards use #FFFFFF at 82-96% opacity, 1px rgba(21,33,38,0.08) borders, a committed 24px pane radius, and a tiny top-left dew bead when selected. - **Treatment**: Opaque milk-white surfaces dominate; translucent aqua-tinted panes are limited to one or two depth layers with backdrop-filter blur(14px) and solid inner reading panels. ### Typography - **Base Size**: 16px - **Body Font**: Afacad - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Afacad:wght@400;500;600&family=Bricolage+Grotesque:wght@500;600;700&family=JetBrains+Mono:wght@500&display=swap - **Heading Font**: Bricolage Grotesque - **Letter Spacing**: -0.02em - **Line Height**: 1.56 - **Mono Font**: JetBrains Mono - **Scale Ratio**: 1.24 ## Rules ### Composition Use one dominant translucent work basin or product pane occupying at least forty percent of the viewport, balanced by a narrow column of clustered pill controls. Break the grid with a floating status droplet or strawberry dot marker rather than adding extra cards. Avoid equal-width card rows; every screen needs one clear hero surface and one compact detail cluster. Large panes use the committed 24px radius while tiny controls use compact 16px or full-pill geometry. ### Density Airy by default with 64-96px section gaps, but related controls compress into 4-12px clusters so the interface feels calm rather than sparse. ### Hierarchy Display headings use Bricolage Grotesque at tight -0.04em tracking and 1.08 to 1.14 leading. Body copy uses Afacad at 16px with -0.02em tracking. Primary actions are aqua gel pills, secondary actions are ink text links, and destructive or urgent states receive only a strawberry dot plus text label. ### Signature Patterns - Dew-edge pills combine a white-to-aqua linear highlight, inset top shine, and a 2px aqua meniscus border only along the bottom edge. - Strawberry dot moments use single circular markers beside key labels, notification counts, or save states; they never become a second full accent system. - Readable frost panes place translucent glass behind content but put text inside opaque milk chips or high-contrast ink zones. - Condensation dividers are short rounded aqua hairlines that stop before card edges, replacing full-width separators. - One large basin surface uses layered border radii and a faint aqua glow to establish depth without decorative blur clutter. ## Layout ### Breakpoints Desktop >= 1100px, tablet 720-1099px with stacked basin/control sections, mobile < 720px with single-column panes and horizontal pill scroll only when needed. ### Density Quiet spacious screens with one dense control island; the largest gap is 96px and the tightest repeated gap is 8px to satisfy a strong rhythm ratio. ### Grid Desktop uses a 12-column grid with 32px gutters and max-width 1180px; the hero basin spans 7 columns while the control island spans 4 with one empty column as air. ### Responsive On small screens the translucent basin becomes opaque white for contrast, strawberry dots stay inline, and dew controls expand to comfortable touch targets. ### Whitespace Whitespace is an active material: 64px around major panes, 24-32px inside cards, and 4-12px inside semantic clusters. Never distribute space evenly across unrelated sections. ## Guidance ### Do - Use milk-white or near-white backgrounds with high-contrast ink text for every functional label. - Reserve aqua for primary affordances, active borders, progress waterlines, and selected states. - Use one strawberry dot at a moment of brand delight, alert, or saved-state confirmation. - Keep translucent surfaces large and rare, then place readable opaque chips above them. - Pair oversized airy panes with compact clusters of related controls to create rhythm. - Use near-invisible ink-tinted borders instead of solid gray rules. - Make the signature dew-edge visible in buttons, toggles, tabs, or progress controls. ### Don't - Do not use rainbow gradients, multicolor icon sets, neon cyan, or toy-like candy pastels. - Do not blur behind small text or place body copy directly on busy translucent areas. - Do not create three equal cards in a row or a generic SaaS analytics dashboard. - Do not use strawberry red as a broad background, button fill, or repeated decorative sprinkle. - Do not add ornamental blobs, confetti, or glass panels merely to fill blank space. - Do not rely on default browser form styling or solid gray borders. - Do not reduce contrast below WCAG AA for body text and controls. ### Accessibility Ink text on milk-white surfaces exceeds AA contrast; aqua states are always paired with shape, border, or label changes; red dots are accompanied by text for non-color perception. ### Usage Context Best for wellness, hydration, food freshness, personal rituals, lightweight creative tools, and calm consumer productivity products where freshness and precision must coexist.
DESIGN.md
---
version: "alpha"
name: "Aqua Dew Candy Minimalism"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#C75A63"
background: "#FBFCF8"
error: "#B94A53"
info: "#4BA7B2"
muted: "#6D7E80"
primary: "#69C8CF"
secondary: "#DDEFF0"
success: "#4F9A79"
surface: "#FFFFFF"
text: "#152126"
warning: "#B98644"
typography:
headline-lg:
fontFamily: "Bricolage Grotesque"
fontSize: "1.907rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Bricolage Grotesque"
fontSize: "1.538rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Afacad"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.56
letterSpacing: "-0.02em"
label-md:
fontFamily: "JetBrains Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "24px"
md: "24px"
none: "0px"
sm: "16px"
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-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
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"
---
# Aqua Dew Candy Minimalism
## Overview
Aqua Dew Candy Minimalism is a milk-white product language for quiet, readable tools that feel freshly rinsed rather than decorated. It uses soft aqua dew as the main affordance, a single strawberry-red dot as a branded moment, and translucent depth only where it clarifies foreground from background.
### Values
- Readability before atmosphere: ink text and clear hierarchy stay stronger than blur or shine.
- Freshness through restraint: aqua appears as dew-like affordances, not as a full rainbow pastel system.
- Tactile minimalism: controls feel gel-smooth and physical while remaining simple and efficient.
- Semantic discipline: strawberry red is reserved for one dot-like brand cue or urgent state, never scattered decoration.
- Layered calm: translucent panels create shallow depth without glassmorphism clutter or low-contrast haze.
- Soft hierarchy: generous whitespace and asymmetric massing replace decorative density.
### Anti-Values
- Rainbow SaaS pastel palettes, synthetic neon cyan, toy-like candy gradients, and evenly distributed accent colors.
- Decorative blur behind every card, low-contrast frosted text, or glass effects that reduce usability.
- Generic dashboard sameness, equal-card rows, icon confetti, and ornamental blobs used to fill space.
- Hard gray borders or default blue controls that break the milk-white dew material.
### Visual Character
- Milk-white page fields use subtle cool radial washes and almost invisible ink-tinted borders instead of flat gray panels.
- Aqua dew controls are pill-shaped gel surfaces with an inset highlight, a lower aqua meniscus line, and dark readable labels.
- Translucent panels appear only as large primary panes using backdrop-filter blur under 18px with opaque text zones layered above.
- Strawberry identity is expressed as isolated 6px to 14px circular dots at decision points, never as broad fills or gradients.
- Layouts combine one oversized airy work surface with compact clustered micro-controls to create a clear 8-to-1 spacing rhythm.
## 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 | `#C75A63` |
| background | `#FBFCF8` |
| error | `#B94A53` |
| info | `#4BA7B2` |
| muted | `#6D7E80` |
| primary | `#69C8CF` |
| secondary | `#DDEFF0` |
| success | `#4F9A79` |
| surface | `#FFFFFF` |
| text | `#152126` |
| warning | `#B98644` |
## Typography
- **Headline-Lg**: Bricolage Grotesque, 1.907rem, weight 700, line-height 1.1.
- **Headline-Md**: Bricolage Grotesque, 1.538rem, weight 600, line-height 1.15.
- **Body-Md**: Afacad, 16px, weight 400, line-height 1.56.
- **Label-Md**: JetBrains 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`
### Breakpoints
Desktop >= 1100px, tablet 720-1099px with stacked basin/control sections, mobile < 720px with single-column panes and horizontal pill scroll only when needed.
### Density
Quiet spacious screens with one dense control island; the largest gap is 96px and the tightest repeated gap is 8px to satisfy a strong rhythm ratio.
### Grid
Desktop uses a 12-column grid with 32px gutters and max-width 1180px; the hero basin spans 7 columns while the control island spans 4 with one empty column as air.
### Responsive
On small screens the translucent basin becomes opaque white for contrast, strawberry dots stay inline, and dew controls expand to comfortable touch targets.
### Whitespace
Whitespace is an active material: 64px around major panes, 24-32px inside cards, and 4-12px inside semantic clusters. Never distribute space evenly across unrelated sections.
## Elevation & Depth
### Shadows
- **Lg**: 0 34px 90px rgba(54,105,111,0.16)
- **Md**: 0 18px 44px rgba(54,105,111,0.10)
- **Sm**: 0 1px 2px rgba(21,33,38,0.05)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `24px`
- **None**: `0px`
- **Sm**: `16px`
### Surfaces
- **Bg Pattern**: A fixed milk field with two extremely soft aqua radial glows, no repeating pattern and no multicolor gradients.
- **Card Style**: Cards use #FFFFFF at 82-96% opacity, 1px rgba(21,33,38,0.08) borders, a committed 24px pane radius, and a tiny top-left dew bead when selected.
- **Treatment**: Opaque milk-white surfaces dominate; translucent aqua-tinted panes are limited to one or two depth layers with backdrop-filter blur(14px) and solid inner reading panels.
### Borders
- **Accent Width**: 2px
- **Character**: Borders should feel like condensation edges: low opacity, rounded, visible through contrast only at component edges.
- **Default Width**: 1px
- **Style**: solid with rgba(21,33,38,0.08) for default and rgba(105,200,207,0.55) for active dew edges
## Components
### Composition
Use one dominant translucent work basin or product pane occupying at least forty percent of the viewport, balanced by a narrow column of clustered pill controls. Break the grid with a floating status droplet or strawberry dot marker rather than adding extra cards. Avoid equal-width card rows; every screen needs one clear hero surface and one compact detail cluster. Large panes use the committed 24px radius while tiny controls use compact 16px or full-pill geometry.
### Density
Airy by default with 64-96px section gaps, but related controls compress into 4-12px clusters so the interface feels calm rather than sparse.
### Hierarchy
Display headings use Bricolage Grotesque at tight -0.04em tracking and 1.08 to 1.14 leading. Body copy uses Afacad at 16px with -0.02em tracking. Primary actions are aqua gel pills, secondary actions are ink text links, and destructive or urgent states receive only a strawberry dot plus text label.
### Signature Patterns
- Dew-edge pills combine a white-to-aqua linear highlight, inset top shine, and a 2px aqua meniscus border only along the bottom edge.
- Strawberry dot moments use single circular markers beside key labels, notification counts, or save states; they never become a second full accent system.
- Readable frost panes place translucent glass behind content but put text inside opaque milk chips or high-contrast ink zones.
- Condensation dividers are short rounded aqua hairlines that stop before card edges, replacing full-width separators.
- One large basin surface uses layered border radii and a faint aqua glow to establish depth without decorative blur clutter.
## 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-019e0a81-9c80-7470-a827-090a5065eca1/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 milk-white or near-white backgrounds with high-contrast ink text for every functional label.
- Do Reserve aqua for primary affordances, active borders, progress waterlines, and selected states.
- Do Use one strawberry dot at a moment of brand delight, alert, or saved-state confirmation.
- Do Keep translucent surfaces large and rare, then place readable opaque chips above them.
- Do Pair oversized airy panes with compact clusters of related controls to create rhythm.
- Do Use near-invisible ink-tinted borders instead of solid gray rules.
- Do Make the signature dew-edge visible in buttons, toggles, tabs, or progress controls.
- Don't Do not use rainbow gradients, multicolor icon sets, neon cyan, or toy-like candy pastels.
- Don't Do not blur behind small text or place body copy directly on busy translucent areas.
- Don't Do not create three equal cards in a row or a generic SaaS analytics dashboard.
- Don't Do not use strawberry red as a broad background, button fill, or repeated decorative sprinkle.
- Don't Do not add ornamental blobs, confetti, or glass panels merely to fill blank space.
- Don't Do not rely on default browser form styling or solid gray borders.
- Don't Do not reduce contrast below WCAG AA for body text and controls.
### Accessibility
Ink text on milk-white surfaces exceeds AA contrast; aqua states are always paired with shape, border, or label changes; red dots are accompanied by text for non-color perception.
### Usage Context
Best for wellness, hydration, food freshness, personal rituals, lightweight creative tools, and calm consumer productivity products where freshness and precision must coexist.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "aqua-dew-candy-minimalism",
"type": "registry:theme",
"title": "Aqua Dew Candy Minimalism shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#FBFCF8",
"foreground": "#152126",
"card": "#FFFFFF",
"card-foreground": "#152126",
"popover": "#FFFFFF",
"popover-foreground": "#152126",
"primary": "#69C8CF",
"primary-foreground": "#ffffff",
"secondary": "#DDEFF0",
"secondary-foreground": "#111111",
"muted": "#6D7E80",
"muted-foreground": "#152126",
"accent": "#C75A63",
"accent-foreground": "#ffffff",
"destructive": "#B94A53",
"border": "#15212614",
"input": "#15212614",
"ring": "#C75A63",
"chart-1": "#69C8CF",
"chart-2": "#DDEFF0",
"chart-3": "#C75A63",
"chart-4": "#4F9A79",
"chart-5": "#B98644",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#152126",
"sidebar-primary": "#69C8CF",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#4BA7B2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#15212614",
"sidebar-ring": "#C75A63",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#69C8CF",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#C75A63",
"accent-foreground": "#ffffff",
"destructive": "#B94A53",
"border": "#303642",
"input": "#303642",
"ring": "#C75A63",
"chart-1": "#69C8CF",
"chart-2": "#DDEFF0",
"chart-3": "#C75A63",
"chart-4": "#4F9A79",
"chart-5": "#B98644",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#69C8CF",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#C75A63",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#C75A63",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e0a81-9c80-7470-a827-090a5065eca1",
"slug": "aqua-dew-candy-minimalism",
"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"
]
}
}
}
```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: #FBFCF8;
--foreground: #152126;
--card: #FFFFFF;
--card-foreground: #152126;
--popover: #FFFFFF;
--popover-foreground: #152126;
--primary: #69C8CF;
--primary-foreground: #ffffff;
--secondary: #DDEFF0;
--secondary-foreground: #111111;
--muted: #6D7E80;
--muted-foreground: #152126;
--accent: #C75A63;
--accent-foreground: #ffffff;
--destructive: #B94A53;
--border: #15212614;
--input: #15212614;
--ring: #C75A63;
--chart-1: #69C8CF;
--chart-2: #DDEFF0;
--chart-3: #C75A63;
--chart-4: #4F9A79;
--chart-5: #B98644;
--sidebar: #FFFFFF;
--sidebar-foreground: #152126;
--sidebar-primary: #69C8CF;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #4BA7B2;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #15212614;
--sidebar-ring: #C75A63;
--radius: 24px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #69C8CF;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #C75A63;
--accent-foreground: #ffffff;
--destructive: #B94A53;
--border: #303642;
--input: #303642;
--ring: #C75A63;
--chart-1: #69C8CF;
--chart-2: #DDEFF0;
--chart-3: #C75A63;
--chart-4: #4F9A79;
--chart-5: #B98644;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #69C8CF;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #C75A63;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #C75A63;
--radius: 24px;
}
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 AquaDewCandyMinimalismShadcnKit() {
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">Aqua Dew Candy Minimalism</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",
"cssVars": {
"dark": {
"accent": "#C75A63",
"accent-foreground": "#ffffff",
"background": "#0f1115",
"border": "#303642",
"card": "#181b22",
"card-foreground": "#f8fafc",
"chart-1": "#69C8CF",
"chart-2": "#DDEFF0",
"chart-3": "#C75A63",
"chart-4": "#4F9A79",
"chart-5": "#B98644",
"destructive": "#B94A53",
"foreground": "#f8fafc",
"input": "#303642",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#69C8CF",
"primary-foreground": "#ffffff",
"radius": "24px",
"ring": "#C75A63",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"sidebar": "#181b22",
"sidebar-accent": "#C75A63",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#69C8CF",
"sidebar-primary-foreground": "#ffffff",
"sidebar-ring": "#C75A63"
},
"light": {
"accent": "#C75A63",
"accent-foreground": "#ffffff",
"background": "#FBFCF8",
"border": "#15212614",
"card": "#FFFFFF",
"card-foreground": "#152126",
"chart-1": "#69C8CF",
"chart-2": "#DDEFF0",
"chart-3": "#C75A63",
"chart-4": "#4F9A79",
"chart-5": "#B98644",
"destructive": "#B94A53",
"foreground": "#152126",
"input": "#15212614",
"muted": "#6D7E80",
"muted-foreground": "#152126",
"popover": "#FFFFFF",
"popover-foreground": "#152126",
"primary": "#69C8CF",
"primary-foreground": "#ffffff",
"radius": "24px",
"ring": "#C75A63",
"secondary": "#DDEFF0",
"secondary-foreground": "#111111",
"sidebar": "#FFFFFF",
"sidebar-accent": "#4BA7B2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#15212614",
"sidebar-foreground": "#152126",
"sidebar-primary": "#69C8CF",
"sidebar-primary-foreground": "#ffffff",
"sidebar-ring": "#C75A63"
},
"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-019e0a81-9c80-7470-a827-090a5065eca1",
"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": "aqua-dew-candy-minimalism",
"source": "katagami"
},
"name": "aqua-dew-candy-minimalism",
"title": "Aqua Dew Candy Minimalism shadcn Theme",
"type": "registry:theme"
}
# Aqua Dew Candy Minimalism shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019e0a81-9c80-7470-a827-090a5065eca1`
Slug: `aqua-dew-candy-minimalism`
## Intent
Aqua Dew Candy Minimalism is a milk-white product language for quiet, readable tools that feel freshly rinsed rather than decorated. It uses soft aqua dew as the main affordance, a single strawberry-red dot as a branded moment, and translucent depth only where it clarifies foreground from background.
## 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": "#C75A63",
"background": "#FBFCF8",
"border": "#15212614",
"error": "#B94A53",
"info": "#4BA7B2",
"muted": "#6D7E80",
"primary": "#69C8CF",
"secondary": "#DDEFF0",
"success": "#4F9A79",
"surface": "#FFFFFF",
"text": "#152126",
"warning": "#B98644"
}
Typography:
{
"base_size": "16px",
"body_font": "Afacad",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Afacad:wght@400;500;600&family=Bricolage+Grotesque:wght@500;600;700&family=JetBrains+Mono:wght@500&display=swap",
"heading_font": "Bricolage Grotesque",
"letter_spacing": "-0.02em",
"line_height": 1.56,
"mono_font": "JetBrains Mono",
"scale_ratio": 1.24
}
## Visual character to preserve
- Milk-white page fields use subtle cool radial washes and almost invisible ink-tinted borders instead of flat gray panels.
- Aqua dew controls are pill-shaped gel surfaces with an inset highlight, a lower aqua meniscus line, and dark readable labels.
- Translucent panels appear only as large primary panes using backdrop-filter blur under 18px with opaque text zones layered above.
- Strawberry identity is expressed as isolated 6px to 14px circular dots at decision points, never as broad fills or gradients.
- Layouts combine one oversized airy work surface with compact clustered micro-controls to create a clear 8-to-1 spacing rhythm.
## ShadSync visual profile
{
"family": "system",
"material": "flat",
"contour": "pebble",
"border": "solid",
"underlay": true,
"grain": false,
"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/aqua-dew-candy-minimalism/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 milk-white or near-white backgrounds with high-contrast ink text for every functional label.; Reserve aqua for primary affordances, active borders, progress waterlines, and selected states.; Use one strawberry dot at a moment of brand delight, alert, or saved-state confirmation.; Keep translucent surfaces large and rare, then place readable opaque chips above them.; Pair oversized airy panes with compact clusters of related controls to create rhythm.; Use near-invisible ink-tinted borders instead of solid gray rules.; Make the signature dew-edge visible in buttons, toggles, tabs, or progress controls.
- Do not: Do not use rainbow gradients, multicolor icon sets, neon cyan, or toy-like candy pastels.; Do not blur behind small text or place body copy directly on busy translucent areas.; Do not create three equal cards in a row or a generic SaaS analytics dashboard.; Do not use strawberry red as a broad background, button fill, or repeated decorative sprinkle.; Do not add ornamental blobs, confetti, or glass panels merely to fill blank space.; Do not rely on default browser form styling or solid gray borders.; Do not reduce contrast below WCAG AA for body text and controls.
## 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 AquaDewCandyMinimalismShadcnKit() {
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">Aqua Dew Candy Minimalism</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": "Desktop >= 1100px, tablet 720-1099px with stacked basin/control sections, mobile < 720px with single-column panes and horizontal pill scroll only when needed.",
"density": "Quiet spacious screens with one dense control island; the largest gap is 96px and the tightest repeated gap is 8px to satisfy a strong rhythm ratio.",
"grid": "Desktop uses a 12-column grid with 32px gutters and max-width 1180px; the hero basin spans 7 columns while the control island spans 4 with one empty column as air.",
"responsive": "On small screens the translucent basin becomes opaque white for contrast, strawberry dots stay inline, and dew controls expand to comfortable touch targets.",
"whitespace": "Whitespace is an active material: 64px around major panes, 24-32px inside cards, and 4-12px inside semantic clusters. Never distribute space evenly across unrelated sections."
}
{
"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-019e0a81-9c80-7470-a827-090a5065eca1",
"name": "Aqua Dew Candy Minimalism",
"slug": "aqua-dew-candy-minimalism"
},
"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": [
"Milk-white page fields use subtle cool radial washes and almost invisible ink-tinted borders instead of flat gray panels.",
"Aqua dew controls are pill-shaped gel surfaces with an inset highlight, a lower aqua meniscus line, and dark readable labels.",
"Translucent panels appear only as large primary panes using backdrop-filter blur under 18px with opaque text zones layered above.",
"Strawberry identity is expressed as isolated 6px to 14px circular dots at decision points, never as broad fills or gradients.",
"Layouts combine one oversized airy work surface with compact clustered micro-controls to create a clear 8-to-1 spacing rhythm."
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "pebble",
"border": "solid",
"underlay": true,
"grain": false,
"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": "Aqua Dew Candy Minimalism 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 milk-white or near-white backgrounds with high-contrast ink text for every functional label.",
"Reserve aqua for primary affordances, active borders, progress waterlines, and selected states.",
"Use one strawberry dot at a moment of brand delight, alert, or saved-state confirmation.",
"Keep translucent surfaces large and rare, then place readable opaque chips above them.",
"Pair oversized airy panes with compact clusters of related controls to create rhythm.",
"Use near-invisible ink-tinted borders instead of solid gray rules.",
"Make the signature dew-edge visible in buttons, toggles, tabs, or progress controls."
],
"dont": [
"Do not use rainbow gradients, multicolor icon sets, neon cyan, or toy-like candy pastels.",
"Do not blur behind small text or place body copy directly on busy translucent areas.",
"Do not create three equal cards in a row or a generic SaaS analytics dashboard.",
"Do not use strawberry red as a broad background, button fill, or repeated decorative sprinkle.",
"Do not add ornamental blobs, confetti, or glass panels merely to fill blank space.",
"Do not rely on default browser form styling or solid gray borders.",
"Do not reduce contrast below WCAG AA for body text and controls."
]
}
}