back to gallery
design language·ringback

Ringback

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 private home-network interface staged as a single phone line held open in a dark room at night. One continuous carrier spine descends the page; every node, status, and action rings out sideways from it. The mood is the ringback tone — the moment after you dial and before anyone answers — domestic, technical, and patiently alone. It reimagines the bedroom-console brief not as scattered desktop windows but as one line you follow down a wire.
values
Loneliness made operational: one line held open, the rest of the room dark and quiet.A line you follow, not a desktop you arrange: the carrier spine is the single organizing structure.Metronomic cadence: content is beaten down the spine at an even pulse, like a dial tone, not scattered in charged voids.Domestic technology over cyber spectacle: carrier tones, ring-nodes, held lines, and bedroom-console proportions instead of neon.Night ground by design: a dark ink-violet room lit only by the warm amber of the one connected line.Manga precision under soft CRT phosphor: off-black hairline linework aligned to the spine and its nodes.
anti-values
×No floating desktop windows, title bars, or modem-LED window chrome.×No light powder-gray field; no off-center asymmetric shrine layout.×No saturated cyberpunk neon, electric-blue floods, or rainbow glitch.×No oversized italic-serif startup headline; no generic SaaS dashboard of equal cheerful cards.×No glossy 3D buttons, glassmorphism excess, or heavy grey drop shadows.
tokens
colors16 items
bg
#15131F
surface
#1E1B2B
secondary
#2A2638
text
#EDEBF5
muted
#8C88A6
border
#34304A
primary
#E8B23C
accent
#E8B23C
on_accent
#1A1408
spark
#5FE0C6
violet
#9C8CF0
bloom
#2D2942
success
#6FB59A
warning
#D8A24E
error
#C56C84
info
#8E96CE
typography10 items
base size
17px
body font
Space Grotesk
heading font
Space Grotesk
mono font
Spline Sans Mono
heading weight
700
heading transform
none
letter spacing
-0.01em
line height
1.55
scale ratio
1.22
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap
radii5 items
none
0px
sm
0px
md
16px
lg
24px
full
9999px
shadows3 items
sm
0 0 0 1px #34304A, 0 0 18px rgba(232,178,60,.10)
md
0 0 0 1px #34304A, 0 0 36px rgba(232,178,60,.14)
lg
0 0 0 1px #34304A, 0 18px 64px rgba(0,0,0,.55), 0 0 60px rgba(156,140,240,.14)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
bg pattern
A deep ink-violet night-room field under a low-opacity scanline veil (repeating-linear-gradient) with faint radial violet and amber blooms; a continuous 2px carrier spine descends every layout with hairline node-and-cable schematics creeping in behind it.
card style
Matte panels lifted barely off the dark with a hairline 1px off-black seam; a soft amber or violet glow stands in for any drop shadow; a 'live' panel warms to a faint amber-to-bloom gradient. No window chrome, no nested cards, no accent edges.
treatment
Glow over shadow — light is a bloom behind the one connected element, never a grey box shadow; never glossy, never neon.
borders4 items
default width
1px
accent width
2px
style
solid
character
Off-black manga-ink hairlines in #34304A tuned to the violet dark; the carrier spine and active ring-nodes light amber. No ornamental flourishes, no single accent edge on a card.
motion3 items
duration
1400ms
easing
cubic-bezier(0.16, 1, 0.3, 1)
philosophy
The line breathing in a dark room: a slow ringback pulse travels down the carrier spine, waiting nodes blink like a held line, and a faint phosphor drift moves across the dark — never fast. The settled, fully-rendered page is the default and visible with no JavaScript; motion is layered on top behind a js class on <html> and respects prefers-reduced-motion.
rules
composition
A strict single carrier-spine timeline, not a balanced dashboard or an asymmetric floating field. One continuous vertical signal line organizes every screen; content rings out from circular nodes on the line at a metronomic cadence, with generous quiet to the left of the spine.
hierarchy
Hierarchy through activation state on the spine. The active node is filled amber with a bloom seat and a lit amber connector; quiet nodes are hollow hairline rings; a waiting node pulses violet. Space Grotesk headers are measured carrier labels beside small grouped Spline Sans Mono readouts.
density
Medium-low. Detail gathers in islands strung on the line — a ledger, a status rail, a switchboard knot — while the surrounding dark room stays quiet enough to feel private and overnight.
signature
Carrier spine (a continuous vertical signal line); ring-node (content pinned to lit/hollow/pulsing nodes); ring-out (rows extending sideways from nodes at a metronomic cadence); carrier readout (a thin mono status track that keeps the line legible); phosphor veil (scanlines + lavender noise + soft bloom over the dark).
layout
grid
A single-spine timeline rather than a 12-column floating field. The carrier spine sits left-of-center on desktop; rows ring out to its right inside a max-width 1240px container. minmax(0,1fr) columns and min-width:0 children so grids never overflow.
whitespace

Charged screen silence around the spine — broad quiet to its left; never fill unused room with extra widgets.

density

Intentionally uneven: dark quiet expanse against dense islands of ledger rows, status rails, and switchboard linework strung on the line.

responsive
On small screens the spine pins to the left gutter and rows stack to a single column while staying strung on the line; reading order is preserved as a descent; mono labels stay legible at 11px minimum; never overflow horizontally.
breakpoints
mobile
<560px single column, spine pinned to left gutter, nav hidden
tablet
560-1000px reduced gutters, two-up rails
desktop
>1000px full single-spine timeline
ultrawide
cap and centre the contained content; only the full-bleed hero spans 100vw
guidance
do
  • Run one continuous carrier spine down every layout and pin all content to ring-nodes on it.
  • Light exactly one active node amber per view; keep the rest hollow and quiet.
  • Beat rows down the spine at an even, metronomic cadence — the rhythm of a dial tone.
  • Keep a thin mono carrier readout (strength, hold time, hops) alongside the line.
  • Ground everything in the dark ink-violet night room; use amber, one cyan-green spark, and one violet glow like highlighters.
  • Use a soft glow behind live elements instead of grey drop shadows.
  • Style every form control explicitly for the dark; one button is primary in amber, the rest quiet.
avoid
  • Do not stage content as floating desktop windows, title bars, or modem-LED chrome.
  • Do not switch to a light powder-gray field or an off-center asymmetric shrine — that is the sibling, not this.
  • Do not use saturated neon, electric-blue floods, or rainbow glitch.
  • Do not nest cards, give a card a single accent edge, or box the nav in a floating pill.
  • Do not use an oversized italic-serif headline or a generic SaaS dashboard of equal cheerful cards.
  • Do not rely on default form controls, browser fonts, or unstyled buttons.
  • Do not let detail fill every node — keep islands of metadata and stretches of dark silence.
imagery
pairs with

cathode-hush

summary
Every Ringback image is rendered as if captured off a dim CRT at night in the Cathode Hush technique — near-grayscale with a faint lavender cast, off-black manga-ink hairlines, scanline veil, soft radial bloom, and one or two tiny cyan-green sparks — applied to subjects of the held home phone line: coiled cords descending as a carrier spine, ring-nodes, switchboard cable maps, and the dark bedroom around them.
subjects
a coiled phone cord descending through a dark bedroom as a carrier spinea single glowing ring-node at the foot of the linehairline node-and-cable switchboard maps creeping across a dark rooman unlit bedroom with one connected line awake
usage
Use the hero slot for the full-bleed descending-cord composition; feature and illustration slots for switchboard maps and single ring-nodes; keep every image matte, dark, and quiet — the dark room is the ground and the warm node is the only light.
katagami spec
# Ringback

## Philosophy

A private home-network interface staged as a single phone line held open in a dark room at night. One continuous carrier spine descends the page; every node, status, and action rings out sideways from it. The mood is the ringback tone — the moment after you dial and before anyone answers — domestic, technical, and patiently alone. It reimagines the bedroom-console brief not as scattered desktop windows but as one line you follow down a wire.

### Values

- Loneliness made operational: one line held open, the rest of the room dark and quiet.
- A line you follow, not a desktop you arrange: the carrier spine is the single organizing structure.
- Metronomic cadence: content is beaten down the spine at an even pulse, like a dial tone, not scattered in charged voids.
- Domestic technology over cyber spectacle: carrier tones, ring-nodes, held lines, and bedroom-console proportions instead of neon.
- Night ground by design: a dark ink-violet room lit only by the warm amber of the one connected line.
- Manga precision under soft CRT phosphor: off-black hairline linework aligned to the spine and its nodes.

### Anti-Values

- No floating desktop windows, title bars, or modem-LED window chrome.
- No light powder-gray field; no off-center asymmetric shrine layout.
- No saturated cyberpunk neon, electric-blue floods, or rainbow glitch.
- No oversized italic-serif startup headline; no generic SaaS dashboard of equal cheerful cards.
- No glossy 3D buttons, glassmorphism excess, or heavy grey drop shadows.

### Visual Character

- Run one continuous 2px carrier spine down every layout; pin content to circular ring-nodes on it.
- Light the active node amber with a soft bloom seat; keep quiet nodes as hollow hairline rings, and pulse a waiting node in violet.
- Ring content out sideways from each node with a short connector hairline, beaten down at a metronomic cadence.
- Keep a thin mono carrier readout alongside the spine so the line always reads as connected and waiting.
- Ground everything in a deep ink-violet night room; let warm amber, a cyan-green phosphor spark, and a violet glow be the only voices.
- Substitute soft amber/violet glow for grey drop shadows; layer a low-opacity scanline veil over the dark.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#15131F` |
| surface | `#1E1B2B` |
| secondary | `#2A2638` |
| text | `#EDEBF5` |
| muted | `#8C88A6` |
| border | `#34304A` |
| primary | `#E8B23C` |
| accent | `#E8B23C` |
| on_accent | `#1A1408` |
| spark | `#5FE0C6` |
| violet | `#9C8CF0` |
| bloom | `#2D2942` |
| success | `#6FB59A` |
| warning | `#D8A24E` |
| error | `#C56C84` |
| info | `#8E96CE` |

### Typography

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

### Radii

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

### Shadows

- **Sm**: 0 0 0 1px #34304A, 0 0 18px rgba(232,178,60,.10)
- **Md**: 0 0 0 1px #34304A, 0 0 36px rgba(232,178,60,.14)
- **Lg**: 0 0 0 1px #34304A, 0 18px 64px rgba(0,0,0,.55), 0 0 60px rgba(156,140,240,.14)

### Spacing

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

### Surfaces

- **Bg Pattern**: A deep ink-violet night-room field under a low-opacity scanline veil (repeating-linear-gradient) with faint radial violet and amber blooms; a continuous 2px carrier spine descends every layout with hairline node-and-cable schematics creeping in behind it.
- **Card Style**: Matte panels lifted barely off the dark with a hairline 1px off-black seam; a soft amber or violet glow stands in for any drop shadow; a 'live' panel warms to a faint amber-to-bloom gradient. No window chrome, no nested cards, no accent edges.
- **Treatment**: Glow over shadow — light is a bloom behind the one connected element, never a grey box shadow; never glossy, never neon.

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Off-black manga-ink hairlines in #34304A tuned to the violet dark; the carrier spine and active ring-nodes light amber. No ornamental flourishes, no single accent edge on a card.

### Motion

- **Duration**: 1400ms
- **Easing**: cubic-bezier(0.16, 1, 0.3, 1)
- **Philosophy**: The line breathing in a dark room: a slow ringback pulse travels down the carrier spine, waiting nodes blink like a held line, and a faint phosphor drift moves across the dark — never fast. The settled, fully-rendered page is the default and visible with no JavaScript; motion is layered on top behind a js class on <html> and respects prefers-reduced-motion.

## Rules

### Composition

A strict single carrier-spine timeline, not a balanced dashboard or an asymmetric floating field. One continuous vertical signal line organizes every screen; content rings out from circular nodes on the line at a metronomic cadence, with generous quiet to the left of the spine.

### Hierarchy

Hierarchy through activation state on the spine. The active node is filled amber with a bloom seat and a lit amber connector; quiet nodes are hollow hairline rings; a waiting node pulses violet. Space Grotesk headers are measured carrier labels beside small grouped Spline Sans Mono readouts.

### Density

Medium-low. Detail gathers in islands strung on the line — a ledger, a status rail, a switchboard knot — while the surrounding dark room stays quiet enough to feel private and overnight.

### Signature

Carrier spine (a continuous vertical signal line); ring-node (content pinned to lit/hollow/pulsing nodes); ring-out (rows extending sideways from nodes at a metronomic cadence); carrier readout (a thin mono status track that keeps the line legible); phosphor veil (scanlines + lavender noise + soft bloom over the dark).

## Layout

### Grid

A single-spine timeline rather than a 12-column floating field. The carrier spine sits left-of-center on desktop; rows ring out to its right inside a max-width 1240px container. minmax(0,1fr) columns and min-width:0 children so grids never overflow.

### Whitespace

Charged screen silence around the spine — broad quiet to its left; never fill unused room with extra widgets.

### Density

Intentionally uneven: dark quiet expanse against dense islands of ledger rows, status rails, and switchboard linework strung on the line.

### Responsive

On small screens the spine pins to the left gutter and rows stack to a single column while staying strung on the line; reading order is preserved as a descent; mono labels stay legible at 11px minimum; never overflow horizontally.

### Breakpoints

- **Mobile**: <560px single column, spine pinned to left gutter, nav hidden
- **Tablet**: 560-1000px reduced gutters, two-up rails
- **Desktop**: >1000px full single-spine timeline
- **Ultrawide**: cap and centre the contained content; only the full-bleed hero spans 100vw

## Guidance

### Do

- Run one continuous carrier spine down every layout and pin all content to ring-nodes on it.
- Light exactly one active node amber per view; keep the rest hollow and quiet.
- Beat rows down the spine at an even, metronomic cadence — the rhythm of a dial tone.
- Keep a thin mono carrier readout (strength, hold time, hops) alongside the line.
- Ground everything in the dark ink-violet night room; use amber, one cyan-green spark, and one violet glow like highlighters.
- Use a soft glow behind live elements instead of grey drop shadows.
- Style every form control explicitly for the dark; one button is primary in amber, the rest quiet.

### Don't

- Do not stage content as floating desktop windows, title bars, or modem-LED chrome.
- Do not switch to a light powder-gray field or an off-center asymmetric shrine — that is the sibling, not this.
- Do not use saturated neon, electric-blue floods, or rainbow glitch.
- Do not nest cards, give a card a single accent edge, or box the nav in a floating pill.
- Do not use an oversized italic-serif headline or a generic SaaS dashboard of equal cheerful cards.
- Do not rely on default form controls, browser fonts, or unstyled buttons.
- Do not let detail fill every node — keep islands of metadata and stretches of dark silence.

### Accessibility

Maintain readable contrast on the dark ground (text #EDEBF5 on #15131F), keep monospace labels at 11px or larger, avoid rapid flicker (pulses are slow and respect prefers-reduced-motion), signal active state through the lit amber node and position as well as colour, and preserve reading order as a top-to-bottom descent when stacking on mobile.

## Imagery Direction

### Pairs With

cathode-hush

### Summary

Every Ringback image is rendered as if captured off a dim CRT at night in the Cathode Hush technique — near-grayscale with a faint lavender cast, off-black manga-ink hairlines, scanline veil, soft radial bloom, and one or two tiny cyan-green sparks — applied to subjects of the held home phone line: coiled cords descending as a carrier spine, ring-nodes, switchboard cable maps, and the dark bedroom around them.

### Subjects

- a coiled phone cord descending through a dark bedroom as a carrier spine
- a single glowing ring-node at the foot of the line
- hairline node-and-cable switchboard maps creeping across a dark room
- an unlit bedroom with one connected line awake

### Usage

Use the hero slot for the full-bleed descending-cord composition; feature and illustration slots for switchboard maps and single ring-nodes; keep every image matte, dark, and quiet — the dark room is the ground and the warm node is the only light.
DESIGN.md
---
version: "alpha"
name: "Ringback"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#15131F"
  surface: "#1E1B2B"
  secondary: "#2A2638"
  text: "#EDEBF5"
  muted: "#8C88A6"
  border: "#34304A"
  primary: "#E8B23C"
  accent: "#E8B23C"
  on_accent: "#1A1408"
  spark: "#5FE0C6"
  violet: "#9C8CF0"
  bloom: "#2D2942"
  success: "#6FB59A"
  warning: "#D8A24E"
  error: "#C56C84"
  info: "#8E96CE"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "1.929rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.581rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Space Grotesk"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.55
    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: "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"
  step-9: "128px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-spark:
    backgroundColor: "{colors.spark}"
  color-reference-violet:
    backgroundColor: "{colors.violet}"
  color-reference-bloom:
    backgroundColor: "{colors.bloom}"
  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.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"
---

# Ringback

## Overview

A private home-network interface staged as a single phone line held open in a dark room at night. One continuous carrier spine descends the page; every node, status, and action rings out sideways from it. The mood is the ringback tone — the moment after you dial and before anyone answers — domestic, technical, and patiently alone. It reimagines the bedroom-console brief not as scattered desktop windows but as one line you follow down a wire.

### Values

- Loneliness made operational: one line held open, the rest of the room dark and quiet.
- A line you follow, not a desktop you arrange: the carrier spine is the single organizing structure.
- Metronomic cadence: content is beaten down the spine at an even pulse, like a dial tone, not scattered in charged voids.
- Domestic technology over cyber spectacle: carrier tones, ring-nodes, held lines, and bedroom-console proportions instead of neon.
- Night ground by design: a dark ink-violet room lit only by the warm amber of the one connected line.
- Manga precision under soft CRT phosphor: off-black hairline linework aligned to the spine and its nodes.

### Anti-Values

- No floating desktop windows, title bars, or modem-LED window chrome.
- No light powder-gray field; no off-center asymmetric shrine layout.
- No saturated cyberpunk neon, electric-blue floods, or rainbow glitch.
- No oversized italic-serif startup headline; no generic SaaS dashboard of equal cheerful cards.
- No glossy 3D buttons, glassmorphism excess, or heavy grey drop shadows.

### Visual Character

- Run one continuous 2px carrier spine down every layout; pin content to circular ring-nodes on it.
- Light the active node amber with a soft bloom seat; keep quiet nodes as hollow hairline rings, and pulse a waiting node in violet.
- Ring content out sideways from each node with a short connector hairline, beaten down at a metronomic cadence.
- Keep a thin mono carrier readout alongside the spine so the line always reads as connected and waiting.
- Ground everything in a deep ink-violet night room; let warm amber, a cyan-green phosphor spark, and a violet glow be the only voices.
- Substitute soft amber/violet glow for grey drop shadows; layer a low-opacity scanline veil over the dark.

## 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 | `#15131F` |
| surface | `#1E1B2B` |
| secondary | `#2A2638` |
| text | `#EDEBF5` |
| muted | `#8C88A6` |
| border | `#34304A` |
| primary | `#E8B23C` |
| accent | `#E8B23C` |
| on_accent | `#1A1408` |
| spark | `#5FE0C6` |
| violet | `#9C8CF0` |
| bloom | `#2D2942` |
| success | `#6FB59A` |
| warning | `#D8A24E` |
| error | `#C56C84` |
| info | `#8E96CE` |

## Typography

- **Headline-Lg**: Space Grotesk, 1.929rem, weight 700, line-height 1.1.
- **Headline-Md**: Space Grotesk, 1.581rem, weight 600, line-height 1.15.
- **Body-Md**: Space Grotesk, 17px, weight 400, line-height 1.55.
- **Label-Md**: Spline Sans 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`
- **Step-9**: `128px`

### Grid

A single-spine timeline rather than a 12-column floating field. The carrier spine sits left-of-center on desktop; rows ring out to its right inside a max-width 1240px container. minmax(0,1fr) columns and min-width:0 children so grids never overflow.

### Whitespace

Charged screen silence around the spine — broad quiet to its left; never fill unused room with extra widgets.

### Density

Intentionally uneven: dark quiet expanse against dense islands of ledger rows, status rails, and switchboard linework strung on the line.

### Responsive

On small screens the spine pins to the left gutter and rows stack to a single column while staying strung on the line; reading order is preserved as a descent; mono labels stay legible at 11px minimum; never overflow horizontally.

### Breakpoints

- **Mobile**: <560px single column, spine pinned to left gutter, nav hidden
- **Tablet**: 560-1000px reduced gutters, two-up rails
- **Desktop**: >1000px full single-spine timeline
- **Ultrawide**: cap and centre the contained content; only the full-bleed hero spans 100vw

## Elevation & Depth

### Shadows

- **Sm**: 0 0 0 1px #34304A, 0 0 18px rgba(232,178,60,.10)
- **Md**: 0 0 0 1px #34304A, 0 0 36px rgba(232,178,60,.14)
- **Lg**: 0 0 0 1px #34304A, 0 18px 64px rgba(0,0,0,.55), 0 0 60px rgba(156,140,240,.14)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: A deep ink-violet night-room field under a low-opacity scanline veil (repeating-linear-gradient) with faint radial violet and amber blooms; a continuous 2px carrier spine descends every layout with hairline node-and-cable schematics creeping in behind it.
- **Card Style**: Matte panels lifted barely off the dark with a hairline 1px off-black seam; a soft amber or violet glow stands in for any drop shadow; a 'live' panel warms to a faint amber-to-bloom gradient. No window chrome, no nested cards, no accent edges.
- **Treatment**: Glow over shadow — light is a bloom behind the one connected element, never a grey box shadow; never glossy, never neon.

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Off-black manga-ink hairlines in #34304A tuned to the violet dark; the carrier spine and active ring-nodes light amber. No ornamental flourishes, no single accent edge on a card.

## Components

### Composition

A strict single carrier-spine timeline, not a balanced dashboard or an asymmetric floating field. One continuous vertical signal line organizes every screen; content rings out from circular nodes on the line at a metronomic cadence, with generous quiet to the left of the spine.

### Hierarchy

Hierarchy through activation state on the spine. The active node is filled amber with a bloom seat and a lit amber connector; quiet nodes are hollow hairline rings; a waiting node pulses violet. Space Grotesk headers are measured carrier labels beside small grouped Spline Sans Mono readouts.

### Density

Medium-low. Detail gathers in islands strung on the line — a ledger, a status rail, a switchboard knot — while the surrounding dark room stays quiet enough to feel private and overnight.

### Signature

Carrier spine (a continuous vertical signal line); ring-node (content pinned to lit/hollow/pulsing nodes); ring-out (rows extending sideways from nodes at a metronomic cadence); carrier readout (a thin mono status track that keeps the line legible); phosphor veil (scanlines + lavender noise + soft bloom over the dark).

## 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-019ef863-a6d4-78f2-86b7-5c05d5eb44ae/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 Run one continuous carrier spine down every layout and pin all content to ring-nodes on it.
- Do Light exactly one active node amber per view; keep the rest hollow and quiet.
- Do Beat rows down the spine at an even, metronomic cadence — the rhythm of a dial tone.
- Do Keep a thin mono carrier readout (strength, hold time, hops) alongside the line.
- Do Ground everything in the dark ink-violet night room; use amber, one cyan-green spark, and one violet glow like highlighters.
- Do Use a soft glow behind live elements instead of grey drop shadows.
- Do Style every form control explicitly for the dark; one button is primary in amber, the rest quiet.
- Don't Do not stage content as floating desktop windows, title bars, or modem-LED chrome.
- Don't Do not switch to a light powder-gray field or an off-center asymmetric shrine — that is the sibling, not this.
- Don't Do not use saturated neon, electric-blue floods, or rainbow glitch.
- Don't Do not nest cards, give a card a single accent edge, or box the nav in a floating pill.
- Don't Do not use an oversized italic-serif headline or a generic SaaS dashboard of equal cheerful cards.
- Don't Do not rely on default form controls, browser fonts, or unstyled buttons.
- Don't Do not let detail fill every node — keep islands of metadata and stretches of dark silence.

### Accessibility

Maintain readable contrast on the dark ground (text #EDEBF5 on #15131F), keep monospace labels at 11px or larger, avoid rapid flicker (pulses are slow and respect prefers-reduced-motion), signal active state through the lit amber node and position as well as colour, and preserve reading order as a top-to-bottom descent when stacking on mobile.

## Imagery Direction

### Pairs With

cathode-hush

### Summary

Every Ringback image is rendered as if captured off a dim CRT at night in the Cathode Hush technique — near-grayscale with a faint lavender cast, off-black manga-ink hairlines, scanline veil, soft radial bloom, and one or two tiny cyan-green sparks — applied to subjects of the held home phone line: coiled cords descending as a carrier spine, ring-nodes, switchboard cable maps, and the dark bedroom around them.

### Subjects

- a coiled phone cord descending through a dark bedroom as a carrier spine
- a single glowing ring-node at the foot of the line
- hairline node-and-cable switchboard maps creeping across a dark room
- an unlit bedroom with one connected line awake

### Usage

Use the hero slot for the full-bleed descending-cord composition; feature and illustration slots for switchboard maps and single ring-nodes; keep every image matte, dark, and quiet — the dark room is the ground and the warm node is the only light.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "ringback",
  "type": "registry:theme",
  "title": "Ringback shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#15131F",
      "foreground": "#EDEBF5",
      "card": "#1E1B2B",
      "card-foreground": "#EDEBF5",
      "popover": "#1E1B2B",
      "popover-foreground": "#EDEBF5",
      "primary": "#E8B23C",
      "primary-foreground": "#ffffff",
      "secondary": "#2A2638",
      "secondary-foreground": "#ffffff",
      "muted": "#8C88A6",
      "muted-foreground": "#EDEBF5",
      "accent": "#E8B23C",
      "accent-foreground": "#ffffff",
      "destructive": "#C56C84",
      "border": "#34304A",
      "input": "#34304A",
      "ring": "#E8B23C",
      "chart-1": "#E8B23C",
      "chart-2": "#2A2638",
      "chart-3": "#E8B23C",
      "chart-4": "#6FB59A",
      "chart-5": "#D8A24E",
      "sidebar": "#1E1B2B",
      "sidebar-foreground": "#EDEBF5",
      "sidebar-primary": "#E8B23C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#8E96CE",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#34304A",
      "sidebar-ring": "#E8B23C",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E8B23C",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#E8B23C",
      "accent-foreground": "#ffffff",
      "destructive": "#C56C84",
      "border": "#303642",
      "input": "#303642",
      "ring": "#E8B23C",
      "chart-1": "#E8B23C",
      "chart-2": "#2A2638",
      "chart-3": "#E8B23C",
      "chart-4": "#6FB59A",
      "chart-5": "#D8A24E",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E8B23C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#E8B23C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#E8B23C",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef863-a6d4-78f2-86b7-5c05d5eb44ae",
    "slug": "ringback",
    "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",
        "bloom",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "primary",
        "secondary",
        "spark",
        "success",
        "surface",
        "text",
        "violet",
        "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": [
        "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

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

at a glance

Typography

headline-lgSpace Grotesk · 31px · 700

The quick brown fox jumps

headline-mdSpace Grotesk · 25px · 600

The quick brown fox jumps

body-mdSpace Grotesk · 17px · 400

The quick brown fox jumps

label-mdSpline Sans Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

Keep Ringbackand 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
Ringback
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

Evolved from
related

More like this