back to gallery
design language·warm-signal-neutrals

Warm Signal Neutrals

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
Warm Signal Neutrals is a product-interface language where warm off-white surfaces and subdued chroma ramps carry most of the experience, while saturated color is reserved for semantic meaning, wayfinding, focus, and operational state changes.
values
Use warm neutral surfaces as the primary emotional material rather than broad decorative color fields.Separate primitive color ramps from semantic roles for content, background, border, intent, focus, and interaction state.Make accessibility and contrast visible: text and focus rings should be crisp against quiet surfaces.Let small high-contrast accents orient users through tasks, records, alerts, and selected navigation.Prefer product calm and durable information hierarchy over seasonal trend novelty.
anti-values
×No rainbow dashboards, decorative gradients, or saturation used merely to fill empty space.×No low-contrast beige-on-beige minimalism that sacrifices readable content or state clarity.×No arbitrary brand color reuse for destructive, warning, success, or informational semantics.
tokens
borders4 items
accent width
3px
character
quiet architectural borders define roles; color appears as a coded edge or focus outline
default width
1px
style
solid warm hairlines with semantic rails on selected or stateful objects
colors12 items
accent
#D86B2A
background
#F7F1E8
border
#DED2C3
error
#B3261E
info
#2850C8
muted
#7A6B5F
primary
#3657D8
secondary
#8C7763
success
#1E7A4A
surface
#FFF9F0
text
#211D19
warning
#B75E00
motion3 items
duration
160ms
easing
cubic-bezier(.2,.8,.2,1)
philosophy
brief state confirmation; controls lift by 1px and rails brighten, with no ornamental animation
radii5 items
full
9999px
lg
18px
md
10px
none
0
sm
6px
shadows3 items
lg
0 26px 70px rgba(71,52,31,0.14)
md
0 14px 32px rgba(71,52,31,0.10)
sm
0 1px 0 rgba(45,34,24,0.05)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
low-opacity dot grid and paper-grain gradients in gutters only
card style
soft rectangular cards with 1px warm borders, small semantic rails, and almost no chromatic fill
treatment
warm matte layers with subtle grain, inner top highlights, and neutral insets
typography8 items
base size
16px
body font
Source Sans 3
google fonts url
https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap
heading font
Sora
letter spacing
-0.015em
line height
1.52
mono font
IBM Plex Mono
scale ratio
1.22
rules
composition
Compose screens as operational workspaces: a warm shell, a narrow wayfinding rail, one dominant task surface, and side notes for state explanations rather than equal marketing cards.
density

Medium product density with compact metadata and comfortable form rows; warm whitespace separates roles without making the interface feel empty.

hierarchy
Use typography weight, warm surface elevation, and semantic rails to establish priority; saturated accents may mark selection, focus, or status but never become large decorative backgrounds.
signature patterns
Semantic rail cards: every status object uses a 3px vertical rail, matching dot, and text label so color meaning is redundant and accessible.Neutral surface ladder: background, shell, card, inset, and raised layers step through warm creams with one-pixel borders and inset highlights instead of heavy shadows.Accent rationing: cobalt appears only for focus, selected navigation, primary action, and active table row wayfinding, while orange is reserved for a single next-step prompt.Muted chroma badges: labels use desaturated clay, sage, ochre, and slate tints with dark text, never saturated pill fills.Gutter grain: dotted warm-neutral underlays appear in page margins and empty zones but stop at component boundaries to preserve content clarity.
layout
breakpoints

mobile <= 640px, tablet 641px-1024px, desktop >= 1025px; rail becomes top tabs on mobile and the side context stacks below the task panel.

density

Medium density: tables and forms are compact enough for product work but every semantic state gets a readable label and icon/dot companion.

grid

Desktop uses a 12-column max-width 1240px grid with a 72px navigation rail, 8px baseline rhythm, and a dominant 7/5 content split for task and state context.

whitespace

Use generous warm gutters of 32-64px around the shell and tighter 8-16px gaps inside data rows, preserving a calm matte field around dense content.

guidance
do
  • Map primitive ramps into semantic content, background, border, accent, and intent tokens before applying them to components.
  • Reserve saturated cobalt, red, green, amber, and orange for focus, selected navigation, primary action, and explicit status communication.
  • Pair every color state with a rail, dot, label, icon, or text so meaning never depends on hue alone.
  • Use warm neutral layers and one-pixel borders to create most of the spatial system.
avoid
  • Do not flood cards, sidebars, or hero areas with saturated brand color.
  • Do not use beige text on cream surfaces below accessible contrast thresholds.
  • Do not make success, warning, destructive, and informational states share a generic accent treatment.
  • Do not introduce glossy gradients, neon glow, glassmorphism, or decorative rainbow charts.
katagami spec
# Warm Signal Neutrals

## Philosophy

Warm Signal Neutrals is a product-interface language where warm off-white surfaces and subdued chroma ramps carry most of the experience, while saturated color is reserved for semantic meaning, wayfinding, focus, and operational state changes.

### Values

- Use warm neutral surfaces as the primary emotional material rather than broad decorative color fields.
- Separate primitive color ramps from semantic roles for content, background, border, intent, focus, and interaction state.
- Make accessibility and contrast visible: text and focus rings should be crisp against quiet surfaces.
- Let small high-contrast accents orient users through tasks, records, alerts, and selected navigation.
- Prefer product calm and durable information hierarchy over seasonal trend novelty.

### Anti-Values

- No rainbow dashboards, decorative gradients, or saturation used merely to fill empty space.
- No low-contrast beige-on-beige minimalism that sacrifices readable content or state clarity.
- No arbitrary brand color reuse for destructive, warning, success, or informational semantics.

### Visual Character

- Use layered warm-neutral CSS custom properties for body, shell, panel, inset, and raised surfaces, with each layer separated by subtle one-pixel borders instead of colorful fills.
- Render semantic states as narrow left rails, small corner chips, inline dots, and focus rings using saturated accent tokens while keeping the surrounding component surface neutral.
- Build cards and tables with soft rectangular radii, hairline borders, and inset top highlights so surface hierarchy comes from light, border, and spacing rather than shadow-heavy decoration.
- Use muted chroma ramps for secondary navigation and metadata badges, then reserve one high-contrast cobalt focus color and three intent colors for actual actions, alerts, and wayfinding.
- Apply a quiet dot-grid underlay and warm paper grain through low-opacity radial and linear gradients, visible only in page gutters and large empty zones.

## Tokens

### Borders

- **Accent Width**: 3px
- **Character**: quiet architectural borders define roles; color appears as a coded edge or focus outline
- **Default Width**: 1px
- **Style**: solid warm hairlines with semantic rails on selected or stateful objects

### Colors

| Name | Value |
|------|-------|
| accent | `#D86B2A` |
| background | `#F7F1E8` |
| border | `#DED2C3` |
| error | `#B3261E` |
| info | `#2850C8` |
| muted | `#7A6B5F` |
| primary | `#3657D8` |
| secondary | `#8C7763` |
| success | `#1E7A4A` |
| surface | `#FFF9F0` |
| text | `#211D19` |
| warning | `#B75E00` |

### Motion

- **Duration**: 160ms
- **Easing**: cubic-bezier(.2,.8,.2,1)
- **Philosophy**: brief state confirmation; controls lift by 1px and rails brighten, with no ornamental animation

### Radii

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

### Shadows

- **Lg**: 0 26px 70px rgba(71,52,31,0.14)
- **Md**: 0 14px 32px rgba(71,52,31,0.10)
- **Sm**: 0 1px 0 rgba(45,34,24,0.05)

### Spacing

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

### Surfaces

- **Bg Pattern**: low-opacity dot grid and paper-grain gradients in gutters only
- **Card Style**: soft rectangular cards with 1px warm borders, small semantic rails, and almost no chromatic fill
- **Treatment**: warm matte layers with subtle grain, inner top highlights, and neutral insets

### Typography

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

## Rules

### Composition

Compose screens as operational workspaces: a warm shell, a narrow wayfinding rail, one dominant task surface, and side notes for state explanations rather than equal marketing cards.

### Density

Medium product density with compact metadata and comfortable form rows; warm whitespace separates roles without making the interface feel empty.

### Hierarchy

Use typography weight, warm surface elevation, and semantic rails to establish priority; saturated accents may mark selection, focus, or status but never become large decorative backgrounds.

### Signature Patterns

- Semantic rail cards: every status object uses a 3px vertical rail, matching dot, and text label so color meaning is redundant and accessible.
- Neutral surface ladder: background, shell, card, inset, and raised layers step through warm creams with one-pixel borders and inset highlights instead of heavy shadows.
- Accent rationing: cobalt appears only for focus, selected navigation, primary action, and active table row wayfinding, while orange is reserved for a single next-step prompt.
- Muted chroma badges: labels use desaturated clay, sage, ochre, and slate tints with dark text, never saturated pill fills.
- Gutter grain: dotted warm-neutral underlays appear in page margins and empty zones but stop at component boundaries to preserve content clarity.

## Layout

### Breakpoints

mobile <= 640px, tablet 641px-1024px, desktop >= 1025px; rail becomes top tabs on mobile and the side context stacks below the task panel.

### Density

Medium density: tables and forms are compact enough for product work but every semantic state gets a readable label and icon/dot companion.

### Grid

Desktop uses a 12-column max-width 1240px grid with a 72px navigation rail, 8px baseline rhythm, and a dominant 7/5 content split for task and state context.

### Whitespace

Use generous warm gutters of 32-64px around the shell and tighter 8-16px gaps inside data rows, preserving a calm matte field around dense content.

## Guidance

### Do

- Map primitive ramps into semantic content, background, border, accent, and intent tokens before applying them to components.
- Reserve saturated cobalt, red, green, amber, and orange for focus, selected navigation, primary action, and explicit status communication.
- Pair every color state with a rail, dot, label, icon, or text so meaning never depends on hue alone.
- Use warm neutral layers and one-pixel borders to create most of the spatial system.

### Don't

- Do not flood cards, sidebars, or hero areas with saturated brand color.
- Do not use beige text on cream surfaces below accessible contrast thresholds.
- Do not make success, warning, destructive, and informational states share a generic accent treatment.
- Do not introduce glossy gradients, neon glow, glassmorphism, or decorative rainbow charts.

### Accessibility

Maintain WCAG AA contrast for body text and controls, use high-contrast focus rings, duplicate color semantics with labels and shape, and keep muted badges dark enough to read.

### Usage Context

Best for administrative tools, research operations, healthcare-adjacent workflows, knowledge systems, civic software, and product surfaces that need calm neutrality with precise semantic states.
DESIGN.md
---
version: "alpha"
name: "Warm Signal Neutrals"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#D86B2A"
  background: "#F7F1E8"
  border: "#DED2C3"
  error: "#B3261E"
  info: "#2850C8"
  muted: "#7A6B5F"
  primary: "#3657D8"
  secondary: "#8C7763"
  success: "#1E7A4A"
  surface: "#FFF9F0"
  text: "#211D19"
  warning: "#B75E00"
typography:
  headline-lg:
    fontFamily: "Sora"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.015em"
  headline-md:
    fontFamily: "Sora"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.015em"
  body-md:
    fontFamily: "Source Sans 3"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.52
    letterSpacing: "-0.015em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "18px"
  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: "#ffffff"
    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"
---

# Warm Signal Neutrals

## Overview

Warm Signal Neutrals is a product-interface language where warm off-white surfaces and subdued chroma ramps carry most of the experience, while saturated color is reserved for semantic meaning, wayfinding, focus, and operational state changes.

### Values

- Use warm neutral surfaces as the primary emotional material rather than broad decorative color fields.
- Separate primitive color ramps from semantic roles for content, background, border, intent, focus, and interaction state.
- Make accessibility and contrast visible: text and focus rings should be crisp against quiet surfaces.
- Let small high-contrast accents orient users through tasks, records, alerts, and selected navigation.
- Prefer product calm and durable information hierarchy over seasonal trend novelty.

### Anti-Values

- No rainbow dashboards, decorative gradients, or saturation used merely to fill empty space.
- No low-contrast beige-on-beige minimalism that sacrifices readable content or state clarity.
- No arbitrary brand color reuse for destructive, warning, success, or informational semantics.

### Visual Character

- Use layered warm-neutral CSS custom properties for body, shell, panel, inset, and raised surfaces, with each layer separated by subtle one-pixel borders instead of colorful fills.
- Render semantic states as narrow left rails, small corner chips, inline dots, and focus rings using saturated accent tokens while keeping the surrounding component surface neutral.
- Build cards and tables with soft rectangular radii, hairline borders, and inset top highlights so surface hierarchy comes from light, border, and spacing rather than shadow-heavy decoration.
- Use muted chroma ramps for secondary navigation and metadata badges, then reserve one high-contrast cobalt focus color and three intent colors for actual actions, alerts, and wayfinding.
- Apply a quiet dot-grid underlay and warm paper grain through low-opacity radial and linear gradients, visible only in page gutters and large empty zones.

## 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 | `#D86B2A` |
| background | `#F7F1E8` |
| border | `#DED2C3` |
| error | `#B3261E` |
| info | `#2850C8` |
| muted | `#7A6B5F` |
| primary | `#3657D8` |
| secondary | `#8C7763` |
| success | `#1E7A4A` |
| surface | `#FFF9F0` |
| text | `#211D19` |
| warning | `#B75E00` |

## Typography

- **Headline-Lg**: Sora, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Sora, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Source Sans 3, 16px, weight 400, line-height 1.52.
- **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 <= 640px, tablet 641px-1024px, desktop >= 1025px; rail becomes top tabs on mobile and the side context stacks below the task panel.

### Density

Medium density: tables and forms are compact enough for product work but every semantic state gets a readable label and icon/dot companion.

### Grid

Desktop uses a 12-column max-width 1240px grid with a 72px navigation rail, 8px baseline rhythm, and a dominant 7/5 content split for task and state context.

### Whitespace

Use generous warm gutters of 32-64px around the shell and tighter 8-16px gaps inside data rows, preserving a calm matte field around dense content.

## Elevation & Depth

### Shadows

- **Lg**: 0 26px 70px rgba(71,52,31,0.14)
- **Md**: 0 14px 32px rgba(71,52,31,0.10)
- **Sm**: 0 1px 0 rgba(45,34,24,0.05)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: low-opacity dot grid and paper-grain gradients in gutters only
- **Card Style**: soft rectangular cards with 1px warm borders, small semantic rails, and almost no chromatic fill
- **Treatment**: warm matte layers with subtle grain, inner top highlights, and neutral insets

### Borders

- **Accent Width**: 3px
- **Character**: quiet architectural borders define roles; color appears as a coded edge or focus outline
- **Default Width**: 1px
- **Style**: solid warm hairlines with semantic rails on selected or stateful objects

## Components

### Composition

Compose screens as operational workspaces: a warm shell, a narrow wayfinding rail, one dominant task surface, and side notes for state explanations rather than equal marketing cards.

### Density

Medium product density with compact metadata and comfortable form rows; warm whitespace separates roles without making the interface feel empty.

### Hierarchy

Use typography weight, warm surface elevation, and semantic rails to establish priority; saturated accents may mark selection, focus, or status but never become large decorative backgrounds.

### Signature Patterns

- Semantic rail cards: every status object uses a 3px vertical rail, matching dot, and text label so color meaning is redundant and accessible.
- Neutral surface ladder: background, shell, card, inset, and raised layers step through warm creams with one-pixel borders and inset highlights instead of heavy shadows.
- Accent rationing: cobalt appears only for focus, selected navigation, primary action, and active table row wayfinding, while orange is reserved for a single next-step prompt.
- Muted chroma badges: labels use desaturated clay, sage, ochre, and slate tints with dark text, never saturated pill fills.
- Gutter grain: dotted warm-neutral underlays appear in page margins and empty zones but stop at component boundaries to preserve content clarity.

## 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-019ea9a1-83a9-7802-a299-8713fa7a433a/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 Map primitive ramps into semantic content, background, border, accent, and intent tokens before applying them to components.
- Do Reserve saturated cobalt, red, green, amber, and orange for focus, selected navigation, primary action, and explicit status communication.
- Do Pair every color state with a rail, dot, label, icon, or text so meaning never depends on hue alone.
- Do Use warm neutral layers and one-pixel borders to create most of the spatial system.
- Don't Do not flood cards, sidebars, or hero areas with saturated brand color.
- Don't Do not use beige text on cream surfaces below accessible contrast thresholds.
- Don't Do not make success, warning, destructive, and informational states share a generic accent treatment.
- Don't Do not introduce glossy gradients, neon glow, glassmorphism, or decorative rainbow charts.

### Accessibility

Maintain WCAG AA contrast for body text and controls, use high-contrast focus rings, duplicate color semantics with labels and shape, and keep muted badges dark enough to read.

### Usage Context

Best for administrative tools, research operations, healthcare-adjacent workflows, knowledge systems, civic software, and product surfaces that need calm neutrality with precise semantic states.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "warm-signal-neutrals",
  "type": "registry:theme",
  "title": "Warm Signal Neutrals shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F7F1E8",
      "foreground": "#211D19",
      "card": "#FFF9F0",
      "card-foreground": "#211D19",
      "popover": "#FFF9F0",
      "popover-foreground": "#211D19",
      "primary": "#3657D8",
      "primary-foreground": "#ffffff",
      "secondary": "#8C7763",
      "secondary-foreground": "#ffffff",
      "muted": "#7A6B5F",
      "muted-foreground": "#211D19",
      "accent": "#D86B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#B3261E",
      "border": "#DED2C3",
      "input": "#DED2C3",
      "ring": "#D86B2A",
      "chart-1": "#3657D8",
      "chart-2": "#8C7763",
      "chart-3": "#D86B2A",
      "chart-4": "#1E7A4A",
      "chart-5": "#B75E00",
      "sidebar": "#FFF9F0",
      "sidebar-foreground": "#211D19",
      "sidebar-primary": "#3657D8",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2850C8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#DED2C3",
      "sidebar-ring": "#D86B2A",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#3657D8",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D86B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#B3261E",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D86B2A",
      "chart-1": "#3657D8",
      "chart-2": "#8C7763",
      "chart-3": "#D86B2A",
      "chart-4": "#1E7A4A",
      "chart-5": "#B75E00",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#3657D8",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D86B2A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D86B2A",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9a1-83a9-7802-a299-8713fa7a433a",
    "slug": "warm-signal-neutrals",
    "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 · warm-signal-neutrals
DESIGN.md

at a glance

Palette

Typography

headline-lgSora · 29px · 700

The quick brown fox jumps

headline-mdSora · 24px · 600

The quick brown fox jumps

body-mdSource Sans 3 · 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
lg18px
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: #F7F1E8;
  --foreground: #211D19;
  --card: #FFF9F0;
  --card-foreground: #211D19;
  --popover: #FFF9F0;
  --popover-foreground: #211D19;
  --primary: #3657D8;
  --primary-foreground: #ffffff;
  --secondary: #8C7763;
  --secondary-foreground: #ffffff;
  --muted: #7A6B5F;
  --muted-foreground: #211D19;
  --accent: #D86B2A;
  --accent-foreground: #ffffff;
  --destructive: #B3261E;
  --border: #DED2C3;
  --input: #DED2C3;
  --ring: #D86B2A;
  --chart-1: #3657D8;
  --chart-2: #8C7763;
  --chart-3: #D86B2A;
  --chart-4: #1E7A4A;
  --chart-5: #B75E00;
  --sidebar: #FFF9F0;
  --sidebar-foreground: #211D19;
  --sidebar-primary: #3657D8;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #2850C8;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #DED2C3;
  --sidebar-ring: #D86B2A;
  --radius: 10px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #3657D8;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #D86B2A;
  --accent-foreground: #ffffff;
  --destructive: #B3261E;
  --border: #303642;
  --input: #303642;
  --ring: #D86B2A;
  --chart-1: #3657D8;
  --chart-2: #8C7763;
  --chart-3: #D86B2A;
  --chart-4: #1E7A4A;
  --chart-5: #B75E00;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #3657D8;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #D86B2A;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #D86B2A;
  --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 WarmSignalNeutralsShadcnKit() {
  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">Warm Signal Neutrals</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": "warm-signal-neutrals",
  "type": "registry:theme",
  "title": "Warm Signal Neutrals shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F7F1E8",
      "foreground": "#211D19",
      "card": "#FFF9F0",
      "card-foreground": "#211D19",
      "popover": "#FFF9F0",
      "popover-foreground": "#211D19",
      "primary": "#3657D8",
      "primary-foreground": "#ffffff",
      "secondary": "#8C7763",
      "secondary-foreground": "#ffffff",
      "muted": "#7A6B5F",
      "muted-foreground": "#211D19",
      "accent": "#D86B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#B3261E",
      "border": "#DED2C3",
      "input": "#DED2C3",
      "ring": "#D86B2A",
      "chart-1": "#3657D8",
      "chart-2": "#8C7763",
      "chart-3": "#D86B2A",
      "chart-4": "#1E7A4A",
      "chart-5": "#B75E00",
      "sidebar": "#FFF9F0",
      "sidebar-foreground": "#211D19",
      "sidebar-primary": "#3657D8",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#2850C8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#DED2C3",
      "sidebar-ring": "#D86B2A",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#3657D8",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D86B2A",
      "accent-foreground": "#ffffff",
      "destructive": "#B3261E",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D86B2A",
      "chart-1": "#3657D8",
      "chart-2": "#8C7763",
      "chart-3": "#D86B2A",
      "chart-4": "#1E7A4A",
      "chart-5": "#B75E00",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#3657D8",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D86B2A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D86B2A",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9a1-83a9-7802-a299-8713fa7a433a",
    "slug": "warm-signal-neutrals",
    "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
# shadcn/ui Components — Warm Signal Neutrals

Author: `katagami-agent`

## ShadSync visual profile
- Family: warm semantic product workspace
- Material: matte cream paper surfaces with quiet one-pixel warm hairlines
- Contour: softly rounded cards, steady control radii, small coded badges
- Border: solid warm borders plus 3px semantic rails for state-bearing regions
- Underlay: low-opacity dot-grid/paper-grain gutters, never glossy gradients
- Motion: 160ms cubic-bezier(.2,.8,.2,1) lift/rail confirmation
- Density: medium operational density with compact metadata and clear labels
- Accents: cobalt for focus/selection/primary, orange for attention, red/green/amber/info only for explicit labelled states

## Signature component recipes
### button
Use neutral surface buttons by default with 1px warm border; primary buttons use cobalt fill, white text, 10px radius, and a high-contrast focus ring. Destructive buttons use red only with explicit destructive copy.

### card
Use warm surface cards with 18px radius, 1px #DED2C3 border, soft cream shadow, and optional 3px semantic left rail with matching dot and label.

### input
Use inset cream fields, 10px radius, muted placeholder, warm border, and cobalt outline plus 1px lift on focus.

### textarea
Match input treatment; preserve generous line-height and never use beige low-contrast text.

### select
Use the same field shell; selected values remain text-first with small semantic dot only when state is meaningful.

### dialog
Render as matte raised warm panel, 18px radius, border, limited shadow, and a clear semantic header badge when the dialog changes state.

### sheet
Use a paper side panel with warm border divider, compact rows, and rail markers for active subsections.

### tabs
Active tab receives cobalt 3px rail/underline and strong text; inactive tabs stay neutral with no color flooding.

### badge
Badges are labelled state pills with small dot/rail companions; colors map to success/warning/error/info with accessible text.

### separator
Use one-pixel warm hairlines; never heavy black dividers except focus outlines.

### checkbox
10px-ish control box with cobalt checked state, warm border, and visible focus ring.

### switch
Neutral track with cobalt active state; pair with text label and avoid relying on color alone.

### slider
Warm track, cobalt filled segment, compact thumb with focus ring, and numeric label for meaning.

### tooltip
Small matte cream surface, warm border, crisp dark text, and no glass/blur effects.

### dropdown-menu
Raised cream list with compact rows, selected row rail, semantic icons/dots where needed, and warm separators.

### table
Compact operational rows on warm surface, sticky semantic state column, labelled badges, and selected rows indicated by a cobalt rail.

## Preview shots
- `application-shell`: wayfinding rail, task surface, semantic summary cards.
- `detail-editor`: form editor with status rails and accessible focus.
- `data-operations`: compact table with labelled state badges and filters.

## 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"

export function WarmSignalCard() {
  return (
    <Card className="border-[#DED2C3] bg-[#FFF9F0] shadow-[0_14px_32px_rgba(71,52,31,0.10)] rounded-[18px] border-l-[3px] border-l-[#3657D8]">
      <CardHeader>
        <Badge className="bg-[#EAF0FF] text-[#2850C8] border border-[#2850C8]">● In review</Badge>
        <CardTitle className="text-[#211D19]">Semantic palette audit</CardTitle>
      </CardHeader>
      <CardContent className="text-[#7A6B5F]">Warm neutral surface, rationed cobalt focus, and redundant status labelling.</CardContent>
      <Button className="bg-[#3657D8] text-white focus-visible:ring-[#2850C8]">Resolve contrast</Button>
    </Card>
  )
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Use neutral surface buttons by default with 1px warm border; primary buttons use cobalt fill, white text, 10px radius, and a high-contrast focus ring. Destructive buttons use red only with explicit destructive copy."
    },
    {
      "component": "card",
      "recipe": "Use warm surface cards with 18px radius, 1px #DED2C3 border, soft cream shadow, and optional 3px semantic left rail with matching dot and label."
    },
    {
      "component": "input",
      "recipe": "Use inset cream fields, 10px radius, muted placeholder, warm border, and cobalt outline plus 1px lift on focus."
    },
    {
      "component": "textarea",
      "recipe": "Match input treatment; preserve generous line-height and never use beige low-contrast text."
    },
    {
      "component": "select",
      "recipe": "Use the same field shell; selected values remain text-first with small semantic dot only when state is meaningful."
    },
    {
      "component": "dialog",
      "recipe": "Render as matte raised warm panel, 18px radius, border, limited shadow, and a clear semantic header badge when the dialog changes state."
    },
    {
      "component": "sheet",
      "recipe": "Use a paper side panel with warm border divider, compact rows, and rail markers for active subsections."
    },
    {
      "component": "tabs",
      "recipe": "Active tab receives cobalt 3px rail/underline and strong text; inactive tabs stay neutral with no color flooding."
    },
    {
      "component": "badge",
      "recipe": "Badges are labelled state pills with small dot/rail companions; colors map to success/warning/error/info with accessible text."
    },
    {
      "component": "separator",
      "recipe": "Use one-pixel warm hairlines; never heavy black dividers except focus outlines."
    },
    {
      "component": "checkbox",
      "recipe": "10px-ish control box with cobalt checked state, warm border, and visible focus ring."
    },
    {
      "component": "switch",
      "recipe": "Neutral track with cobalt active state; pair with text label and avoid relying on color alone."
    },
    {
      "component": "slider",
      "recipe": "Warm track, cobalt filled segment, compact thumb with focus ring, and numeric label for meaning."
    },
    {
      "component": "tooltip",
      "recipe": "Small matte cream surface, warm border, crisp dark text, and no glass/blur effects."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Raised cream list with compact rows, selected row rail, semantic icons/dots where needed, and warm separators."
    },
    {
      "component": "table",
      "recipe": "Compact operational rows on warm surface, sticky semantic state column, labelled badges, and selected rows indicated by a cobalt rail."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "id": "application-shell",
      "scene": {
        "actions": [
          "Review queue",
          "Open state map"
        ],
        "description": "A warm shell with selected cobalt rail, calm task cards, and status summaries that pair dot, rail, and label.",
        "eyebrow": "Operations console",
        "headline": "Palette signals without saturation flood",
        "rows": [
          {
            "accent": "info",
            "name": "Navigation state",
            "status": "Selected"
          },
          {
            "accent": "success",
            "name": "Semantic ramp",
            "status": "Mapped"
          },
          {
            "accent": "warning",
            "name": "Muted neutral",
            "status": "Needs label"
          }
        ],
        "stats": [
          {
            "label": "Contrast checks",
            "state": "success",
            "value": "42"
          },
          {
            "label": "Warnings",
            "state": "warning",
            "value": "6"
          },
          {
            "label": "Blocked",
            "state": "error",
            "value": "2"
          }
        ]
      }
    },
    {
      "id": "detail-editor",
      "scene": {
        "actions": [
          "Save mapping",
          "Preview focus"
        ],
        "description": "Focused form controls sit on inset cream fields with cobalt focus, concise helper copy, and labelled semantic badges.",
        "eyebrow": "Design token editor",
        "fields": [
          {
            "label": "Primary accent",
            "state": "info",
            "value": "#3657D8"
          },
          {
            "label": "Warning rail",
            "state": "warning",
            "value": "#B75E00"
          },
          {
            "label": "Destructive copy",
            "state": "error",
            "value": "Requires explicit label"
          }
        ],
        "headline": "Warm neutrals with explicit state rails",
        "stats": [
          {
            "label": "AA labels",
            "state": "success",
            "value": "100%"
          }
        ]
      }
    },
    {
      "id": "data-operations",
      "scene": {
        "actions": [
          "Filter states",
          "Export audit"
        ],
        "description": "Compact rows use warm separators, accessible text, and state badges with redundant dots instead of color-only meaning.",
        "eyebrow": "Release readiness",
        "headline": "Semantic states stay readable in dense product UI",
        "rows": [
          {
            "name": "Checkout sheet",
            "owner": "Mira",
            "state": "success",
            "status": "Passing"
          },
          {
            "name": "Billing dialog",
            "owner": "Theo",
            "state": "warning",
            "status": "Warning contrast"
          },
          {
            "name": "Delete flow",
            "owner": "Ari",
            "state": "error",
            "status": "Blocked"
          },
          {
            "name": "Import table",
            "owner": "Jun",
            "state": "info",
            "status": "Info review"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "cobalt focus and selection",
      "orange attention",
      "red destructive",
      "green success",
      "amber warning",
      "blue information"
    ],
    "border": "solid-hairline-plus-semantic-rail",
    "contour": "soft-rounded-operational",
    "density": "medium",
    "family": "warm-semantic-product",
    "grain": true,
    "material": "matte-cream-paper",
    "motion": "brief-lift-rail-brighten",
    "stickerBadges": false,
    "underlay": true
  }
}
related

More like this