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
A dark-first production palette system for modern product interfaces where near-black, aubergine, deep navy, and oil green form calm semantic depth while tiny lumen accents make status, focus, and data moments feel alive without glare.
values
Dark mode is the source of truth, not an inverted afterthoughtPerceptible elevation deltas replace harsh black-white contrastLow-area luminous accents clarify action and state without competing with contentSemantic tokens and accessible contrast govern every expressive choiceWarm aubergine and cool navy balance brand atmosphere with enterprise credibility
anti-values
×Neon soup: broad glowing fills, rainbow gradients, or accent saturation applied to whole panels×Pure black and pure white glare that flattens depth and increases fatigue×Undifferentiated dark cards whose borders and surfaces cannot be perceived×Decorative chroma that breaks data, status, or interaction semantics
tokens
borders4 items
accent width
1px
character
Muted navy borders for structure, plus selective inset chartreuse/aubergine hairlines for active or elevated states.
default width
1px
style
solid
colors12 items
accent
#D6F36A
background
#080A12
border
#2A2F42
error
#FF6B7A
info
#72A8FF
muted
#9B9AAB
primary
#5B315F
secondary
#32493B
success
#7EDC9A
surface
#101322
text
#F0EDE6
warning
#F3B95F
motion3 items
duration
180ms
easing
cubic-bezier(.2,.8,.2,1)
philosophy
Calm lumen response: small lift, border brightening, and underglow opacity shifts only on interactive elements.
radii5 items
full
9999px
lg
22px
md
14px
none
0
sm
8px
shadows3 items
lg
0 0 0 1px rgba(214,243,106,0.08), 0 32px 90px rgba(0,0,0,0.58)
md
0 1px 0 rgba(255,255,255,0.04), 0 18px 48px rgba(0,0,0,0.42)
sm
0 1px 0 rgba(214,243,106,0.08), 0 10px 24px rgba(0,0,0,0.28)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
Fixed radial gradients: aubergine bloom top-left, deep navy basin right, oil-green low halo, plus faint grid noise.
card style
Rounded dark panels using double borders, inset lumen top hairlines, subtle grain, and measured elevation deltas.
treatment
Near-black semantic surfaces with aubergine/navy/oil underlights and controlled low-opacity lumen glow tokens.
typography8 items
base size
16px
body font
Onest
google fonts url
https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,650&family=IBM+Plex+Mono:wght@400;500;600&family=Onest:wght@400;500;600;700&display=swap
heading font
Fraunces
letter spacing
-0.015em
line height
1.5
mono font
IBM Plex Mono
scale ratio
1.25
rules
composition
Design from a dark application shell: fixed atmospheric underlights, a left navigation rail, a dense command header, and modular cards arranged on a 12-column grid for desktop with clean stacking on mobile.
density

Balanced-dense: compact controls and tables with 8px spacing, but leave breathing room around primary cards and editorial summaries.

hierarchy
Use surface brightness, border precision, and small luminous accents before using size. Headings can be editorial, but controls and data remain pragmatic and AA-readable.
signature patterns
Lumen rail: primary navigation and selected tabs use a one-pixel chartreuse edge plus soft 10% underglow instead of bright filled pills.Nocturne card stack: panels combine a muted outer border, an inset top hairline, radial corner bloom, and visible surface delta from the background.Aubergine-to-navy depth fields: hero and empty states use low-opacity radial gradients clipped behind content, never full-spectrum decorative gradients.Telemetry ribbons: small mono labels, progress ticks, and chart legends use colorblind-safe status hues with chartreuse reserved for focus or primary confirmation.Glare-safe focus: keyboard focus uses a two-ring treatment with dark offset and chartreuse outer ring at limited opacity to meet contrast without neon flooding.
layout
breakpoints

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

grid

12-column desktop grid with 24px gutters, 8px baseline spacing, and cards that align charts, copy, and controls to shared vertical rhythms.

whitespace

Use compact internal spacing for controls and tables, then protect 24–48px quiet zones around hero summaries and high-risk data.

guidance
do
  • Start every palette decision from dark semantic tokens and derive the light companion only after contrast checks.
  • Keep luminous accent area below 10% of any screen and below 18% opacity for glows.
  • Use separate status hues for error, success, warning, and info so chartreuse does not carry every meaning.
  • Verify body text, muted labels, focus states, and surface borders against WCAG 2.2 AA expectations.
avoid
  • Do not use pure #000000 backgrounds or pure #FFFFFF text except in external assets.
  • Do not turn chartreuse into large panels, neon gradients, or decorative confetti.
  • Do not rely on color alone in charts, alerts, selected rows, or validation states.
  • Do not flatten all cards into the same dark value; elevation must be perceptible.
katagami spec
# Nocturne Lumen Dark Mode

## Philosophy

A dark-first production palette system for modern product interfaces where near-black, aubergine, deep navy, and oil green form calm semantic depth while tiny lumen accents make status, focus, and data moments feel alive without glare.

### Values

- Dark mode is the source of truth, not an inverted afterthought
- Perceptible elevation deltas replace harsh black-white contrast
- Low-area luminous accents clarify action and state without competing with content
- Semantic tokens and accessible contrast govern every expressive choice
- Warm aubergine and cool navy balance brand atmosphere with enterprise credibility

### Anti-Values

- Neon soup: broad glowing fills, rainbow gradients, or accent saturation applied to whole panels
- Pure black and pure white glare that flattens depth and increases fatigue
- Undifferentiated dark cards whose borders and surfaces cannot be perceived
- Decorative chroma that breaks data, status, or interaction semantics

### Visual Character

- Use a layered near-black background stack with radial aubergine and deep-navy underlights fixed behind content, while cards sit on #101322 and #15182A to create measurable surface deltas.
- Apply luminous chartreuse only as one-pixel keylines, focus rings, small badges, sparklines, and primary action edges; never as large fills except controlled gradients under 18% opacity.
- Build cards with double borders: a muted structural border plus an inset top hairline in translucent lumen or aubergine to make elevated surfaces legible in dark mode.
- Use compact product density with generous vertical rhythm: 8px token grid, restrained rounded rectangles, and tabular numeric zones for dashboards and creative tools.
- Pair editorial high-contrast headings with pragmatic sans body text and mono telemetry labels so the palette can span brand storytelling, data operations, and interface controls.

## Tokens

### Borders

- **Accent Width**: 1px
- **Character**: Muted navy borders for structure, plus selective inset chartreuse/aubergine hairlines for active or elevated states.
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#D6F36A` |
| background | `#080A12` |
| border | `#2A2F42` |
| error | `#FF6B7A` |
| info | `#72A8FF` |
| muted | `#9B9AAB` |
| primary | `#5B315F` |
| secondary | `#32493B` |
| success | `#7EDC9A` |
| surface | `#101322` |
| text | `#F0EDE6` |
| warning | `#F3B95F` |

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(.2,.8,.2,1)
- **Philosophy**: Calm lumen response: small lift, border brightening, and underglow opacity shifts only on interactive elements.

### Radii

- **Full**: 9999px
- **Lg**: 22px
- **Md**: 14px
- **None**: 0
- **Sm**: 8px

### Shadows

- **Lg**: 0 0 0 1px rgba(214,243,106,0.08), 0 32px 90px rgba(0,0,0,0.58)
- **Md**: 0 1px 0 rgba(255,255,255,0.04), 0 18px 48px rgba(0,0,0,0.42)
- **Sm**: 0 1px 0 rgba(214,243,106,0.08), 0 10px 24px rgba(0,0,0,0.28)

### Spacing

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

### Surfaces

- **Bg Pattern**: Fixed radial gradients: aubergine bloom top-left, deep navy basin right, oil-green low halo, plus faint grid noise.
- **Card Style**: Rounded dark panels using double borders, inset lumen top hairlines, subtle grain, and measured elevation deltas.
- **Treatment**: Near-black semantic surfaces with aubergine/navy/oil underlights and controlled low-opacity lumen glow tokens.

### Typography

- **Base Size**: 16px
- **Body Font**: Onest
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,650&family=IBM+Plex+Mono:wght@400;500;600&family=Onest:wght@400;500;600;700&display=swap
- **Heading Font**: Fraunces
- **Letter Spacing**: -0.015em
- **Line Height**: 1.5
- **Mono Font**: IBM Plex Mono
- **Scale Ratio**: 1.25

## Rules

### Composition

Design from a dark application shell: fixed atmospheric underlights, a left navigation rail, a dense command header, and modular cards arranged on a 12-column grid for desktop with clean stacking on mobile.

### Density

Balanced-dense: compact controls and tables with 8px spacing, but leave breathing room around primary cards and editorial summaries.

### Hierarchy

Use surface brightness, border precision, and small luminous accents before using size. Headings can be editorial, but controls and data remain pragmatic and AA-readable.

### Signature Patterns

- Lumen rail: primary navigation and selected tabs use a one-pixel chartreuse edge plus soft 10% underglow instead of bright filled pills.
- Nocturne card stack: panels combine a muted outer border, an inset top hairline, radial corner bloom, and visible surface delta from the background.
- Aubergine-to-navy depth fields: hero and empty states use low-opacity radial gradients clipped behind content, never full-spectrum decorative gradients.
- Telemetry ribbons: small mono labels, progress ticks, and chart legends use colorblind-safe status hues with chartreuse reserved for focus or primary confirmation.
- Glare-safe focus: keyboard focus uses a two-ring treatment with dark offset and chartreuse outer ring at limited opacity to meet contrast without neon flooding.

## Layout

### Breakpoints

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

### Grid

12-column desktop grid with 24px gutters, 8px baseline spacing, and cards that align charts, copy, and controls to shared vertical rhythms.

### Whitespace

Use compact internal spacing for controls and tables, then protect 24–48px quiet zones around hero summaries and high-risk data.

## Guidance

### Do

- Start every palette decision from dark semantic tokens and derive the light companion only after contrast checks.
- Keep luminous accent area below 10% of any screen and below 18% opacity for glows.
- Use separate status hues for error, success, warning, and info so chartreuse does not carry every meaning.
- Verify body text, muted labels, focus states, and surface borders against WCAG 2.2 AA expectations.

### Don't

- Do not use pure #000000 backgrounds or pure #FFFFFF text except in external assets.
- Do not turn chartreuse into large panels, neon gradients, or decorative confetti.
- Do not rely on color alone in charts, alerts, selected rows, or validation states.
- Do not flatten all cards into the same dark value; elevation must be perceptible.
DESIGN.md
---
version: "alpha"
name: "Nocturne Lumen Dark Mode"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#D6F36A"
  background: "#080A12"
  border: "#2A2F42"
  error: "#FF6B7A"
  info: "#72A8FF"
  muted: "#9B9AAB"
  primary: "#5B315F"
  secondary: "#32493B"
  success: "#7EDC9A"
  surface: "#101322"
  text: "#F0EDE6"
  warning: "#F3B95F"
typography:
  headline-lg:
    fontFamily: "Fraunces"
    fontSize: "1.953rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.015em"
  headline-md:
    fontFamily: "Fraunces"
    fontSize: "1.563rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.015em"
  body-md:
    fontFamily: "Onest"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.015em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "22px"
  md: "14px"
  none: "0px"
  sm: "8px"
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"
---

# Nocturne Lumen Dark Mode

## Overview

A dark-first production palette system for modern product interfaces where near-black, aubergine, deep navy, and oil green form calm semantic depth while tiny lumen accents make status, focus, and data moments feel alive without glare.

### Values

- Dark mode is the source of truth, not an inverted afterthought
- Perceptible elevation deltas replace harsh black-white contrast
- Low-area luminous accents clarify action and state without competing with content
- Semantic tokens and accessible contrast govern every expressive choice
- Warm aubergine and cool navy balance brand atmosphere with enterprise credibility

### Anti-Values

- Neon soup: broad glowing fills, rainbow gradients, or accent saturation applied to whole panels
- Pure black and pure white glare that flattens depth and increases fatigue
- Undifferentiated dark cards whose borders and surfaces cannot be perceived
- Decorative chroma that breaks data, status, or interaction semantics

### Visual Character

- Use a layered near-black background stack with radial aubergine and deep-navy underlights fixed behind content, while cards sit on #101322 and #15182A to create measurable surface deltas.
- Apply luminous chartreuse only as one-pixel keylines, focus rings, small badges, sparklines, and primary action edges; never as large fills except controlled gradients under 18% opacity.
- Build cards with double borders: a muted structural border plus an inset top hairline in translucent lumen or aubergine to make elevated surfaces legible in dark mode.
- Use compact product density with generous vertical rhythm: 8px token grid, restrained rounded rectangles, and tabular numeric zones for dashboards and creative tools.
- Pair editorial high-contrast headings with pragmatic sans body text and mono telemetry labels so the palette can span brand storytelling, data operations, and interface controls.

## 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 | `#D6F36A` |
| background | `#080A12` |
| border | `#2A2F42` |
| error | `#FF6B7A` |
| info | `#72A8FF` |
| muted | `#9B9AAB` |
| primary | `#5B315F` |
| secondary | `#32493B` |
| success | `#7EDC9A` |
| surface | `#101322` |
| text | `#F0EDE6` |
| warning | `#F3B95F` |

## Typography

- **Headline-Lg**: Fraunces, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Fraunces, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Onest, 16px, weight 400, line-height 1.5.
- **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

12-column desktop grid with 24px gutters, 8px baseline spacing, and cards that align charts, copy, and controls to shared vertical rhythms.

### Whitespace

Use compact internal spacing for controls and tables, then protect 24–48px quiet zones around hero summaries and high-risk data.

## Elevation & Depth

### Shadows

- **Lg**: 0 0 0 1px rgba(214,243,106,0.08), 0 32px 90px rgba(0,0,0,0.58)
- **Md**: 0 1px 0 rgba(255,255,255,0.04), 0 18px 48px rgba(0,0,0,0.42)
- **Sm**: 0 1px 0 rgba(214,243,106,0.08), 0 10px 24px rgba(0,0,0,0.28)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `22px`
- **Md**: `14px`
- **None**: `0px`
- **Sm**: `8px`

### Surfaces

- **Bg Pattern**: Fixed radial gradients: aubergine bloom top-left, deep navy basin right, oil-green low halo, plus faint grid noise.
- **Card Style**: Rounded dark panels using double borders, inset lumen top hairlines, subtle grain, and measured elevation deltas.
- **Treatment**: Near-black semantic surfaces with aubergine/navy/oil underlights and controlled low-opacity lumen glow tokens.

### Borders

- **Accent Width**: 1px
- **Character**: Muted navy borders for structure, plus selective inset chartreuse/aubergine hairlines for active or elevated states.
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Design from a dark application shell: fixed atmospheric underlights, a left navigation rail, a dense command header, and modular cards arranged on a 12-column grid for desktop with clean stacking on mobile.

### Density

Balanced-dense: compact controls and tables with 8px spacing, but leave breathing room around primary cards and editorial summaries.

### Hierarchy

Use surface brightness, border precision, and small luminous accents before using size. Headings can be editorial, but controls and data remain pragmatic and AA-readable.

### Signature Patterns

- Lumen rail: primary navigation and selected tabs use a one-pixel chartreuse edge plus soft 10% underglow instead of bright filled pills.
- Nocturne card stack: panels combine a muted outer border, an inset top hairline, radial corner bloom, and visible surface delta from the background.
- Aubergine-to-navy depth fields: hero and empty states use low-opacity radial gradients clipped behind content, never full-spectrum decorative gradients.
- Telemetry ribbons: small mono labels, progress ticks, and chart legends use colorblind-safe status hues with chartreuse reserved for focus or primary confirmation.
- Glare-safe focus: keyboard focus uses a two-ring treatment with dark offset and chartreuse outer ring at limited opacity to meet contrast without neon flooding.

## 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-019ea9b4-eafe-7d53-8c15-dc7461ac194d/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 every palette decision from dark semantic tokens and derive the light companion only after contrast checks.
- Do Keep luminous accent area below 10% of any screen and below 18% opacity for glows.
- Do Use separate status hues for error, success, warning, and info so chartreuse does not carry every meaning.
- Do Verify body text, muted labels, focus states, and surface borders against WCAG 2.2 AA expectations.
- Don't Do not use pure #000000 backgrounds or pure #FFFFFF text except in external assets.
- Don't Do not turn chartreuse into large panels, neon gradients, or decorative confetti.
- Don't Do not rely on color alone in charts, alerts, selected rows, or validation states.
- Don't Do not flatten all cards into the same dark value; elevation must be perceptible.
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": "#080A12",
      "foreground": "#F0EDE6",
      "card": "#101322",
      "card-foreground": "#F0EDE6",
      "popover": "#101322",
      "popover-foreground": "#F0EDE6",
      "primary": "#5B315F",
      "primary-foreground": "#ffffff",
      "secondary": "#32493B",
      "secondary-foreground": "#ffffff",
      "muted": "#9B9AAB",
      "muted-foreground": "#F0EDE6",
      "accent": "#D6F36A",
      "accent-foreground": "#111111",
      "destructive": "#FF6B7A",
      "border": "#2A2F42",
      "input": "#2A2F42",
      "ring": "#D6F36A",
      "chart-1": "#5B315F",
      "chart-2": "#32493B",
      "chart-3": "#D6F36A",
      "chart-4": "#7EDC9A",
      "chart-5": "#F3B95F",
      "sidebar": "#101322",
      "sidebar-foreground": "#F0EDE6",
      "sidebar-primary": "#5B315F",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#72A8FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#2A2F42",
      "sidebar-ring": "#D6F36A",
      "radius": "14px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#5B315F",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D6F36A",
      "accent-foreground": "#111111",
      "destructive": "#FF6B7A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D6F36A",
      "chart-1": "#5B315F",
      "chart-2": "#32493B",
      "chart-3": "#D6F36A",
      "chart-4": "#7EDC9A",
      "chart-5": "#F3B95F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#5B315F",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D6F36A",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D6F36A",
      "radius": "14px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b4-eafe-7d53-8c15-dc7461ac194d",
    "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-lgFraunces · 31px · 700

The quick brown fox jumps

headline-mdFraunces · 25px · 600

The quick brown fox jumps

body-mdOnest · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

Components rendered with this language’s tokens — colors, type, and rounded corners as specified.

Spacing

  • base8px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • 2xl32px
  • 3xl48px
  • 4xl64px

Shape

full9999px
lg22px
md14px
none0px
sm8px
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: #080A12;
  --foreground: #F0EDE6;
  --card: #101322;
  --card-foreground: #F0EDE6;
  --popover: #101322;
  --popover-foreground: #F0EDE6;
  --primary: #5B315F;
  --primary-foreground: #ffffff;
  --secondary: #32493B;
  --secondary-foreground: #ffffff;
  --muted: #9B9AAB;
  --muted-foreground: #F0EDE6;
  --accent: #D6F36A;
  --accent-foreground: #111111;
  --destructive: #FF6B7A;
  --border: #2A2F42;
  --input: #2A2F42;
  --ring: #D6F36A;
  --chart-1: #5B315F;
  --chart-2: #32493B;
  --chart-3: #D6F36A;
  --chart-4: #7EDC9A;
  --chart-5: #F3B95F;
  --sidebar: #101322;
  --sidebar-foreground: #F0EDE6;
  --sidebar-primary: #5B315F;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #72A8FF;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #2A2F42;
  --sidebar-ring: #D6F36A;
  --radius: 14px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #5B315F;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #D6F36A;
  --accent-foreground: #111111;
  --destructive: #FF6B7A;
  --border: #303642;
  --input: #303642;
  --ring: #D6F36A;
  --chart-1: #5B315F;
  --chart-2: #32493B;
  --chart-3: #D6F36A;
  --chart-4: #7EDC9A;
  --chart-5: #F3B95F;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #5B315F;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #D6F36A;
  --sidebar-accent-foreground: #111111;
  --sidebar-border: #303642;
  --sidebar-ring: #D6F36A;
  --radius: 14px;
}
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": "#080A12",
      "foreground": "#F0EDE6",
      "card": "#101322",
      "card-foreground": "#F0EDE6",
      "popover": "#101322",
      "popover-foreground": "#F0EDE6",
      "primary": "#5B315F",
      "primary-foreground": "#ffffff",
      "secondary": "#32493B",
      "secondary-foreground": "#ffffff",
      "muted": "#9B9AAB",
      "muted-foreground": "#F0EDE6",
      "accent": "#D6F36A",
      "accent-foreground": "#111111",
      "destructive": "#FF6B7A",
      "border": "#2A2F42",
      "input": "#2A2F42",
      "ring": "#D6F36A",
      "chart-1": "#5B315F",
      "chart-2": "#32493B",
      "chart-3": "#D6F36A",
      "chart-4": "#7EDC9A",
      "chart-5": "#F3B95F",
      "sidebar": "#101322",
      "sidebar-foreground": "#F0EDE6",
      "sidebar-primary": "#5B315F",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#72A8FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#2A2F42",
      "sidebar-ring": "#D6F36A",
      "radius": "14px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#5B315F",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D6F36A",
      "accent-foreground": "#111111",
      "destructive": "#FF6B7A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D6F36A",
      "chart-1": "#5B315F",
      "chart-2": "#32493B",
      "chart-3": "#D6F36A",
      "chart-4": "#7EDC9A",
      "chart-5": "#F3B95F",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#5B315F",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D6F36A",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D6F36A",
      "radius": "14px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b4-eafe-7d53-8c15-dc7461ac194d",
    "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"
  }
}