back to gallery
design language·caustic

Caustic

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 refractive interface system where light behaviour does the structural work. Surfaces stay clear and translucent on optical-black; caustics carry hierarchy, a single spectral light-line carries rhythm, and dispersion marks emphasis. It keeps the source's essence — refraction, translucency, depth through light — but stages it as light in darkness instead of frosting everything into blur.
values
Light as structure: a focused surface glows and catches the light rather than darkening or growing a heavier boxClarity over blur: panes stay clear and translucent; the system changes how light moves across them, not how opaque they areRefraction as rhythm: one spectral caustic light-line replaces rules and dividersDispersion as signal: the rainbow fringe is spent only on the highest-contrast edges, so it always reads as emphasisMaterial honesty: surfaces behave like real optical glass against a dark field, the way a prism is shown in a dark room
anti-values
×Frosting everything into blur and calling it hierarchy×Opaque flat card fills, grey borders, or one-sided accent edges×Letting the spectrum flood — three accents stay highlighters, never washes×Light-first white minimalism as a default; this language stages light against darkness×Arbitrary in-between radii or hard black drop shadows
tokens
colors15 items
bg
#0A0C12
surface
#12151E
surface_2
#171B27
text
#F4F6FB
muted
#8A93A8
border
rgba(255,255,255,0.08)
hairline
rgba(255,255,255,0.12)
accent
#3DE0E6
accent_2
#FF5C8A
accent_3
#FFC14D
on_accent
#07090F
success
#4FD79B
warning
#FFC14D
error
#FF6B7E
info
#3DE0E6
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.55
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600&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 2px 10px rgba(0,0,0,0.40)
md
0 8px 32px rgba(0,0,0,0.50)
lg
0 18px 50px rgba(0,0,0,0.55)
glow
0 0 0 1px rgba(61,224,230,0.35), 0 0 28px rgba(61,224,230,0.22)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
treatment
Clear translucent panes: linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)) with an inset 1px white highlight and a soft black shadow, over a deep optical-black field carrying faint cyan/rose/amber ambient blobs.
card style
24px-radius clear lenses, no borders or opaque fills; a focused (lit) pane glows with a cyan ring and carries the spectral light-line on its top edge.
bg pattern
Optical-black ground with oversized, very soft blurred cyan, rose, and amber radial fields as the ambient light the glass refracts.
borders2 items
default width
0
character
No borders. Depth from a 1px inner highlight, the caustic rim, and soft shadows; never grey edges or one-sided accents.
motion3 items
duration
260ms
easing
cubic-bezier(.2,.8,.2,1)
philosophy
Liquid but restrained behind a reduced-motion gate. The settled page is the no-JS default; an inline script gates a gentle scroll-reveal. Hover lifts a pane 2px and deepens its glow.
rules
composition
Build hierarchy from how surfaces catch light. Keep panes clear and translucent with no borders or opaque fills. Run a single spectral caustic light-line through the page as the divider and the mark of a focused surface. Hold dispersion (the rainbow fringe) to the highest-contrast edges only.
hierarchy
Importance is carried by light, not by heavier boxes or louder colour. Focused and active elements glow with a cyan ring and gain the spectral top-edge; they never darken. Typography weight provides secondary hierarchy on each clear pane.
density

Spacious and atmospheric; clear glass needs breathing room. Minimum 22-24px internal padding on panes, generous space above titles.

signature
The caustic light-line: a 2px spectral gradient (cyan -> periwinkle -> rose -> amber, fading at both ends) used as section divider, the top edge of a lit pane, the active-nav underline, and the fill of progress and split-bar tracks; it recolours on a palette swap because it is built from the role accents.
layout
grid
Contained content caps at 1180px centred; the full-bleed hero spans 100vw. Panes float with 20-24px gaps; grids use minmax(0,1fr) and min-width:0 so children shrink rather than overflow.
whitespace

Whitespace is the optical-black field carrying faint ambient colour, not blank white. Generous internal padding and space above titles.

density

Low to medium; the refractive material needs room to read.

responsive
From ~390px mobile to 2560px+ ultra-wide. Stack to one column on mobile, drop secondary nav links, darken the hero veil for legibility; the hero headline uses clamp(33px,8.2vw,86px) and wraps, never clipping at 390px.
breakpoints
mobile
390px
tablet
768px
desktop
1180px
guidance
do
  • Build hierarchy from how surfaces catch light; let a focused pane glow rather than darken.
  • Keep every pane clear and translucent — no opaque flat fills, no borders.
  • Run the single spectral caustic light-line through the page as the divider and the mark of a lit surface.
  • Hold dispersion (the rainbow fringe) to the sharpest, highest-contrast edges only.
  • Stay on optical-black so the three spectral accents glow like real refracted light.
  • Commit to 16px and 24px containers and full pills; style every form control with custom states.
  • Use soft, colored or black shadows and a cyan glow for focus — never hard outlines.
avoid
  • Don't frost or blur everything into a hierarchy; clarity is the point.
  • Don't use opaque flat card fills, grey borders, or one-sided accent edges.
  • Don't let the spectrum flood; three accents used like highlighters, never washes.
  • Don't mix arbitrary radii; commit to 16 / 24 / full.
  • Don't let semantic colours lead — they stay a quiet, legible part of the palette.
  • Don't box navigation into a floating pill bar or nest cards.
imagery
pairs with

caustic-refraction

summary
Refractive optical-light studies: subjects seen and lit through clear and frosted glass, washed by caustic light with thin chromatic-dispersion fringes on the highest-contrast edges, glowing against deep darkness.
subjects
a faceted optical prisma single product or object through glassa portrait through a lensa city skyline refracted through glassabstract caustic light-nets
usage
One full-bleed hero per landing showing the caustic beam dispersing across the dark with calm negative space for the overlay; feature and section imagery in the same refractive technique.
katagami spec
# Caustic

## Philosophy

A refractive interface system where light behaviour does the structural work. Surfaces stay clear and translucent on optical-black; caustics carry hierarchy, a single spectral light-line carries rhythm, and dispersion marks emphasis. It keeps the source's essence — refraction, translucency, depth through light — but stages it as light in darkness instead of frosting everything into blur.

### Values

- Light as structure: a focused surface glows and catches the light rather than darkening or growing a heavier box
- Clarity over blur: panes stay clear and translucent; the system changes how light moves across them, not how opaque they are
- Refraction as rhythm: one spectral caustic light-line replaces rules and dividers
- Dispersion as signal: the rainbow fringe is spent only on the highest-contrast edges, so it always reads as emphasis
- Material honesty: surfaces behave like real optical glass against a dark field, the way a prism is shown in a dark room

### Anti-Values

- Frosting everything into blur and calling it hierarchy
- Opaque flat card fills, grey borders, or one-sided accent edges
- Letting the spectrum flood — three accents stay highlighters, never washes
- Light-first white minimalism as a default; this language stages light against darkness
- Arbitrary in-between radii or hard black drop shadows

### Visual Character

- Clear, translucent panes over a deep optical-black field, with a 1px inner highlight and a soft black shadow instead of borders.
- A 2px spectral caustic light-line (cyan to periwinkle to rose to amber, fading at both ends) recurs as the divider, the top edge of a focused pane, and the active-nav underline.
- Focused and active surfaces glow with a cyan ring rather than darkening; importance reads by how brightly a surface catches the light.
- Three spectral accents (cyan, rose, amber) used like highlighters against the dark, plus faint blurred colour-fields as the ambient light the glass refracts.
- A disciplined optical geometry of 16px and 24px containers and full pills, Space Grotesk display, Inter body, IBM Plex Mono metadata.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#0A0C12` |
| surface | `#12151E` |
| surface_2 | `#171B27` |
| text | `#F4F6FB` |
| muted | `#8A93A8` |
| border | `rgba(255,255,255,0.08)` |
| hairline | `rgba(255,255,255,0.12)` |
| accent | `#3DE0E6` |
| accent_2 | `#FF5C8A` |
| accent_3 | `#FFC14D` |
| on_accent | `#07090F` |
| success | `#4FD79B` |
| warning | `#FFC14D` |
| error | `#FF6B7E` |
| info | `#3DE0E6` |

### 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.55
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap

### Radii

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

### Shadows

- **Sm**: 0 2px 10px rgba(0,0,0,0.40)
- **Md**: 0 8px 32px rgba(0,0,0,0.50)
- **Lg**: 0 18px 50px rgba(0,0,0,0.55)
- **Glow**: 0 0 0 1px rgba(61,224,230,0.35), 0 0 28px rgba(61,224,230,0.22)

### Spacing

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

### Surfaces

- **Treatment**: Clear translucent panes: linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)) with an inset 1px white highlight and a soft black shadow, over a deep optical-black field carrying faint cyan/rose/amber ambient blobs.
- **Card Style**: 24px-radius clear lenses, no borders or opaque fills; a focused (lit) pane glows with a cyan ring and carries the spectral light-line on its top edge.
- **Bg Pattern**: Optical-black ground with oversized, very soft blurred cyan, rose, and amber radial fields as the ambient light the glass refracts.

### Borders

- **Default Width**: 0
- **Character**: No borders. Depth from a 1px inner highlight, the caustic rim, and soft shadows; never grey edges or one-sided accents.

### Motion

- **Duration**: 260ms
- **Easing**: cubic-bezier(.2,.8,.2,1)
- **Philosophy**: Liquid but restrained behind a reduced-motion gate. The settled page is the no-JS default; an inline script gates a gentle scroll-reveal. Hover lifts a pane 2px and deepens its glow.

## Rules

### Composition

Build hierarchy from how surfaces catch light. Keep panes clear and translucent with no borders or opaque fills. Run a single spectral caustic light-line through the page as the divider and the mark of a focused surface. Hold dispersion (the rainbow fringe) to the highest-contrast edges only.

### Hierarchy

Importance is carried by light, not by heavier boxes or louder colour. Focused and active elements glow with a cyan ring and gain the spectral top-edge; they never darken. Typography weight provides secondary hierarchy on each clear pane.

### Density

Spacious and atmospheric; clear glass needs breathing room. Minimum 22-24px internal padding on panes, generous space above titles.

### Signature

The caustic light-line: a 2px spectral gradient (cyan -> periwinkle -> rose -> amber, fading at both ends) used as section divider, the top edge of a lit pane, the active-nav underline, and the fill of progress and split-bar tracks; it recolours on a palette swap because it is built from the role accents.

## Layout

### Grid

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

### Whitespace

Whitespace is the optical-black field carrying faint ambient colour, not blank white. Generous internal padding and space above titles.

### Density

Low to medium; the refractive material needs room to read.

### Responsive

From ~390px mobile to 2560px+ ultra-wide. Stack to one column on mobile, drop secondary nav links, darken the hero veil for legibility; the hero headline uses clamp(33px,8.2vw,86px) and wraps, never clipping at 390px.

### Breakpoints

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

## Guidance

### Do

- Build hierarchy from how surfaces catch light; let a focused pane glow rather than darken.
- Keep every pane clear and translucent — no opaque flat fills, no borders.
- Run the single spectral caustic light-line through the page as the divider and the mark of a lit surface.
- Hold dispersion (the rainbow fringe) to the sharpest, highest-contrast edges only.
- Stay on optical-black so the three spectral accents glow like real refracted light.
- Commit to 16px and 24px containers and full pills; style every form control with custom states.
- Use soft, colored or black shadows and a cyan glow for focus — never hard outlines.

### Don't

- Don't frost or blur everything into a hierarchy; clarity is the point.
- Don't use opaque flat card fills, grey borders, or one-sided accent edges.
- Don't let the spectrum flood; three accents used like highlighters, never washes.
- Don't mix arbitrary radii; commit to 16 / 24 / full.
- Don't let semantic colours lead — they stay a quiet, legible part of the palette.
- Don't box navigation into a floating pill bar or nest cards.

### Accessibility

Text holds WCAG AA contrast against the clear pane surface, not just the field behind it. 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 state instantly with no blur transitions.

## Imagery Direction

### Pairs With

caustic-refraction

### Summary

Refractive optical-light studies: subjects seen and lit through clear and frosted glass, washed by caustic light with thin chromatic-dispersion fringes on the highest-contrast edges, glowing against deep darkness.

### Subjects

- a faceted optical prism
- a single product or object through glass
- a portrait through a lens
- a city skyline refracted through glass
- abstract caustic light-nets

### Usage

One full-bleed hero per landing showing the caustic beam dispersing across the dark with calm negative space for the overlay; feature and section imagery in the same refractive technique.
DESIGN.md
---
version: "alpha"
name: "Caustic"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#0A0C12"
  surface: "#12151E"
  surface_2: "#171B27"
  text: "#F4F6FB"
  muted: "#8A93A8"
  accent: "#3DE0E6"
  accent_2: "#FF5C8A"
  accent_3: "#FFC14D"
  on_accent: "#07090F"
  success: "#4FD79B"
  warning: "#FFC14D"
  error: "#FF6B7E"
  info: "#3DE0E6"
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: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "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"
---

# Caustic

## Overview

A refractive interface system where light behaviour does the structural work. Surfaces stay clear and translucent on optical-black; caustics carry hierarchy, a single spectral light-line carries rhythm, and dispersion marks emphasis. It keeps the source's essence — refraction, translucency, depth through light — but stages it as light in darkness instead of frosting everything into blur.

### Values

- Light as structure: a focused surface glows and catches the light rather than darkening or growing a heavier box
- Clarity over blur: panes stay clear and translucent; the system changes how light moves across them, not how opaque they are
- Refraction as rhythm: one spectral caustic light-line replaces rules and dividers
- Dispersion as signal: the rainbow fringe is spent only on the highest-contrast edges, so it always reads as emphasis
- Material honesty: surfaces behave like real optical glass against a dark field, the way a prism is shown in a dark room

### Anti-Values

- Frosting everything into blur and calling it hierarchy
- Opaque flat card fills, grey borders, or one-sided accent edges
- Letting the spectrum flood — three accents stay highlighters, never washes
- Light-first white minimalism as a default; this language stages light against darkness
- Arbitrary in-between radii or hard black drop shadows

### Visual Character

- Clear, translucent panes over a deep optical-black field, with a 1px inner highlight and a soft black shadow instead of borders.
- A 2px spectral caustic light-line (cyan to periwinkle to rose to amber, fading at both ends) recurs as the divider, the top edge of a focused pane, and the active-nav underline.
- Focused and active surfaces glow with a cyan ring rather than darkening; importance reads by how brightly a surface catches the light.
- Three spectral accents (cyan, rose, amber) used like highlighters against the dark, plus faint blurred colour-fields as the ambient light the glass refracts.
- A disciplined optical geometry of 16px and 24px containers and full pills, Space Grotesk display, Inter body, IBM Plex Mono metadata.

## 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 | `#0A0C12` |
| surface | `#12151E` |
| surface_2 | `#171B27` |
| text | `#F4F6FB` |
| muted | `#8A93A8` |
| accent | `#3DE0E6` |
| accent_2 | `#FF5C8A` |
| accent_3 | `#FFC14D` |
| on_accent | `#07090F` |
| success | `#4FD79B` |
| warning | `#FFC14D` |
| error | `#FF6B7E` |
| info | `#3DE0E6` |

## 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**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`

### Grid

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

### Whitespace

Whitespace is the optical-black field carrying faint ambient colour, not blank white. Generous internal padding and space above titles.

### Density

Low to medium; the refractive material needs room to read.

### Responsive

From ~390px mobile to 2560px+ ultra-wide. Stack to one column on mobile, drop secondary nav links, darken the hero veil for legibility; the hero headline uses clamp(33px,8.2vw,86px) and wraps, never clipping at 390px.

### Breakpoints

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

## Elevation & Depth

### Shadows

- **Sm**: 0 2px 10px rgba(0,0,0,0.40)
- **Md**: 0 8px 32px rgba(0,0,0,0.50)
- **Lg**: 0 18px 50px rgba(0,0,0,0.55)
- **Glow**: 0 0 0 1px rgba(61,224,230,0.35), 0 0 28px rgba(61,224,230,0.22)

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: Clear translucent panes: linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)) with an inset 1px white highlight and a soft black shadow, over a deep optical-black field carrying faint cyan/rose/amber ambient blobs.
- **Card Style**: 24px-radius clear lenses, no borders or opaque fills; a focused (lit) pane glows with a cyan ring and carries the spectral light-line on its top edge.
- **Bg Pattern**: Optical-black ground with oversized, very soft blurred cyan, rose, and amber radial fields as the ambient light the glass refracts.

### Borders

- **Default Width**: 0
- **Character**: No borders. Depth from a 1px inner highlight, the caustic rim, and soft shadows; never grey edges or one-sided accents.

## Components

### Composition

Build hierarchy from how surfaces catch light. Keep panes clear and translucent with no borders or opaque fills. Run a single spectral caustic light-line through the page as the divider and the mark of a focused surface. Hold dispersion (the rainbow fringe) to the highest-contrast edges only.

### Hierarchy

Importance is carried by light, not by heavier boxes or louder colour. Focused and active elements glow with a cyan ring and gain the spectral top-edge; they never darken. Typography weight provides secondary hierarchy on each clear pane.

### Density

Spacious and atmospheric; clear glass needs breathing room. Minimum 22-24px internal padding on panes, generous space above titles.

### Signature

The caustic light-line: a 2px spectral gradient (cyan -> periwinkle -> rose -> amber, fading at both ends) used as section divider, the top edge of a lit pane, the active-nav underline, and the fill of progress and split-bar tracks; it recolours on a palette swap because it is 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-019efd9f-65f4-7b13-a093-13b150e72873/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 Build hierarchy from how surfaces catch light; let a focused pane glow rather than darken.
- Do Keep every pane clear and translucent — no opaque flat fills, no borders.
- Do Run the single spectral caustic light-line through the page as the divider and the mark of a lit surface.
- Do Hold dispersion (the rainbow fringe) to the sharpest, highest-contrast edges only.
- Do Stay on optical-black so the three spectral accents glow like real refracted light.
- Do Commit to 16px and 24px containers and full pills; style every form control with custom states.
- Do Use soft, colored or black shadows and a cyan glow for focus — never hard outlines.
- Don't Don't frost or blur everything into a hierarchy; clarity is the point.
- Don't Don't use opaque flat card fills, grey borders, or one-sided accent edges.
- Don't Don't let the spectrum flood; three accents used like highlighters, never washes.
- Don't Don't mix arbitrary radii; commit to 16 / 24 / full.
- Don't Don't let semantic colours lead — they stay a quiet, legible part of the palette.
- Don't Don't box navigation into a floating pill bar or nest cards.

### Accessibility

Text holds WCAG AA contrast against the clear pane surface, not just the field behind it. 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 state instantly with no blur transitions.

## Imagery Direction

### Pairs With

caustic-refraction

### Summary

Refractive optical-light studies: subjects seen and lit through clear and frosted glass, washed by caustic light with thin chromatic-dispersion fringes on the highest-contrast edges, glowing against deep darkness.

### Subjects

- a faceted optical prism
- a single product or object through glass
- a portrait through a lens
- a city skyline refracted through glass
- abstract caustic light-nets

### Usage

One full-bleed hero per landing showing the caustic beam dispersing across the dark with calm negative space for the overlay; feature and section imagery in the same refractive technique.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "caustic",
  "type": "registry:theme",
  "title": "Caustic shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0A0C12",
      "foreground": "#F4F6FB",
      "card": "#12151E",
      "card-foreground": "#F4F6FB",
      "popover": "#12151E",
      "popover-foreground": "#F4F6FB",
      "primary": "#F4F6FB",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#8A93A8",
      "muted-foreground": "#F4F6FB",
      "accent": "#3DE0E6",
      "accent-foreground": "#111111",
      "destructive": "#FF6B7E",
      "border": "rgba(255,255,255,0.08)",
      "input": "rgba(255,255,255,0.08)",
      "ring": "#3DE0E6",
      "chart-1": "#F4F6FB",
      "chart-2": "#f4f4f5",
      "chart-3": "#3DE0E6",
      "chart-4": "#4FD79B",
      "chart-5": "#FFC14D",
      "sidebar": "#12151E",
      "sidebar-foreground": "#F4F6FB",
      "sidebar-primary": "#F4F6FB",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#3DE0E6",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "rgba(255,255,255,0.08)",
      "sidebar-ring": "#3DE0E6",
      "radius": "24px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#F4F6FB",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#3DE0E6",
      "accent-foreground": "#111111",
      "destructive": "#FF6B7E",
      "border": "#303642",
      "input": "#303642",
      "ring": "#3DE0E6",
      "chart-1": "#F4F6FB",
      "chart-2": "#f4f4f5",
      "chart-3": "#3DE0E6",
      "chart-4": "#4FD79B",
      "chart-5": "#FFC14D",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#F4F6FB",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#3DE0E6",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#3DE0E6",
      "radius": "24px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efd9f-65f4-7b13-a093-13b150e72873",
    "slug": "caustic",
    "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",
        "hairline",
        "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 · caustic
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 Causticand 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
Caustic
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

related

More like this