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
- cool hairline borders with occasional inset top highlight rgba(255,255,255,0.75)
- default width
- 1px
- style
- solid
colors12 items
motion3 items
- duration
- 180ms
- easing
- cubic-bezier(.2,.7,.2,1)
- philosophy
- quiet settling motion: cards lift 2px, candy chips fade, no bounce, no elastic overshoot
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 24px
- none
- 0
- sm
- 16px
shadows3 items
- lg
- 0 28px 80px rgba(83, 111, 126, 0.16)
- md
- 0 18px 48px rgba(80, 107, 121, 0.12)
- sm
- 0 8px 24px rgba(75, 102, 116, 0.08)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
- bg pattern
- two low-opacity radial gradients: mint-blue upper left and lychee-pink lower right, never more than two accents
- card style
- rgba(255,255,255,0.68) fill, 1px #DCE6E8 border, backdrop-filter blur(18px)
- treatment
- milky translucent cards over warm off-white with cool dew radial washes
typography8 items
- base size
- 16px
- body font
- Nunito Sans
- google fonts url
- https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700&display=swap
- heading font
- Fraunces
- letter spacing
- -0.02em
- line height
- 1.55
- mono font
- DM Mono
- scale ratio
- 1.22
rules
Use a calm app-scene composition: a compact top bar, one expressive hero card, and supporting cards arranged in a 12-column desktop grid that collapses to one column on mobile. Leave visible breathing room between every cluster. Keep the background nearly empty except for two dew washes. Never fill blank areas with decorative icons; let spacing define the brand.
Medium-low density with 24-32px card padding and 16-24px gaps. Youthful does not mean crowded; each card should be scannable in under two seconds and avoid more than three competing focal points.
Headings use Fraunces for a soft editorial signal while body text uses Nunito Sans for clarity. Primary actions are mint-filled or pink-tinted pills, secondary actions are hairline pills. Important metrics sit in translucent cards with large numbers and small uppercase mono labels. Color indicates priority only after size, placement, and weight have already done the work.
layout
- desktop
- 1024px+
- mobile
- 0-639px
- tablet
- 640-1023px
Airy medium-low density chosen to feel fresh and readable on youth mobile screens while still supporting productive desktop review.
Desktop uses 12 columns inside a max-width of 1180px with 24px gutters; hero spans 7 columns and side stack spans 5. Tablet becomes 6 columns; mobile becomes a single 1-column flow.
Preserve card order, collapse navigation into scrollable chips, keep primary action visible near the top, and reduce decorative dew dots on narrow screens.
Use 24px minimum card gaps, 32px major section gaps, and large outer padding; empty space should feel like cool air around the cards.
guidance
- Use milky neutrals for most backgrounds and reserve candy accents for state and action.
- Keep text contrast high by placing important copy on stronger white surfaces.
- Use 24px radius consistently for cards and 9999px only for chips and pills.
- Let one dewdot or candy rail create the signature instead of adding illustrations.
- Pair Fraunces headings with plain Nunito Sans body copy to balance softness and clarity.
- Use cool hairline borders to separate translucent layers.
- Test mobile first so frosted surfaces do not become muddy or cramped.
- Prefer small material changes on hover over movement-heavy animation.
- Do not use rainbow palettes, multi-stop loud gradients, or neon gamer glows.
- Do not add toy-like blobs, mascots, sticker piles, or childish iconography.
- Do not use transparency behind small text unless the backing surface remains high contrast.
- Do not mix arbitrary radii; stay with 0, 16, 24, and 9999px.
- Do not fill every card with color; most cards should remain quiet and milky.
- Do not create generic pastel SaaS dashboards with unrelated widgets.
- Do not use more than two candy accent hues on a screen.
- Do not rely on blur alone for hierarchy or separation.
katagami spec
# Dew Candy Minimalism ## Philosophy Dew Candy Minimalism is a youth-culture interface language that makes social, learning, and lifestyle tools feel freshly rinsed, calm, and approachable without becoming childish. Its point of view is disciplined softness: most of the screen is milky off-white, mist blue-gray, and readable ink, while a tiny number of translucent candy accents behave like dew drops caught on glass. The language rejects the loud rainbow energy often attached to youth products and instead treats color as a scarce navigational signal. Cards are clean, roomy, and layered with frosted/tinted material depth so the interface feels touchable but still fast, legible, and grown-up. ### Values - Air before decoration: generous negative space carries the mood more than ornament. - Readable hierarchy first: headings, labels, and actions stay crisp against every translucent surface. - Color scarcity: candy hues appear as small functional accents, never as a palette parade. - Softness with discipline: roundness, blur, and shadow are calibrated so the product remains mature. - Fresh materiality: surfaces feel dewy, cool, and lightly hydrated rather than glossy plastic. - Youthful optimism: the interface feels friendly and current without toy-like icons or novelty shapes. - Calm motion: transitions should feel like condensation settling, not bouncing or gaming effects. ### Anti-Values - Rainbow gradients, neon glow, and multi-accent confetti treatments. - Childish toy cues such as inflated blobs, sticker clutter, mascot-heavy layouts, or bubble lettering. - Generic pastel SaaS dashboards with interchangeable cards and no material signature. - Dense feeds, heavy borders, and loud decorative shadows that make the system feel busy. - Glassmorphism that sacrifices contrast or creates illegible washed-out text. ### Visual Character - Milky off-white page background with two oversized fixed radial dew washes kept under 18 percent opacity. - Rounded 24px cards using translucent white fills, one-pixel cool borders, and a restrained backdrop-filter blur. - Small pill-like candy chips in mint and lychee pink used only for status, selection, and primary affordances. - A dewdrop notch motif made with tiny translucent circular pseudo-elements pinned to card corners. - Single-column mobile flow and airy two-column desktop cards with at least 24px internal padding. ## Tokens ### Borders - **Accent Width**: 2px - **Character**: cool hairline borders with occasional inset top highlight rgba(255,255,255,0.75) - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#FF9FC7` | | background | `#F7F5EF` | | border | `#DCE6E8` | | error | `#C65A6A` | | info | `#74A9C9` | | muted | `#7C8B92` | | primary | `#6E8FA3` | | secondary | `#B9C9D2` | | success | `#5FAE91` | | surface | `#FFFFFF` | | text | `#27333A` | | warning | `#D7A75E` | ### Motion - **Duration**: 180ms - **Easing**: cubic-bezier(.2,.7,.2,1) - **Philosophy**: quiet settling motion: cards lift 2px, candy chips fade, no bounce, no elastic overshoot ### Radii - **Full**: 9999px - **Lg**: 24px - **Md**: 24px - **None**: 0 - **Sm**: 16px ### Shadows - **Lg**: 0 28px 80px rgba(83, 111, 126, 0.16) - **Md**: 0 18px 48px rgba(80, 107, 121, 0.12) - **Sm**: 0 8px 24px rgba(75, 102, 116, 0.08) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96] ### Surfaces - **Bg Pattern**: two low-opacity radial gradients: mint-blue upper left and lychee-pink lower right, never more than two accents - **Card Style**: rgba(255,255,255,0.68) fill, 1px #DCE6E8 border, backdrop-filter blur(18px) - **Treatment**: milky translucent cards over warm off-white with cool dew radial washes ### Typography - **Base Size**: 16px - **Body Font**: Nunito Sans - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700&display=swap - **Heading Font**: Fraunces - **Letter Spacing**: -0.02em - **Line Height**: 1.55 - **Mono Font**: DM Mono - **Scale Ratio**: 1.22 ## Rules ### Composition Use a calm app-scene composition: a compact top bar, one expressive hero card, and supporting cards arranged in a 12-column desktop grid that collapses to one column on mobile. Leave visible breathing room between every cluster. Keep the background nearly empty except for two dew washes. Never fill blank areas with decorative icons; let spacing define the brand. ### Density Medium-low density with 24-32px card padding and 16-24px gaps. Youthful does not mean crowded; each card should be scannable in under two seconds and avoid more than three competing focal points. ### Hierarchy Headings use Fraunces for a soft editorial signal while body text uses Nunito Sans for clarity. Primary actions are mint-filled or pink-tinted pills, secondary actions are hairline pills. Important metrics sit in translucent cards with large numbers and small uppercase mono labels. Color indicates priority only after size, placement, and weight have already done the work. ### Signature Patterns - Dewdot corners: cards may carry one or two 10-18px translucent circular pseudo-elements that overlap the border like condensation. - Candy rail selection: selected navigation and filters use a narrow translucent pink or mint capsule behind text instead of full colored panels. - Frosted stack depth: major cards use blur plus a white inset highlight and a cool hairline border, while minor cards remove blur to preserve hierarchy. - Low-sugar accent rule: no screen may show more than two candy accent hues, and each accent must map to a specific state or call to action. ## Layout ### Breakpoints - **Desktop**: 1024px+ - **Mobile**: 0-639px - **Tablet**: 640-1023px ### Density Airy medium-low density chosen to feel fresh and readable on youth mobile screens while still supporting productive desktop review. ### Grid Desktop uses 12 columns inside a max-width of 1180px with 24px gutters; hero spans 7 columns and side stack spans 5. Tablet becomes 6 columns; mobile becomes a single 1-column flow. ### Responsive Preserve card order, collapse navigation into scrollable chips, keep primary action visible near the top, and reduce decorative dew dots on narrow screens. ### Whitespace Use 24px minimum card gaps, 32px major section gaps, and large outer padding; empty space should feel like cool air around the cards. ## Guidance ### Do - Use milky neutrals for most backgrounds and reserve candy accents for state and action. - Keep text contrast high by placing important copy on stronger white surfaces. - Use 24px radius consistently for cards and 9999px only for chips and pills. - Let one dewdot or candy rail create the signature instead of adding illustrations. - Pair Fraunces headings with plain Nunito Sans body copy to balance softness and clarity. - Use cool hairline borders to separate translucent layers. - Test mobile first so frosted surfaces do not become muddy or cramped. - Prefer small material changes on hover over movement-heavy animation. ### Don't - Do not use rainbow palettes, multi-stop loud gradients, or neon gamer glows. - Do not add toy-like blobs, mascots, sticker piles, or childish iconography. - Do not use transparency behind small text unless the backing surface remains high contrast. - Do not mix arbitrary radii; stay with 0, 16, 24, and 9999px. - Do not fill every card with color; most cards should remain quiet and milky. - Do not create generic pastel SaaS dashboards with unrelated widgets. - Do not use more than two candy accent hues on a screen. - Do not rely on blur alone for hierarchy or separation. ### Accessibility Maintain WCAG AA contrast for all body text, use solid or high-opacity cards beneath copy, support reduced motion, keep focus rings visible in primary blue, and never encode status by color alone. ### Usage Context Best for youth learning, wellness, creator planning, social coordination, campus tools, and lightweight finance or habit apps that need softness without losing trust.
DESIGN.md
---
version: "alpha"
name: "Dew Candy Minimalism"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#FF9FC7"
background: "#F7F5EF"
border: "#DCE6E8"
error: "#C65A6A"
info: "#74A9C9"
muted: "#7C8B92"
primary: "#6E8FA3"
secondary: "#B9C9D2"
success: "#5FAE91"
surface: "#FFFFFF"
text: "#27333A"
warning: "#D7A75E"
typography:
headline-lg:
fontFamily: "Fraunces"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Fraunces"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Nunito Sans"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "-0.02em"
label-md:
fontFamily: "DM 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-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"
---
# Dew Candy Minimalism
## Overview
Dew Candy Minimalism is a youth-culture interface language that makes social, learning, and lifestyle tools feel freshly rinsed, calm, and approachable without becoming childish. Its point of view is disciplined softness: most of the screen is milky off-white, mist blue-gray, and readable ink, while a tiny number of translucent candy accents behave like dew drops caught on glass. The language rejects the loud rainbow energy often attached to youth products and instead treats color as a scarce navigational signal. Cards are clean, roomy, and layered with frosted/tinted material depth so the interface feels touchable but still fast, legible, and grown-up.
### Values
- Air before decoration: generous negative space carries the mood more than ornament.
- Readable hierarchy first: headings, labels, and actions stay crisp against every translucent surface.
- Color scarcity: candy hues appear as small functional accents, never as a palette parade.
- Softness with discipline: roundness, blur, and shadow are calibrated so the product remains mature.
- Fresh materiality: surfaces feel dewy, cool, and lightly hydrated rather than glossy plastic.
- Youthful optimism: the interface feels friendly and current without toy-like icons or novelty shapes.
- Calm motion: transitions should feel like condensation settling, not bouncing or gaming effects.
### Anti-Values
- Rainbow gradients, neon glow, and multi-accent confetti treatments.
- Childish toy cues such as inflated blobs, sticker clutter, mascot-heavy layouts, or bubble lettering.
- Generic pastel SaaS dashboards with interchangeable cards and no material signature.
- Dense feeds, heavy borders, and loud decorative shadows that make the system feel busy.
- Glassmorphism that sacrifices contrast or creates illegible washed-out text.
### Visual Character
- Milky off-white page background with two oversized fixed radial dew washes kept under 18 percent opacity.
- Rounded 24px cards using translucent white fills, one-pixel cool borders, and a restrained backdrop-filter blur.
- Small pill-like candy chips in mint and lychee pink used only for status, selection, and primary affordances.
- A dewdrop notch motif made with tiny translucent circular pseudo-elements pinned to card corners.
- Single-column mobile flow and airy two-column desktop cards with at least 24px internal padding.
## 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 | `#FF9FC7` |
| background | `#F7F5EF` |
| border | `#DCE6E8` |
| error | `#C65A6A` |
| info | `#74A9C9` |
| muted | `#7C8B92` |
| primary | `#6E8FA3` |
| secondary | `#B9C9D2` |
| success | `#5FAE91` |
| surface | `#FFFFFF` |
| text | `#27333A` |
| warning | `#D7A75E` |
## Typography
- **Headline-Lg**: Fraunces, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Fraunces, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Nunito Sans, 16px, weight 400, line-height 1.55.
- **Label-Md**: DM 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**: 1024px+
- **Mobile**: 0-639px
- **Tablet**: 640-1023px
### Density
Airy medium-low density chosen to feel fresh and readable on youth mobile screens while still supporting productive desktop review.
### Grid
Desktop uses 12 columns inside a max-width of 1180px with 24px gutters; hero spans 7 columns and side stack spans 5. Tablet becomes 6 columns; mobile becomes a single 1-column flow.
### Responsive
Preserve card order, collapse navigation into scrollable chips, keep primary action visible near the top, and reduce decorative dew dots on narrow screens.
### Whitespace
Use 24px minimum card gaps, 32px major section gaps, and large outer padding; empty space should feel like cool air around the cards.
## Elevation & Depth
### Shadows
- **Lg**: 0 28px 80px rgba(83, 111, 126, 0.16)
- **Md**: 0 18px 48px rgba(80, 107, 121, 0.12)
- **Sm**: 0 8px 24px rgba(75, 102, 116, 0.08)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `24px`
- **None**: `0px`
- **Sm**: `16px`
### Surfaces
- **Bg Pattern**: two low-opacity radial gradients: mint-blue upper left and lychee-pink lower right, never more than two accents
- **Card Style**: rgba(255,255,255,0.68) fill, 1px #DCE6E8 border, backdrop-filter blur(18px)
- **Treatment**: milky translucent cards over warm off-white with cool dew radial washes
### Borders
- **Accent Width**: 2px
- **Character**: cool hairline borders with occasional inset top highlight rgba(255,255,255,0.75)
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
Use a calm app-scene composition: a compact top bar, one expressive hero card, and supporting cards arranged in a 12-column desktop grid that collapses to one column on mobile. Leave visible breathing room between every cluster. Keep the background nearly empty except for two dew washes. Never fill blank areas with decorative icons; let spacing define the brand.
### Density
Medium-low density with 24-32px card padding and 16-24px gaps. Youthful does not mean crowded; each card should be scannable in under two seconds and avoid more than three competing focal points.
### Hierarchy
Headings use Fraunces for a soft editorial signal while body text uses Nunito Sans for clarity. Primary actions are mint-filled or pink-tinted pills, secondary actions are hairline pills. Important metrics sit in translucent cards with large numbers and small uppercase mono labels. Color indicates priority only after size, placement, and weight have already done the work.
### Signature Patterns
- Dewdot corners: cards may carry one or two 10-18px translucent circular pseudo-elements that overlap the border like condensation.
- Candy rail selection: selected navigation and filters use a narrow translucent pink or mint capsule behind text instead of full colored panels.
- Frosted stack depth: major cards use blur plus a white inset highlight and a cool hairline border, while minor cards remove blur to preserve hierarchy.
- Low-sugar accent rule: no screen may show more than two candy accent hues, and each accent must map to a specific state or call to action.
## 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-019e0a77-f95b-7d41-b312-af7f27e3e22a/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 milky neutrals for most backgrounds and reserve candy accents for state and action.
- Do Keep text contrast high by placing important copy on stronger white surfaces.
- Do Use 24px radius consistently for cards and 9999px only for chips and pills.
- Do Let one dewdot or candy rail create the signature instead of adding illustrations.
- Do Pair Fraunces headings with plain Nunito Sans body copy to balance softness and clarity.
- Do Use cool hairline borders to separate translucent layers.
- Do Test mobile first so frosted surfaces do not become muddy or cramped.
- Do Prefer small material changes on hover over movement-heavy animation.
- Don't Do not use rainbow palettes, multi-stop loud gradients, or neon gamer glows.
- Don't Do not add toy-like blobs, mascots, sticker piles, or childish iconography.
- Don't Do not use transparency behind small text unless the backing surface remains high contrast.
- Don't Do not mix arbitrary radii; stay with 0, 16, 24, and 9999px.
- Don't Do not fill every card with color; most cards should remain quiet and milky.
- Don't Do not create generic pastel SaaS dashboards with unrelated widgets.
- Don't Do not use more than two candy accent hues on a screen.
- Don't Do not rely on blur alone for hierarchy or separation.
### Accessibility
Maintain WCAG AA contrast for all body text, use solid or high-opacity cards beneath copy, support reduced motion, keep focus rings visible in primary blue, and never encode status by color alone.
### Usage Context
Best for youth learning, wellness, creator planning, social coordination, campus tools, and lightweight finance or habit apps that need softness without losing trust.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "dew-candy-minimalism-youth-jelly-cards",
"type": "registry:theme",
"title": "Dew Candy Minimalism shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F5EF",
"foreground": "#27333A",
"card": "#FFFFFF",
"card-foreground": "#27333A",
"popover": "#FFFFFF",
"popover-foreground": "#27333A",
"primary": "#6E8FA3",
"primary-foreground": "#ffffff",
"secondary": "#B9C9D2",
"secondary-foreground": "#111111",
"muted": "#7C8B92",
"muted-foreground": "#27333A",
"accent": "#FF9FC7",
"accent-foreground": "#ffffff",
"destructive": "#C65A6A",
"border": "#DCE6E8",
"input": "#DCE6E8",
"ring": "#FF9FC7",
"chart-1": "#6E8FA3",
"chart-2": "#B9C9D2",
"chart-3": "#FF9FC7",
"chart-4": "#5FAE91",
"chart-5": "#D7A75E",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#27333A",
"sidebar-primary": "#6E8FA3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#74A9C9",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#DCE6E8",
"sidebar-ring": "#FF9FC7",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#6E8FA3",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#FF9FC7",
"accent-foreground": "#ffffff",
"destructive": "#C65A6A",
"border": "#303642",
"input": "#303642",
"ring": "#FF9FC7",
"chart-1": "#6E8FA3",
"chart-2": "#B9C9D2",
"chart-3": "#FF9FC7",
"chart-4": "#5FAE91",
"chart-5": "#D7A75E",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#6E8FA3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#FF9FC7",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#FF9FC7",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e0a77-f95b-7d41-b312-af7f27e3e22a",
"slug": "dew-candy-minimalism-youth-jelly-cards",
"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: #F7F5EF;
--foreground: #27333A;
--card: #FFFFFF;
--card-foreground: #27333A;
--popover: #FFFFFF;
--popover-foreground: #27333A;
--primary: #6E8FA3;
--primary-foreground: #ffffff;
--secondary: #B9C9D2;
--secondary-foreground: #111111;
--muted: #7C8B92;
--muted-foreground: #27333A;
--accent: #FF9FC7;
--accent-foreground: #ffffff;
--destructive: #C65A6A;
--border: #DCE6E8;
--input: #DCE6E8;
--ring: #FF9FC7;
--chart-1: #6E8FA3;
--chart-2: #B9C9D2;
--chart-3: #FF9FC7;
--chart-4: #5FAE91;
--chart-5: #D7A75E;
--sidebar: #FFFFFF;
--sidebar-foreground: #27333A;
--sidebar-primary: #6E8FA3;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #74A9C9;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #DCE6E8;
--sidebar-ring: #FF9FC7;
--radius: 24px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #6E8FA3;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #FF9FC7;
--accent-foreground: #ffffff;
--destructive: #C65A6A;
--border: #303642;
--input: #303642;
--ring: #FF9FC7;
--chart-1: #6E8FA3;
--chart-2: #B9C9D2;
--chart-3: #FF9FC7;
--chart-4: #5FAE91;
--chart-5: #D7A75E;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #6E8FA3;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #FF9FC7;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #FF9FC7;
--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 DewCandyMinimalismShadcnKit() {
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">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",
"name": "dew-candy-minimalism-youth-jelly-cards",
"type": "registry:theme",
"title": "Dew Candy Minimalism shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F5EF",
"foreground": "#27333A",
"card": "#FFFFFF",
"card-foreground": "#27333A",
"popover": "#FFFFFF",
"popover-foreground": "#27333A",
"primary": "#6E8FA3",
"primary-foreground": "#ffffff",
"secondary": "#B9C9D2",
"secondary-foreground": "#111111",
"muted": "#7C8B92",
"muted-foreground": "#27333A",
"accent": "#FF9FC7",
"accent-foreground": "#ffffff",
"destructive": "#C65A6A",
"border": "#DCE6E8",
"input": "#DCE6E8",
"ring": "#FF9FC7",
"chart-1": "#6E8FA3",
"chart-2": "#B9C9D2",
"chart-3": "#FF9FC7",
"chart-4": "#5FAE91",
"chart-5": "#D7A75E",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#27333A",
"sidebar-primary": "#6E8FA3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#74A9C9",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#DCE6E8",
"sidebar-ring": "#FF9FC7",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#6E8FA3",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#FF9FC7",
"accent-foreground": "#ffffff",
"destructive": "#C65A6A",
"border": "#303642",
"input": "#303642",
"ring": "#FF9FC7",
"chart-1": "#6E8FA3",
"chart-2": "#B9C9D2",
"chart-3": "#FF9FC7",
"chart-4": "#5FAE91",
"chart-5": "#D7A75E",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#6E8FA3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#FF9FC7",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#FF9FC7",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e0a77-f95b-7d41-b312-af7f27e3e22a",
"slug": "dew-candy-minimalism-youth-jelly-cards",
"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"
]
}
}
}
# Dew Candy Minimalism shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019e0a77-f95b-7d41-b312-af7f27e3e22a`
Slug: `dew-candy-minimalism-youth-jelly-cards`
## Intent
Dew Candy Minimalism is a youth-culture interface language that makes social, learning, and lifestyle tools feel freshly rinsed, calm, and approachable without becoming childish. Its point of view is disciplined softness: most of the screen is milky off-white, mist blue-gray, and readable ink, while a tiny number of translucent candy accents behave like dew drops caught on glass. The language rejects the loud rainbow energy often attached to youth products and instead treats color as a scarce navigational signal. Cards are clean, roomy, and layered with frosted/tinted material depth so the interface feels touchable but still fast, legible, and grown-up.
## 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": "#FF9FC7",
"background": "#F7F5EF",
"border": "#DCE6E8",
"error": "#C65A6A",
"info": "#74A9C9",
"muted": "#7C8B92",
"primary": "#6E8FA3",
"secondary": "#B9C9D2",
"success": "#5FAE91",
"surface": "#FFFFFF",
"text": "#27333A",
"warning": "#D7A75E"
}
Typography:
{
"base_size": "16px",
"body_font": "Nunito Sans",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700&display=swap",
"heading_font": "Fraunces",
"letter_spacing": "-0.02em",
"line_height": 1.55,
"mono_font": "DM Mono",
"scale_ratio": 1.22
}
## Visual character to preserve
- Milky off-white page background with two oversized fixed radial dew washes kept under 18 percent opacity.
- Rounded 24px cards using translucent white fills, one-pixel cool borders, and a restrained backdrop-filter blur.
- Small pill-like candy chips in mint and lychee pink used only for status, selection, and primary affordances.
- A dewdrop notch motif made with tiny translucent circular pseudo-elements pinned to card corners.
- Single-column mobile flow and airy two-column desktop cards with at least 24px internal padding.
## ShadSync visual profile
{
"family": "system",
"material": "flat",
"contour": "pebble",
"border": "solid",
"underlay": false,
"grain": false,
"stickerBadges": false,
"motion": "lift",
"density": "airy",
"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/dew-candy-minimalism-youth-jelly-cards/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 milky neutrals for most backgrounds and reserve candy accents for state and action.; Keep text contrast high by placing important copy on stronger white surfaces.; Use 24px radius consistently for cards and 9999px only for chips and pills.; Let one dewdot or candy rail create the signature instead of adding illustrations.; Pair Fraunces headings with plain Nunito Sans body copy to balance softness and clarity.; Use cool hairline borders to separate translucent layers.; Test mobile first so frosted surfaces do not become muddy or cramped.; Prefer small material changes on hover over movement-heavy animation.
- Do not: Do not use rainbow palettes, multi-stop loud gradients, or neon gamer glows.; Do not add toy-like blobs, mascots, sticker piles, or childish iconography.; Do not use transparency behind small text unless the backing surface remains high contrast.; Do not mix arbitrary radii; stay with 0, 16, 24, and 9999px.; Do not fill every card with color; most cards should remain quiet and milky.; Do not create generic pastel SaaS dashboards with unrelated widgets.; Do not use more than two candy accent hues on a screen.; Do not rely on blur alone for hierarchy or separation.
## 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 DewCandyMinimalismShadcnKit() {
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">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": "1024px+",
"mobile": "0-639px",
"tablet": "640-1023px"
},
"density": "Airy medium-low density chosen to feel fresh and readable on youth mobile screens while still supporting productive desktop review.",
"grid": "Desktop uses 12 columns inside a max-width of 1180px with 24px gutters; hero spans 7 columns and side stack spans 5. Tablet becomes 6 columns; mobile becomes a single 1-column flow.",
"responsive": "Preserve card order, collapse navigation into scrollable chips, keep primary action visible near the top, and reduce decorative dew dots on narrow screens.",
"whitespace": "Use 24px minimum card gaps, 32px major section gaps, and large outer padding; empty space should feel like cool air around the cards."
}
{
"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-019e0a77-f95b-7d41-b312-af7f27e3e22a",
"name": "Dew Candy Minimalism",
"slug": "dew-candy-minimalism-youth-jelly-cards"
},
"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": [
"Milky off-white page background with two oversized fixed radial dew washes kept under 18 percent opacity.",
"Rounded 24px cards using translucent white fills, one-pixel cool borders, and a restrained backdrop-filter blur.",
"Small pill-like candy chips in mint and lychee pink used only for status, selection, and primary affordances.",
"A dewdrop notch motif made with tiny translucent circular pseudo-elements pinned to card corners.",
"Single-column mobile flow and airy two-column desktop cards with at least 24px internal padding."
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "pebble",
"border": "solid",
"underlay": false,
"grain": false,
"stickerBadges": false,
"motion": "still",
"density": "airy",
"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": "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 milky neutrals for most backgrounds and reserve candy accents for state and action.",
"Keep text contrast high by placing important copy on stronger white surfaces.",
"Use 24px radius consistently for cards and 9999px only for chips and pills.",
"Let one dewdot or candy rail create the signature instead of adding illustrations.",
"Pair Fraunces headings with plain Nunito Sans body copy to balance softness and clarity.",
"Use cool hairline borders to separate translucent layers.",
"Test mobile first so frosted surfaces do not become muddy or cramped.",
"Prefer small material changes on hover over movement-heavy animation."
],
"dont": [
"Do not use rainbow palettes, multi-stop loud gradients, or neon gamer glows.",
"Do not add toy-like blobs, mascots, sticker piles, or childish iconography.",
"Do not use transparency behind small text unless the backing surface remains high contrast.",
"Do not mix arbitrary radii; stay with 0, 16, 24, and 9999px.",
"Do not fill every card with color; most cards should remain quiet and milky.",
"Do not create generic pastel SaaS dashboards with unrelated widgets.",
"Do not use more than two candy accent hues on a screen.",
"Do not rely on blur alone for hierarchy or separation."
]
}
}