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.
specification
philosophy
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
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
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.
Medium-high density is expected; use tight 8px rhythm, compact controls, and generous dark gutters so detailed creative tools remain readable.
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.
layout
Desktop 1200+, tablet 768-1199 with rail collapsed to icon row, mobile below 640 with single-column cards and sticky bottom actions.
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 is dark negative space: keep 16-24px interior padding, 24-32px section gaps, and larger gutters around glowing accents to prevent chroma bleed.
guidance
- 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.
- 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"
]
}
}
}
```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: #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;
}
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>
);
}
{
"$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"
]
}
}
}
# 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>
)
}
```
{
"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"
}
}