back to gallery

Aurora

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 — tokens plus the paired art style. Agents must generate real images.

the spec

specification

philosophy
summary
Aurora reads a system the way an oscilloscope reads a circuit: one luminous aqua trace riding a measured graticule on an indigo-violet night. You watch the line, and the line tells you everything — a signal surface, not a wall of rows.
values
The signal is the interface — a trace beats a thousand rowsA measured graticule grounds every value in amplitude and timeAqua is nominal; scarce magenta and gold mean an event happenedTwo-typeface instrument voice: condensed labels, mono data
anti-values
×Three-column command-rail-plus-telemetry console layouts×Terminal syntax-mark prefixes and stamped corner ticks on every panel×Rainbow neon excess; green-screen nostalgia; grey borders×Walls of tabular command-output rows in place of a plotted trace
visual character
A single continuous luminous polyline is the load-bearing element — it threads the landing as a divider, rides a baseline in the embodiment, and becomes the live data plot in the dashboard.Every surface carries a fine measured graticule grid; the grid is the layout, and content stacks in full-width sweep bands like a strip-chart recorder rather than in a rail-and-column grid.The interface sits on a deep indigo-violet night ground with aqua-cyan phosphor as the brightest element and soft cyan bloom standing in for shadow.Headings are condensed Saira; numerics, status tokens and micro-labels are Spline Sans Mono, tabular and right-aligned; body is Archivo.Magenta and gold appear only at threshold crossings — a peak marker, a reserve floor — never as primary colour.
tokens
colors17 items
bg
#0B0A1E
surface
#131233
recess
#0E0D26
text
#E9ECFF
muted
#8F92C8
primary
#54F2E6
secondary
#0E0D26
accent
#54F2E6
on_accent
#06121A
magenta
#FF6AC2
gold
#FFC75A
success
#54F2E6
warning
#FFC75A
error
#FF6AC2
info
#8AB4FF
border
#2A2960
grid
#1C1B45
typography10 items
base size
17px
body font
Archivo
heading font
Saira Condensed
mono font
Spline Sans Mono
heading weight
600
heading transform
none
letter spacing
-0.01em
line height
1.6
scale ratio
1.2
google fonts url
https://fonts.googleapis.com/css2?family=Saira+Condensed:wght@400;500;600;700&family=Archivo:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap
radii5 items
none
0
sm
0
md
16px
lg
16px
full
9999px
shadows4 items
sm
0 0 10px rgba(84,242,230,0.30)
md
0 0 28px rgba(84,242,230,0.22)
lg
0 0 64px rgba(84,242,230,0.18)
focus
inset 0 0 0 1px #54F2E6, 0 0 10px rgba(84,242,230,0.30)
spacing2 items
base
8px
scale
6, 12, 20, 32, 48, 72, 112
surfaces3 items
bg pattern
graticule
card style
Flat indigo-violet bands with a measured graticule grid, soft cyan phosphor bloom, 16px radius, no borders; the live aqua trace is always the brightest element.
treatment
phosphor-glow
borders4 items
default width
0
accent width
2px
style
none
character
No borders; separation comes from surface, cyan bloom, and the graticule division lines. Faint violet graticule lines (#2A2960 / #1C1B45) measure every band.
motion3 items
duration
160ms
easing
cubic-bezier(.2,.7,.2,1)
philosophy
Snappy and meaningful: the trace draws on, sections rise once. The settled fully-rendered page is the default with no JS; motion is layered on top and respects prefers-reduced-motion.
rules
composition
Strip-chart sweep: an open masthead nav across the header, then full-width sweep bands stacked down the page like a recorder strip — no command rail, no telemetry column. A continuous luminous trace threads the page over a measured graticule.
hierarchy
Hierarchy comes from phosphor brightness (aqua is brightest = the live signal), condensed display headings, and tabular mono numerics; scarce magenta/gold mark only threshold crossings.
density
Comfortable, instrument-grade: generous band padding, traces and graticule given room to read; numbers stay tabular and right-aligned so a column scans at a glance.
signature
Continuous luminous aqua trace over a measured graticule; full-width sweep bands; scarce magenta/gold peak markers at threshold crossings; soft cyan bloom in place of shadow; two-typeface instrument voice (Saira Condensed + Spline Sans Mono).
layout
grid
Full-width sweep bands stacked vertically; the dashboard uses a 12-column band grid (8/4 splits) that collapses to single column. No fixed command rail or telemetry column. Internal rhythm on an 8px base.
whitespace

Comfortable and measured: bands get 32px padding, traces and graticule wells get room to breathe; titles always padded above.

density

medium

responsive
minmax(0,1fr) columns and min-width:0 children so grids never blow out; single column on mobile with non-essential nav hidden; only the hero is full-bleed (100vw x 100svh); contained content capped and centred on ultra-wide.
breakpoints
mobile
< 760px single stacked column, nav hidden
tablet
760-1099px bands stack, 12-col splits collapse to 6/12
desktop
>= 1100px full 12-column band grid
ultrawide
>= 1600px contained content capped and centred
guidance
do
  • Keep the aqua trace the brightest element on screen; everything quieter recedes.
  • Plot data as a continuous trace on a graticule; right-align numbers in Spline Sans Mono.
  • Use magenta and gold only at a threshold crossing — a peak, a reserve floor.
  • Open on a full-bleed luminous waveform hero with the headline set low and left.
  • Build separation with surface, cyan bloom, and graticule lines — never grey borders.
avoid
  • Do not fall back to a three-column command-rail-plus-telemetry console layout.
  • Do not prefix labels with terminal syntax marks ($ > ::) or stamp corner ticks on panels.
  • Do not tip the palette into rainbow neon; aqua leads, magenta and gold stay scarce.
  • Do not use emoji on buttons or symbol-font glyphs in copy; use SVG/CSS primitives.
  • Do not hide the page behind a JS-only reveal; the settled state must render with no JS.
imagery
pairs with

lumiphor

summary
Luminous phosphor CRT vector-trace technique tuned to an aqua-cyan signal on a deep indigo-violet ground; subjects render as a single sweeping waveform/aurora ribbon over a faint graticule, scanlines and bloom as texture, scarce magenta/gold flecks at signal peaks.
subjects
a sweeping oscilloscope waveform ribbonan aurora-like signal trace over a graticulea single luminous contour of a measured phenomenon
usage
One full-bleed hero waveform with calm dark space lower-left for the headline overlay; sparklines and composite sweeps inside bands echo the same trace technique.
katagami spec
# Aurora

## Philosophy

Aurora reads a system the way an oscilloscope reads a circuit: one luminous aqua trace riding a measured graticule on an indigo-violet night. You watch the line, and the line tells you everything — a signal surface, not a wall of rows.

### Values

- The signal is the interface — a trace beats a thousand rows
- A measured graticule grounds every value in amplitude and time
- Aqua is nominal; scarce magenta and gold mean an event happened
- Two-typeface instrument voice: condensed labels, mono data

### Anti-Values

- Three-column command-rail-plus-telemetry console layouts
- Terminal syntax-mark prefixes and stamped corner ticks on every panel
- Rainbow neon excess; green-screen nostalgia; grey borders
- Walls of tabular command-output rows in place of a plotted trace

### Visual Character

- A single continuous luminous polyline is the load-bearing element — it threads the landing as a divider, rides a baseline in the embodiment, and becomes the live data plot in the dashboard.
- Every surface carries a fine measured graticule grid; the grid is the layout, and content stacks in full-width sweep bands like a strip-chart recorder rather than in a rail-and-column grid.
- The interface sits on a deep indigo-violet night ground with aqua-cyan phosphor as the brightest element and soft cyan bloom standing in for shadow.
- Headings are condensed Saira; numerics, status tokens and micro-labels are Spline Sans Mono, tabular and right-aligned; body is Archivo.
- Magenta and gold appear only at threshold crossings — a peak marker, a reserve floor — never as primary colour.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#0B0A1E` |
| surface | `#131233` |
| recess | `#0E0D26` |
| text | `#E9ECFF` |
| muted | `#8F92C8` |
| primary | `#54F2E6` |
| secondary | `#0E0D26` |
| accent | `#54F2E6` |
| on_accent | `#06121A` |
| magenta | `#FF6AC2` |
| gold | `#FFC75A` |
| success | `#54F2E6` |
| warning | `#FFC75A` |
| error | `#FF6AC2` |
| info | `#8AB4FF` |
| border | `#2A2960` |
| grid | `#1C1B45` |

### Typography

- **Base Size**: 17px
- **Body Font**: Archivo
- **Heading Font**: Saira Condensed
- **Mono Font**: Spline Sans Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.01em
- **Line Height**: 1.6
- **Scale Ratio**: 1.2
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Saira+Condensed:wght@400;500;600;700&family=Archivo:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap

### Radii

- **None**: 0
- **Sm**: 0
- **Md**: 16px
- **Lg**: 16px
- **Full**: 9999px

### Shadows

- **Sm**: 0 0 10px rgba(84,242,230,0.30)
- **Md**: 0 0 28px rgba(84,242,230,0.22)
- **Lg**: 0 0 64px rgba(84,242,230,0.18)
- **Focus**: inset 0 0 0 1px #54F2E6, 0 0 10px rgba(84,242,230,0.30)

### Spacing

- **Base**: 8px
- **Scale**: [6,12,20,32,48,72,112]

### Surfaces

- **Bg Pattern**: graticule
- **Card Style**: Flat indigo-violet bands with a measured graticule grid, soft cyan phosphor bloom, 16px radius, no borders; the live aqua trace is always the brightest element.
- **Treatment**: phosphor-glow

### Borders

- **Default Width**: 0
- **Accent Width**: 2px
- **Style**: none
- **Character**: No borders; separation comes from surface, cyan bloom, and the graticule division lines. Faint violet graticule lines (#2A2960 / #1C1B45) measure every band.

### Motion

- **Duration**: 160ms
- **Easing**: cubic-bezier(.2,.7,.2,1)
- **Philosophy**: Snappy and meaningful: the trace draws on, sections rise once. The settled fully-rendered page is the default with no JS; motion is layered on top and respects prefers-reduced-motion.

## Rules

### Composition

Strip-chart sweep: an open masthead nav across the header, then full-width sweep bands stacked down the page like a recorder strip — no command rail, no telemetry column. A continuous luminous trace threads the page over a measured graticule.

### Hierarchy

Hierarchy comes from phosphor brightness (aqua is brightest = the live signal), condensed display headings, and tabular mono numerics; scarce magenta/gold mark only threshold crossings.

### Density

Comfortable, instrument-grade: generous band padding, traces and graticule given room to read; numbers stay tabular and right-aligned so a column scans at a glance.

### Signature

Continuous luminous aqua trace over a measured graticule; full-width sweep bands; scarce magenta/gold peak markers at threshold crossings; soft cyan bloom in place of shadow; two-typeface instrument voice (Saira Condensed + Spline Sans Mono).

## Layout

### Grid

Full-width sweep bands stacked vertically; the dashboard uses a 12-column band grid (8/4 splits) that collapses to single column. No fixed command rail or telemetry column. Internal rhythm on an 8px base.

### Whitespace

Comfortable and measured: bands get 32px padding, traces and graticule wells get room to breathe; titles always padded above.

### Density

medium

### Responsive

minmax(0,1fr) columns and min-width:0 children so grids never blow out; single column on mobile with non-essential nav hidden; only the hero is full-bleed (100vw x 100svh); contained content capped and centred on ultra-wide.

### Breakpoints

- **Mobile**: < 760px single stacked column, nav hidden
- **Tablet**: 760-1099px bands stack, 12-col splits collapse to 6/12
- **Desktop**: >= 1100px full 12-column band grid
- **Ultrawide**: >= 1600px contained content capped and centred

## Guidance

### Do

- Keep the aqua trace the brightest element on screen; everything quieter recedes.
- Plot data as a continuous trace on a graticule; right-align numbers in Spline Sans Mono.
- Use magenta and gold only at a threshold crossing — a peak, a reserve floor.
- Open on a full-bleed luminous waveform hero with the headline set low and left.
- Build separation with surface, cyan bloom, and graticule lines — never grey borders.

### Don't

- Do not fall back to a three-column command-rail-plus-telemetry console layout.
- Do not prefix labels with terminal syntax marks ($ > ::) or stamp corner ticks on panels.
- Do not tip the palette into rainbow neon; aqua leads, magenta and gold stay scarce.
- Do not use emoji on buttons or symbol-font glyphs in copy; use SVG/CSS primitives.
- Do not hide the page behind a JS-only reveal; the settled state must render with no JS.

### Accessibility

High-contrast phosphor text (#E9ECFF) on indigo ground (>= 7:1 for body). Status is never colour alone — every token carries a dot plus an uppercase label. Every interactive control has a visible focus state (inset aqua ring + bloom). Motion respects prefers-reduced-motion; the no-JS render is the full settled page.

## Imagery Direction

### Pairs With

lumiphor

### Summary

Luminous phosphor CRT vector-trace technique tuned to an aqua-cyan signal on a deep indigo-violet ground; subjects render as a single sweeping waveform/aurora ribbon over a faint graticule, scanlines and bloom as texture, scarce magenta/gold flecks at signal peaks.

### Subjects

- a sweeping oscilloscope waveform ribbon
- an aurora-like signal trace over a graticule
- a single luminous contour of a measured phenomenon

### Usage

One full-bleed hero waveform with calm dark space lower-left for the headline overlay; sparklines and composite sweeps inside bands echo the same trace technique.
DESIGN.md
---
version: "alpha"
name: "Aurora"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#0B0A1E"
  surface: "#131233"
  recess: "#0E0D26"
  text: "#E9ECFF"
  muted: "#8F92C8"
  primary: "#54F2E6"
  secondary: "#0E0D26"
  accent: "#54F2E6"
  on_accent: "#06121A"
  magenta: "#FF6AC2"
  gold: "#FFC75A"
  success: "#54F2E6"
  warning: "#FFC75A"
  error: "#FF6AC2"
  info: "#8AB4FF"
  border: "#2A2960"
  grid: "#1C1B45"
typography:
  headline-lg:
    fontFamily: "Saira Condensed"
    fontSize: "1.836rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Saira Condensed"
    fontSize: "1.53rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Archivo"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.6
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "Spline Sans Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "0px"
  md: "16px"
  lg: "16px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "6px"
  sm: "12px"
  md: "20px"
  lg: "32px"
  xl: "48px"
  2xl: "72px"
  3xl: "112px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-recess:
    backgroundColor: "{colors.recess}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-magenta:
    backgroundColor: "{colors.magenta}"
  color-reference-gold:
    backgroundColor: "{colors.gold}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-grid:
    backgroundColor: "{colors.grid}"
  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"
---

# Aurora

## Overview

Aurora reads a system the way an oscilloscope reads a circuit: one luminous aqua trace riding a measured graticule on an indigo-violet night. You watch the line, and the line tells you everything — a signal surface, not a wall of rows.

### Values

- The signal is the interface — a trace beats a thousand rows
- A measured graticule grounds every value in amplitude and time
- Aqua is nominal; scarce magenta and gold mean an event happened
- Two-typeface instrument voice: condensed labels, mono data

### Anti-Values

- Three-column command-rail-plus-telemetry console layouts
- Terminal syntax-mark prefixes and stamped corner ticks on every panel
- Rainbow neon excess; green-screen nostalgia; grey borders
- Walls of tabular command-output rows in place of a plotted trace

### Visual Character

- A single continuous luminous polyline is the load-bearing element — it threads the landing as a divider, rides a baseline in the embodiment, and becomes the live data plot in the dashboard.
- Every surface carries a fine measured graticule grid; the grid is the layout, and content stacks in full-width sweep bands like a strip-chart recorder rather than in a rail-and-column grid.
- The interface sits on a deep indigo-violet night ground with aqua-cyan phosphor as the brightest element and soft cyan bloom standing in for shadow.
- Headings are condensed Saira; numerics, status tokens and micro-labels are Spline Sans Mono, tabular and right-aligned; body is Archivo.
- Magenta and gold appear only at threshold crossings — a peak marker, a reserve floor — never as primary colour.

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| bg | `#0B0A1E` |
| surface | `#131233` |
| recess | `#0E0D26` |
| text | `#E9ECFF` |
| muted | `#8F92C8` |
| primary | `#54F2E6` |
| secondary | `#0E0D26` |
| accent | `#54F2E6` |
| on_accent | `#06121A` |
| magenta | `#FF6AC2` |
| gold | `#FFC75A` |
| success | `#54F2E6` |
| warning | `#FFC75A` |
| error | `#FF6AC2` |
| info | `#8AB4FF` |
| border | `#2A2960` |
| grid | `#1C1B45` |

## Typography

- **Headline-Lg**: Saira Condensed, 1.836rem, weight 700, line-height 1.1.
- **Headline-Md**: Saira Condensed, 1.53rem, weight 600, line-height 1.15.
- **Body-Md**: Archivo, 17px, weight 400, line-height 1.6.
- **Label-Md**: Spline Sans Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `6px`
- **Sm**: `12px`
- **Md**: `20px`
- **Lg**: `32px`
- **Xl**: `48px`
- **2xl**: `72px`
- **3xl**: `112px`

### Grid

Full-width sweep bands stacked vertically; the dashboard uses a 12-column band grid (8/4 splits) that collapses to single column. No fixed command rail or telemetry column. Internal rhythm on an 8px base.

### Whitespace

Comfortable and measured: bands get 32px padding, traces and graticule wells get room to breathe; titles always padded above.

### Density

medium

### Responsive

minmax(0,1fr) columns and min-width:0 children so grids never blow out; single column on mobile with non-essential nav hidden; only the hero is full-bleed (100vw x 100svh); contained content capped and centred on ultra-wide.

### Breakpoints

- **Mobile**: < 760px single stacked column, nav hidden
- **Tablet**: 760-1099px bands stack, 12-col splits collapse to 6/12
- **Desktop**: >= 1100px full 12-column band grid
- **Ultrawide**: >= 1600px contained content capped and centred

## Elevation & Depth

### Shadows

- **Sm**: 0 0 10px rgba(84,242,230,0.30)
- **Md**: 0 0 28px rgba(84,242,230,0.22)
- **Lg**: 0 0 64px rgba(84,242,230,0.18)
- **Focus**: inset 0 0 0 1px #54F2E6, 0 0 10px rgba(84,242,230,0.30)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `0px`
- **Md**: `16px`
- **Lg**: `16px`
- **Full**: `9999px`

### Surfaces

- **Bg Pattern**: graticule
- **Card Style**: Flat indigo-violet bands with a measured graticule grid, soft cyan phosphor bloom, 16px radius, no borders; the live aqua trace is always the brightest element.
- **Treatment**: phosphor-glow

### Borders

- **Default Width**: 0
- **Accent Width**: 2px
- **Style**: none
- **Character**: No borders; separation comes from surface, cyan bloom, and the graticule division lines. Faint violet graticule lines (#2A2960 / #1C1B45) measure every band.

## Components

### Composition

Strip-chart sweep: an open masthead nav across the header, then full-width sweep bands stacked down the page like a recorder strip — no command rail, no telemetry column. A continuous luminous trace threads the page over a measured graticule.

### Hierarchy

Hierarchy comes from phosphor brightness (aqua is brightest = the live signal), condensed display headings, and tabular mono numerics; scarce magenta/gold mark only threshold crossings.

### Density

Comfortable, instrument-grade: generous band padding, traces and graticule given room to read; numbers stay tabular and right-aligned so a column scans at a glance.

### Signature

Continuous luminous aqua trace over a measured graticule; full-width sweep bands; scarce magenta/gold peak markers at threshold crossings; soft cyan bloom in place of shadow; two-typeface instrument voice (Saira Condensed + Spline Sans Mono).

## 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-019ef865-d349-7fa3-9cfd-7f4b2d4beb82/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 Keep the aqua trace the brightest element on screen; everything quieter recedes.
- Do Plot data as a continuous trace on a graticule; right-align numbers in Spline Sans Mono.
- Do Use magenta and gold only at a threshold crossing — a peak, a reserve floor.
- Do Open on a full-bleed luminous waveform hero with the headline set low and left.
- Do Build separation with surface, cyan bloom, and graticule lines — never grey borders.
- Don't Do not fall back to a three-column command-rail-plus-telemetry console layout.
- Don't Do not prefix labels with terminal syntax marks ($ > ::) or stamp corner ticks on panels.
- Don't Do not tip the palette into rainbow neon; aqua leads, magenta and gold stay scarce.
- Don't Do not use emoji on buttons or symbol-font glyphs in copy; use SVG/CSS primitives.
- Don't Do not hide the page behind a JS-only reveal; the settled state must render with no JS.

### Accessibility

High-contrast phosphor text (#E9ECFF) on indigo ground (>= 7:1 for body). Status is never colour alone — every token carries a dot plus an uppercase label. Every interactive control has a visible focus state (inset aqua ring + bloom). Motion respects prefers-reduced-motion; the no-JS render is the full settled page.

## Imagery Direction

### Pairs With

lumiphor

### Summary

Luminous phosphor CRT vector-trace technique tuned to an aqua-cyan signal on a deep indigo-violet ground; subjects render as a single sweeping waveform/aurora ribbon over a faint graticule, scanlines and bloom as texture, scarce magenta/gold flecks at signal peaks.

### Subjects

- a sweeping oscilloscope waveform ribbon
- an aurora-like signal trace over a graticule
- a single luminous contour of a measured phenomenon

### Usage

One full-bleed hero waveform with calm dark space lower-left for the headline overlay; sparklines and composite sweeps inside bands echo the same trace technique.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "aurora",
  "type": "registry:theme",
  "title": "Aurora shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0B0A1E",
      "foreground": "#E9ECFF",
      "card": "#131233",
      "card-foreground": "#E9ECFF",
      "popover": "#131233",
      "popover-foreground": "#E9ECFF",
      "primary": "#54F2E6",
      "primary-foreground": "#111111",
      "secondary": "#0E0D26",
      "secondary-foreground": "#ffffff",
      "muted": "#8F92C8",
      "muted-foreground": "#E9ECFF",
      "accent": "#54F2E6",
      "accent-foreground": "#111111",
      "destructive": "#FF6AC2",
      "border": "#2A2960",
      "input": "#2A2960",
      "ring": "#54F2E6",
      "chart-1": "#54F2E6",
      "chart-2": "#0E0D26",
      "chart-3": "#54F2E6",
      "chart-4": "#54F2E6",
      "chart-5": "#FFC75A",
      "sidebar": "#131233",
      "sidebar-foreground": "#E9ECFF",
      "sidebar-primary": "#54F2E6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#8AB4FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#2A2960",
      "sidebar-ring": "#54F2E6",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#54F2E6",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#54F2E6",
      "accent-foreground": "#111111",
      "destructive": "#FF6AC2",
      "border": "#303642",
      "input": "#303642",
      "ring": "#54F2E6",
      "chart-1": "#54F2E6",
      "chart-2": "#0E0D26",
      "chart-3": "#54F2E6",
      "chart-4": "#54F2E6",
      "chart-5": "#FFC75A",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#54F2E6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#54F2E6",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#54F2E6",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef865-d349-7fa3-9cfd-7f4b2d4beb82",
    "slug": "aurora",
    "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": {
      "colors": [
        "accent",
        "bg",
        "border",
        "error",
        "gold",
        "grid",
        "info",
        "magenta",
        "muted",
        "on_accent",
        "primary",
        "recess",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "focus",
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

DESIGN.md

at a glance

Typography

headline-lgSaira Condensed · 29px · 700

The quick brown fox jumps

headline-mdSaira Condensed · 24px · 600

The quick brown fox jumps

body-mdArchivo · 17px · 400

The quick brown fox jumps

label-mdSpline Sans Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with
remix lane

try a remix

Keep Aurora and swap a palette and an art style onto it. The landing & dashboard recolor live.

UI language · fixed
Aurora
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

Evolved from
related

More like this