back to gallery
design language·lumen-mesh-palette-system

Lumen Mesh Palette System

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md source of truth for most agents and apps.

the spec

specification

philosophy
summary
A production-credible 2026 palette language for creative interfaces that reserves surreal mesh, lumen, and iridescent color for immersive moments while everyday UI remains plain, semantic, contrast-safe, and token-ready.
values
expressive canvases with operational restraintsemantic UI tokens before spectaclecontrast-tested accessibility at every interactive layerwarm and cool chroma held in deliberate balancewide-gamut readiness with safe sRGB fallbacks
anti-values
×generic AI rainbow blobs used as default decoration×gradient hues used as categorical chart defaults×text placed over uncontrolled gradients×semantic states encoded only through decorative chroma
tokens
borders4 items
accent width
3px
character
quiet mink outlines for UI; hairline iridescent rails for immersive moments
default width
1px
style
solid
colors12 items
accent
#FF6F91
background
#F6F2EA
border
#D8D0C3
error
#B42318
info
#175CD3
muted
#6F6878
primary
#4B47D9
secondary
#0F8B8D
success
#067647
surface
#FFFFFF
text
#17151F
warning
#B54708
motion3 items
duration
180ms
easing
cubic-bezier(.2,.8,.2,1)
philosophy
Color shifts should feel like light refracting across material; controls move minimally and never shimmer while reading.
radii5 items
full
9999px
lg
18px
md
10px
none
0
sm
6px
shadows3 items
lg
0 30px 90px rgba(28,24,58,0.18)
md
0 18px 48px rgba(32,26,54,0.12)
sm
0 1px 0 rgba(23,21,31,0.08)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
Subtle OKLCH-ready lumen mesh: violet, aqua, coral, and butter stops at low opacity with warm ivory fallback.
card style
White or ink solid fill, 1px border, 10px radius, optional 3px iridescent top rule only for featured cards.
treatment
Neutral matte UI planes with decorative mesh-gradient underlays isolated to hero, canvas, and brand panels.
typography8 items
base size
16px
body font
IBM Plex Sans
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@500;600&display=swap
heading font
Space Grotesk
letter spacing
-0.012em
line height
1.52
mono font
IBM Plex Mono
scale ratio
1.22
rules
composition

Anchor screens with plain task columns and reserve the mesh/lumen field for one authored canvas, header, or preview module per viewport.

density

Medium product density: generous canvas breathing room paired with compact forms, tables, and token chips for enterprise credibility.

hierarchy
Use Space Grotesk for short confident headings, IBM Plex Sans for operational copy, and monospace labels for token names, contrast metrics, and chart-safe notes.
signature patterns
A four-stop CSS radial-gradient mesh is clipped to .lumen-field panels and covered by a translucent solid veil to prevent text contrast failure.Iridescent edge rails use linear-gradient borders on pseudo-elements with no more than four color stops and strict 3px thickness.Semantic color swatches are rendered as plain solid tokens beside decorative gradient primitives to keep brand layers separate from UI states.Chart previews use solid colorblind-safe chips and neutral grid lines, explicitly excluding mesh hues from categorical data defaults.Dark adaptation lowers gradient opacity and switches chrome to ink surfaces without changing semantic token meaning.
layout
breakpoints

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

grid

Twelve-column desktop grid with a fixed left token rail, fluid center canvas, and right accessibility audit panel; collapses to single column on mobile.

whitespace

Use 24px section rhythm and 8px micro rhythm; surreal panels need at least 32px internal padding so color reads as atmosphere rather than clutter.

guidance
do
  • Define decorative gradient primitives separately from semantic UI tokens, including stops, opacity, position, and fallback solids.
  • Contrast-test text at the worst point before placing it on a gradient; otherwise add a solid veil or move text to a plain surface.
  • Use gradients for immersive creative moments such as preview canvases, onboarding hero areas, and brand/editorial modules.
  • Provide dark-mode versions by reducing gradient opacity and preserving semantic state assignments.
avoid
  • Do not use gradient hues as categorical chart defaults or status colors.
  • Do not fill every card with a rainbow mesh or allow uncontrolled stop counts.
  • Do not place small labels, tables, or form inputs directly on iridescent backgrounds.
  • Do not rely on color alone for warning, success, error, or selected states.
katagami spec
# Lumen Mesh Palette System

## Philosophy

A production-credible 2026 palette language for creative interfaces that reserves surreal mesh, lumen, and iridescent color for immersive moments while everyday UI remains plain, semantic, contrast-safe, and token-ready.

### Values

- expressive canvases with operational restraint
- semantic UI tokens before spectacle
- contrast-tested accessibility at every interactive layer
- warm and cool chroma held in deliberate balance
- wide-gamut readiness with safe sRGB fallbacks

### Anti-Values

- generic AI rainbow blobs used as default decoration
- gradient hues used as categorical chart defaults
- text placed over uncontrolled gradients
- semantic states encoded only through decorative chroma

### Visual Character

- Plain neutral application chrome uses flat #F6F2EA and #FFFFFF surfaces with one-pixel mink borders before any gradient is introduced.
- Immersive panels place a constrained four-stop radial mesh behind content with a 0.42 opacity veil and solid fallback color declared first.
- Iridescent transition strips appear as narrow 3px or 6px edge accents, never as full text backgrounds or default card fills.
- Data and form regions use square-to-soft 10px radii, crisp outlines, and explicit focus rings so the surreal color remains decorative.
- Dark mode inverts to ink and graphite foundations while preserving identical semantic state colors and dimmed gradient opacity.

## Tokens

### Borders

- **Accent Width**: 3px
- **Character**: quiet mink outlines for UI; hairline iridescent rails for immersive moments
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#FF6F91` |
| background | `#F6F2EA` |
| border | `#D8D0C3` |
| error | `#B42318` |
| info | `#175CD3` |
| muted | `#6F6878` |
| primary | `#4B47D9` |
| secondary | `#0F8B8D` |
| success | `#067647` |
| surface | `#FFFFFF` |
| text | `#17151F` |
| warning | `#B54708` |

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(.2,.8,.2,1)
- **Philosophy**: Color shifts should feel like light refracting across material; controls move minimally and never shimmer while reading.

### Radii

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

### Shadows

- **Lg**: 0 30px 90px rgba(28,24,58,0.18)
- **Md**: 0 18px 48px rgba(32,26,54,0.12)
- **Sm**: 0 1px 0 rgba(23,21,31,0.08)

### Spacing

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

### Surfaces

- **Bg Pattern**: Subtle OKLCH-ready lumen mesh: violet, aqua, coral, and butter stops at low opacity with warm ivory fallback.
- **Card Style**: White or ink solid fill, 1px border, 10px radius, optional 3px iridescent top rule only for featured cards.
- **Treatment**: Neutral matte UI planes with decorative mesh-gradient underlays isolated to hero, canvas, and brand panels.

### Typography

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

## Rules

### Composition

Anchor screens with plain task columns and reserve the mesh/lumen field for one authored canvas, header, or preview module per viewport.

### Density

Medium product density: generous canvas breathing room paired with compact forms, tables, and token chips for enterprise credibility.

### Hierarchy

Use Space Grotesk for short confident headings, IBM Plex Sans for operational copy, and monospace labels for token names, contrast metrics, and chart-safe notes.

### Signature Patterns

- A four-stop CSS radial-gradient mesh is clipped to .lumen-field panels and covered by a translucent solid veil to prevent text contrast failure.
- Iridescent edge rails use linear-gradient borders on pseudo-elements with no more than four color stops and strict 3px thickness.
- Semantic color swatches are rendered as plain solid tokens beside decorative gradient primitives to keep brand layers separate from UI states.
- Chart previews use solid colorblind-safe chips and neutral grid lines, explicitly excluding mesh hues from categorical data defaults.
- Dark adaptation lowers gradient opacity and switches chrome to ink surfaces without changing semantic token meaning.

## Layout

### Breakpoints

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

### Grid

Twelve-column desktop grid with a fixed left token rail, fluid center canvas, and right accessibility audit panel; collapses to single column on mobile.

### Whitespace

Use 24px section rhythm and 8px micro rhythm; surreal panels need at least 32px internal padding so color reads as atmosphere rather than clutter.

## Guidance

### Do

- Define decorative gradient primitives separately from semantic UI tokens, including stops, opacity, position, and fallback solids.
- Contrast-test text at the worst point before placing it on a gradient; otherwise add a solid veil or move text to a plain surface.
- Use gradients for immersive creative moments such as preview canvases, onboarding hero areas, and brand/editorial modules.
- Provide dark-mode versions by reducing gradient opacity and preserving semantic state assignments.

### Don't

- Do not use gradient hues as categorical chart defaults or status colors.
- Do not fill every card with a rainbow mesh or allow uncontrolled stop counts.
- Do not place small labels, tables, or form inputs directly on iridescent backgrounds.
- Do not rely on color alone for warning, success, error, or selected states.
DESIGN.md
---
version: "alpha"
name: "Lumen Mesh Palette System"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#FF6F91"
  background: "#F6F2EA"
  border: "#D8D0C3"
  error: "#B42318"
  info: "#175CD3"
  muted: "#6F6878"
  primary: "#4B47D9"
  secondary: "#0F8B8D"
  success: "#067647"
  surface: "#FFFFFF"
  text: "#17151F"
  warning: "#B54708"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.012em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.012em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.52
    letterSpacing: "-0.012em"
  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"
---

# Lumen Mesh Palette System

## Overview

A production-credible 2026 palette language for creative interfaces that reserves surreal mesh, lumen, and iridescent color for immersive moments while everyday UI remains plain, semantic, contrast-safe, and token-ready.

### Values

- expressive canvases with operational restraint
- semantic UI tokens before spectacle
- contrast-tested accessibility at every interactive layer
- warm and cool chroma held in deliberate balance
- wide-gamut readiness with safe sRGB fallbacks

### Anti-Values

- generic AI rainbow blobs used as default decoration
- gradient hues used as categorical chart defaults
- text placed over uncontrolled gradients
- semantic states encoded only through decorative chroma

### Visual Character

- Plain neutral application chrome uses flat #F6F2EA and #FFFFFF surfaces with one-pixel mink borders before any gradient is introduced.
- Immersive panels place a constrained four-stop radial mesh behind content with a 0.42 opacity veil and solid fallback color declared first.
- Iridescent transition strips appear as narrow 3px or 6px edge accents, never as full text backgrounds or default card fills.
- Data and form regions use square-to-soft 10px radii, crisp outlines, and explicit focus rings so the surreal color remains decorative.
- Dark mode inverts to ink and graphite foundations while preserving identical semantic state colors and dimmed gradient opacity.

## 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 | `#FF6F91` |
| background | `#F6F2EA` |
| border | `#D8D0C3` |
| error | `#B42318` |
| info | `#175CD3` |
| muted | `#6F6878` |
| primary | `#4B47D9` |
| secondary | `#0F8B8D` |
| success | `#067647` |
| surface | `#FFFFFF` |
| text | `#17151F` |
| warning | `#B54708` |

## Typography

- **Headline-Lg**: Space Grotesk, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Space Grotesk, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 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 375px, tablet 768px, desktop 1200px, wide 1440px

### Grid

Twelve-column desktop grid with a fixed left token rail, fluid center canvas, and right accessibility audit panel; collapses to single column on mobile.

### Whitespace

Use 24px section rhythm and 8px micro rhythm; surreal panels need at least 32px internal padding so color reads as atmosphere rather than clutter.

## Elevation & Depth

### Shadows

- **Lg**: 0 30px 90px rgba(28,24,58,0.18)
- **Md**: 0 18px 48px rgba(32,26,54,0.12)
- **Sm**: 0 1px 0 rgba(23,21,31,0.08)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: Subtle OKLCH-ready lumen mesh: violet, aqua, coral, and butter stops at low opacity with warm ivory fallback.
- **Card Style**: White or ink solid fill, 1px border, 10px radius, optional 3px iridescent top rule only for featured cards.
- **Treatment**: Neutral matte UI planes with decorative mesh-gradient underlays isolated to hero, canvas, and brand panels.

### Borders

- **Accent Width**: 3px
- **Character**: quiet mink outlines for UI; hairline iridescent rails for immersive moments
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Anchor screens with plain task columns and reserve the mesh/lumen field for one authored canvas, header, or preview module per viewport.

### Density

Medium product density: generous canvas breathing room paired with compact forms, tables, and token chips for enterprise credibility.

### Hierarchy

Use Space Grotesk for short confident headings, IBM Plex Sans for operational copy, and monospace labels for token names, contrast metrics, and chart-safe notes.

### Signature Patterns

- A four-stop CSS radial-gradient mesh is clipped to .lumen-field panels and covered by a translucent solid veil to prevent text contrast failure.
- Iridescent edge rails use linear-gradient borders on pseudo-elements with no more than four color stops and strict 3px thickness.
- Semantic color swatches are rendered as plain solid tokens beside decorative gradient primitives to keep brand layers separate from UI states.
- Chart previews use solid colorblind-safe chips and neutral grid lines, explicitly excluding mesh hues from categorical data defaults.
- Dark adaptation lowers gradient opacity and switches chrome to ink surfaces without changing semantic token meaning.

## 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-019ea9b3-fb10-7472-8f45-ac452434204c/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 Define decorative gradient primitives separately from semantic UI tokens, including stops, opacity, position, and fallback solids.
- Do Contrast-test text at the worst point before placing it on a gradient; otherwise add a solid veil or move text to a plain surface.
- Do Use gradients for immersive creative moments such as preview canvases, onboarding hero areas, and brand/editorial modules.
- Do Provide dark-mode versions by reducing gradient opacity and preserving semantic state assignments.
- Don't Do not use gradient hues as categorical chart defaults or status colors.
- Don't Do not fill every card with a rainbow mesh or allow uncontrolled stop counts.
- Don't Do not place small labels, tables, or form inputs directly on iridescent backgrounds.
- Don't Do not rely on color alone for warning, success, error, or selected states.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "lumen-mesh-palette-system",
  "type": "registry:theme",
  "title": "Lumen Mesh Palette System shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F6F2EA",
      "foreground": "#17151F",
      "card": "#FFFFFF",
      "card-foreground": "#17151F",
      "popover": "#FFFFFF",
      "popover-foreground": "#17151F",
      "primary": "#4B47D9",
      "primary-foreground": "#ffffff",
      "secondary": "#0F8B8D",
      "secondary-foreground": "#ffffff",
      "muted": "#6F6878",
      "muted-foreground": "#17151F",
      "accent": "#FF6F91",
      "accent-foreground": "#ffffff",
      "destructive": "#B42318",
      "border": "#D8D0C3",
      "input": "#D8D0C3",
      "ring": "#FF6F91",
      "chart-1": "#4B47D9",
      "chart-2": "#0F8B8D",
      "chart-3": "#FF6F91",
      "chart-4": "#067647",
      "chart-5": "#B54708",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#17151F",
      "sidebar-primary": "#4B47D9",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#175CD3",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D8D0C3",
      "sidebar-ring": "#FF6F91",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#4B47D9",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#FF6F91",
      "accent-foreground": "#ffffff",
      "destructive": "#B42318",
      "border": "#303642",
      "input": "#303642",
      "ring": "#FF6F91",
      "chart-1": "#4B47D9",
      "chart-2": "#0F8B8D",
      "chart-3": "#FF6F91",
      "chart-4": "#067647",
      "chart-5": "#B54708",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#4B47D9",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#FF6F91",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#FF6F91",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b3-fb10-7472-8f45-ac452434204c",
    "slug": "lumen-mesh-palette-system",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · lumen-mesh-palette-system
DESIGN.md

at a glance

Palette

Typography

headline-lgSpace Grotesk · 29px · 700

The quick brown fox jumps

headline-mdSpace Grotesk · 24px · 600

The quick brown fox jumps

body-mdIBM Plex Sans · 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: #F6F2EA;
  --foreground: #17151F;
  --card: #FFFFFF;
  --card-foreground: #17151F;
  --popover: #FFFFFF;
  --popover-foreground: #17151F;
  --primary: #4B47D9;
  --primary-foreground: #ffffff;
  --secondary: #0F8B8D;
  --secondary-foreground: #ffffff;
  --muted: #6F6878;
  --muted-foreground: #17151F;
  --accent: #FF6F91;
  --accent-foreground: #ffffff;
  --destructive: #B42318;
  --border: #D8D0C3;
  --input: #D8D0C3;
  --ring: #FF6F91;
  --chart-1: #4B47D9;
  --chart-2: #0F8B8D;
  --chart-3: #FF6F91;
  --chart-4: #067647;
  --chart-5: #B54708;
  --sidebar: #FFFFFF;
  --sidebar-foreground: #17151F;
  --sidebar-primary: #4B47D9;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #175CD3;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #D8D0C3;
  --sidebar-ring: #FF6F91;
  --radius: 10px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #4B47D9;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #FF6F91;
  --accent-foreground: #ffffff;
  --destructive: #B42318;
  --border: #303642;
  --input: #303642;
  --ring: #FF6F91;
  --chart-1: #4B47D9;
  --chart-2: #0F8B8D;
  --chart-3: #FF6F91;
  --chart-4: #067647;
  --chart-5: #B54708;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #4B47D9;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #FF6F91;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #FF6F91;
  --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 LumenMeshPaletteSystemShadcnKit() {
  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">Lumen Mesh Palette System</h2>
          <p className="mt-1 max-w-xl text-sm text-muted-foreground">
            Use the Katagami registry theme, then compose these shadcn primitives
            with the language-specific component recipes.
          </p>
        </div>
        <Button>Apply theme</Button>
      </div>

      <Tabs defaultValue="components">
        <TabsList>
          <TabsTrigger value="components">Components</TabsTrigger>
          <TabsTrigger value="states">States</TabsTrigger>
          <TabsTrigger value="export">Export</TabsTrigger>
        </TabsList>
      </Tabs>

      <Card>
        <CardHeader>
          <CardTitle>Component recipe</CardTitle>
          <CardDescription>
            Replace this starter content with the agent-authored product scene
            from components.md and preview-shots.json.
          </CardDescription>
        </CardHeader>
        <CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
          <Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
          <Button variant="secondary">Preview state</Button>
        </CardContent>
        <CardFooter className="justify-between">
          <Badge>Ready</Badge>
          <Button variant="outline">Copy recipe</Button>
        </CardFooter>
      </Card>
    </section>
  );
}
theme JSONcompatibility fallback
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "lumen-mesh-palette-system",
  "type": "registry:theme",
  "title": "Lumen Mesh Palette System shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F6F2EA",
      "foreground": "#17151F",
      "card": "#FFFFFF",
      "card-foreground": "#17151F",
      "popover": "#FFFFFF",
      "popover-foreground": "#17151F",
      "primary": "#4B47D9",
      "primary-foreground": "#ffffff",
      "secondary": "#0F8B8D",
      "secondary-foreground": "#ffffff",
      "muted": "#6F6878",
      "muted-foreground": "#17151F",
      "accent": "#FF6F91",
      "accent-foreground": "#ffffff",
      "destructive": "#B42318",
      "border": "#D8D0C3",
      "input": "#D8D0C3",
      "ring": "#FF6F91",
      "chart-1": "#4B47D9",
      "chart-2": "#0F8B8D",
      "chart-3": "#FF6F91",
      "chart-4": "#067647",
      "chart-5": "#B54708",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#17151F",
      "sidebar-primary": "#4B47D9",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#175CD3",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D8D0C3",
      "sidebar-ring": "#FF6F91",
      "radius": "10px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#4B47D9",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#FF6F91",
      "accent-foreground": "#ffffff",
      "destructive": "#B42318",
      "border": "#303642",
      "input": "#303642",
      "ring": "#FF6F91",
      "chart-1": "#4B47D9",
      "chart-2": "#0F8B8D",
      "chart-3": "#FF6F91",
      "chart-4": "#067647",
      "chart-5": "#B54708",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#4B47D9",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#FF6F91",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#FF6F91",
      "radius": "10px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b3-fb10-7472-8f45-ac452434204c",
    "slug": "lumen-mesh-palette-system",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
component recipesstored
# Lumen Mesh Palette System shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate the Lumen Mesh Palette System into shadcn/ui primitives for creative product screens: plain semantic controls, matte neutral cards, and a single decorative lumen field or iridescent edge rail per composition.

## 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` as the default interface foundation. Use `primary` for focus and primary actions, `secondary` for safe secondary emphasis, `accent` only for constrained edge rails or highlights, and semantic error/success/warning/info solids for state feedback.

## Visual character to preserve
Neutral chrome first; one clipped lumen mesh underlay; narrow iridescent rails; solid chart and table states; stable dark-mode semantics.

## ShadSync visual profile
family: sensory-gradient; material: matte-neutral-plus-lumen; contour: soft-rect; border: one-pixel-mink-with-3px-iridescent-rail; underlay: true; grain: false; stickerBadges: false; motion: refractive-180ms; density: medium; accents: violet, aqua, coral, butter.

## Signature component recipes
- **button**: solid primary or ink fills, 10px radius, visible focus ring, never gradient fills.
- **card**: solid surface, 1px border, 18px radius; featured cards may add a 3px four-stop iridescent top rail.
- **input**: solid surface, 10px radius, border token, and translucent primary focus ring.
- **textarea**: plain field with accessibility helper text for fallback, opacity, and contrast.
- **select**: bordered trigger; selected item uses solid tint and icon, not hue alone.
- **dialog**: solid surface overlay with optional mesh halo outside the readable plane.
- **sheet**: white or ink task plane with dimmed lumen preview strip in header only.
- **tabs**: active tab uses solid ink fill or a 3px iridescent top rail.
- **badge**: semantic badges use solid status colors with text or icons.
- **separator**: neutral 1px line; gradient separator only as a short brand rail.
- **checkbox**: checked state uses primary fill plus check icon and focus ring.
- **switch**: off muted solid, on primary solid, no rainbow track.
- **slider**: neutral track, primary selected range, focused knob.
- **tooltip**: ink solid surface with readable text and no gradient behind small copy.
- **dropdown-menu**: solid panel, muted dividers, selected row with primary tint and icon.
- **table**: neutral row borders and solid data chips; no mesh categorical values.

## Preview shots
application-shell, detail-editor, and data-operations render as believable palette governance product screens.

## Implementation contract
Import local primitives from `@/components/ui/*`. Do not invent a parallel component system. Keep gradient primitives in wrapper classes; semantic shadcn components use token classes.

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

export function LumenPalettePanel() {
  return (
    <Card className="relative overflow-hidden rounded-[18px] border border-border bg-surface shadow-md before:absolute before:inset-x-0 before:top-0 before:h-[3px] before:bg-[linear-gradient(90deg,#4B47D9,#72E4D4,#FFDE87,#FF6F91)]">
      <CardHeader><Badge variant="outline" className="font-mono">decorative primitive</Badge><CardTitle>Prism Veil 01</CardTitle></CardHeader>
      <CardContent className="space-y-4"><Input value="fallback: #EFE7D8; opacity: .42 near text" readOnly /><Table><TableHeader><TableRow><TableHead>Rule</TableHead><TableHead>Status</TableHead></TableRow></TableHeader><TableBody><TableRow><TableCell>No chart gradients</TableCell><TableCell>Pass</TableCell></TableRow></TableBody></Table><Button>Publish primitive</Button></CardContent>
    </Card>
  )
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "card",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "input",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "textarea",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "select",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "dialog",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "sheet",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "tabs",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "badge",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "separator",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "checkbox",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "switch",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "slider",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "tooltip",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    },
    {
      "component": "table",
      "recipe": "Use matte neutral surfaces, solid semantic tokens, 10px controls or 18px containers, primary focus rings, and no gradient fill except constrained iridescent rails on featured wrappers."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoidRules": [
        "no gradient body text",
        "no component inventory wall",
        "no gradient categorical chips"
      ],
      "composition": "Palette governance shell with left navigation, central lumen primitive canvas, and right contrast audit cards.",
      "id": "application-shell",
      "mustShowStates": [
        "active tab with iridescent rail",
        "primary and secondary actions",
        "tooltip explaining decorative-only mesh",
        "table row showing chart-gradient block"
      ],
      "primitives": [
        "button",
        "card",
        "tabs",
        "badge",
        "separator",
        "tooltip",
        "dropdown-menu",
        "table"
      ],
      "scene": {
        "actions": [
          "Publish primitive",
          "Open contrast audit"
        ],
        "description": "A creative system dashboard separates mesh primitives from semantic UI tokens.",
        "eyebrow": "Palette Ops",
        "headline": "Govern immersive color without losing product clarity.",
        "rows": [
          {
            "fallback": "#EFE7D8",
            "primitive": "Prism Veil 01",
            "status": "approved"
          },
          {
            "fallback": "#17151F",
            "primitive": "Aurora Rail 02",
            "status": "review"
          }
        ],
        "stats": [
          {
            "label": "Worst contrast",
            "value": "7.8:1"
          },
          {
            "label": "Gradient stops",
            "value": "4 max"
          },
          {
            "label": "Fallback solids",
            "value": "100%"
          }
        ]
      }
    },
    {
      "avoidRules": [
        "no small text on mesh",
        "no rainbow controls",
        "do not hide semantic labels"
      ],
      "composition": "Primitive detail editor with plain form fields, a dimmed lumen preview, accessibility requirements, and controlled opacity slider.",
      "id": "detail-editor",
      "mustShowStates": [
        "focused input with primary ring",
        "checked decorative-only checkbox",
        "on switch for dark adaptation",
        "dialog preview with solid content plane"
      ],
      "primitives": [
        "input",
        "textarea",
        "select",
        "dialog",
        "sheet",
        "checkbox",
        "switch",
        "slider",
        "button",
        "badge"
      ],
      "scene": {
        "actions": [
          "Save token",
          "Preview dark mode"
        ],
        "description": "Define stops, opacity, fallback, placement limits, and review notes before release.",
        "eyebrow": "Primitive editor",
        "fields": [
          {
            "label": "Fallback solid",
            "value": "#EFE7D8"
          },
          {
            "label": "Max opacity near text",
            "value": "0.42"
          },
          {
            "label": "Allowed placement",
            "value": "hero, canvas, brand panel"
          }
        ],
        "headline": "Prism Veil 01 accessibility contract"
      }
    },
    {
      "avoidRules": [
        "never use mesh colors as categorical chart defaults",
        "no decorative rows that reduce readability"
      ],
      "composition": "Operations table proving gradients are excluded from charts and semantic states remain solid.",
      "id": "data-operations",
      "mustShowStates": [
        "solid success warning error badges",
        "neutral separators",
        "dropdown action menu",
        "dark-mode switch off and on preview"
      ],
      "primitives": [
        "card",
        "table",
        "badge",
        "separator",
        "dropdown-menu",
        "button",
        "switch",
        "tooltip"
      ],
      "scene": {
        "actions": [
          "Export chart tokens",
          "Flag violation"
        ],
        "description": "Auditors can approve expressive brand layers without contaminating analytics palettes.",
        "eyebrow": "Data safety",
        "headline": "Chart defaults stay solid and colorblind safe.",
        "rows": [
          {
            "hex": "#175CD3",
            "token": "chart.blue",
            "usage": "category A"
          },
          {
            "hex": "#067647",
            "token": "chart.green",
            "usage": "category B"
          },
          {
            "hex": "gradient",
            "token": "lumen.prism",
            "usage": "blocked for charts"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "violet",
      "aqua",
      "coral",
      "butter"
    ],
    "border": "one-pixel-mink-with-3px-iridescent-rail",
    "contour": "soft-rect",
    "density": "medium",
    "family": "sensory-gradient",
    "grain": false,
    "material": "matte-neutral-plus-lumen",
    "motion": "refractive-180ms",
    "stickerBadges": false,
    "underlay": true
  }
}