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.
specification
philosophy
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
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
Anchor screens with plain task columns and reserve the mesh/lumen field for one authored canvas, header, or preview module per viewport.
Medium product density: generous canvas breathing room paired with compact forms, tables, and token chips for enterprise credibility.
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.
layout
mobile 375px, tablet 768px, desktop 1200px, wide 1440px
Twelve-column desktop grid with a fixed left token rail, fluid center canvas, and right accessibility audit panel; collapses to single column on mobile.
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
- 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.
- 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"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
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
implementation kit
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
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table: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;
}
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>
);
}
{
"$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"
]
}
}
}
# 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>
)
}
```
{
"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
}
}