back to gallery
design language·platform-native-adaptive-color

Platform-Native Adaptive Color

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 restrained, platform-native palette system for production digital products: semantic system blues and greens, disciplined neutrals, legible status colors, and adaptive light/dark appearances that feel credible on Apple- and Material-like surfaces without copying either literally.
values
Production credibility over noveltySemantic color roles before brand color namesAccessible contrast and non-color state cuesAdaptive light and dark appearancesNeutral foundations with controlled chroma
anti-values
×Rainbow role inflation for ordinary interface states×Brand-tinted basics that make controls harder to recognize×Low-contrast gray-on-gray panels×Using color as the only carrier of status or priority
tokens
borders4 items
accent width
3px
character
native hairlines, visible focus rings, and status-side rails rather than heavy outlines
default width
1px
style
solid with patterned secondary state cues where meaning matters
colors12 items
accent
#5E5CE6
background
#F7F8FA
border
#D7DAE0
error
#D92D20
info
#2563EB
muted
#6B7280
primary
#0A84FF
secondary
#30D158
success
#12805C
surface
#FFFFFF
text
#1D1D1F
warning
#B7791F
motion3 items
duration
160ms
easing
cubic-bezier(0.2, 0, 0, 1)
philosophy
short native-feeling feedback for focus, hover, sheet entrance, and segmented-control changes; no ornamental color cycling
radii5 items
full
9999px
lg
16px
md
10px
none
0
sm
6px
shadows3 items
lg
0 18px 48px rgba(29,29,31,0.14)
md
0 8px 24px rgba(29,29,31,0.10)
sm
0 1px 2px rgba(29,29,31,0.08)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
quiet system-gray canvas with optional very faint grid only for product orientation
card style
white or charcoal cards with 1px hairline border, compact header row, and small semantic state chips
treatment
adaptive neutral planes with semantic accent strips and no decorative brand wash
typography8 items
base size
16px
body font
Inter
google fonts url
https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap
heading font
Inter
letter spacing
-0.011em
line height
1.5
mono font
IBM Plex Mono
scale ratio
1.2
rules
composition
Compose screens as credible product workspaces: left navigation, top status toolbar, dense cards, tables, and editors arranged on a neutral canvas with clear semantic states.
density

Balanced enterprise density: compact controls and tables with enough whitespace for scannability, not oversized landing-page blocks.

hierarchy

Use typography, spacing, separators, elevation, icon labels, and position first; color reinforces role and state but never becomes the only hierarchy mechanism.

signature patterns
Semantic side rails use a 3px tokenized accent border plus label text and icon so colored meaning is always paired with a second cue.Adaptive control clusters use system-blue focus rings, neutral fills, and pressed states that work in both light and dark themes via CSS variables.Status and chart tokens are split from brand tokens, using blue, green, amber, red, violet, and teal only for explicit semantic or data roles.Dark mode keeps chroma lower and surfaces layered through neutral luminance steps, preventing glowing neon panels or over-branded affordances.
layout
breakpoints

mobile 375px, tablet 768px, desktop 1200px, wide 1440px

grid

12-column desktop product grid with a persistent navigation rail, 8px spacing base, and card/table modules that collapse cleanly on small screens.

whitespace

Use consistent 16/24/32px gutters, tight 8/12px control internals, and larger quiet margins only around major workspace zones.

guidance
do
  • Reference semantic tokens such as primary, success, warning, error, info, surface, border, and muted in every component recipe.
  • Provide icons, labels, patterns, or text for status so users are not forced to infer meaning from color alone.
  • Tune neutral ramps and contrast separately for light and dark modes, including increased-contrast overrides where possible.
  • Reserve saturated chroma for actions, statuses, selection, chart series, and explicit brand moments.
avoid
  • Do not invent rainbow-only roles for ordinary cards, nav items, or inputs.
  • Do not tint every control with brand blue or green; familiar neutral affordances are part of the language.
  • Do not use low-contrast placeholder text, disabled controls, or gray borders that disappear on dark backgrounds.
  • Do not build decorative gradients unless they are editorial exceptions outside core product components.
katagami spec
# Platform-Native Adaptive Color

## Philosophy

A restrained, platform-native palette system for production digital products: semantic system blues and greens, disciplined neutrals, legible status colors, and adaptive light/dark appearances that feel credible on Apple- and Material-like surfaces without copying either literally.

### Values

- Production credibility over novelty
- Semantic color roles before brand color names
- Accessible contrast and non-color state cues
- Adaptive light and dark appearances
- Neutral foundations with controlled chroma

### Anti-Values

- Rainbow role inflation for ordinary interface states
- Brand-tinted basics that make controls harder to recognize
- Low-contrast gray-on-gray panels
- Using color as the only carrier of status or priority

### Visual Character

- Use CSS custom properties for semantic roles, with light and dark values switched by media query rather than component-specific hard-coded hex colors.
- Build most surfaces from near-neutral gray ramps with 1px separators, subtle inset hairlines, and only small blue or green accents for primary actions and success states.
- Pair every colored status mark with an icon, label, border pattern, or text treatment so warnings, errors, and charts remain understandable without hue alone.
- Keep component geometry familiar: rounded rectangles, system-like focus rings, restrained shadows, and density levels that resemble native platform controls.

## Tokens

### Borders

- **Accent Width**: 3px
- **Character**: native hairlines, visible focus rings, and status-side rails rather than heavy outlines
- **Default Width**: 1px
- **Style**: solid with patterned secondary state cues where meaning matters

### Colors

| Name | Value |
|------|-------|
| accent | `#5E5CE6` |
| background | `#F7F8FA` |
| border | `#D7DAE0` |
| error | `#D92D20` |
| info | `#2563EB` |
| muted | `#6B7280` |
| primary | `#0A84FF` |
| secondary | `#30D158` |
| success | `#12805C` |
| surface | `#FFFFFF` |
| text | `#1D1D1F` |
| warning | `#B7791F` |

### Motion

- **Duration**: 160ms
- **Easing**: cubic-bezier(0.2, 0, 0, 1)
- **Philosophy**: short native-feeling feedback for focus, hover, sheet entrance, and segmented-control changes; no ornamental color cycling

### Radii

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

### Shadows

- **Lg**: 0 18px 48px rgba(29,29,31,0.14)
- **Md**: 0 8px 24px rgba(29,29,31,0.10)
- **Sm**: 0 1px 2px rgba(29,29,31,0.08)

### Spacing

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

### Surfaces

- **Bg Pattern**: quiet system-gray canvas with optional very faint grid only for product orientation
- **Card Style**: white or charcoal cards with 1px hairline border, compact header row, and small semantic state chips
- **Treatment**: adaptive neutral planes with semantic accent strips and no decorative brand wash

### Typography

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

## Rules

### Composition

Compose screens as credible product workspaces: left navigation, top status toolbar, dense cards, tables, and editors arranged on a neutral canvas with clear semantic states.

### Density

Balanced enterprise density: compact controls and tables with enough whitespace for scannability, not oversized landing-page blocks.

### Hierarchy

Use typography, spacing, separators, elevation, icon labels, and position first; color reinforces role and state but never becomes the only hierarchy mechanism.

### Signature Patterns

- Semantic side rails use a 3px tokenized accent border plus label text and icon so colored meaning is always paired with a second cue.
- Adaptive control clusters use system-blue focus rings, neutral fills, and pressed states that work in both light and dark themes via CSS variables.
- Status and chart tokens are split from brand tokens, using blue, green, amber, red, violet, and teal only for explicit semantic or data roles.
- Dark mode keeps chroma lower and surfaces layered through neutral luminance steps, preventing glowing neon panels or over-branded affordances.

## Layout

### Breakpoints

mobile 375px, tablet 768px, desktop 1200px, wide 1440px

### Grid

12-column desktop product grid with a persistent navigation rail, 8px spacing base, and card/table modules that collapse cleanly on small screens.

### Whitespace

Use consistent 16/24/32px gutters, tight 8/12px control internals, and larger quiet margins only around major workspace zones.

## Guidance

### Do

- Reference semantic tokens such as primary, success, warning, error, info, surface, border, and muted in every component recipe.
- Provide icons, labels, patterns, or text for status so users are not forced to infer meaning from color alone.
- Tune neutral ramps and contrast separately for light and dark modes, including increased-contrast overrides where possible.
- Reserve saturated chroma for actions, statuses, selection, chart series, and explicit brand moments.

### Don't

- Do not invent rainbow-only roles for ordinary cards, nav items, or inputs.
- Do not tint every control with brand blue or green; familiar neutral affordances are part of the language.
- Do not use low-contrast placeholder text, disabled controls, or gray borders that disappear on dark backgrounds.
- Do not build decorative gradients unless they are editorial exceptions outside core product components.
DESIGN.md
---
version: "alpha"
name: "Platform-Native Adaptive Color"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#5E5CE6"
  background: "#F7F8FA"
  border: "#D7DAE0"
  error: "#D92D20"
  info: "#2563EB"
  muted: "#6B7280"
  primary: "#0A84FF"
  secondary: "#30D158"
  success: "#12805C"
  surface: "#FFFFFF"
  text: "#1D1D1F"
  warning: "#B7791F"
typography:
  headline-lg:
    fontFamily: "Inter"
    fontSize: "1.728rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.011em"
  headline-md:
    fontFamily: "Inter"
    fontSize: "1.44rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.011em"
  body-md:
    fontFamily: "Inter"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.011em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "16px"
  md: "10px"
  none: "0px"
  sm: "6px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Platform-Native Adaptive Color

## Overview

A restrained, platform-native palette system for production digital products: semantic system blues and greens, disciplined neutrals, legible status colors, and adaptive light/dark appearances that feel credible on Apple- and Material-like surfaces without copying either literally.

### Values

- Production credibility over novelty
- Semantic color roles before brand color names
- Accessible contrast and non-color state cues
- Adaptive light and dark appearances
- Neutral foundations with controlled chroma

### Anti-Values

- Rainbow role inflation for ordinary interface states
- Brand-tinted basics that make controls harder to recognize
- Low-contrast gray-on-gray panels
- Using color as the only carrier of status or priority

### Visual Character

- Use CSS custom properties for semantic roles, with light and dark values switched by media query rather than component-specific hard-coded hex colors.
- Build most surfaces from near-neutral gray ramps with 1px separators, subtle inset hairlines, and only small blue or green accents for primary actions and success states.
- Pair every colored status mark with an icon, label, border pattern, or text treatment so warnings, errors, and charts remain understandable without hue alone.
- Keep component geometry familiar: rounded rectangles, system-like focus rings, restrained shadows, and density levels that resemble native platform controls.

## 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 | `#5E5CE6` |
| background | `#F7F8FA` |
| border | `#D7DAE0` |
| error | `#D92D20` |
| info | `#2563EB` |
| muted | `#6B7280` |
| primary | `#0A84FF` |
| secondary | `#30D158` |
| success | `#12805C` |
| surface | `#FFFFFF` |
| text | `#1D1D1F` |
| warning | `#B7791F` |

## Typography

- **Headline-Lg**: Inter, 1.728rem, weight 700, line-height 1.1.
- **Headline-Md**: Inter, 1.44rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 16px, weight 400, line-height 1.5.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

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

### Breakpoints

mobile 375px, tablet 768px, desktop 1200px, wide 1440px

### Grid

12-column desktop product grid with a persistent navigation rail, 8px spacing base, and card/table modules that collapse cleanly on small screens.

### Whitespace

Use consistent 16/24/32px gutters, tight 8/12px control internals, and larger quiet margins only around major workspace zones.

## Elevation & Depth

### Shadows

- **Lg**: 0 18px 48px rgba(29,29,31,0.14)
- **Md**: 0 8px 24px rgba(29,29,31,0.10)
- **Sm**: 0 1px 2px rgba(29,29,31,0.08)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: quiet system-gray canvas with optional very faint grid only for product orientation
- **Card Style**: white or charcoal cards with 1px hairline border, compact header row, and small semantic state chips
- **Treatment**: adaptive neutral planes with semantic accent strips and no decorative brand wash

### Borders

- **Accent Width**: 3px
- **Character**: native hairlines, visible focus rings, and status-side rails rather than heavy outlines
- **Default Width**: 1px
- **Style**: solid with patterned secondary state cues where meaning matters

## Components

### Composition

Compose screens as credible product workspaces: left navigation, top status toolbar, dense cards, tables, and editors arranged on a neutral canvas with clear semantic states.

### Density

Balanced enterprise density: compact controls and tables with enough whitespace for scannability, not oversized landing-page blocks.

### Hierarchy

Use typography, spacing, separators, elevation, icon labels, and position first; color reinforces role and state but never becomes the only hierarchy mechanism.

### Signature Patterns

- Semantic side rails use a 3px tokenized accent border plus label text and icon so colored meaning is always paired with a second cue.
- Adaptive control clusters use system-blue focus rings, neutral fills, and pressed states that work in both light and dark themes via CSS variables.
- Status and chart tokens are split from brand tokens, using blue, green, amber, red, violet, and teal only for explicit semantic or data roles.
- Dark mode keeps chroma lower and surfaces layered through neutral luminance steps, preventing glowing neon panels or over-branded affordances.

## 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-019ea9b5-03c8-7be0-a172-fc613a20eeab/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 Reference semantic tokens such as primary, success, warning, error, info, surface, border, and muted in every component recipe.
- Do Provide icons, labels, patterns, or text for status so users are not forced to infer meaning from color alone.
- Do Tune neutral ramps and contrast separately for light and dark modes, including increased-contrast overrides where possible.
- Do Reserve saturated chroma for actions, statuses, selection, chart series, and explicit brand moments.
- Don't Do not invent rainbow-only roles for ordinary cards, nav items, or inputs.
- Don't Do not tint every control with brand blue or green; familiar neutral affordances are part of the language.
- Don't Do not use low-contrast placeholder text, disabled controls, or gray borders that disappear on dark backgrounds.
- Don't Do not build decorative gradients unless they are editorial exceptions outside core product components.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "platform-native-adaptive-color",
  "type": "registry:theme",
  "title": "Platform-Native Adaptive Color shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F7F8FA",
      "foreground": "#1D1D1F",
      "card": "#FFFFFF",
      "card-foreground": "#1D1D1F",
      "popover": "#FFFFFF",
      "popover-foreground": "#1D1D1F",
      "primary": "#0A84FF",
      "primary-foreground": "#ffffff",
      "secondary": "#30D158",
      "secondary-foreground": "#ffffff",
      "muted": "#6B7280",
      "muted-foreground": "#1D1D1F",
      "accent": "#5E5CE6",
      "accent-foreground": "#ffffff",
      "destructive": "#D92D20",
      "border": "#D7DAE0",
      "input": "#D7DAE0",
      "ring": "#5E5CE6",
      "chart-1": "#0A84FF",
      "chart-2": "#30D158",
      "chart-3": "#5E5CE6",
      "chart-4": "#12805C",
      "chart-5": "#B7791F",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#1D1D1F",
      "sidebar-primary": "#0A84FF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2563EB",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D7DAE0",
      "sidebar-ring": "#5E5CE6",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0A84FF",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#5E5CE6",
      "accent-foreground": "#ffffff",
      "destructive": "#D92D20",
      "border": "#303642",
      "input": "#303642",
      "ring": "#5E5CE6",
      "chart-1": "#0A84FF",
      "chart-2": "#30D158",
      "chart-3": "#5E5CE6",
      "chart-4": "#12805C",
      "chart-5": "#B7791F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0A84FF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#5E5CE6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#5E5CE6",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b5-03c8-7be0-a172-fc613a20eeab",
    "slug": "platform-native-adaptive-color",
    "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 · platform-native-adaptive-color
DESIGN.md

at a glance

Palette

Typography

headline-lgInter · 28px · 700

The quick brown fox jumps

headline-mdInter · 23px · 600

The quick brown fox jumps

body-mdInter · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

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

Spacing

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

Shape

full9999px
lg16px
md10px
none0px
sm6px
shadcn/ui

implementation kit

needs agent-authored kitstored
shadcn compatibility only
The generated theme variables are available, but the polished shadcn component recipes and shots have not been authored by the Katagami agent yet.
fallbackprimitives render
Compatibility proof
Local shadcn-style primitives accept the generated theme variables.
primaryaccentsurfacemutedwarningerror
table rhythm
buttonok
cardok
inputok
recommendedcompatibility fallback

DESIGN.md with shadcn

Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.

advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table
theme css
:root {
  --background: #F7F8FA;
  --foreground: #1D1D1F;
  --card: #FFFFFF;
  --card-foreground: #1D1D1F;
  --popover: #FFFFFF;
  --popover-foreground: #1D1D1F;
  --primary: #0A84FF;
  --primary-foreground: #ffffff;
  --secondary: #30D158;
  --secondary-foreground: #ffffff;
  --muted: #6B7280;
  --muted-foreground: #1D1D1F;
  --accent: #5E5CE6;
  --accent-foreground: #ffffff;
  --destructive: #D92D20;
  --border: #D7DAE0;
  --input: #D7DAE0;
  --ring: #5E5CE6;
  --chart-1: #0A84FF;
  --chart-2: #30D158;
  --chart-3: #5E5CE6;
  --chart-4: #12805C;
  --chart-5: #B7791F;
  --sidebar: #FFFFFF;
  --sidebar-foreground: #1D1D1F;
  --sidebar-primary: #0A84FF;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #2563EB;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #D7DAE0;
  --sidebar-ring: #5E5CE6;
  --radius: 10px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #0A84FF;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #5E5CE6;
  --accent-foreground: #ffffff;
  --destructive: #D92D20;
  --border: #303642;
  --input: #303642;
  --ring: #5E5CE6;
  --chart-1: #0A84FF;
  --chart-2: #30D158;
  --chart-3: #5E5CE6;
  --chart-4: #12805C;
  --chart-5: #B7791F;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #0A84FF;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #5E5CE6;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #5E5CE6;
  --radius: 10px;
}
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 PlatformNativeAdaptiveColorShadcnKit() {
  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">Platform-Native Adaptive Color</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": "platform-native-adaptive-color",
  "type": "registry:theme",
  "title": "Platform-Native Adaptive Color shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F7F8FA",
      "foreground": "#1D1D1F",
      "card": "#FFFFFF",
      "card-foreground": "#1D1D1F",
      "popover": "#FFFFFF",
      "popover-foreground": "#1D1D1F",
      "primary": "#0A84FF",
      "primary-foreground": "#ffffff",
      "secondary": "#30D158",
      "secondary-foreground": "#ffffff",
      "muted": "#6B7280",
      "muted-foreground": "#1D1D1F",
      "accent": "#5E5CE6",
      "accent-foreground": "#ffffff",
      "destructive": "#D92D20",
      "border": "#D7DAE0",
      "input": "#D7DAE0",
      "ring": "#5E5CE6",
      "chart-1": "#0A84FF",
      "chart-2": "#30D158",
      "chart-3": "#5E5CE6",
      "chart-4": "#12805C",
      "chart-5": "#B7791F",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#1D1D1F",
      "sidebar-primary": "#0A84FF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2563EB",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D7DAE0",
      "sidebar-ring": "#5E5CE6",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0A84FF",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#5E5CE6",
      "accent-foreground": "#ffffff",
      "destructive": "#D92D20",
      "border": "#303642",
      "input": "#303642",
      "ring": "#5E5CE6",
      "chart-1": "#0A84FF",
      "chart-2": "#30D158",
      "chart-3": "#5E5CE6",
      "chart-4": "#12805C",
      "chart-5": "#B7791F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0A84FF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#5E5CE6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#5E5CE6",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b5-03c8-7be0-a172-fc613a20eeab",
    "slug": "platform-native-adaptive-color",
    "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 recipesstored
# Platform-Native Adaptive Color shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate a restrained platform-native adaptive palette into shadcn/ui without over-branding basic affordances. Components reference semantic tokens only, preserve neutral foundations, and pair all color states with labels, icons, borders, or patterns.

## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, table.

## Token cues
Use primary for default action/focus, secondary/success for valid completion, warning/error/info for explicit states, surface/background/border/muted for structure. Do not create component-local rainbow roles.

## Visual character to preserve
Adaptive CSS variables; native hairline borders; compact rounded controls; 3px semantic side rails; visible focus rings; status labels that include text and icon cues; low-chroma dark mode.

## ShadSync visual profile
family: platform-native; material: adaptive-neutral; contour: rounded-rect; border: hairline-plus-semantic-rail; underlay: false; grain: false; stickerBadges: false; motion: native-160ms; density: balanced-compact; accents: blue, green, amber, red, violet, teal.

## Signature component recipes
- button: neutral outline by default; primary uses bg-primary text-primary-foreground; focus-visible ring-primary/25; destructive only for destructive intent.
- card: bg-card border-border rounded-lg shadow-sm; optional border-l-4 semantic rail for state cards.
- input, textarea, select: neutral surface, 1px border, rounded-md, placeholder-muted, focus ring plus border-primary.
- dialog and sheet: surface panel, neutral overlay, compact title rows, semantic footer actions; no decorative gradient panel.
- tabs: segmented-control style on muted background with selected tab on surface and text-primary.
- badge: include icon or text prefix; success/warning/error/info variants have border and label cue.
- separator: hairline neutral divider; never use colored separators except semantic rail.
- checkbox, switch, slider: familiar native geometry; checked state primary or success only when semantically valid.
- tooltip and dropdown-menu: surface, hairline border, shadow-md, compact spacing.
- table: readable row separators, muted uppercase headers, status badge cells with icon plus text.

## Preview shots
application-shell, detail-editor, and data-operations must look like product screens, not inventories.

## Implementation contract
Import local primitives from `@/components/ui/*`. Use the Katagami DESIGN.with-shadcn.md, shadcn.json, shadcn-components.md, and shadcn-shots.json files. Do not invent a second component system.

## Copy-paste component example
```tsx
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
import { Input } from "@/components/ui/input"
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"

export function NativeAdaptiveReleaseCard() {
  return <Card className="border-l-4 border-l-primary shadow-sm">
    <CardHeader className="space-y-1"><CardTitle>Deployment queue</CardTitle></CardHeader>
    <CardContent className="space-y-4">
      <div className="flex gap-2"><Input value="Semantic tokens only" readOnly /><Button>Approve</Button></div>
      <Table><TableHeader><TableRow><TableHead>Service</TableHead><TableHead>Status</TableHead></TableRow></TableHeader><TableBody><TableRow><TableCell>Payment API</TableCell><TableCell><Badge variant="outline">● Ready</Badge></TableCell></TableRow></TableBody></Table>
    </CardContent>
  </Card>
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to button."
    },
    {
      "component": "card",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to card."
    },
    {
      "component": "input",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to input."
    },
    {
      "component": "textarea",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to textarea."
    },
    {
      "component": "select",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to select."
    },
    {
      "component": "dialog",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to dialog."
    },
    {
      "component": "sheet",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to sheet."
    },
    {
      "component": "tabs",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to tabs."
    },
    {
      "component": "badge",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to badge."
    },
    {
      "component": "separator",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to separator."
    },
    {
      "component": "checkbox",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to checkbox."
    },
    {
      "component": "switch",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to switch."
    },
    {
      "component": "slider",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to slider."
    },
    {
      "component": "tooltip",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to tooltip."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to dropdown-menu."
    },
    {
      "component": "table",
      "recipe": "Use semantic tokens, neutral surfaces, visible focus rings, compact rounded geometry, and redundant state cues appropriate to table."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoid": [
        "rainbow nav",
        "color-only status",
        "decorative gradients"
      ],
      "composition": "Navigation rail, top toolbar, metric cards with semantic side rails, and release table.",
      "id": "application-shell",
      "mustShowStates": [
        "primary action focus",
        "success badge",
        "warning badge",
        "error badge",
        "info row"
      ],
      "primitives": [
        "button",
        "card",
        "badge",
        "separator",
        "dropdown-menu",
        "table",
        "tooltip"
      ],
      "scene": {
        "actions": [
          "Approve release",
          "Export report"
        ],
        "description": "A credible product shell using semantic color roles and neutral platform surfaces.",
        "eyebrow": "Operations workspace",
        "headline": "Adaptive release cockpit",
        "rows": [
          {
            "owner": "Kim",
            "service": "Payment API",
            "status": "Ready"
          },
          {
            "owner": "Mina",
            "service": "Identity sync",
            "status": "Blocked"
          }
        ],
        "stats": [
          {
            "label": "Healthy services",
            "state": "success",
            "value": "42"
          },
          {
            "label": "Needs review",
            "state": "warning",
            "value": "7"
          },
          {
            "label": "Blocked",
            "state": "error",
            "value": "2"
          }
        ]
      }
    },
    {
      "avoid": [
        "brand-tinted fields",
        "missing labels",
        "low contrast placeholders"
      ],
      "composition": "Policy detail editor with segmented tabs, form controls, toggles, and a confirmation dialog.",
      "id": "detail-editor",
      "mustShowStates": [
        "focus ring",
        "disabled neutral",
        "warning helper text",
        "success confirmation"
      ],
      "primitives": [
        "input",
        "textarea",
        "select",
        "tabs",
        "checkbox",
        "switch",
        "slider",
        "dialog",
        "sheet",
        "button",
        "badge"
      ],
      "scene": {
        "actions": [
          "Save policy",
          "Open sheet"
        ],
        "description": "Form controls stay neutral until focus or explicit state changes require color.",
        "eyebrow": "Policy editor",
        "fields": [
          {
            "label": "Primary reviewer",
            "value": "Operations design"
          },
          {
            "label": "Risk level",
            "value": "Warning — manual check required"
          },
          {
            "label": "Notes",
            "value": "Use semantic tokens only."
          }
        ],
        "headline": "Review semantic release policy"
      }
    },
    {
      "avoid": [
        "unlabelled chart hues",
        "neon dark mode",
        "decorative rainbow series"
      ],
      "composition": "Data operations table with colorblind-safe statuses and patterned chart cues.",
      "id": "data-operations",
      "mustShowStates": [
        "chart series with labels",
        "striped warning/error marks",
        "selected row",
        "dropdown action"
      ],
      "primitives": [
        "card",
        "table",
        "badge",
        "separator",
        "button",
        "dropdown-menu",
        "tooltip"
      ],
      "scene": {
        "actions": [
          "Filter",
          "Download CSV"
        ],
        "description": "Series use distinct hues, labels, and patterns rather than hue alone.",
        "eyebrow": "Data safety",
        "headline": "Chart-safe operations review",
        "rows": [
          {
            "metric": "Latency",
            "series": "Info blue",
            "value": "128ms"
          },
          {
            "metric": "Retry risk",
            "series": "Warning amber striped",
            "value": "7 jobs"
          },
          {
            "metric": "Failures",
            "series": "Error red striped",
            "value": "2 jobs"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "blue",
      "green",
      "amber",
      "red",
      "violet",
      "teal"
    ],
    "border": "hairline-plus-semantic-rail",
    "contour": "rounded-rect",
    "density": "balanced-compact",
    "family": "platform-native",
    "grain": false,
    "material": "adaptive-neutral",
    "motion": "native-160ms",
    "stickerBadges": false,
    "underlay": false
  }
}
related

More like this