back to gallery
design language·nocturne-lumen-dark-mode

Nocturne Lumen Dark Mode

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
Nocturne Lumen is a dark-first palette system for serious creative and analytical products: near-black grounds, aubergine and deep navy depth, oil-green utility, and small low-area luminous accents that make interfaces feel alive without becoming neon decoration.
values
dark-mode production credibilityperceptible surface elevation without glareluminous restraint at low areasemantic token readiness across product stateswarm aubergine balanced against cool navy and oil green
anti-values
×pure black and pure white contrast glare×neon soup accents applied equally everywhere×flat dark cards with no elevation delta×brand gradients that compete with task hierarchy
tokens
borders4 items
accent width
2px
character
cool blue-green hairlines with tiny violet or cyan rail accents for selected and focus states
default width
1px
style
solid
colors12 items
accent
#34D5C8
background
#0B0D12
border
#263244
error
#FF6B7A
info
#6DB7FF
muted
#8B90A3
primary
#7C5CFF
secondary
#203A5F
success
#62D493
surface
#141823
text
#E8E6F0
warning
#E6B85C
motion3 items
duration
180ms
easing
cubic-bezier(0.2, 0.8, 0.2, 1)
philosophy
Fast dim-to-lumen response: surfaces brighten by one step and glows expand subtly on hover, never pulsing or looping.
radii5 items
full
9999px
lg
20px
md
12px
none
0
sm
6px
shadows3 items
lg
0 0 0 1px rgba(52,213,200,0.10), 0 34px 110px rgba(6,8,15,0.68), 0 0 70px rgba(124,92,255,0.12)
md
0 1px 0 rgba(255,255,255,0.05), 0 24px 70px rgba(0,0,0,0.42)
sm
0 1px 0 rgba(255,255,255,0.04), 0 12px 28px rgba(0,0,0,0.28)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
Low-contrast grid and star-noise texture at 3-5 percent opacity; radial lumen blooms are anchored to corners and masked behind content.
card style
Cards use 1px translucent blue-green borders, subtle inset top highlights, clipped luminous corner ticks, and no large bright fills.
treatment
Dark-first glass-mineral surfaces: #10141D through #191B28 panels over near-black with aubergine/navy ambient gradient only in the page underlay.
typography8 items
base size
16px
body font
Spline Sans
google fonts url
https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Spline+Sans:wght@400;500;600;700&display=swap
heading font
Spline Sans
letter spacing
-0.015em
line height
1.5
mono font
DM Mono
scale ratio
1.22
rules
composition
Compose like a night-operations console: a dominant work surface, one narrow navigation rail, grouped telemetry cards, and a reserved accent lane for alerts or active tools.
density

Medium-high density is expected; use tight 8px rhythm, compact controls, and generous dark gutters so detailed creative tools remain readable.

hierarchy
Hierarchy comes from surface elevation, type weight, and small luminous markers. Bright accents may identify state, focus, or chart peaks but must never carry paragraph text or entire sections.
signature patterns
Nocturne underlay: two masked radial gradients in aubergine and navy plus a sparse dotted grid, all below 24 percent opacity.Lumen rails: 2px cyan or violet edge strips appear only on active cards, selected rows, focus rings, and primary call-to-action seams.Dark elevation ladder: base, sunken, raised, and floating panels differ by 5-9 luminance points with borders and inset highlights, not white shadows.Telemetry pinpoints: charts and status blocks use tiny luminous dots and monospaced numerals with muted connecting rules for data-viz safety.
layout
breakpoints

Desktop 1200+, tablet 768-1199 with rail collapsed to icon row, mobile below 640 with single-column cards and sticky bottom actions.

grid

12-column desktop grid with a 72px left rail, 24px gutters, nested 4-column card grids, and a single editorial command column for active work.

whitespace

Whitespace is dark negative space: keep 16-24px interior padding, 24-32px section gaps, and larger gutters around glowing accents to prevent chroma bleed.

guidance
do
  • Start with semantic dark tokens, then derive a light companion by preserving hue relationships and increasing surface deltas before changing accents.
  • Use AA contrast for text and interactive states; prefer #E8E6F0 on raised dark surfaces and muted #8B90A3 only for secondary metadata.
  • Keep chart palettes colorblind-safe by combining hue with dot shape, line style, labels, and brightness rather than relying on red-green differences.
  • Constrain glow tokens to focus, active selection, notifications, and rare hero moments with opacity caps documented in implementation.
avoid
  • Do not use pure #000000 backgrounds or pure #FFFFFF text because the resulting glare breaks long-session dark mode comfort.
  • Do not flood cards, sidebars, or charts with all accents at once; luminous color must be low-area and tied to hierarchy.
  • Do not hide elevation by making every surface the same near-black value; each layer needs a perceptible delta and border treatment.
  • Do not use rainbow gradients for brand energy; use controlled aubergine-to-navy ambient light with isolated cyan or amber events.
katagami spec
# Nocturne Lumen Dark Mode

## Philosophy

Nocturne Lumen is a dark-first palette system for serious creative and analytical products: near-black grounds, aubergine and deep navy depth, oil-green utility, and small low-area luminous accents that make interfaces feel alive without becoming neon decoration.

### Values

- dark-mode production credibility
- perceptible surface elevation without glare
- luminous restraint at low area
- semantic token readiness across product states
- warm aubergine balanced against cool navy and oil green

### Anti-Values

- pure black and pure white contrast glare
- neon soup accents applied equally everywhere
- flat dark cards with no elevation delta
- brand gradients that compete with task hierarchy

### Visual Character

- Layer the page with radial aubergine and deep-navy CSS gradients behind a #0B0D12 base, keeping all glow stops below 24 percent opacity.
- Use stacked dark surfaces with 1px blue-green borders and inset hairline highlights so elevated cards remain perceptible in dark mode.
- Reserve luminous cyan, violet, and amber for tiny status rails, focus rings, and data pinpoints rather than broad fills or large panels.
- Build dense product screens on a 12-column grid with narrow metric tiles, monospaced numerals, and clipped corner details for technical precision.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: cool blue-green hairlines with tiny violet or cyan rail accents for selected and focus states
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#34D5C8` |
| background | `#0B0D12` |
| border | `#263244` |
| error | `#FF6B7A` |
| info | `#6DB7FF` |
| muted | `#8B90A3` |
| primary | `#7C5CFF` |
| secondary | `#203A5F` |
| success | `#62D493` |
| surface | `#141823` |
| text | `#E8E6F0` |
| warning | `#E6B85C` |

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1)
- **Philosophy**: Fast dim-to-lumen response: surfaces brighten by one step and glows expand subtly on hover, never pulsing or looping.

### Radii

- **Full**: 9999px
- **Lg**: 20px
- **Md**: 12px
- **None**: 0
- **Sm**: 6px

### Shadows

- **Lg**: 0 0 0 1px rgba(52,213,200,0.10), 0 34px 110px rgba(6,8,15,0.68), 0 0 70px rgba(124,92,255,0.12)
- **Md**: 0 1px 0 rgba(255,255,255,0.05), 0 24px 70px rgba(0,0,0,0.42)
- **Sm**: 0 1px 0 rgba(255,255,255,0.04), 0 12px 28px rgba(0,0,0,0.28)

### Spacing

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

### Surfaces

- **Bg Pattern**: Low-contrast grid and star-noise texture at 3-5 percent opacity; radial lumen blooms are anchored to corners and masked behind content.
- **Card Style**: Cards use 1px translucent blue-green borders, subtle inset top highlights, clipped luminous corner ticks, and no large bright fills.
- **Treatment**: Dark-first glass-mineral surfaces: #10141D through #191B28 panels over near-black with aubergine/navy ambient gradient only in the page underlay.

### Typography

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

## Rules

### Composition

Compose like a night-operations console: a dominant work surface, one narrow navigation rail, grouped telemetry cards, and a reserved accent lane for alerts or active tools.

### Density

Medium-high density is expected; use tight 8px rhythm, compact controls, and generous dark gutters so detailed creative tools remain readable.

### Hierarchy

Hierarchy comes from surface elevation, type weight, and small luminous markers. Bright accents may identify state, focus, or chart peaks but must never carry paragraph text or entire sections.

### Signature Patterns

- Nocturne underlay: two masked radial gradients in aubergine and navy plus a sparse dotted grid, all below 24 percent opacity.
- Lumen rails: 2px cyan or violet edge strips appear only on active cards, selected rows, focus rings, and primary call-to-action seams.
- Dark elevation ladder: base, sunken, raised, and floating panels differ by 5-9 luminance points with borders and inset highlights, not white shadows.
- Telemetry pinpoints: charts and status blocks use tiny luminous dots and monospaced numerals with muted connecting rules for data-viz safety.

## Layout

### Breakpoints

Desktop 1200+, tablet 768-1199 with rail collapsed to icon row, mobile below 640 with single-column cards and sticky bottom actions.

### Grid

12-column desktop grid with a 72px left rail, 24px gutters, nested 4-column card grids, and a single editorial command column for active work.

### Whitespace

Whitespace is dark negative space: keep 16-24px interior padding, 24-32px section gaps, and larger gutters around glowing accents to prevent chroma bleed.

## Guidance

### Do

- Start with semantic dark tokens, then derive a light companion by preserving hue relationships and increasing surface deltas before changing accents.
- Use AA contrast for text and interactive states; prefer #E8E6F0 on raised dark surfaces and muted #8B90A3 only for secondary metadata.
- Keep chart palettes colorblind-safe by combining hue with dot shape, line style, labels, and brightness rather than relying on red-green differences.
- Constrain glow tokens to focus, active selection, notifications, and rare hero moments with opacity caps documented in implementation.

### Don't

- Do not use pure #000000 backgrounds or pure #FFFFFF text because the resulting glare breaks long-session dark mode comfort.
- Do not flood cards, sidebars, or charts with all accents at once; luminous color must be low-area and tied to hierarchy.
- Do not hide elevation by making every surface the same near-black value; each layer needs a perceptible delta and border treatment.
- Do not use rainbow gradients for brand energy; use controlled aubergine-to-navy ambient light with isolated cyan or amber events.
DESIGN.md
---
version: "alpha"
name: "Nocturne Lumen Dark Mode"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#34D5C8"
  background: "#0B0D12"
  border: "#263244"
  error: "#FF6B7A"
  info: "#6DB7FF"
  muted: "#8B90A3"
  primary: "#7C5CFF"
  secondary: "#203A5F"
  success: "#62D493"
  surface: "#141823"
  text: "#E8E6F0"
  warning: "#E6B85C"
typography:
  headline-lg:
    fontFamily: "Spline Sans"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.015em"
  headline-md:
    fontFamily: "Spline Sans"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.015em"
  body-md:
    fontFamily: "Spline Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.015em"
  label-md:
    fontFamily: "DM Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "20px"
  md: "12px"
  none: "0px"
  sm: "6px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Nocturne Lumen Dark Mode

## Overview

Nocturne Lumen is a dark-first palette system for serious creative and analytical products: near-black grounds, aubergine and deep navy depth, oil-green utility, and small low-area luminous accents that make interfaces feel alive without becoming neon decoration.

### Values

- dark-mode production credibility
- perceptible surface elevation without glare
- luminous restraint at low area
- semantic token readiness across product states
- warm aubergine balanced against cool navy and oil green

### Anti-Values

- pure black and pure white contrast glare
- neon soup accents applied equally everywhere
- flat dark cards with no elevation delta
- brand gradients that compete with task hierarchy

### Visual Character

- Layer the page with radial aubergine and deep-navy CSS gradients behind a #0B0D12 base, keeping all glow stops below 24 percent opacity.
- Use stacked dark surfaces with 1px blue-green borders and inset hairline highlights so elevated cards remain perceptible in dark mode.
- Reserve luminous cyan, violet, and amber for tiny status rails, focus rings, and data pinpoints rather than broad fills or large panels.
- Build dense product screens on a 12-column grid with narrow metric tiles, monospaced numerals, and clipped corner details for technical precision.

## 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 | `#34D5C8` |
| background | `#0B0D12` |
| border | `#263244` |
| error | `#FF6B7A` |
| info | `#6DB7FF` |
| muted | `#8B90A3` |
| primary | `#7C5CFF` |
| secondary | `#203A5F` |
| success | `#62D493` |
| surface | `#141823` |
| text | `#E8E6F0` |
| warning | `#E6B85C` |

## Typography

- **Headline-Lg**: Spline Sans, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Spline Sans, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Spline Sans, 16px, weight 400, line-height 1.5.
- **Label-Md**: DM 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

Desktop 1200+, tablet 768-1199 with rail collapsed to icon row, mobile below 640 with single-column cards and sticky bottom actions.

### Grid

12-column desktop grid with a 72px left rail, 24px gutters, nested 4-column card grids, and a single editorial command column for active work.

### Whitespace

Whitespace is dark negative space: keep 16-24px interior padding, 24-32px section gaps, and larger gutters around glowing accents to prevent chroma bleed.

## Elevation & Depth

### Shadows

- **Lg**: 0 0 0 1px rgba(52,213,200,0.10), 0 34px 110px rgba(6,8,15,0.68), 0 0 70px rgba(124,92,255,0.12)
- **Md**: 0 1px 0 rgba(255,255,255,0.05), 0 24px 70px rgba(0,0,0,0.42)
- **Sm**: 0 1px 0 rgba(255,255,255,0.04), 0 12px 28px rgba(0,0,0,0.28)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `20px`
- **Md**: `12px`
- **None**: `0px`
- **Sm**: `6px`

### Surfaces

- **Bg Pattern**: Low-contrast grid and star-noise texture at 3-5 percent opacity; radial lumen blooms are anchored to corners and masked behind content.
- **Card Style**: Cards use 1px translucent blue-green borders, subtle inset top highlights, clipped luminous corner ticks, and no large bright fills.
- **Treatment**: Dark-first glass-mineral surfaces: #10141D through #191B28 panels over near-black with aubergine/navy ambient gradient only in the page underlay.

### Borders

- **Accent Width**: 2px
- **Character**: cool blue-green hairlines with tiny violet or cyan rail accents for selected and focus states
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Compose like a night-operations console: a dominant work surface, one narrow navigation rail, grouped telemetry cards, and a reserved accent lane for alerts or active tools.

### Density

Medium-high density is expected; use tight 8px rhythm, compact controls, and generous dark gutters so detailed creative tools remain readable.

### Hierarchy

Hierarchy comes from surface elevation, type weight, and small luminous markers. Bright accents may identify state, focus, or chart peaks but must never carry paragraph text or entire sections.

### Signature Patterns

- Nocturne underlay: two masked radial gradients in aubergine and navy plus a sparse dotted grid, all below 24 percent opacity.
- Lumen rails: 2px cyan or violet edge strips appear only on active cards, selected rows, focus rings, and primary call-to-action seams.
- Dark elevation ladder: base, sunken, raised, and floating panels differ by 5-9 luminance points with borders and inset highlights, not white shadows.
- Telemetry pinpoints: charts and status blocks use tiny luminous dots and monospaced numerals with muted connecting rules for data-viz safety.

## 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-019ea9b2-d29b-7da2-95bd-85e6a9466170/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 Start with semantic dark tokens, then derive a light companion by preserving hue relationships and increasing surface deltas before changing accents.
- Do Use AA contrast for text and interactive states; prefer #E8E6F0 on raised dark surfaces and muted #8B90A3 only for secondary metadata.
- Do Keep chart palettes colorblind-safe by combining hue with dot shape, line style, labels, and brightness rather than relying on red-green differences.
- Do Constrain glow tokens to focus, active selection, notifications, and rare hero moments with opacity caps documented in implementation.
- Don't Do not use pure #000000 backgrounds or pure #FFFFFF text because the resulting glare breaks long-session dark mode comfort.
- Don't Do not flood cards, sidebars, or charts with all accents at once; luminous color must be low-area and tied to hierarchy.
- Don't Do not hide elevation by making every surface the same near-black value; each layer needs a perceptible delta and border treatment.
- Don't Do not use rainbow gradients for brand energy; use controlled aubergine-to-navy ambient light with isolated cyan or amber events.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "nocturne-lumen-dark-mode",
  "type": "registry:theme",
  "title": "Nocturne Lumen Dark Mode shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0B0D12",
      "foreground": "#E8E6F0",
      "card": "#141823",
      "card-foreground": "#E8E6F0",
      "popover": "#141823",
      "popover-foreground": "#E8E6F0",
      "primary": "#7C5CFF",
      "primary-foreground": "#ffffff",
      "secondary": "#203A5F",
      "secondary-foreground": "#ffffff",
      "muted": "#8B90A3",
      "muted-foreground": "#E8E6F0",
      "accent": "#34D5C8",
      "accent-foreground": "#ffffff",
      "destructive": "#FF6B7A",
      "border": "#263244",
      "input": "#263244",
      "ring": "#34D5C8",
      "chart-1": "#7C5CFF",
      "chart-2": "#203A5F",
      "chart-3": "#34D5C8",
      "chart-4": "#62D493",
      "chart-5": "#E6B85C",
      "sidebar": "#141823",
      "sidebar-foreground": "#E8E6F0",
      "sidebar-primary": "#7C5CFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#6DB7FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#263244",
      "sidebar-ring": "#34D5C8",
      "radius": "12px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#7C5CFF",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#34D5C8",
      "accent-foreground": "#ffffff",
      "destructive": "#FF6B7A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#34D5C8",
      "chart-1": "#7C5CFF",
      "chart-2": "#203A5F",
      "chart-3": "#34D5C8",
      "chart-4": "#62D493",
      "chart-5": "#E6B85C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#7C5CFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#34D5C8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#34D5C8",
      "radius": "12px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b2-d29b-7da2-95bd-85e6a9466170",
    "slug": "nocturne-lumen-dark-mode",
    "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 · nocturne-lumen-dark-mode
DESIGN.md

at a glance

Palette

Typography

headline-lgSpline Sans · 29px · 700

The quick brown fox jumps

headline-mdSpline Sans · 24px · 600

The quick brown fox jumps

body-mdSpline Sans · 16px · 400

The quick brown fox jumps

label-mdDM 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
lg20px
md12px
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: #0B0D12;
  --foreground: #E8E6F0;
  --card: #141823;
  --card-foreground: #E8E6F0;
  --popover: #141823;
  --popover-foreground: #E8E6F0;
  --primary: #7C5CFF;
  --primary-foreground: #ffffff;
  --secondary: #203A5F;
  --secondary-foreground: #ffffff;
  --muted: #8B90A3;
  --muted-foreground: #E8E6F0;
  --accent: #34D5C8;
  --accent-foreground: #ffffff;
  --destructive: #FF6B7A;
  --border: #263244;
  --input: #263244;
  --ring: #34D5C8;
  --chart-1: #7C5CFF;
  --chart-2: #203A5F;
  --chart-3: #34D5C8;
  --chart-4: #62D493;
  --chart-5: #E6B85C;
  --sidebar: #141823;
  --sidebar-foreground: #E8E6F0;
  --sidebar-primary: #7C5CFF;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #6DB7FF;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #263244;
  --sidebar-ring: #34D5C8;
  --radius: 12px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #7C5CFF;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #34D5C8;
  --accent-foreground: #ffffff;
  --destructive: #FF6B7A;
  --border: #303642;
  --input: #303642;
  --ring: #34D5C8;
  --chart-1: #7C5CFF;
  --chart-2: #203A5F;
  --chart-3: #34D5C8;
  --chart-4: #62D493;
  --chart-5: #E6B85C;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #7C5CFF;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #34D5C8;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #34D5C8;
  --radius: 12px;
}
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 NocturneLumenDarkModeShadcnKit() {
  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">Nocturne Lumen Dark Mode</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": "nocturne-lumen-dark-mode",
  "type": "registry:theme",
  "title": "Nocturne Lumen Dark Mode shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0B0D12",
      "foreground": "#E8E6F0",
      "card": "#141823",
      "card-foreground": "#E8E6F0",
      "popover": "#141823",
      "popover-foreground": "#E8E6F0",
      "primary": "#7C5CFF",
      "primary-foreground": "#ffffff",
      "secondary": "#203A5F",
      "secondary-foreground": "#ffffff",
      "muted": "#8B90A3",
      "muted-foreground": "#E8E6F0",
      "accent": "#34D5C8",
      "accent-foreground": "#ffffff",
      "destructive": "#FF6B7A",
      "border": "#263244",
      "input": "#263244",
      "ring": "#34D5C8",
      "chart-1": "#7C5CFF",
      "chart-2": "#203A5F",
      "chart-3": "#34D5C8",
      "chart-4": "#62D493",
      "chart-5": "#E6B85C",
      "sidebar": "#141823",
      "sidebar-foreground": "#E8E6F0",
      "sidebar-primary": "#7C5CFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#6DB7FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#263244",
      "sidebar-ring": "#34D5C8",
      "radius": "12px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#7C5CFF",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#34D5C8",
      "accent-foreground": "#ffffff",
      "destructive": "#FF6B7A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#34D5C8",
      "chart-1": "#7C5CFF",
      "chart-2": "#203A5F",
      "chart-3": "#34D5C8",
      "chart-4": "#62D493",
      "chart-5": "#E6B85C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#7C5CFF",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#34D5C8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#34D5C8",
      "radius": "12px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b2-d29b-7da2-95bd-85e6a9466170",
    "slug": "nocturne-lumen-dark-mode",
    "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
# Nocturne Lumen Dark Mode shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate the dark-first Nocturne Lumen palette into shadcn/ui screens that feel like polished product software: near-black depth, aubergine/navy atmosphere, oil-green calm, and tiny chartreuse lumen cues for focus, confirmation, and selected edges.

## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, and table. Import local primitives from `@/components/ui/*`; do not invent a second component system.

## Token cues
Use background `#080A12`, surface `#101322`, elevated `#15182A`, border `#2A2F42`, text `#F0EDE6`, muted `#9B9AAB`, primary aubergine `#5B315F`, secondary oil green `#32493B`, and accent `#D6F36A`. Accent area must remain below 10% of the screen; glows stay under 18% opacity.

## Visual character to preserve
- Layer dark surfaces with perceptible deltas instead of pure black.
- Use chartreuse as keylines, focus rings, tiny badges, sparklines, and action edges.
- Add double borders: structural navy border plus inset top lumen or aubergine hairline.
- Keep dashboard density compact but rhythmically spaced on the 8px grid.
- Pair editorial headings with pragmatic controls and mono data labels.

## ShadSync visual profile
family: nocturne-product; material: dark-glass-panel; contour: restrained-rounded-rect; border: double-hairline; underlay: radial-aubergine-navy-oil; grain: subtle-grid-noise; stickerBadges: false; motion: calm-lumen-lift; density: balanced-dense; accents: low-area-chartreuse.

## Signature component recipes
- button: Primary buttons use rounded-full shape, dark chartreuse gradient at low opacity, 1px chartreuse border, and soft underglow. Secondary buttons remain #101322 with #2A2F42 border.
- card: Use `bg-card`, `border`, rounded `22px`, inset top hairline via before/after utility or wrapper, and optional radial aubergine corner bloom clipped to the card.
- input: Dark #080A12 fill, #2A2F42 border, 14px radius, mono label; focus uses dark offset plus chartreuse outer ring.
- textarea: Same as input, with quiet placeholder text and no broad accent fills.
- select: Match input styling; selected value may include a tiny chartreuse edge dot only.
- dialog: Elevated #15182A panel, double border, large but not playful radius, dim aubergine/navy overlay.
- sheet: Right-side operational panel with oil-green underlight at the bottom edge and sticky header separator.
- tabs: Selected tab uses a one-pixel chartreuse lumen rail or underline, not a bright filled pill.
- badge: Small mono text; status badges use success/warning/error/info hues, while chartreuse badge only means primary confirmation.
- separator: #2A2F42 default; use translucent aubergine for sectional editorial dividers.
- checkbox: Dark square with chartreuse check and focus ring; never rely on color alone next to labels.
- switch: Oil-green track for enabled, dark navy for disabled, chartreuse rim only on focus.
- slider: Deep navy track, oil-green filled segment, chartreuse thumb ring at focus.
- tooltip: #15182A surface, border hairline, restrained shadow, no neon background.
- dropdown-menu: Compact menu, active item gets left lumen rail plus subtle #101322 fill.
- table: Dense rows, mono headings, alternating surface deltas, status includes icon/text plus safe hue.

## Preview shots
Render application-shell, detail-editor, and data-operations as complete product scenes rather than primitive inventories.

## Implementation contract
Keep accents low-area, preserve AA contrast, use semantic status colors, retain double borders and dark surface deltas, and keep all local imports from `@/components/ui/*`.

## 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 { Textarea } from "@/components/ui/textarea"
import { Badge } from "@/components/ui/badge"
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"

export function NocturneLumenAudit() {
  return (
    <Card className="relative overflow-hidden rounded-[22px] border-[#2A2F42] bg-[#101322] text-[#F0EDE6] shadow-[inset_0_1px_0_rgba(214,243,106,.12),0_18px_48px_rgba(0,0,0,.42)]">
      <CardHeader>
        <Badge className="w-fit border border-[#D6F36A]/30 bg-[#D6F36A]/10 font-mono text-[#F0EDE6]">AA READY</Badge>
        <CardTitle className="font-serif text-3xl">Lumen budget audit</CardTitle>
      </CardHeader>
      <CardContent className="space-y-4">
        <Input className="rounded-[14px] border-[#2A2F42] bg-[#080A12] focus-visible:ring-[#D6F36A]/60" defaultValue="Accent area ≤ 10%" />
        <Textarea className="rounded-[14px] border-[#2A2F42] bg-[#080A12] focus-visible:ring-[#D6F36A]/60" defaultValue="No broad neon fills; keep glows under 18% opacity." />
        <Tabs defaultValue="tokens"><TabsList className="bg-[#080A12]"><TabsTrigger value="tokens">Tokens</TabsTrigger><TabsTrigger value="charts">Charts</TabsTrigger></TabsList><TabsContent value="tokens"><Table><TableHeader><TableRow><TableHead>Role</TableHead><TableHead>Hex</TableHead></TableRow></TableHeader><TableBody><TableRow><TableCell>Accent</TableCell><TableCell>#D6F36A</TableCell></TableRow></TableBody></Table></TabsContent></Tabs>
        <Button className="rounded-full border border-[#D6F36A]/40 bg-[#D6F36A]/10 text-[#F0EDE6] shadow-[0_0_22px_rgba(214,243,106,.12)]">Run AA audit</Button>
      </CardContent>
    </Card>
  )
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "primitive": "button",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "card",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "input",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "textarea",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "select",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "dialog",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "sheet",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "tabs",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "badge",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "separator",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "checkbox",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "switch",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "slider",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "tooltip",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "dropdown-menu",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    },
    {
      "primitive": "table",
      "recipe": "Use dark semantic surfaces, restrained rounded geometry, #2A2F42 structure, and chartreuse only for focus, edge, or primary confirmation state."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoidRules": [
        "no large chartreuse panels",
        "no pure black background",
        "no color-only status"
      ],
      "composition": "Desktop command shell with left navigation lumen rail, top token search, hero audit card, and compact token table.",
      "id": "application-shell",
      "mustShowStates": [
        "selected tab with one-pixel chartreuse edge",
        "primary button glow under 18% opacity",
        "hoverable dropdown item with left rail",
        "AA status badge with icon and text"
      ],
      "primitives": [
        "button",
        "card",
        "input",
        "tabs",
        "badge",
        "separator",
        "tooltip",
        "dropdown-menu",
        "table"
      ],
      "scene": {
        "actions": [
          "Run AA audit",
          "Export CSS"
        ],
        "description": "Audit accent area, surface deltas, and contrast across a production-ready palette system.",
        "eyebrow": "Nocturne Lumen OS",
        "headline": "Dark semantic tokens before light derivation",
        "rows": [
          {
            "role": "Background",
            "state": "base",
            "token": "#080A12"
          },
          {
            "role": "Surface",
            "state": "elevated",
            "token": "#101322"
          },
          {
            "role": "Accent",
            "state": "capped",
            "token": "#D6F36A"
          }
        ],
        "stats": [
          {
            "label": "Accent area",
            "value": "7%"
          },
          {
            "label": "Surface delta",
            "value": "3 steps"
          },
          {
            "label": "Contrast",
            "value": "AA"
          }
        ]
      }
    },
    {
      "avoidRules": [
        "no neon form fields",
        "no unlabeled validation color",
        "no flat same-value surfaces"
      ],
      "composition": "Palette detail editor with elevated sheet, double-border dialog preview, focus-safe form controls, and lumen budget slider.",
      "id": "detail-editor",
      "mustShowStates": [
        "input focus with two-ring chartreuse treatment",
        "enabled switch with oil-green track",
        "slider thumb with chartreuse ring",
        "checkbox with text label"
      ],
      "primitives": [
        "dialog",
        "sheet",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "button",
        "badge",
        "separator"
      ],
      "scene": {
        "actions": [
          "Save semantic map",
          "Preview light companion"
        ],
        "description": "Controls constrain the luminous accent to small focus, keyline, and confirmation moments.",
        "eyebrow": "Palette editor",
        "fields": [
          {
            "label": "Accent opacity",
            "value": "12%"
          },
          {
            "label": "Surface role",
            "value": "Elevated card"
          },
          {
            "label": "Constraint note",
            "value": "Chartreuse only on edges and focus rings"
          }
        ],
        "headline": "Tune glow without breaking hierarchy",
        "stats": [
          {
            "label": "Glow cap",
            "value": "18%"
          },
          {
            "label": "Keyboard focus",
            "value": "2 rings"
          }
        ]
      }
    },
    {
      "avoidRules": [
        "do not use accent for every status",
        "do not rely on hue alone",
        "do not overcrowd with gradients"
      ],
      "composition": "Data operations screen with dense table, colorblind-safe statuses, small chart bars, and editorial summary card.",
      "id": "data-operations",
      "mustShowStates": [
        "status badges combine hue plus label",
        "table rows use surface delta not zebra glare",
        "info/warning/success distinct from chartreuse focus",
        "tabs selected by underline rail"
      ],
      "primitives": [
        "card",
        "table",
        "badge",
        "tabs",
        "button",
        "select",
        "tooltip",
        "separator"
      ],
      "scene": {
        "actions": [
          "Inspect rows",
          "Download report"
        ],
        "description": "Status, charts, and focus states remain semantically separate so the palette scales to enterprise dashboards.",
        "eyebrow": "Data-viz safety",
        "headline": "Operational color with restrained chroma",
        "rows": [
          {
            "metric": "Contrast failures",
            "status": "success",
            "value": "0"
          },
          {
            "metric": "Warning tokens",
            "status": "warning",
            "value": "2"
          },
          {
            "metric": "Info series",
            "status": "info",
            "value": "5"
          }
        ],
        "stats": [
          {
            "label": "Rows audited",
            "value": "248"
          },
          {
            "label": "Safe hues",
            "value": "4"
          },
          {
            "label": "Accent collisions",
            "value": "0"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": "low-area-chartreuse",
    "border": "double-hairline",
    "contour": "restrained-rounded-rect",
    "density": "balanced-dense",
    "family": "nocturne-product",
    "grain": "subtle-grid-noise",
    "material": "dark-glass-panel",
    "motion": "calm-lumen-lift",
    "stickerBadges": false,
    "underlay": "radial-aubergine-navy-oil"
  }
}