back to gallery
design language·calibrated-signal-base

Calibrated Signal Base

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
Calibrated Signal Base is a production-ready palette language for modern editorial products: quiet neutral and midtone foundations hold the interface steady while acidic citrus, electric violet, signal cyan, and hot coral are reserved for named semantic moments with explicit contrast pairings and usage caps.
values
Build a trustworthy neutral foundation first, then let two or three high-chroma accents behave like editorial punctuation rather than decoration.Treat color as infrastructure: every primitive, semantic role, data series, state, and on-color text token must be named before it appears in UI.Preserve hue identity across light and dark modes by shifting OKLCH lightness and chroma intentionally instead of inverting or washing out accents.Balance warm stone neutrals with cool graphite and slate midtones so the system works for enterprise screens, creative tools, and data-heavy editorial surfaces.Make accessibility visible in the system through contrast-safe pairings, capped accent areas, redundant chart encoding, and clear focus states.
anti-values
×No rainbow component slop, no saturated accents on every card, and no decorative gradients that obscure state or hierarchy.×No unpaired accent usage: brand, interactive, highlight, editorial-only, and chart colors must each have on-color text guidance and area limits.×No brittle light-only palette; every hue must retain its identity in dark mode with tested contrast and adjusted chroma.
tokens
borders4 items
accent width
3px
character
Quiet warm-gray dividers carry layout; accent borders appear only for active, focus, or editorial callout states.
default width
1px
style
solid with occasional dotted data-viz pattern strokes
colors12 items
accent
#B9F227
background
#F4F1EA
border
#D8D1C4
error
#C7433E
info
#007C9C
muted
#8B8579
primary
#262A31
secondary
#766F63
success
#537A34
surface
#FFFCF4
text
#17191D
warning
#A66A00
motion3 items
duration
140ms
easing
cubic-bezier(0.2, 0, 0.1, 1)
philosophy
Motion confirms state changes with short fades and rail slides; color should not pulse or animate into spectacle.
radii5 items
full
9999px
lg
18px
md
10px
none
0
sm
4px
semantic_accents4 items
brand citrus
cap 5% of any viewport·dark #A7E51D·light #B9F227·on #17191D
editorial coral
cap editorial-only alias; not for system errors·dark #FF7D85·light #FF5C67·on #23070A
highlight violet
cap 2 highlighted objects per screen·dark #A98BFF·light #7D4DFF·on #FFFFFF
interactive cyan
cap primary actions and focus only·dark #35CBE6·light #00A7C7·on #07191D
shadows3 items
lg
0 24px 70px rgba(38, 42, 49, 0.18)
md
0 12px 30px rgba(38, 42, 49, 0.12)
sm
0 1px 2px rgba(23, 25, 29, 0.08)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
Subtle OKLCH calibration grid: repeating linear hairlines at low opacity, never decorative enough to compete with data.
card style
Rectangular cards with 10-18px radius, 1px warm-gray border, small semantic accent tab only when needed.
treatment
Warm stone canvas with ink graphite text, raised ivory cards, cool midtone section bands, and sparse chroma rails.
typography8 items
base size
16px
body font
Source Serif 4
google fonts url
https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@500;600;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=IBM+Plex+Mono:wght@400;500;600&display=swap
heading font
Instrument Sans
letter spacing
-0.015em
line height
1.52
mono font
IBM Plex Mono
scale ratio
1.22
rules
composition
Start with a calm neutral operating surface, then place color in auditable slots: a single accent rail, one active control family, limited chart series, and tiny editorial chips. The screen should read as a palette governance tool, not a loud mood board.
density

Medium density with compact token rows and generous section gutters; color documentation can be data-rich but must keep accents spatially rare.

hierarchy
Use graphite headings, serif explanatory copy, mono token labels, and warm-gray borders for baseline hierarchy. High-chroma color may raise priority only when paired with labels, on-color text, and a stated usage cap.
signature patterns
Accent governor rails: 3px vertical or top-edge color bars paired with cap labels such as max 5%, never full-card color fills except tiny chips.Dual-mode token cards: side-by-side light and dark swatches sharing the same semantic alias, with OKLCH adjustment notes and contrast labels printed in mono text.Color-safe chart lanes: neutral gridlines, patterned series fills, direct labels, and small signal color points so chart meaning survives colorblind review.Editorial quarantine chips: coral and violet badges marked editorial-only or highlight-only, visually separated from interactive and system-status tokens.
layout
breakpoints

mobile <= 640px, tablet 641px-980px, desktop >= 981px

density

Dense where token metadata is scanned, spacious where accent decisions are demonstrated.

grid
Desktop uses a 12-column token-lab grid with a 4-column governance panel and 8-column preview workspace; tablet becomes 6 columns; mobile is a single audit stack.
whitespace

Use 32-64px section gutters around dense token matrices and 8-16px row gaps inside cards so documentation feels engineered, not cramped.

guidance
do
  • Name every accent by role: brand, interactive, highlight, editorial-only, data series, or state before using it in a component.
  • Pair accent backgrounds with on-accent text tokens and keep AA contrast for text-bearing surfaces in both light and dark modes.
  • Use neutral and midtone ramps for most components, reserving acidic citrus, electric violet, signal cyan, and hot coral for bounded moments.
  • Provide redundant chart encodings through labels, shapes, patterns, and ordering instead of hue-only distinctions.
  • Document OKLCH light/dark shifts so accents retain hue identity without becoming glare in dark mode.
avoid
  • Do not make every button, card, row, and chart segment saturated; loudness must be capped and intentional.
  • Do not use hot coral as an error token or electric violet as a default link color without semantic justification.
  • Do not ship accent swatches without on-accent text, contrast target, usage cap, and dark-mode counterpart.
  • Do not rely on gradients as a substitute for semantic token structure or data-viz accessibility.
katagami spec
# Calibrated Signal Base

## Philosophy

Calibrated Signal Base is a production-ready palette language for modern editorial products: quiet neutral and midtone foundations hold the interface steady while acidic citrus, electric violet, signal cyan, and hot coral are reserved for named semantic moments with explicit contrast pairings and usage caps.

### Values

- Build a trustworthy neutral foundation first, then let two or three high-chroma accents behave like editorial punctuation rather than decoration.
- Treat color as infrastructure: every primitive, semantic role, data series, state, and on-color text token must be named before it appears in UI.
- Preserve hue identity across light and dark modes by shifting OKLCH lightness and chroma intentionally instead of inverting or washing out accents.
- Balance warm stone neutrals with cool graphite and slate midtones so the system works for enterprise screens, creative tools, and data-heavy editorial surfaces.
- Make accessibility visible in the system through contrast-safe pairings, capped accent areas, redundant chart encoding, and clear focus states.

### Anti-Values

- No rainbow component slop, no saturated accents on every card, and no decorative gradients that obscure state or hierarchy.
- No unpaired accent usage: brand, interactive, highlight, editorial-only, and chart colors must each have on-color text guidance and area limits.
- No brittle light-only palette; every hue must retain its identity in dark mode with tested contrast and adjusted chroma.

### Visual Character

- Use layered neutral CSS variables for canvas, raised surface, panel, and graphite text, with hairline borders and midtone header bands forming the visible base of the interface.
- Apply high-chroma accents only through small bounded CSS selectors such as .accent-rail, .status-dot, .focus-ring, .metric-spark, and .editorial-chip with max-width or max-area constraints.
- Render color token tables as production artifacts: swatches include role names, OKLCH notes, on-token labels, WCAG target text, and usage cap badges instead of decorative color blocks.
- Create light and dark preview columns that preserve accent hue identity by changing lightness and chroma while keeping identical semantic aliases in both columns.
- Use data-viz strips with redundant labels, patterns, and neutral gridlines so signal cyan, electric violet, citrus, and coral never carry meaning by hue alone.

## Tokens

### Borders

- **Accent Width**: 3px
- **Character**: Quiet warm-gray dividers carry layout; accent borders appear only for active, focus, or editorial callout states.
- **Default Width**: 1px
- **Style**: solid with occasional dotted data-viz pattern strokes

### Colors

| Name | Value |
|------|-------|
| accent | `#B9F227` |
| background | `#F4F1EA` |
| border | `#D8D1C4` |
| error | `#C7433E` |
| info | `#007C9C` |
| muted | `#8B8579` |
| primary | `#262A31` |
| secondary | `#766F63` |
| success | `#537A34` |
| surface | `#FFFCF4` |
| text | `#17191D` |
| warning | `#A66A00` |

### Motion

- **Duration**: 140ms
- **Easing**: cubic-bezier(0.2, 0, 0.1, 1)
- **Philosophy**: Motion confirms state changes with short fades and rail slides; color should not pulse or animate into spectacle.

### Radii

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

### Semantic Accents

- **Brand Citrus**: {"cap":"5% of any viewport","dark":"#A7E51D","light":"#B9F227","on":"#17191D"}
- **Editorial Coral**: {"cap":"editorial-only alias; not for system errors","dark":"#FF7D85","light":"#FF5C67","on":"#23070A"}
- **Highlight Violet**: {"cap":"2 highlighted objects per screen","dark":"#A98BFF","light":"#7D4DFF","on":"#FFFFFF"}
- **Interactive Cyan**: {"cap":"primary actions and focus only","dark":"#35CBE6","light":"#00A7C7","on":"#07191D"}

### Shadows

- **Lg**: 0 24px 70px rgba(38, 42, 49, 0.18)
- **Md**: 0 12px 30px rgba(38, 42, 49, 0.12)
- **Sm**: 0 1px 2px rgba(23, 25, 29, 0.08)

### Spacing

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

### Surfaces

- **Bg Pattern**: Subtle OKLCH calibration grid: repeating linear hairlines at low opacity, never decorative enough to compete with data.
- **Card Style**: Rectangular cards with 10-18px radius, 1px warm-gray border, small semantic accent tab only when needed.
- **Treatment**: Warm stone canvas with ink graphite text, raised ivory cards, cool midtone section bands, and sparse chroma rails.

### Typography

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

## Rules

### Composition

Start with a calm neutral operating surface, then place color in auditable slots: a single accent rail, one active control family, limited chart series, and tiny editorial chips. The screen should read as a palette governance tool, not a loud mood board.

### Density

Medium density with compact token rows and generous section gutters; color documentation can be data-rich but must keep accents spatially rare.

### Hierarchy

Use graphite headings, serif explanatory copy, mono token labels, and warm-gray borders for baseline hierarchy. High-chroma color may raise priority only when paired with labels, on-color text, and a stated usage cap.

### Signature Patterns

- Accent governor rails: 3px vertical or top-edge color bars paired with cap labels such as max 5%, never full-card color fills except tiny chips.
- Dual-mode token cards: side-by-side light and dark swatches sharing the same semantic alias, with OKLCH adjustment notes and contrast labels printed in mono text.
- Color-safe chart lanes: neutral gridlines, patterned series fills, direct labels, and small signal color points so chart meaning survives colorblind review.
- Editorial quarantine chips: coral and violet badges marked editorial-only or highlight-only, visually separated from interactive and system-status tokens.

## Layout

### Breakpoints

mobile <= 640px, tablet 641px-980px, desktop >= 981px

### Density

Dense where token metadata is scanned, spacious where accent decisions are demonstrated.

### Grid

Desktop uses a 12-column token-lab grid with a 4-column governance panel and 8-column preview workspace; tablet becomes 6 columns; mobile is a single audit stack.

### Whitespace

Use 32-64px section gutters around dense token matrices and 8-16px row gaps inside cards so documentation feels engineered, not cramped.

## Guidance

### Do

- Name every accent by role: brand, interactive, highlight, editorial-only, data series, or state before using it in a component.
- Pair accent backgrounds with on-accent text tokens and keep AA contrast for text-bearing surfaces in both light and dark modes.
- Use neutral and midtone ramps for most components, reserving acidic citrus, electric violet, signal cyan, and hot coral for bounded moments.
- Provide redundant chart encodings through labels, shapes, patterns, and ordering instead of hue-only distinctions.
- Document OKLCH light/dark shifts so accents retain hue identity without becoming glare in dark mode.

### Don't

- Do not make every button, card, row, and chart segment saturated; loudness must be capped and intentional.
- Do not use hot coral as an error token or electric violet as a default link color without semantic justification.
- Do not ship accent swatches without on-accent text, contrast target, usage cap, and dark-mode counterpart.
- Do not rely on gradients as a substitute for semantic token structure or data-viz accessibility.

### Accessibility

Target WCAG 2.2 AA for text by default, AAA for key neutral text where possible, visible cyan focus rings with a dark outline fallback, and non-color cues for charts and status.

### Usage Context

Best for creative operating systems, editorial publishing tools, enterprise design systems, palette governance dashboards, and modern data products that need controlled statement color.
DESIGN.md
---
version: "alpha"
name: "Calibrated Signal Base"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#B9F227"
  background: "#F4F1EA"
  border: "#D8D1C4"
  error: "#C7433E"
  info: "#007C9C"
  muted: "#8B8579"
  primary: "#262A31"
  secondary: "#766F63"
  success: "#537A34"
  surface: "#FFFCF4"
  text: "#17191D"
  warning: "#A66A00"
typography:
  headline-lg:
    fontFamily: "Instrument Sans"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.015em"
  headline-md:
    fontFamily: "Instrument Sans"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.015em"
  body-md:
    fontFamily: "Source Serif 4"
    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: "4px"
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"
---

# Calibrated Signal Base

## Overview

Calibrated Signal Base is a production-ready palette language for modern editorial products: quiet neutral and midtone foundations hold the interface steady while acidic citrus, electric violet, signal cyan, and hot coral are reserved for named semantic moments with explicit contrast pairings and usage caps.

### Values

- Build a trustworthy neutral foundation first, then let two or three high-chroma accents behave like editorial punctuation rather than decoration.
- Treat color as infrastructure: every primitive, semantic role, data series, state, and on-color text token must be named before it appears in UI.
- Preserve hue identity across light and dark modes by shifting OKLCH lightness and chroma intentionally instead of inverting or washing out accents.
- Balance warm stone neutrals with cool graphite and slate midtones so the system works for enterprise screens, creative tools, and data-heavy editorial surfaces.
- Make accessibility visible in the system through contrast-safe pairings, capped accent areas, redundant chart encoding, and clear focus states.

### Anti-Values

- No rainbow component slop, no saturated accents on every card, and no decorative gradients that obscure state or hierarchy.
- No unpaired accent usage: brand, interactive, highlight, editorial-only, and chart colors must each have on-color text guidance and area limits.
- No brittle light-only palette; every hue must retain its identity in dark mode with tested contrast and adjusted chroma.

### Visual Character

- Use layered neutral CSS variables for canvas, raised surface, panel, and graphite text, with hairline borders and midtone header bands forming the visible base of the interface.
- Apply high-chroma accents only through small bounded CSS selectors such as .accent-rail, .status-dot, .focus-ring, .metric-spark, and .editorial-chip with max-width or max-area constraints.
- Render color token tables as production artifacts: swatches include role names, OKLCH notes, on-token labels, WCAG target text, and usage cap badges instead of decorative color blocks.
- Create light and dark preview columns that preserve accent hue identity by changing lightness and chroma while keeping identical semantic aliases in both columns.
- Use data-viz strips with redundant labels, patterns, and neutral gridlines so signal cyan, electric violet, citrus, and coral never carry meaning by hue alone.

## 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 | `#B9F227` |
| background | `#F4F1EA` |
| border | `#D8D1C4` |
| error | `#C7433E` |
| info | `#007C9C` |
| muted | `#8B8579` |
| primary | `#262A31` |
| secondary | `#766F63` |
| success | `#537A34` |
| surface | `#FFFCF4` |
| text | `#17191D` |
| warning | `#A66A00` |

## Typography

- **Headline-Lg**: Instrument Sans, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Instrument Sans, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Source Serif 4, 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-980px, desktop >= 981px

### Density

Dense where token metadata is scanned, spacious where accent decisions are demonstrated.

### Grid

Desktop uses a 12-column token-lab grid with a 4-column governance panel and 8-column preview workspace; tablet becomes 6 columns; mobile is a single audit stack.

### Whitespace

Use 32-64px section gutters around dense token matrices and 8-16px row gaps inside cards so documentation feels engineered, not cramped.

## Elevation & Depth

### Shadows

- **Lg**: 0 24px 70px rgba(38, 42, 49, 0.18)
- **Md**: 0 12px 30px rgba(38, 42, 49, 0.12)
- **Sm**: 0 1px 2px rgba(23, 25, 29, 0.08)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: Subtle OKLCH calibration grid: repeating linear hairlines at low opacity, never decorative enough to compete with data.
- **Card Style**: Rectangular cards with 10-18px radius, 1px warm-gray border, small semantic accent tab only when needed.
- **Treatment**: Warm stone canvas with ink graphite text, raised ivory cards, cool midtone section bands, and sparse chroma rails.

### Borders

- **Accent Width**: 3px
- **Character**: Quiet warm-gray dividers carry layout; accent borders appear only for active, focus, or editorial callout states.
- **Default Width**: 1px
- **Style**: solid with occasional dotted data-viz pattern strokes

## Components

### Composition

Start with a calm neutral operating surface, then place color in auditable slots: a single accent rail, one active control family, limited chart series, and tiny editorial chips. The screen should read as a palette governance tool, not a loud mood board.

### Density

Medium density with compact token rows and generous section gutters; color documentation can be data-rich but must keep accents spatially rare.

### Hierarchy

Use graphite headings, serif explanatory copy, mono token labels, and warm-gray borders for baseline hierarchy. High-chroma color may raise priority only when paired with labels, on-color text, and a stated usage cap.

### Signature Patterns

- Accent governor rails: 3px vertical or top-edge color bars paired with cap labels such as max 5%, never full-card color fills except tiny chips.
- Dual-mode token cards: side-by-side light and dark swatches sharing the same semantic alias, with OKLCH adjustment notes and contrast labels printed in mono text.
- Color-safe chart lanes: neutral gridlines, patterned series fills, direct labels, and small signal color points so chart meaning survives colorblind review.
- Editorial quarantine chips: coral and violet badges marked editorial-only or highlight-only, visually separated from interactive and system-status tokens.

## 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-019ea9b1-666f-7452-9f72-49b99ff90788/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 Name every accent by role: brand, interactive, highlight, editorial-only, data series, or state before using it in a component.
- Do Pair accent backgrounds with on-accent text tokens and keep AA contrast for text-bearing surfaces in both light and dark modes.
- Do Use neutral and midtone ramps for most components, reserving acidic citrus, electric violet, signal cyan, and hot coral for bounded moments.
- Do Provide redundant chart encodings through labels, shapes, patterns, and ordering instead of hue-only distinctions.
- Do Document OKLCH light/dark shifts so accents retain hue identity without becoming glare in dark mode.
- Don't Do not make every button, card, row, and chart segment saturated; loudness must be capped and intentional.
- Don't Do not use hot coral as an error token or electric violet as a default link color without semantic justification.
- Don't Do not ship accent swatches without on-accent text, contrast target, usage cap, and dark-mode counterpart.
- Don't Do not rely on gradients as a substitute for semantic token structure or data-viz accessibility.

### Accessibility

Target WCAG 2.2 AA for text by default, AAA for key neutral text where possible, visible cyan focus rings with a dark outline fallback, and non-color cues for charts and status.

### Usage Context

Best for creative operating systems, editorial publishing tools, enterprise design systems, palette governance dashboards, and modern data products that need controlled statement color.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "calibrated-signal-base",
  "type": "registry:theme",
  "title": "Calibrated Signal Base shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F4F1EA",
      "foreground": "#17191D",
      "card": "#FFFCF4",
      "card-foreground": "#17191D",
      "popover": "#FFFCF4",
      "popover-foreground": "#17191D",
      "primary": "#262A31",
      "primary-foreground": "#ffffff",
      "secondary": "#766F63",
      "secondary-foreground": "#ffffff",
      "muted": "#8B8579",
      "muted-foreground": "#17191D",
      "accent": "#B9F227",
      "accent-foreground": "#111111",
      "destructive": "#C7433E",
      "border": "#D8D1C4",
      "input": "#D8D1C4",
      "ring": "#B9F227",
      "chart-1": "#262A31",
      "chart-2": "#766F63",
      "chart-3": "#B9F227",
      "chart-4": "#537A34",
      "chart-5": "#A66A00",
      "sidebar": "#FFFCF4",
      "sidebar-foreground": "#17191D",
      "sidebar-primary": "#262A31",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#007C9C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D8D1C4",
      "sidebar-ring": "#B9F227",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#262A31",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#B9F227",
      "accent-foreground": "#111111",
      "destructive": "#C7433E",
      "border": "#303642",
      "input": "#303642",
      "ring": "#B9F227",
      "chart-1": "#262A31",
      "chart-2": "#766F63",
      "chart-3": "#B9F227",
      "chart-4": "#537A34",
      "chart-5": "#A66A00",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#262A31",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#B9F227",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#B9F227",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b1-666f-7452-9f72-49b99ff90788",
    "slug": "calibrated-signal-base",
    "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"
      ],
      "semantic_accents": [
        "brand_citrus",
        "editorial_coral",
        "highlight_violet",
        "interactive_cyan"
      ],
      "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 · calibrated-signal-base
DESIGN.md

at a glance

Palette

Typography

headline-lgInstrument Sans · 29px · 700

The quick brown fox jumps

headline-mdInstrument Sans · 24px · 600

The quick brown fox jumps

body-mdSource Serif 4 · 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
sm4px
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: #F4F1EA;
  --foreground: #17191D;
  --card: #FFFCF4;
  --card-foreground: #17191D;
  --popover: #FFFCF4;
  --popover-foreground: #17191D;
  --primary: #262A31;
  --primary-foreground: #ffffff;
  --secondary: #766F63;
  --secondary-foreground: #ffffff;
  --muted: #8B8579;
  --muted-foreground: #17191D;
  --accent: #B9F227;
  --accent-foreground: #111111;
  --destructive: #C7433E;
  --border: #D8D1C4;
  --input: #D8D1C4;
  --ring: #B9F227;
  --chart-1: #262A31;
  --chart-2: #766F63;
  --chart-3: #B9F227;
  --chart-4: #537A34;
  --chart-5: #A66A00;
  --sidebar: #FFFCF4;
  --sidebar-foreground: #17191D;
  --sidebar-primary: #262A31;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #007C9C;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #D8D1C4;
  --sidebar-ring: #B9F227;
  --radius: 10px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #262A31;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #B9F227;
  --accent-foreground: #111111;
  --destructive: #C7433E;
  --border: #303642;
  --input: #303642;
  --ring: #B9F227;
  --chart-1: #262A31;
  --chart-2: #766F63;
  --chart-3: #B9F227;
  --chart-4: #537A34;
  --chart-5: #A66A00;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #262A31;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #B9F227;
  --sidebar-accent-foreground: #111111;
  --sidebar-border: #303642;
  --sidebar-ring: #B9F227;
  --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 CalibratedSignalBaseShadcnKit() {
  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">Calibrated Signal Base</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": "calibrated-signal-base",
  "type": "registry:theme",
  "title": "Calibrated Signal Base shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F4F1EA",
      "foreground": "#17191D",
      "card": "#FFFCF4",
      "card-foreground": "#17191D",
      "popover": "#FFFCF4",
      "popover-foreground": "#17191D",
      "primary": "#262A31",
      "primary-foreground": "#ffffff",
      "secondary": "#766F63",
      "secondary-foreground": "#ffffff",
      "muted": "#8B8579",
      "muted-foreground": "#17191D",
      "accent": "#B9F227",
      "accent-foreground": "#111111",
      "destructive": "#C7433E",
      "border": "#D8D1C4",
      "input": "#D8D1C4",
      "ring": "#B9F227",
      "chart-1": "#262A31",
      "chart-2": "#766F63",
      "chart-3": "#B9F227",
      "chart-4": "#537A34",
      "chart-5": "#A66A00",
      "sidebar": "#FFFCF4",
      "sidebar-foreground": "#17191D",
      "sidebar-primary": "#262A31",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#007C9C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D8D1C4",
      "sidebar-ring": "#B9F227",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#262A31",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#B9F227",
      "accent-foreground": "#111111",
      "destructive": "#C7433E",
      "border": "#303642",
      "input": "#303642",
      "ring": "#B9F227",
      "chart-1": "#262A31",
      "chart-2": "#766F63",
      "chart-3": "#B9F227",
      "chart-4": "#537A34",
      "chart-5": "#A66A00",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#262A31",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#B9F227",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#B9F227",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b1-666f-7452-9f72-49b99ff90788",
    "slug": "calibrated-signal-base",
    "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"
      ],
      "semantic_accents": [
        "brand_citrus",
        "editorial_coral",
        "highlight_violet",
        "interactive_cyan"
      ],
      "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
# Calibrated Signal Base shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate a neutral-first 2026 palette system into shadcn/ui primitives where vivid accents are role-separated, contrast-paired, and capped.

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

## Token cues
Use `background`, `surface`, `text`, `muted`, and `border` for most structure. Use citrus for brand badges, cyan for interactive/focus, violet for limited highlights, and coral only for editorial annotations. Every accent background must use its matching on-accent text.

## Visual character to preserve
Warm stone canvas, ivory raised cards, graphite headers, hairline warm borders, accent governor rails, dual-mode token cards, patterned chart lanes, and editorial quarantine chips.

## ShadSync visual profile
family: palette-governance; material: warm-stone; contour: calibrated-rounded; border: hairline-plus-accent-rail; underlay: subtle-grid; grain: false; stickerBadges: capped-role-badges; motion: short-rail-slide; density: medium; accents: citrus, cyan, violet, coral with caps.

## Signature component recipes
- button: default neutral; primary uses signal cyan with graphite outline focus; destructive remains semantic error and never coral.
- card: ivory surface, warm border, optional 3px top or left accent rail only.
- input: neutral border, cyan focus ring plus dark outline fallback.
- textarea: same as input, with mono helper text for token notes.
- select: neutral trigger, cyan active ring, no saturated menu panels.
- dialog: graphite title, ivory body, one accent rail for current role.
- sheet: cool graphite header band with neutral body and capped badges.
- tabs: active tab gets cyan underline, not filled rainbow tabs.
- badge: role badges include cap text; citrus brand, violet highlight, coral editorial-only.
- separator: warm-gray 1px; dotted only for data-viz grouping.
- checkbox: cyan checked state with visible label.
- switch: neutral track, cyan thumb when on.
- slider: neutral rail, cyan active range, labelled values.
- tooltip: graphite background with ivory text; no accent unless explaining an accent.
- dropdown-menu: neutral menu, active row cyan left rule.
- table: token rows with mono aliases, swatches, contrast, dark counterpart, and cap columns.

## Preview shots
application-shell, detail-editor, data-operations.

## Implementation contract
Import local primitives from `@/components/ui/*`. Do not invent a parallel component system. Keep accent area below stated caps and include text labels for data colors.

## 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 PaletteGovernanceCard() {
  return (
    <Card className="border border-border bg-card rounded-lg shadow-sm overflow-hidden">
      <div className="h-1 w-full bg-[var(--brand-citrus)]" />
      <CardHeader>
        <Badge className="bg-[var(--brand-citrus)] text-[var(--on-brand-citrus)]">brand · max 5%</Badge>
        <CardTitle>Neutral first, signal under contract</CardTitle>
      </CardHeader>
      <CardContent className="space-y-4">
        <Input placeholder="token.semantic.alias" />
        <Button className="bg-[var(--interactive-cyan)] text-[var(--on-interactive-cyan)] ring-2 ring-foreground">Approve token map</Button>
        <Table><TableHeader><TableRow><TableHead>Alias</TableHead><TableHead>On token</TableHead><TableHead>Cap</TableHead></TableRow></TableHeader><TableBody><TableRow><TableCell>highlight.violet</TableCell><TableCell>#FFFFFF</TableCell><TableCell>2 objects</TableCell></TableRow></TableBody></Table>
      </CardContent>
    </Card>
  )
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "card",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "input",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "textarea",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "select",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "dialog",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "sheet",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "tabs",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "badge",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "separator",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "checkbox",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "switch",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "slider",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "tooltip",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    },
    {
      "component": "table",
      "recipe": "Neutral structure by default; apply role-separated accent only when semantic, with visible label, on-color text, and usage cap."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoid": [
        "rainbow cards",
        "coral error states",
        "unlabelled swatches"
      ],
      "composition": "A palette governance dashboard with graphite header, neutral cards, one citrus brand rail, cyan active tab, and token table.",
      "id": "application-shell",
      "mustShowStates": [
        "cyan focus ring",
        "citrus brand cap badge",
        "violet insight badge limited to one"
      ],
      "primitives": [
        "button",
        "card",
        "tabs",
        "badge",
        "separator",
        "tooltip",
        "dropdown-menu",
        "table"
      ],
      "scene": {
        "actions": [
          "Approve map",
          "Export tokens"
        ],
        "description": "Audit semantic roles before publishing a 2026 color set.",
        "eyebrow": "Palette OS",
        "headline": "Accent budget for Launch Editorial",
        "rows": [
          {
            "alias": "brand.citrus",
            "cap": "5%",
            "on": "#17191D"
          },
          {
            "alias": "interactive.cyan",
            "cap": "focus/action",
            "on": "#07191D"
          },
          {
            "alias": "editorial.coral",
            "cap": "editorial",
            "on": "#23070A"
          }
        ],
        "stats": [
          {
            "label": "AA pairs",
            "value": "42"
          },
          {
            "label": "Accent area",
            "value": "4.8%"
          },
          {
            "label": "Dark shifts",
            "value": "Ready"
          }
        ]
      }
    },
    {
      "avoid": [
        "full saturated panels",
        "hue-only validation"
      ],
      "composition": "A token detail editor with side sheet for OKLCH lightness/chroma adjustments and contrast notes.",
      "id": "detail-editor",
      "mustShowStates": [
        "neutral fields",
        "cyan active controls",
        "coral editorial-only quarantine chip"
      ],
      "primitives": [
        "dialog",
        "sheet",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "badge",
        "button"
      ],
      "scene": {
        "actions": [
          "Save adjustment",
          "Run contrast"
        ],
        "description": "Preserve hue identity while reducing glare and keeping text contrast safe.",
        "eyebrow": "Token editor",
        "fields": [
          {
            "label": "OKLCH lightness",
            "value": "72"
          },
          {
            "label": "Chroma",
            "value": "0.18"
          },
          {
            "label": "On token",
            "value": "#140934"
          }
        ],
        "headline": "Adjust highlight.violet for dark mode",
        "stats": [
          {
            "label": "Visible highlights",
            "value": "1/2"
          },
          {
            "label": "WCAG",
            "value": "AA"
          }
        ]
      }
    },
    {
      "avoid": [
        "meaning by color alone",
        "decorative gradients"
      ],
      "composition": "A chart safety review with patterned series, direct labels, and neutral gridlines.",
      "id": "data-operations",
      "mustShowStates": [
        "patterned violet and coral lanes",
        "direct labels",
        "neutral grid"
      ],
      "primitives": [
        "card",
        "table",
        "badge",
        "separator",
        "slider",
        "switch",
        "tooltip",
        "button"
      ],
      "scene": {
        "actions": [
          "Publish chart tokens",
          "View simulation"
        ],
        "description": "Color, pattern, shape, and label are all present before chart tokens ship.",
        "eyebrow": "Data-viz safety",
        "headline": "Series colors pass redundancy review",
        "rows": [
          {
            "label": "Realtime",
            "pattern": "solid",
            "series": "cyan circle"
          },
          {
            "label": "Forecast",
            "pattern": "diagonal",
            "series": "violet hatch"
          },
          {
            "label": "Editorial",
            "pattern": "hatch",
            "series": "coral diamond"
          }
        ],
        "stats": [
          {
            "label": "CVD checks",
            "value": "3"
          },
          {
            "label": "Hue-only risks",
            "value": "0"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "brand citrus max 5%",
      "interactive cyan focus/action",
      "highlight violet max 2 objects",
      "editorial coral only"
    ],
    "border": "warm hairline with capped accent rails",
    "contour": "calibrated-rounded",
    "density": "medium",
    "family": "palette-governance",
    "grain": false,
    "material": "warm-stone-ivory",
    "motion": "140ms rail slide and fade",
    "stickerBadges": true,
    "underlay": true
  }
}
related

More like this