back to gallerydo avoid
design language·fresh-accent-minimal-app-system
Fresh Accent Minimal App System
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
the spec
specification
philosophy
summary
A clean application design language for products that need to feel fresh, focused, and durable over long work sessions. It treats white and cool-neutral surfaces as the operating environment, not as empty default chrome, then uses one vivid cyan-blue accent as a precise instrument for action, focus, and live system state. The system is built for dashboards, workflow tools, editors, and account surfaces where reduced visual fatigue matters more than marketing spectacle. Bright color appears sparingly and purposefully: cyan marks the path forward, mint validates progress, and coral appears only as a pinpoint highlight for exceptions or moments of attention. The identity comes from crisp neutral layering, slim accent rails, tokenized semantic color, and quiet geometry rather than from gradients or decorative illustration.
values
long-session clarity with cool gray hierarchy and very light neutral surfacesone primary cyan accent used consistently for intent, focus, selection, and forward actionsemantic tokens that make system state legible without adding visual noisesurface hierarchy created by borders, inset bands, and whitespace before shadowsrestrained density that supports real app work without collapsing into enterprise clutteraccessibility-first contrast for text, controls, focus states, and data annotationsfreshness through calibration and precision rather than playful marketing color
anti-values
×rainbow SaaS palettes where every module competes for attention×marketing gradients on primary controls or large decorative color washes×low-contrast pale gray text that looks minimal but fails in real work×generic rounded cards with no structural accent logic×shadow-heavy glass surfaces that increase fatigue and blur information hierarchy
tokens
borders4 items
- accent width
- 2px
- character
- Cool gray structural hairlines with cyan focus rings and thin semantic status strips rather than decorative outlines.
- default width
- 1px
- style
- solid
colors12 items
accent
#FF6B5F
background
#F7F9FB
border
#D8E0E8
error
#D92D20
info
#0284C7
muted
#667085
primary
#009FE3
secondary
#44D7B6
success
#12B76A
surface
#FFFFFF
text
#1F2A37
warning
#F79009
motion3 items
- duration
- 160ms
- easing
- cubic-bezier(0.2, 0, 0, 1)
- philosophy
- Motion is short, practical, and confirmatory: controls lift by 1px, focus rings sharpen, and panels reveal without bounce.
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 16px
- none
- 0
- sm
- 0
shadows3 items
- lg
- 0 24px 56px rgba(31, 42, 55, 0.10)
- md
- 0 12px 28px rgba(31, 42, 55, 0.08)
- sm
- 0 1px 2px rgba(31, 42, 55, 0.05)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 40, 48, 64, 80
surfaces3 items
- bg pattern
- A barely visible 24px cool-gray grid made from linear gradients at 0.35 opacity only in the page shell.
- card style
- 24px radius white panels with 1px cool gray borders, a 4px semantic top strip, and almost flat elevation.
- treatment
- Light neutral application shell with white cards, ice-gray page gutters, and subtle inset bands for grouped controls.
typography8 items
- base size
- 16px
- body font
- Figtree
- google fonts url
- https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&family=Geist:wght@500;600;700;800&family=Martian+Mono:wght@400;500;600&display=swap
- heading font
- Geist
- letter spacing
- -0.02em
- line height
- 1.52
- mono font
- Martian Mono
- scale ratio
- 1.22
rules
composition
Use an application shell: compact left navigation, central task workspace, and a narrow insight rail on wide screens. Keep the workspace dominant, align cards to an 8px grid, and let white panels sit on an ice-gray canvas. Group related actions in inset control bands rather than floating buttons. Use accent rails to show current location, selected records, and next steps; do not spread the primary color across decorative backgrounds.
density
Medium app density: navigation and data rows are compact enough for productivity, while cards retain 24-32px internal padding and clear breathing room. The system should support daily operational work without feeling like a marketing page or a cramped enterprise table.
hierarchy
Headings use Geist with tight tracking and decisive weight, body and control text use Figtree for calm readability, and metrics or IDs use Martian Mono in small doses. Text hierarchy moves from #1F2A37 to #667085 before using color. Cyan is reserved for actionable hierarchy; mint for completion; coral for exceptional highlights only.
signature patterns
Selected regions use a 3px cyan left rail plus a pale cyan inset background, never a saturated full-panel fill.Cards display a 4px top semantic strip clipped inside a 24px radius to communicate state without visual fatigue.Data rows use 10px square status notches and mono identifiers so color marks state while text remains primary.Control groups sit in ice-gray inset bands with 16px-radius inputs and cyan focus rings offset by 2px.Desktop layouts include a slim insight rail whose modules use miniature mint, cyan, and coral tokens as micro-accents only.
layout
breakpoints
mobile <= 640px stacks nav, workspace, and insights; tablet 641px-1024px uses two columns with the insight rail below; desktop >= 1025px keeps the full three-zone application shell.
density
Medium density calibrated for application work: compact navigation and tables, generous card padding, and enough whitespace to prevent gray-on-white fatigue during long sessions.
grid
Desktop uses a 12-column max-width 1440px shell with 240px navigation, flexible central workspace, and a 300px insight rail; gutters are 24px and all modules snap to an 8px spacing scale.
responsive
On mobile the left navigation becomes a top horizontal section, table rows turn into stacked record cards, and the insight rail follows the primary workflow so actions stay reachable.
whitespace
Whitespace is functional and cool: 24px between panels, 32px page padding on desktop, 16px on mobile, with inset bands providing group separation instead of colored blocks.
guidance
- Use cyan for primary action, active navigation, selected records, focus outlines, and live progress indicators only.
- Build hierarchy with white surfaces, ice-gray canvas, cool borders, and text contrast before reaching for color.
- Keep semantic status color tokenized: mint for positive completion, amber for caution, red for error, cyan for information.
- Apply 24px radii to cards, 16px radii to controls, and 9999px radii only to pills, avatars, and compact status chips.
- Style every input, select, checkbox, and button with custom borders, focus rings, and hover states to avoid browser defaults.
- Use Martian Mono only for short IDs, timestamps, percentages, and data labels so the product remains calm.
- Reserve coral for small exception badges, graph points, or escalation markers; never make it a secondary brand field.
- Check contrast against #FFFFFF and #F7F9FB, especially for muted labels and disabled controls.
- Do not create gradient buttons, rainbow charts, or large saturated illustration blocks in core app views.
- Do not use pale gray body copy below accessible contrast just to make the interface look lighter.
- Do not mix arbitrary corner radii; the identity depends on the 0, 16, 24, and 9999px scale.
- Do not use shadows as the primary separator when a cool border or inset band can express structure.
- Do not assign different accent colors to every feature area; that turns the system into a marketing palette.
- Do not fill selected cards completely cyan; use rails, rings, and subtle pale fills instead.
- Do not turn embodiment examples into component catalogs; show a real application workflow screen.
- Do not hide critical feedback behind color alone; pair notches and strips with labels, icons, or text.
katagami spec
# Fresh Accent Minimal App System ## Philosophy A clean application design language for products that need to feel fresh, focused, and durable over long work sessions. It treats white and cool-neutral surfaces as the operating environment, not as empty default chrome, then uses one vivid cyan-blue accent as a precise instrument for action, focus, and live system state. The system is built for dashboards, workflow tools, editors, and account surfaces where reduced visual fatigue matters more than marketing spectacle. Bright color appears sparingly and purposefully: cyan marks the path forward, mint validates progress, and coral appears only as a pinpoint highlight for exceptions or moments of attention. The identity comes from crisp neutral layering, slim accent rails, tokenized semantic color, and quiet geometry rather than from gradients or decorative illustration. ### Values - long-session clarity with cool gray hierarchy and very light neutral surfaces - one primary cyan accent used consistently for intent, focus, selection, and forward action - semantic tokens that make system state legible without adding visual noise - surface hierarchy created by borders, inset bands, and whitespace before shadows - restrained density that supports real app work without collapsing into enterprise clutter - accessibility-first contrast for text, controls, focus states, and data annotations - freshness through calibration and precision rather than playful marketing color ### Anti-Values - rainbow SaaS palettes where every module competes for attention - marketing gradients on primary controls or large decorative color washes - low-contrast pale gray text that looks minimal but fails in real work - generic rounded cards with no structural accent logic - shadow-heavy glass surfaces that increase fatigue and blur information hierarchy ### Visual Character - White and ice-gray page zones are separated by 1px cool borders and shallow inset header bands instead of heavy shadows. - Primary actions, selected navigation, and keyboard focus share a single vivid cyan outline, rail, or filled capsule treatment. - Cards use 24px outer radii with 16px inner control radii and thin top-aligned status strips tied to semantic tokens. - Dense data rows include small square cyan or mint notches at the left edge rather than full-row color fills. - Layouts reserve a narrow right-side insight rail for calm metrics, warnings, and next-step prompts on desktop. ## Tokens ### Borders - **Accent Width**: 2px - **Character**: Cool gray structural hairlines with cyan focus rings and thin semantic status strips rather than decorative outlines. - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#FF6B5F` | | background | `#F7F9FB` | | border | `#D8E0E8` | | error | `#D92D20` | | info | `#0284C7` | | muted | `#667085` | | primary | `#009FE3` | | secondary | `#44D7B6` | | success | `#12B76A` | | surface | `#FFFFFF` | | text | `#1F2A37` | | warning | `#F79009` | ### Motion - **Duration**: 160ms - **Easing**: cubic-bezier(0.2, 0, 0, 1) - **Philosophy**: Motion is short, practical, and confirmatory: controls lift by 1px, focus rings sharpen, and panels reveal without bounce. ### Radii - **Full**: 9999px - **Lg**: 24px - **Md**: 16px - **None**: 0 - **Sm**: 0 ### Shadows - **Lg**: 0 24px 56px rgba(31, 42, 55, 0.10) - **Md**: 0 12px 28px rgba(31, 42, 55, 0.08) - **Sm**: 0 1px 2px rgba(31, 42, 55, 0.05) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,40,48,64,80] ### Surfaces - **Bg Pattern**: A barely visible 24px cool-gray grid made from linear gradients at 0.35 opacity only in the page shell. - **Card Style**: 24px radius white panels with 1px cool gray borders, a 4px semantic top strip, and almost flat elevation. - **Treatment**: Light neutral application shell with white cards, ice-gray page gutters, and subtle inset bands for grouped controls. ### Typography - **Base Size**: 16px - **Body Font**: Figtree - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&family=Geist:wght@500;600;700;800&family=Martian+Mono:wght@400;500;600&display=swap - **Heading Font**: Geist - **Letter Spacing**: -0.02em - **Line Height**: 1.52 - **Mono Font**: Martian Mono - **Scale Ratio**: 1.22 ## Rules ### Composition Use an application shell: compact left navigation, central task workspace, and a narrow insight rail on wide screens. Keep the workspace dominant, align cards to an 8px grid, and let white panels sit on an ice-gray canvas. Group related actions in inset control bands rather than floating buttons. Use accent rails to show current location, selected records, and next steps; do not spread the primary color across decorative backgrounds. ### Density Medium app density: navigation and data rows are compact enough for productivity, while cards retain 24-32px internal padding and clear breathing room. The system should support daily operational work without feeling like a marketing page or a cramped enterprise table. ### Hierarchy Headings use Geist with tight tracking and decisive weight, body and control text use Figtree for calm readability, and metrics or IDs use Martian Mono in small doses. Text hierarchy moves from #1F2A37 to #667085 before using color. Cyan is reserved for actionable hierarchy; mint for completion; coral for exceptional highlights only. ### Signature Patterns - Selected regions use a 3px cyan left rail plus a pale cyan inset background, never a saturated full-panel fill. - Cards display a 4px top semantic strip clipped inside a 24px radius to communicate state without visual fatigue. - Data rows use 10px square status notches and mono identifiers so color marks state while text remains primary. - Control groups sit in ice-gray inset bands with 16px-radius inputs and cyan focus rings offset by 2px. - Desktop layouts include a slim insight rail whose modules use miniature mint, cyan, and coral tokens as micro-accents only. ## Layout ### Breakpoints mobile <= 640px stacks nav, workspace, and insights; tablet 641px-1024px uses two columns with the insight rail below; desktop >= 1025px keeps the full three-zone application shell. ### Density Medium density calibrated for application work: compact navigation and tables, generous card padding, and enough whitespace to prevent gray-on-white fatigue during long sessions. ### Grid Desktop uses a 12-column max-width 1440px shell with 240px navigation, flexible central workspace, and a 300px insight rail; gutters are 24px and all modules snap to an 8px spacing scale. ### Responsive On mobile the left navigation becomes a top horizontal section, table rows turn into stacked record cards, and the insight rail follows the primary workflow so actions stay reachable. ### Whitespace Whitespace is functional and cool: 24px between panels, 32px page padding on desktop, 16px on mobile, with inset bands providing group separation instead of colored blocks. ## Guidance ### Do - Use cyan for primary action, active navigation, selected records, focus outlines, and live progress indicators only. - Build hierarchy with white surfaces, ice-gray canvas, cool borders, and text contrast before reaching for color. - Keep semantic status color tokenized: mint for positive completion, amber for caution, red for error, cyan for information. - Apply 24px radii to cards, 16px radii to controls, and 9999px radii only to pills, avatars, and compact status chips. - Style every input, select, checkbox, and button with custom borders, focus rings, and hover states to avoid browser defaults. - Use Martian Mono only for short IDs, timestamps, percentages, and data labels so the product remains calm. - Reserve coral for small exception badges, graph points, or escalation markers; never make it a secondary brand field. - Check contrast against #FFFFFF and #F7F9FB, especially for muted labels and disabled controls. ### Don't - Do not create gradient buttons, rainbow charts, or large saturated illustration blocks in core app views. - Do not use pale gray body copy below accessible contrast just to make the interface look lighter. - Do not mix arbitrary corner radii; the identity depends on the 0, 16, 24, and 9999px scale. - Do not use shadows as the primary separator when a cool border or inset band can express structure. - Do not assign different accent colors to every feature area; that turns the system into a marketing palette. - Do not fill selected cards completely cyan; use rails, rings, and subtle pale fills instead. - Do not turn embodiment examples into component catalogs; show a real application workflow screen. - Do not hide critical feedback behind color alone; pair notches and strips with labels, icons, or text. ### Accessibility Body text and controls meet WCAG AA against white and ice-gray surfaces; focus is a visible 2px cyan ring with offset; semantic states include text labels or notches so color is never the only cue. ### Usage Context Best for productivity software, account consoles, workflow editors, analytics operations, and AI tools that need to feel fresh without becoming visually loud.
DESIGN.md
---
version: "alpha"
name: "Fresh Accent Minimal App System"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#FF6B5F"
background: "#F7F9FB"
border: "#D8E0E8"
error: "#D92D20"
info: "#0284C7"
muted: "#667085"
primary: "#009FE3"
secondary: "#44D7B6"
success: "#12B76A"
surface: "#FFFFFF"
text: "#1F2A37"
warning: "#F79009"
typography:
headline-lg:
fontFamily: "Geist"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Geist"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Figtree"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.52
letterSpacing: "-0.02em"
label-md:
fontFamily: "Martian Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "24px"
md: "16px"
none: "0px"
sm: "0px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "40px"
4xl: "48px"
step-8: "64px"
step-9: "80px"
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"
---
# Fresh Accent Minimal App System
## Overview
A clean application design language for products that need to feel fresh, focused, and durable over long work sessions. It treats white and cool-neutral surfaces as the operating environment, not as empty default chrome, then uses one vivid cyan-blue accent as a precise instrument for action, focus, and live system state. The system is built for dashboards, workflow tools, editors, and account surfaces where reduced visual fatigue matters more than marketing spectacle. Bright color appears sparingly and purposefully: cyan marks the path forward, mint validates progress, and coral appears only as a pinpoint highlight for exceptions or moments of attention. The identity comes from crisp neutral layering, slim accent rails, tokenized semantic color, and quiet geometry rather than from gradients or decorative illustration.
### Values
- long-session clarity with cool gray hierarchy and very light neutral surfaces
- one primary cyan accent used consistently for intent, focus, selection, and forward action
- semantic tokens that make system state legible without adding visual noise
- surface hierarchy created by borders, inset bands, and whitespace before shadows
- restrained density that supports real app work without collapsing into enterprise clutter
- accessibility-first contrast for text, controls, focus states, and data annotations
- freshness through calibration and precision rather than playful marketing color
### Anti-Values
- rainbow SaaS palettes where every module competes for attention
- marketing gradients on primary controls or large decorative color washes
- low-contrast pale gray text that looks minimal but fails in real work
- generic rounded cards with no structural accent logic
- shadow-heavy glass surfaces that increase fatigue and blur information hierarchy
### Visual Character
- White and ice-gray page zones are separated by 1px cool borders and shallow inset header bands instead of heavy shadows.
- Primary actions, selected navigation, and keyboard focus share a single vivid cyan outline, rail, or filled capsule treatment.
- Cards use 24px outer radii with 16px inner control radii and thin top-aligned status strips tied to semantic tokens.
- Dense data rows include small square cyan or mint notches at the left edge rather than full-row color fills.
- Layouts reserve a narrow right-side insight rail for calm metrics, warnings, and next-step prompts on desktop.
## 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 | `#FF6B5F` |
| background | `#F7F9FB` |
| border | `#D8E0E8` |
| error | `#D92D20` |
| info | `#0284C7` |
| muted | `#667085` |
| primary | `#009FE3` |
| secondary | `#44D7B6` |
| success | `#12B76A` |
| surface | `#FFFFFF` |
| text | `#1F2A37` |
| warning | `#F79009` |
## Typography
- **Headline-Lg**: Geist, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Geist, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Figtree, 16px, weight 400, line-height 1.52.
- **Label-Md**: Martian 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**: `40px`
- **4xl**: `48px`
- **Step-8**: `64px`
- **Step-9**: `80px`
### Breakpoints
mobile <= 640px stacks nav, workspace, and insights; tablet 641px-1024px uses two columns with the insight rail below; desktop >= 1025px keeps the full three-zone application shell.
### Density
Medium density calibrated for application work: compact navigation and tables, generous card padding, and enough whitespace to prevent gray-on-white fatigue during long sessions.
### Grid
Desktop uses a 12-column max-width 1440px shell with 240px navigation, flexible central workspace, and a 300px insight rail; gutters are 24px and all modules snap to an 8px spacing scale.
### Responsive
On mobile the left navigation becomes a top horizontal section, table rows turn into stacked record cards, and the insight rail follows the primary workflow so actions stay reachable.
### Whitespace
Whitespace is functional and cool: 24px between panels, 32px page padding on desktop, 16px on mobile, with inset bands providing group separation instead of colored blocks.
## Elevation & Depth
### Shadows
- **Lg**: 0 24px 56px rgba(31, 42, 55, 0.10)
- **Md**: 0 12px 28px rgba(31, 42, 55, 0.08)
- **Sm**: 0 1px 2px rgba(31, 42, 55, 0.05)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `0px`
### Surfaces
- **Bg Pattern**: A barely visible 24px cool-gray grid made from linear gradients at 0.35 opacity only in the page shell.
- **Card Style**: 24px radius white panels with 1px cool gray borders, a 4px semantic top strip, and almost flat elevation.
- **Treatment**: Light neutral application shell with white cards, ice-gray page gutters, and subtle inset bands for grouped controls.
### Borders
- **Accent Width**: 2px
- **Character**: Cool gray structural hairlines with cyan focus rings and thin semantic status strips rather than decorative outlines.
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
Use an application shell: compact left navigation, central task workspace, and a narrow insight rail on wide screens. Keep the workspace dominant, align cards to an 8px grid, and let white panels sit on an ice-gray canvas. Group related actions in inset control bands rather than floating buttons. Use accent rails to show current location, selected records, and next steps; do not spread the primary color across decorative backgrounds.
### Density
Medium app density: navigation and data rows are compact enough for productivity, while cards retain 24-32px internal padding and clear breathing room. The system should support daily operational work without feeling like a marketing page or a cramped enterprise table.
### Hierarchy
Headings use Geist with tight tracking and decisive weight, body and control text use Figtree for calm readability, and metrics or IDs use Martian Mono in small doses. Text hierarchy moves from #1F2A37 to #667085 before using color. Cyan is reserved for actionable hierarchy; mint for completion; coral for exceptional highlights only.
### Signature Patterns
- Selected regions use a 3px cyan left rail plus a pale cyan inset background, never a saturated full-panel fill.
- Cards display a 4px top semantic strip clipped inside a 24px radius to communicate state without visual fatigue.
- Data rows use 10px square status notches and mono identifiers so color marks state while text remains primary.
- Control groups sit in ice-gray inset bands with 16px-radius inputs and cyan focus rings offset by 2px.
- Desktop layouts include a slim insight rail whose modules use miniature mint, cyan, and coral tokens as micro-accents only.
## 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/fresh-accent-minimal-app-system/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 cyan for primary action, active navigation, selected records, focus outlines, and live progress indicators only.
- Do Build hierarchy with white surfaces, ice-gray canvas, cool borders, and text contrast before reaching for color.
- Do Keep semantic status color tokenized: mint for positive completion, amber for caution, red for error, cyan for information.
- Do Apply 24px radii to cards, 16px radii to controls, and 9999px radii only to pills, avatars, and compact status chips.
- Do Style every input, select, checkbox, and button with custom borders, focus rings, and hover states to avoid browser defaults.
- Do Use Martian Mono only for short IDs, timestamps, percentages, and data labels so the product remains calm.
- Do Reserve coral for small exception badges, graph points, or escalation markers; never make it a secondary brand field.
- Do Check contrast against #FFFFFF and #F7F9FB, especially for muted labels and disabled controls.
- Don't Do not create gradient buttons, rainbow charts, or large saturated illustration blocks in core app views.
- Don't Do not use pale gray body copy below accessible contrast just to make the interface look lighter.
- Don't Do not mix arbitrary corner radii; the identity depends on the 0, 16, 24, and 9999px scale.
- Don't Do not use shadows as the primary separator when a cool border or inset band can express structure.
- Don't Do not assign different accent colors to every feature area; that turns the system into a marketing palette.
- Don't Do not fill selected cards completely cyan; use rails, rings, and subtle pale fills instead.
- Don't Do not turn embodiment examples into component catalogs; show a real application workflow screen.
- Don't Do not hide critical feedback behind color alone; pair notches and strips with labels, icons, or text.
### Accessibility
Body text and controls meet WCAG AA against white and ice-gray surfaces; focus is a visible 2px cyan ring with offset; semantic states include text labels or notches so color is never the only cue.
### Usage Context
Best for productivity software, account consoles, workflow editors, analytics operations, and AI tools that need to feel fresh without becoming visually loud.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "fresh-accent-minimal-app-system",
"type": "registry:theme",
"title": "Fresh Accent Minimal App System shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F9FB",
"foreground": "#1F2A37",
"card": "#FFFFFF",
"card-foreground": "#1F2A37",
"popover": "#FFFFFF",
"popover-foreground": "#1F2A37",
"primary": "#009FE3",
"primary-foreground": "#ffffff",
"secondary": "#44D7B6",
"secondary-foreground": "#ffffff",
"muted": "#667085",
"muted-foreground": "#1F2A37",
"accent": "#FF6B5F",
"accent-foreground": "#ffffff",
"destructive": "#D92D20",
"border": "#D8E0E8",
"input": "#D8E0E8",
"ring": "#FF6B5F",
"chart-1": "#009FE3",
"chart-2": "#44D7B6",
"chart-3": "#FF6B5F",
"chart-4": "#12B76A",
"chart-5": "#F79009",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#1F2A37",
"sidebar-primary": "#009FE3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#0284C7",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8E0E8",
"sidebar-ring": "#FF6B5F",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#009FE3",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#FF6B5F",
"accent-foreground": "#ffffff",
"destructive": "#D92D20",
"border": "#303642",
"input": "#303642",
"ring": "#FF6B5F",
"chart-1": "#009FE3",
"chart-2": "#44D7B6",
"chart-3": "#FF6B5F",
"chart-4": "#12B76A",
"chart-5": "#F79009",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#009FE3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#FF6B5F",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#FF6B5F",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "fresh-accent-minimal-app-system",
"slug": "fresh-accent-minimal-app-system",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · fresh-accent-minimal-app-system
DESIGN.md
at a glance
Typography
headline-lgGeist · 29px · 700
The quick brown fox jumps
headline-mdGeist · 24px · 600
The quick brown fox jumps
body-mdFigtree · 16px · 400
The quick brown fox jumps
label-mdMartian Mono · 12px · 600
The quick brown fox jumps
Components
New
Card title
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl40px
- 4xl48px
- step-864px
- step-980px
Shape
full9999px
lg24px
md16px
none0px
sm0px
shadcn/ui
implementation kit
recommendedcompatibility fallback
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu tabletheme css
:root {
--background: #F7F9FB;
--foreground: #1F2A37;
--card: #FFFFFF;
--card-foreground: #1F2A37;
--popover: #FFFFFF;
--popover-foreground: #1F2A37;
--primary: #009FE3;
--primary-foreground: #ffffff;
--secondary: #44D7B6;
--secondary-foreground: #ffffff;
--muted: #667085;
--muted-foreground: #1F2A37;
--accent: #FF6B5F;
--accent-foreground: #ffffff;
--destructive: #D92D20;
--border: #D8E0E8;
--input: #D8E0E8;
--ring: #FF6B5F;
--chart-1: #009FE3;
--chart-2: #44D7B6;
--chart-3: #FF6B5F;
--chart-4: #12B76A;
--chart-5: #F79009;
--sidebar: #FFFFFF;
--sidebar-foreground: #1F2A37;
--sidebar-primary: #009FE3;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #0284C7;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #D8E0E8;
--sidebar-ring: #FF6B5F;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #009FE3;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #FF6B5F;
--accent-foreground: #ffffff;
--destructive: #D92D20;
--border: #303642;
--input: #303642;
--ring: #FF6B5F;
--chart-1: #009FE3;
--chart-2: #44D7B6;
--chart-3: #FF6B5F;
--chart-4: #12B76A;
--chart-5: #F79009;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #009FE3;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #FF6B5F;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #FF6B5F;
--radius: 16px;
}
tsx starter
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function FreshAccentMinimalAppSystemShadcnKit() {
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">Fresh Accent Minimal App System</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
theme JSONcompatibility fallback
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "fresh-accent-minimal-app-system",
"type": "registry:theme",
"title": "Fresh Accent Minimal App System shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F9FB",
"foreground": "#1F2A37",
"card": "#FFFFFF",
"card-foreground": "#1F2A37",
"popover": "#FFFFFF",
"popover-foreground": "#1F2A37",
"primary": "#009FE3",
"primary-foreground": "#ffffff",
"secondary": "#44D7B6",
"secondary-foreground": "#ffffff",
"muted": "#667085",
"muted-foreground": "#1F2A37",
"accent": "#FF6B5F",
"accent-foreground": "#ffffff",
"destructive": "#D92D20",
"border": "#D8E0E8",
"input": "#D8E0E8",
"ring": "#FF6B5F",
"chart-1": "#009FE3",
"chart-2": "#44D7B6",
"chart-3": "#FF6B5F",
"chart-4": "#12B76A",
"chart-5": "#F79009",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#1F2A37",
"sidebar-primary": "#009FE3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#0284C7",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8E0E8",
"sidebar-ring": "#FF6B5F",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#009FE3",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#FF6B5F",
"accent-foreground": "#ffffff",
"destructive": "#D92D20",
"border": "#303642",
"input": "#303642",
"ring": "#FF6B5F",
"chart-1": "#009FE3",
"chart-2": "#44D7B6",
"chart-3": "#FF6B5F",
"chart-4": "#12B76A",
"chart-5": "#F79009",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#009FE3",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#FF6B5F",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#FF6B5F",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "fresh-accent-minimal-app-system",
"slug": "fresh-accent-minimal-app-system",
"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"
]
}
}
}
component recipescompatibility fallback
# Fresh Accent Minimal App System shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `fresh-accent-minimal-app-system`
Slug: `fresh-accent-minimal-app-system`
## Intent
A clean application design language for products that need to feel fresh, focused, and durable over long work sessions. It treats white and cool-neutral surfaces as the operating environment, not as empty default chrome, then uses one vivid cyan-blue accent as a precise instrument for action, focus, and live system state. The system is built for dashboards, workflow tools, editors, and account surfaces where reduced visual fatigue matters more than marketing spectacle. Bright color appears sparingly and purposefully: cyan marks the path forward, mint validates progress, and coral appears only as a pinpoint highlight for exceptions or moments of attention. The identity comes from crisp neutral layering, slim accent rails, tokenized semantic color, and quiet geometry rather than from gradients or decorative illustration.
## 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": "#FF6B5F",
"background": "#F7F9FB",
"border": "#D8E0E8",
"error": "#D92D20",
"info": "#0284C7",
"muted": "#667085",
"primary": "#009FE3",
"secondary": "#44D7B6",
"success": "#12B76A",
"surface": "#FFFFFF",
"text": "#1F2A37",
"warning": "#F79009"
}
Typography:
{
"base_size": "16px",
"body_font": "Figtree",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&family=Geist:wght@500;600;700;800&family=Martian+Mono:wght@400;500;600&display=swap",
"heading_font": "Geist",
"letter_spacing": "-0.02em",
"line_height": 1.52,
"mono_font": "Martian Mono",
"scale_ratio": 1.22
}
## Visual character to preserve
- White and ice-gray page zones are separated by 1px cool borders and shallow inset header bands instead of heavy shadows.
- Primary actions, selected navigation, and keyboard focus share a single vivid cyan outline, rail, or filled capsule treatment.
- Cards use 24px outer radii with 16px inner control radii and thin top-aligned status strips tied to semantic tokens.
- Dense data rows include small square cyan or mint notches at the left edge rather than full-row color fills.
- Layouts reserve a narrow right-side insight rail for calm metrics, warnings, and next-step prompts on desktop.
## ShadSync visual profile
{
"family": "system",
"material": "flat",
"contour": "default",
"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/fresh-accent-minimal-app-system/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 cyan for primary action, active navigation, selected records, focus outlines, and live progress indicators only.; Build hierarchy with white surfaces, ice-gray canvas, cool borders, and text contrast before reaching for color.; Keep semantic status color tokenized: mint for positive completion, amber for caution, red for error, cyan for information.; Apply 24px radii to cards, 16px radii to controls, and 9999px radii only to pills, avatars, and compact status chips.; Style every input, select, checkbox, and button with custom borders, focus rings, and hover states to avoid browser defaults.; Use Martian Mono only for short IDs, timestamps, percentages, and data labels so the product remains calm.; Reserve coral for small exception badges, graph points, or escalation markers; never make it a secondary brand field.; Check contrast against #FFFFFF and #F7F9FB, especially for muted labels and disabled controls.
- Do not: Do not create gradient buttons, rainbow charts, or large saturated illustration blocks in core app views.; Do not use pale gray body copy below accessible contrast just to make the interface look lighter.; Do not mix arbitrary corner radii; the identity depends on the 0, 16, 24, and 9999px scale.; Do not use shadows as the primary separator when a cool border or inset band can express structure.; Do not assign different accent colors to every feature area; that turns the system into a marketing palette.; Do not fill selected cards completely cyan; use rails, rings, and subtle pale fills instead.; Do not turn embodiment examples into component catalogs; show a real application workflow screen.; Do not hide critical feedback behind color alone; pair notches and strips with labels, icons, or text.
## 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 FreshAccentMinimalAppSystemShadcnKit() {
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">Fresh Accent Minimal App System</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
```
## Layout notes
{
"breakpoints": "mobile <= 640px stacks nav, workspace, and insights; tablet 641px-1024px uses two columns with the insight rail below; desktop >= 1025px keeps the full three-zone application shell.",
"density": "Medium density calibrated for application work: compact navigation and tables, generous card padding, and enough whitespace to prevent gray-on-white fatigue during long sessions.",
"grid": "Desktop uses a 12-column max-width 1440px shell with 240px navigation, flexible central workspace, and a 300px insight rail; gutters are 24px and all modules snap to an 8px spacing scale.",
"responsive": "On mobile the left navigation becomes a top horizontal section, table rows turn into stacked record cards, and the insight rail follows the primary workflow so actions stay reachable.",
"whitespace": "Whitespace is functional and cool: 24px between panels, 32px page padding on desktop, 16px on mobile, with inset bands providing group separation instead of colored blocks."
}
preview shotscompatibility fallback
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"generator": "katagami-ui-compatibility-projection",
"generatedBy": "katagami-ui-projection",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": {
"id": "fresh-accent-minimal-app-system",
"name": "Fresh Accent Minimal App System",
"slug": "fresh-accent-minimal-app-system"
},
"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": [
"White and ice-gray page zones are separated by 1px cool borders and shallow inset header bands instead of heavy shadows.",
"Primary actions, selected navigation, and keyboard focus share a single vivid cyan outline, rail, or filled capsule treatment.",
"Cards use 24px outer radii with 16px inner control radii and thin top-aligned status strips tied to semantic tokens.",
"Dense data rows include small square cyan or mint notches at the left edge rather than full-row color fills.",
"Layouts reserve a narrow right-side insight rail for calm metrics, warnings, and next-step prompts on desktop."
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "default",
"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": "Fresh Accent Minimal App System 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 cyan for primary action, active navigation, selected records, focus outlines, and live progress indicators only.",
"Build hierarchy with white surfaces, ice-gray canvas, cool borders, and text contrast before reaching for color.",
"Keep semantic status color tokenized: mint for positive completion, amber for caution, red for error, cyan for information.",
"Apply 24px radii to cards, 16px radii to controls, and 9999px radii only to pills, avatars, and compact status chips.",
"Style every input, select, checkbox, and button with custom borders, focus rings, and hover states to avoid browser defaults.",
"Use Martian Mono only for short IDs, timestamps, percentages, and data labels so the product remains calm.",
"Reserve coral for small exception badges, graph points, or escalation markers; never make it a secondary brand field.",
"Check contrast against #FFFFFF and #F7F9FB, especially for muted labels and disabled controls."
],
"dont": [
"Do not create gradient buttons, rainbow charts, or large saturated illustration blocks in core app views.",
"Do not use pale gray body copy below accessible contrast just to make the interface look lighter.",
"Do not mix arbitrary corner radii; the identity depends on the 0, 16, 24, and 9999px scale.",
"Do not use shadows as the primary separator when a cool border or inset band can express structure.",
"Do not assign different accent colors to every feature area; that turns the system into a marketing palette.",
"Do not fill selected cards completely cyan; use rails, rings, and subtle pale fills instead.",
"Do not turn embodiment examples into component catalogs; show a real application workflow screen.",
"Do not hide critical feedback behind color alone; pair notches and strips with labels, icons, or text."
]
}
}
related