back to gallery
design language·prism

Prism

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 spectral narrative interface language: a page is one white beam dispersed through a prism, where each section is a wavelength of the same idea fanned into its own band so a reader moves through colour instead of down a list of equal-weight cards. It keeps the source's essence — sequenced narrative, art direction as information architecture, illustration and copy designed as one composition — but stages it as bright refracted light on a warm ground rather than a parallax storybook.
values
Refraction as structure: one beam fanned into bands a reader scans across, not downSequence built into hue: cool early, warm late, so a reader knows where they are by colourArt direction as information architecture, carried by airbrushed light rather than decorationThree spectral accents used like highlighters on a bright warm ground, never washesImportance read by how brightly a surface catches the light, never by a heavier box
anti-values
×Generic SaaS chrome and uniform equal-weight card grids×Muddy pastel washes with no light source×Grey borders and one-sided accent edges on cards×Cold default white as a reflex ground with no warmth for the light to glow against×Oversized italic-serif headlines or the regular-serif / italic-serif word swap
tokens
colors14 items
bg
#FBF7F2
surface
#FFFFFF
surface_2
#FBF3EC
text
#1A1620
muted
#6E6678
border
rgba(26,22,32,0.10)
accent
#F0468C
accent_2
#1FB6C9
accent_3
#F2A33C
on_accent
#FFFFFF
success
#2FAE7E
warning
#F2A33C
error
#E2546B
info
#1FB6C9
typography9 items
base size
17px
body font
Inter
heading font
Space Grotesk
mono font
IBM Plex Mono
heading weight
600
heading transform
none
letter spacing
-0.03em
line height
1.6
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
radii5 items
none
0px
sm
16px
md
24px
lg
24px
full
9999px
shadows4 items
sm
0 8px 24px rgba(26,22,32,0.07)
md
0 16px 44px rgba(26,22,32,0.09)
lg
0 30px 70px rgba(26,22,32,0.16)
glow
0 0 0 2px rgba(31,182,201,0.20), 0 20px 48px rgba(31,182,201,0.16)
spacing2 items
base
8px
scale
8, 16, 24, 40, 64, 96
surfaces3 items
treatment
Clear white plaques on a warm near-white ground (#FBF7F2): each plaque carries the spectral split-bar on its top edge and a single soft cyan chrome light-leak in one corner, lifted by a soft warm-ink shadow, never a border.
card style
24px-radius white plaques, no borders; a focused (lit) plaque glows with a cyan ring instead of growing a heavier box.
bg pattern
Warm-light ground with airbrushed continuous-tone hero imagery; the spectrum gradient recurs as the divider, the split-bar, and progress/slider tracks.
borders2 items
default width
0
character
No borders. Separation comes from the spectral split-bar, soft warm-ink shadows, and a cyan focus glow; never grey edges or one-sided accents.
motion3 items
duration
640ms
easing
cubic-bezier(0.22,1,0.36,1)
philosophy
Refraction sweep: the split-bar fans from one end as it enters view and bands rise into place. The settled page is the no-JS default; an inline script gates the reveal behind html.js-on and respects prefers-reduced-motion.
rules
composition
Compose the page as one beam dispersed into wavelength bands. Each section opens with the spectral split-bar and a wavelength gauge; each band holds one beat, never repetitive equal-weight blocks. Sequence is built into hue, cool early to warm late.
hierarchy
Importance is carried by light, not by heavier boxes. A focused or active surface glows with a cyan ring and gains the spectral top-edge; it never darkens or grows a border. The colour-pop highlighter marks the one word that matters in a headline.
density
Airy and paced. Plaques keep generous internal padding (22-30px) and space above titles; bands have generous vertical breathing room so each reveal stays distinct.
signature
The spectral split-bar: a thin white seam fanned into magenta -> cyan -> amber, used as the section divider, the top edge of a lit plaque, the active-nav underline, and the fill of progress and slider tracks; with the wavelength gauge that places each band in the visible range. Both recolour on a palette swap because they are built from the role accents.
layout
grid
Contained content caps at 1200px centred; only the full-bleed hero spans 100vw. Plaques and bands float with 24-40px gaps; grids use minmax(0,1fr) and min-width:0 so children shrink rather than overflow.
whitespace

Whitespace is the warm-light ground the prism splits, never an empty box. Generous internal padding and space above every title.

density

Low to medium; the spectral bands need room to read as a sequence.

responsive
From ~390px mobile to 2560px+ ultra-wide. Stack to one column on mobile, hide secondary nav, switch the hero veil to a vertical fade for legibility; the hero headline uses clamp(33px,6.6vw,82px) and wraps, never clipping at 390px.
breakpoints
mobile
390px
tablet
768px
desktop
1200px
guidance
do
  • Open every section with the spectral split-bar and place its band with a wavelength gauge.
  • Build hierarchy from how brightly a surface catches the light; let a focused plaque glow rather than darken.
  • Keep plaques clear white with no borders; separation is the split-bar, soft shadows, and the chrome light-leak.
  • Stay on the warm-light ground so the three spectral accents glow like real refracted light.
  • Use the three accents like highlighters — confined to the split-bar, marks, focus, and transmitted light.
  • Commit to 16 / 24 / full radii and full-pill buttons; style every form control with the spectral focus glow.
  • Emphasise with a single colour-pop highlighter word; keep imagery airbrushed continuous-tone with chrome highlights.
avoid
  • Don't stack interchangeable equal-weight cards with no spectral sequence.
  • Don't use grey borders, one-sided accent edges, or opaque flat fills.
  • Don't let the spectrum flood a surface; three accents used like highlighters, never washes.
  • Don't default to cold white; the ground is warm so the light glows.
  • Don't use an oversized italic serif or the regular-serif / italic-serif word swap for headlines.
  • Don't box navigation into a floating pill bar or nest cards.
imagery
pairs with

chromahaze

summary
1980s commercial airbrush (aerograph) imagery: soft sprayed continuous tonal gradients with no hard outlines, liquid-metal chrome highlights and crisp specular hotspots, atmospheric haze and bloom, lit by one warm source on a bright field.
subjects
a single luminous focal object with a chrome seama faceted prism dispersing a beama serene figure in atmospheric lightsoft distant forms dissolving into haze
usage
One full-bleed hero per landing — a sprayed warm-bright scene with calm negative space for the overlay; full-frame airbrushed scene imagery inside scene sections; chrome highlight motifs echo the plaque light-leaks.
katagami spec
# Prism

## Philosophy

A spectral narrative interface language: a page is one white beam dispersed through a prism, where each section is a wavelength of the same idea fanned into its own band so a reader moves through colour instead of down a list of equal-weight cards. It keeps the source's essence — sequenced narrative, art direction as information architecture, illustration and copy designed as one composition — but stages it as bright refracted light on a warm ground rather than a parallax storybook.

### Values

- Refraction as structure: one beam fanned into bands a reader scans across, not down
- Sequence built into hue: cool early, warm late, so a reader knows where they are by colour
- Art direction as information architecture, carried by airbrushed light rather than decoration
- Three spectral accents used like highlighters on a bright warm ground, never washes
- Importance read by how brightly a surface catches the light, never by a heavier box

### Anti-Values

- Generic SaaS chrome and uniform equal-weight card grids
- Muddy pastel washes with no light source
- Grey borders and one-sided accent edges on cards
- Cold default white as a reflex ground with no warmth for the light to glow against
- Oversized italic-serif headlines or the regular-serif / italic-serif word swap

### Visual Character

- A bright warm near-white ground that the prism splits, with three spectral accents glowing like refracted light.
- The spectral split-bar: a thin white seam fanned into magenta-cyan-amber that opens every section, caps a focused surface, and underlines the active link.
- A wavelength gauge places each band in the visible range (440 to 680 nm) so the page reads like a tuned instrument.
- Prism plaques: clear white surfaces lit by a single refracted chrome light-leak in one corner, never a border; a focused plaque glows.
- Space Grotesk display with a single colour-pop highlighter word, Inter body, IBM Plex Mono wavelengths; airbrushed scene imagery with a caption plaque overlapping the frame like a margin note.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#FBF7F2` |
| surface | `#FFFFFF` |
| surface_2 | `#FBF3EC` |
| text | `#1A1620` |
| muted | `#6E6678` |
| border | `rgba(26,22,32,0.10)` |
| accent | `#F0468C` |
| accent_2 | `#1FB6C9` |
| accent_3 | `#F2A33C` |
| on_accent | `#FFFFFF` |
| success | `#2FAE7E` |
| warning | `#F2A33C` |
| error | `#E2546B` |
| info | `#1FB6C9` |

### Typography

- **Base Size**: 17px
- **Body Font**: Inter
- **Heading Font**: Space Grotesk
- **Mono Font**: IBM Plex Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.03em
- **Line Height**: 1.6
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap

### Radii

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

### Shadows

- **Sm**: 0 8px 24px rgba(26,22,32,0.07)
- **Md**: 0 16px 44px rgba(26,22,32,0.09)
- **Lg**: 0 30px 70px rgba(26,22,32,0.16)
- **Glow**: 0 0 0 2px rgba(31,182,201,0.20), 0 20px 48px rgba(31,182,201,0.16)

### Spacing

- **Base**: 8px
- **Scale**: [8,16,24,40,64,96]

### Surfaces

- **Treatment**: Clear white plaques on a warm near-white ground (#FBF7F2): each plaque carries the spectral split-bar on its top edge and a single soft cyan chrome light-leak in one corner, lifted by a soft warm-ink shadow, never a border.
- **Card Style**: 24px-radius white plaques, no borders; a focused (lit) plaque glows with a cyan ring instead of growing a heavier box.
- **Bg Pattern**: Warm-light ground with airbrushed continuous-tone hero imagery; the spectrum gradient recurs as the divider, the split-bar, and progress/slider tracks.

### Borders

- **Default Width**: 0
- **Character**: No borders. Separation comes from the spectral split-bar, soft warm-ink shadows, and a cyan focus glow; never grey edges or one-sided accents.

### Motion

- **Duration**: 640ms
- **Easing**: cubic-bezier(0.22,1,0.36,1)
- **Philosophy**: Refraction sweep: the split-bar fans from one end as it enters view and bands rise into place. The settled page is the no-JS default; an inline script gates the reveal behind html.js-on and respects prefers-reduced-motion.

## Rules

### Composition

Compose the page as one beam dispersed into wavelength bands. Each section opens with the spectral split-bar and a wavelength gauge; each band holds one beat, never repetitive equal-weight blocks. Sequence is built into hue, cool early to warm late.

### Hierarchy

Importance is carried by light, not by heavier boxes. A focused or active surface glows with a cyan ring and gains the spectral top-edge; it never darkens or grows a border. The colour-pop highlighter marks the one word that matters in a headline.

### Density

Airy and paced. Plaques keep generous internal padding (22-30px) and space above titles; bands have generous vertical breathing room so each reveal stays distinct.

### Signature

The spectral split-bar: a thin white seam fanned into magenta -> cyan -> amber, used as the section divider, the top edge of a lit plaque, the active-nav underline, and the fill of progress and slider tracks; with the wavelength gauge that places each band in the visible range. Both recolour on a palette swap because they are built from the role accents.

## Layout

### Grid

Contained content caps at 1200px centred; only the full-bleed hero spans 100vw. Plaques and bands float with 24-40px gaps; grids use minmax(0,1fr) and min-width:0 so children shrink rather than overflow.

### Whitespace

Whitespace is the warm-light ground the prism splits, never an empty box. Generous internal padding and space above every title.

### Density

Low to medium; the spectral bands need room to read as a sequence.

### Responsive

From ~390px mobile to 2560px+ ultra-wide. Stack to one column on mobile, hide secondary nav, switch the hero veil to a vertical fade for legibility; the hero headline uses clamp(33px,6.6vw,82px) and wraps, never clipping at 390px.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 768px
- **Desktop**: 1200px

## Guidance

### Do

- Open every section with the spectral split-bar and place its band with a wavelength gauge.
- Build hierarchy from how brightly a surface catches the light; let a focused plaque glow rather than darken.
- Keep plaques clear white with no borders; separation is the split-bar, soft shadows, and the chrome light-leak.
- Stay on the warm-light ground so the three spectral accents glow like real refracted light.
- Use the three accents like highlighters — confined to the split-bar, marks, focus, and transmitted light.
- Commit to 16 / 24 / full radii and full-pill buttons; style every form control with the spectral focus glow.
- Emphasise with a single colour-pop highlighter word; keep imagery airbrushed continuous-tone with chrome highlights.

### Don't

- Don't stack interchangeable equal-weight cards with no spectral sequence.
- Don't use grey borders, one-sided accent edges, or opaque flat fills.
- Don't let the spectrum flood a surface; three accents used like highlighters, never washes.
- Don't default to cold white; the ground is warm so the light glows.
- Don't use an oversized italic serif or the regular-serif / italic-serif word swap for headlines.
- Don't box navigation into a floating pill bar or nest cards.

### Accessibility

Text holds WCAG AA contrast against the white plaque and the warm ground. Focus is a visible cyan glow ring. Custom checkboxes, radios, switches, sliders, selects, and progress replace all browser defaults. Reduced-motion users get the settled page instantly with no sweep.

## Imagery Direction

### Pairs With

chromahaze

### Summary

1980s commercial airbrush (aerograph) imagery: soft sprayed continuous tonal gradients with no hard outlines, liquid-metal chrome highlights and crisp specular hotspots, atmospheric haze and bloom, lit by one warm source on a bright field.

### Subjects

- a single luminous focal object with a chrome seam
- a faceted prism dispersing a beam
- a serene figure in atmospheric light
- soft distant forms dissolving into haze

### Usage

One full-bleed hero per landing — a sprayed warm-bright scene with calm negative space for the overlay; full-frame airbrushed scene imagery inside scene sections; chrome highlight motifs echo the plaque light-leaks.
DESIGN.md
---
version: "alpha"
name: "Prism"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#FBF7F2"
  surface: "#FFFFFF"
  surface_2: "#FBF3EC"
  text: "#1A1620"
  muted: "#6E6678"
  accent: "#F0468C"
  accent_2: "#1FB6C9"
  accent_3: "#F2A33C"
  on_accent: "#FFFFFF"
  success: "#2FAE7E"
  warning: "#F2A33C"
  error: "#E2546B"
  info: "#1FB6C9"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.03em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.03em"
  body-md:
    fontFamily: "Inter"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.03em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "16px"
  md: "24px"
  lg: "24px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "8px"
  sm: "16px"
  md: "24px"
  lg: "40px"
  xl: "64px"
  2xl: "96px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_2:
    backgroundColor: "{colors.surface_2}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-accent_3:
    backgroundColor: "{colors.accent_3}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  button-primary:
    backgroundColor: "{colors.accent}"
    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"
---

# Prism

## Overview

A spectral narrative interface language: a page is one white beam dispersed through a prism, where each section is a wavelength of the same idea fanned into its own band so a reader moves through colour instead of down a list of equal-weight cards. It keeps the source's essence — sequenced narrative, art direction as information architecture, illustration and copy designed as one composition — but stages it as bright refracted light on a warm ground rather than a parallax storybook.

### Values

- Refraction as structure: one beam fanned into bands a reader scans across, not down
- Sequence built into hue: cool early, warm late, so a reader knows where they are by colour
- Art direction as information architecture, carried by airbrushed light rather than decoration
- Three spectral accents used like highlighters on a bright warm ground, never washes
- Importance read by how brightly a surface catches the light, never by a heavier box

### Anti-Values

- Generic SaaS chrome and uniform equal-weight card grids
- Muddy pastel washes with no light source
- Grey borders and one-sided accent edges on cards
- Cold default white as a reflex ground with no warmth for the light to glow against
- Oversized italic-serif headlines or the regular-serif / italic-serif word swap

### Visual Character

- A bright warm near-white ground that the prism splits, with three spectral accents glowing like refracted light.
- The spectral split-bar: a thin white seam fanned into magenta-cyan-amber that opens every section, caps a focused surface, and underlines the active link.
- A wavelength gauge places each band in the visible range (440 to 680 nm) so the page reads like a tuned instrument.
- Prism plaques: clear white surfaces lit by a single refracted chrome light-leak in one corner, never a border; a focused plaque glows.
- Space Grotesk display with a single colour-pop highlighter word, Inter body, IBM Plex Mono wavelengths; airbrushed scene imagery with a caption plaque overlapping the frame like a margin note.

## 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 | `#FBF7F2` |
| surface | `#FFFFFF` |
| surface_2 | `#FBF3EC` |
| text | `#1A1620` |
| muted | `#6E6678` |
| accent | `#F0468C` |
| accent_2 | `#1FB6C9` |
| accent_3 | `#F2A33C` |
| on_accent | `#FFFFFF` |
| success | `#2FAE7E` |
| warning | `#F2A33C` |
| error | `#E2546B` |
| info | `#1FB6C9` |

## Typography

- **Headline-Lg**: Space Grotesk, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Space Grotesk, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 17px, weight 400, line-height 1.5.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `8px`
- **Sm**: `16px`
- **Md**: `24px`
- **Lg**: `40px`
- **Xl**: `64px`
- **2xl**: `96px`

### Grid

Contained content caps at 1200px centred; only the full-bleed hero spans 100vw. Plaques and bands float with 24-40px gaps; grids use minmax(0,1fr) and min-width:0 so children shrink rather than overflow.

### Whitespace

Whitespace is the warm-light ground the prism splits, never an empty box. Generous internal padding and space above every title.

### Density

Low to medium; the spectral bands need room to read as a sequence.

### Responsive

From ~390px mobile to 2560px+ ultra-wide. Stack to one column on mobile, hide secondary nav, switch the hero veil to a vertical fade for legibility; the hero headline uses clamp(33px,6.6vw,82px) and wraps, never clipping at 390px.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 768px
- **Desktop**: 1200px

## Elevation & Depth

### Shadows

- **Sm**: 0 8px 24px rgba(26,22,32,0.07)
- **Md**: 0 16px 44px rgba(26,22,32,0.09)
- **Lg**: 0 30px 70px rgba(26,22,32,0.16)
- **Glow**: 0 0 0 2px rgba(31,182,201,0.20), 0 20px 48px rgba(31,182,201,0.16)

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: Clear white plaques on a warm near-white ground (#FBF7F2): each plaque carries the spectral split-bar on its top edge and a single soft cyan chrome light-leak in one corner, lifted by a soft warm-ink shadow, never a border.
- **Card Style**: 24px-radius white plaques, no borders; a focused (lit) plaque glows with a cyan ring instead of growing a heavier box.
- **Bg Pattern**: Warm-light ground with airbrushed continuous-tone hero imagery; the spectrum gradient recurs as the divider, the split-bar, and progress/slider tracks.

### Borders

- **Default Width**: 0
- **Character**: No borders. Separation comes from the spectral split-bar, soft warm-ink shadows, and a cyan focus glow; never grey edges or one-sided accents.

## Components

### Composition

Compose the page as one beam dispersed into wavelength bands. Each section opens with the spectral split-bar and a wavelength gauge; each band holds one beat, never repetitive equal-weight blocks. Sequence is built into hue, cool early to warm late.

### Hierarchy

Importance is carried by light, not by heavier boxes. A focused or active surface glows with a cyan ring and gains the spectral top-edge; it never darkens or grows a border. The colour-pop highlighter marks the one word that matters in a headline.

### Density

Airy and paced. Plaques keep generous internal padding (22-30px) and space above titles; bands have generous vertical breathing room so each reveal stays distinct.

### Signature

The spectral split-bar: a thin white seam fanned into magenta -> cyan -> amber, used as the section divider, the top edge of a lit plaque, the active-nav underline, and the fill of progress and slider tracks; with the wavelength gauge that places each band in the visible range. Both recolour on a palette swap because they are built from the role accents.

## 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-019efdea-412c-7b42-b932-7fe61c5d8f6f/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 Open every section with the spectral split-bar and place its band with a wavelength gauge.
- Do Build hierarchy from how brightly a surface catches the light; let a focused plaque glow rather than darken.
- Do Keep plaques clear white with no borders; separation is the split-bar, soft shadows, and the chrome light-leak.
- Do Stay on the warm-light ground so the three spectral accents glow like real refracted light.
- Do Use the three accents like highlighters — confined to the split-bar, marks, focus, and transmitted light.
- Do Commit to 16 / 24 / full radii and full-pill buttons; style every form control with the spectral focus glow.
- Do Emphasise with a single colour-pop highlighter word; keep imagery airbrushed continuous-tone with chrome highlights.
- Don't Don't stack interchangeable equal-weight cards with no spectral sequence.
- Don't Don't use grey borders, one-sided accent edges, or opaque flat fills.
- Don't Don't let the spectrum flood a surface; three accents used like highlighters, never washes.
- Don't Don't default to cold white; the ground is warm so the light glows.
- Don't Don't use an oversized italic serif or the regular-serif / italic-serif word swap for headlines.
- Don't Don't box navigation into a floating pill bar or nest cards.

### Accessibility

Text holds WCAG AA contrast against the white plaque and the warm ground. Focus is a visible cyan glow ring. Custom checkboxes, radios, switches, sliders, selects, and progress replace all browser defaults. Reduced-motion users get the settled page instantly with no sweep.

## Imagery Direction

### Pairs With

chromahaze

### Summary

1980s commercial airbrush (aerograph) imagery: soft sprayed continuous tonal gradients with no hard outlines, liquid-metal chrome highlights and crisp specular hotspots, atmospheric haze and bloom, lit by one warm source on a bright field.

### Subjects

- a single luminous focal object with a chrome seam
- a faceted prism dispersing a beam
- a serene figure in atmospheric light
- soft distant forms dissolving into haze

### Usage

One full-bleed hero per landing — a sprayed warm-bright scene with calm negative space for the overlay; full-frame airbrushed scene imagery inside scene sections; chrome highlight motifs echo the plaque light-leaks.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "prism",
  "type": "registry:theme",
  "title": "Prism shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FBF7F2",
      "foreground": "#1A1620",
      "card": "#FFFFFF",
      "card-foreground": "#1A1620",
      "popover": "#FFFFFF",
      "popover-foreground": "#1A1620",
      "primary": "#1A1620",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#6E6678",
      "muted-foreground": "#1A1620",
      "accent": "#F0468C",
      "accent-foreground": "#ffffff",
      "destructive": "#E2546B",
      "border": "rgba(26,22,32,0.10)",
      "input": "rgba(26,22,32,0.10)",
      "ring": "#F0468C",
      "chart-1": "#1A1620",
      "chart-2": "#f4f4f5",
      "chart-3": "#F0468C",
      "chart-4": "#2FAE7E",
      "chart-5": "#F2A33C",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#1A1620",
      "sidebar-primary": "#1A1620",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#1FB6C9",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "rgba(26,22,32,0.10)",
      "sidebar-ring": "#F0468C",
      "radius": "24px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#1A1620",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#F0468C",
      "accent-foreground": "#ffffff",
      "destructive": "#E2546B",
      "border": "#303642",
      "input": "#303642",
      "ring": "#F0468C",
      "chart-1": "#1A1620",
      "chart-2": "#f4f4f5",
      "chart-3": "#F0468C",
      "chart-4": "#2FAE7E",
      "chart-5": "#F2A33C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#1A1620",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#F0468C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#F0468C",
      "radius": "24px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efdea-412c-7b42-b932-7fe61c5d8f6f",
    "slug": "prism",
    "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",
        "accent_2",
        "accent_3",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "glow",
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "character",
        "default_width"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

bespoke marketing landingopen full page ↗
landing · prism
DESIGN.md

at a glance

Typography

headline-lgSpace Grotesk · 33px · 700

The quick brown fox jumps

headline-mdSpace Grotesk · 27px · 600

The quick brown fox jumps

body-mdInter · 17px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

produced by opus-4.8 · sourced by opus-4.8 · images by gpt-image-2

remix lane

try a remix

Keep Prismand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.

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

Family

related

More like this