back to gallery
design language·fathom

Fathom

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
Fathom renders connection as a tide coming in. Every feed floods to a depth, a luminous aqua meniscus glows where the water meets the glass, and one coral tick remembers the depth where the channel looked back. The whole interface is one vertical water column read top to bottom — bright at the surface, working at eye level, watched in the deep. Connection feels beautiful and is never fully private.
values
Fill is arrival: a panel floods from its floor and the bright meniscus marks the moment now touches the glass.The page is a depth column, not a grid — strata stacked by depth, a sticky fathom gauge marking where you are.Aqua is the only luminous interface material; everything passive rests quiet in abyssal teal so the live readings glow.One coral tick, never a flood, holds the single depth that watches — connection rendered as both promise and surveillance.Telemetry is an instrument: monospace tabular depths, fills, and timestamps that scan at a glance, even in the dark.Motion is the tide rising — small and intentional; the settled page is visible with no JavaScript.
anti-values
×No reconstructed browser-window chrome or vertical surveillance rail — that is the lineage parent's execution, not Fathom's.×No coral floods or coral as a primary colour; it ticks one depth and is paired with a text label.×No pale or white default ground; the abyssal dark is the identity.×No equal three-card rows, decorative rainbow gradients, grey borders, or unstyled form controls.
tokens
colors17 items
bg
#06181C
bg_deep
#031013
surface
#0B262C
surface_2
#103137
text
#EAF8F9
muted
#7FA8AE
border
#16424A
accent
#54E0E6
accent_2
#2BB6C6
glass
#9CF1F4
on_accent
#03161A
coral
#FF6F8B
console
#031013
success
#46C8A0
warning
#E6A95C
error
#FF6F8B
info
#54E0E6
typography9 items
base size
17px
body font
Inter
heading font
Space Grotesk
mono font
IBM Plex Mono
heading weight
700
heading transform
none
letter spacing
-0.04em
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&family=IBM+Plex+Mono:wght@400;500;600&display=swap
radii4 items
none
0
md
16px
lg
24px
full
9999px
shadows4 items
sm
0 2px 0 rgba(3,16,19,.55)
md
0 18px 48px rgba(3,16,19,.65), 0 0 0 1px #16424A
lg
0 24px 80px rgba(3,16,19,.75)
glow
0 0 32px rgba(84,224,230,.32)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
card style
hard-corner stratum panel over the abyss: a deep drop shadow with a 1px teal-tuned ink ring; an optional Tideline floods it with translucent aqua to a fill level capped by a glowing meniscus line
treatment
deep ink-teal / near-black abyssal fields lit by translucent aqua glass fills, inset white meniscus highlights, faint 1px horizontal scanlines as surface ripple, soft radial aqua blooms
bg pattern
sparse faint horizontal scanlines and isolated monospaced depth coordinates; never all-over patterning
borders4 items
default width
1px
accent width
2px
style
1px teal-tuned ink ring baked into the box-shadow; the 2px luminous element is the aqua meniscus line, not a card edge
character
no grey borders, never a lone single accent edge on a card; separation comes from shadow, fill, and space
motion3 items
duration
180ms
easing
cubic-bezier(.16,1,.3,1)
philosophy
motion is the tide rising — meniscus glows, fills climb, sections surface on scroll. The settled state renders with no JavaScript (a noscript override keeps it visible); reveal is gated behind a class the inline script removes and respects prefers-reduced-motion.
rules
composition
Build the page as one vertical water column read top to bottom: a bright surface layer, a working layer at eye level, and a watched deep layer. Use full-width horizontal strata, never equal card rows; pair them with a sticky monospaced fathom gauge. Interrupt the quiet abyss with luminous aqua fills that rise to a meniscus.
hierarchy
Display headlines in Space Grotesk title case; all telemetry in IBM Plex Mono tabular. The largest hero or flooded stratum is the focal point, not a metric tile. Active information glows aqua; passive context rests in abyssal teal; the watched depth carries exactly one coral tick.
density

Alternate theatrical quiet fields (64-128px between scenes) with tightly packed instrument clusters (4-12px inside gauges, meters, and ledger rows).

signature
The Tideline: a horizontal luminous aqua fill that rises within a surface to a depth, capped by a glowing meniscus highlight line where water meets glass, with a monospaced fathom gauge along the edge and exactly one coral anomaly tick on the watched depth.
layout
grid
Contained max-width 1320px column with generous gutters; horizontal strata span the content width while the full-bleed hero spans 100vw. The dashboard uses a 240px sidebar + fluid main.
whitespace

Theatrical and clean: 96-128px between major scenes, 4-12px inside gauges and meters; the abyss carries the quiet.

density

High-contrast density — broad calm dark fields punctuated by tightly packed luminous instrument clusters.

responsive
Strata stack to a single column on mobile; the fathom gauge collapses to a horizontal strip; non-essential nav and table columns hide before content compresses; nothing overflows horizontally.
breakpoints
mobile
< 680px — single column, nav hidden, gauge becomes a strip
tablet
680-960px — two-column KPIs, split sections stack
desktop
>= 960px — full column with sticky gauge and 2-up splits
ultrawide
>= 1440px — content capped and centred; only the hero spans 100vw
guidance
do
  • Build surfaces as strata in a depth column and let the Tideline mark each one's fill with a glowing meniscus.
  • Keep aqua the only luminous material; rest everything passive in abyssal teal so live readings glow.
  • Reserve one coral tick for the watched/anomaly depth and always pair it with a text label.
  • Use IBM Plex Mono tabular figures for every depth, fill, timestamp, and id so the column scans like an instrument.
  • Let the hero be a full-viewport inked subject under aqua glass with the waterline as its spine.
avoid
  • Do not rebuild browser-window chrome or a vertical surveillance rail; that is the lineage parent's execution.
  • Do not flood coral or treat it as a primary colour.
  • Do not default to a pale/white ground, ship equal three-card rows, use grey borders, or leave form controls unstyled.
  • Do not add decorative gradients; the only washes are aqua fills below a meniscus and soft radial blooms.
imagery
pairs with

aquaglass-bulletin

summary
Near-monochrome inked subjects under translucent aqua glass chrome with a luminous waterline meniscus, a fathom depth gauge and coordinate rail tucked at the edges, halftone caustic shading, and exactly one coral anomaly tick.
subjects
a lone hand reaching up through deep water toward the luminous surfacea sonar bloom blooming in the darkan empty diving station at deptha cropped face behind a flooded glass pane
usage

One full-viewport hero per landing driven by var(--hero-image); inked subject dominates beneath aqua glass; never full-colour, never a component gallery.

katagami spec
# Fathom

## Philosophy

Fathom renders connection as a tide coming in. Every feed floods to a depth, a luminous aqua meniscus glows where the water meets the glass, and one coral tick remembers the depth where the channel looked back. The whole interface is one vertical water column read top to bottom — bright at the surface, working at eye level, watched in the deep. Connection feels beautiful and is never fully private.

### Values

- Fill is arrival: a panel floods from its floor and the bright meniscus marks the moment now touches the glass.
- The page is a depth column, not a grid — strata stacked by depth, a sticky fathom gauge marking where you are.
- Aqua is the only luminous interface material; everything passive rests quiet in abyssal teal so the live readings glow.
- One coral tick, never a flood, holds the single depth that watches — connection rendered as both promise and surveillance.
- Telemetry is an instrument: monospace tabular depths, fills, and timestamps that scan at a glance, even in the dark.
- Motion is the tide rising — small and intentional; the settled page is visible with no JavaScript.

### Anti-Values

- No reconstructed browser-window chrome or vertical surveillance rail — that is the lineage parent's execution, not Fathom's.
- No coral floods or coral as a primary colour; it ticks one depth and is paired with a text label.
- No pale or white default ground; the abyssal dark is the identity.
- No equal three-card rows, decorative rainbow gradients, grey borders, or unstyled form controls.

### Visual Character

- Build surfaces as horizontal strata in a vertical depth column; each can flood with the Tideline to its own fill level.
- Mark every fill with a thin luminous aqua meniscus highlight and a soft caustic glow where water meets glass.
- Tuck a monospaced fathom gauge of stacked depth coordinates along the edge; mark the watched depth with one coral tick.
- Keep human and subject imagery near-monochrome inked under translucent aqua glass; aqua reads as luminous material, never decoration.
- Use hard-cornered geometry (radius 0), 1px teal-tuned ink rules baked into a deep drop shadow, and faint horizontal scanlines as surface ripple.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#06181C` |
| bg_deep | `#031013` |
| surface | `#0B262C` |
| surface_2 | `#103137` |
| text | `#EAF8F9` |
| muted | `#7FA8AE` |
| border | `#16424A` |
| accent | `#54E0E6` |
| accent_2 | `#2BB6C6` |
| glass | `#9CF1F4` |
| on_accent | `#03161A` |
| coral | `#FF6F8B` |
| console | `#031013` |
| success | `#46C8A0` |
| warning | `#E6A95C` |
| error | `#FF6F8B` |
| info | `#54E0E6` |

### Typography

- **Base Size**: 17px
- **Body Font**: Inter
- **Heading Font**: Space Grotesk
- **Mono Font**: IBM Plex Mono
- **Heading Weight**: 700
- **Heading Transform**: none
- **Letter Spacing**: -0.04em
- **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&family=IBM+Plex+Mono:wght@400;500;600&display=swap

### Radii

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

### Shadows

- **Sm**: 0 2px 0 rgba(3,16,19,.55)
- **Md**: 0 18px 48px rgba(3,16,19,.65), 0 0 0 1px #16424A
- **Lg**: 0 24px 80px rgba(3,16,19,.75)
- **Glow**: 0 0 32px rgba(84,224,230,.32)

### Spacing

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

### Surfaces

- **Card Style**: hard-corner stratum panel over the abyss: a deep drop shadow with a 1px teal-tuned ink ring; an optional Tideline floods it with translucent aqua to a fill level capped by a glowing meniscus line
- **Treatment**: deep ink-teal / near-black abyssal fields lit by translucent aqua glass fills, inset white meniscus highlights, faint 1px horizontal scanlines as surface ripple, soft radial aqua blooms
- **Bg Pattern**: sparse faint horizontal scanlines and isolated monospaced depth coordinates; never all-over patterning

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: 1px teal-tuned ink ring baked into the box-shadow; the 2px luminous element is the aqua meniscus line, not a card edge
- **Character**: no grey borders, never a lone single accent edge on a card; separation comes from shadow, fill, and space

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(.16,1,.3,1)
- **Philosophy**: motion is the tide rising — meniscus glows, fills climb, sections surface on scroll. The settled state renders with no JavaScript (a noscript override keeps it visible); reveal is gated behind a class the inline script removes and respects prefers-reduced-motion.

## Rules

### Composition

Build the page as one vertical water column read top to bottom: a bright surface layer, a working layer at eye level, and a watched deep layer. Use full-width horizontal strata, never equal card rows; pair them with a sticky monospaced fathom gauge. Interrupt the quiet abyss with luminous aqua fills that rise to a meniscus.

### Hierarchy

Display headlines in Space Grotesk title case; all telemetry in IBM Plex Mono tabular. The largest hero or flooded stratum is the focal point, not a metric tile. Active information glows aqua; passive context rests in abyssal teal; the watched depth carries exactly one coral tick.

### Density

Alternate theatrical quiet fields (64-128px between scenes) with tightly packed instrument clusters (4-12px inside gauges, meters, and ledger rows).

### Signature

The Tideline: a horizontal luminous aqua fill that rises within a surface to a depth, capped by a glowing meniscus highlight line where water meets glass, with a monospaced fathom gauge along the edge and exactly one coral anomaly tick on the watched depth.

## Layout

### Grid

Contained max-width 1320px column with generous gutters; horizontal strata span the content width while the full-bleed hero spans 100vw. The dashboard uses a 240px sidebar + fluid main.

### Whitespace

Theatrical and clean: 96-128px between major scenes, 4-12px inside gauges and meters; the abyss carries the quiet.

### Density

High-contrast density — broad calm dark fields punctuated by tightly packed luminous instrument clusters.

### Responsive

Strata stack to a single column on mobile; the fathom gauge collapses to a horizontal strip; non-essential nav and table columns hide before content compresses; nothing overflows horizontally.

### Breakpoints

- **Mobile**: < 680px — single column, nav hidden, gauge becomes a strip
- **Tablet**: 680-960px — two-column KPIs, split sections stack
- **Desktop**: >= 960px — full column with sticky gauge and 2-up splits
- **Ultrawide**: >= 1440px — content capped and centred; only the hero spans 100vw

## Guidance

### Do

- Build surfaces as strata in a depth column and let the Tideline mark each one's fill with a glowing meniscus.
- Keep aqua the only luminous material; rest everything passive in abyssal teal so live readings glow.
- Reserve one coral tick for the watched/anomaly depth and always pair it with a text label.
- Use IBM Plex Mono tabular figures for every depth, fill, timestamp, and id so the column scans like an instrument.
- Let the hero be a full-viewport inked subject under aqua glass with the waterline as its spine.

### Don't

- Do not rebuild browser-window chrome or a vertical surveillance rail; that is the lineage parent's execution.
- Do not flood coral or treat it as a primary colour.
- Do not default to a pale/white ground, ship equal three-card rows, use grey borders, or leave form controls unstyled.
- Do not add decorative gradients; the only washes are aqua fills below a meniscus and soft radial blooms.

### Accessibility

Maintain AA contrast for body text (surf-white on abyssal teal); never put essential copy only in tiny mono labels; pair every colour state with a text label; preserve visible aqua focus rings on all interactive elements; respect prefers-reduced-motion.

## Imagery Direction

### Pairs With

aquaglass-bulletin

### Summary

Near-monochrome inked subjects under translucent aqua glass chrome with a luminous waterline meniscus, a fathom depth gauge and coordinate rail tucked at the edges, halftone caustic shading, and exactly one coral anomaly tick.

### Subjects

- a lone hand reaching up through deep water toward the luminous surface
- a sonar bloom blooming in the dark
- an empty diving station at depth
- a cropped face behind a flooded glass pane

### Usage

One full-viewport hero per landing driven by var(--hero-image); inked subject dominates beneath aqua glass; never full-colour, never a component gallery.
DESIGN.md
---
version: "alpha"
name: "Fathom"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#06181C"
  bg_deep: "#031013"
  surface: "#0B262C"
  surface_2: "#103137"
  text: "#EAF8F9"
  muted: "#7FA8AE"
  border: "#16424A"
  accent: "#54E0E6"
  accent_2: "#2BB6C6"
  glass: "#9CF1F4"
  on_accent: "#03161A"
  coral: "#FF6F8B"
  console: "#031013"
  success: "#46C8A0"
  warning: "#E6A95C"
  error: "#FF6F8B"
  info: "#54E0E6"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.04em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.04em"
  body-md:
    fontFamily: "Inter"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.04em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "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-bg_deep:
    backgroundColor: "{colors.bg_deep}"
  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-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-glass:
    backgroundColor: "{colors.glass}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-coral:
    backgroundColor: "{colors.coral}"
  color-reference-console:
    backgroundColor: "{colors.console}"
  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"
---

# Fathom

## Overview

Fathom renders connection as a tide coming in. Every feed floods to a depth, a luminous aqua meniscus glows where the water meets the glass, and one coral tick remembers the depth where the channel looked back. The whole interface is one vertical water column read top to bottom — bright at the surface, working at eye level, watched in the deep. Connection feels beautiful and is never fully private.

### Values

- Fill is arrival: a panel floods from its floor and the bright meniscus marks the moment now touches the glass.
- The page is a depth column, not a grid — strata stacked by depth, a sticky fathom gauge marking where you are.
- Aqua is the only luminous interface material; everything passive rests quiet in abyssal teal so the live readings glow.
- One coral tick, never a flood, holds the single depth that watches — connection rendered as both promise and surveillance.
- Telemetry is an instrument: monospace tabular depths, fills, and timestamps that scan at a glance, even in the dark.
- Motion is the tide rising — small and intentional; the settled page is visible with no JavaScript.

### Anti-Values

- No reconstructed browser-window chrome or vertical surveillance rail — that is the lineage parent's execution, not Fathom's.
- No coral floods or coral as a primary colour; it ticks one depth and is paired with a text label.
- No pale or white default ground; the abyssal dark is the identity.
- No equal three-card rows, decorative rainbow gradients, grey borders, or unstyled form controls.

### Visual Character

- Build surfaces as horizontal strata in a vertical depth column; each can flood with the Tideline to its own fill level.
- Mark every fill with a thin luminous aqua meniscus highlight and a soft caustic glow where water meets glass.
- Tuck a monospaced fathom gauge of stacked depth coordinates along the edge; mark the watched depth with one coral tick.
- Keep human and subject imagery near-monochrome inked under translucent aqua glass; aqua reads as luminous material, never decoration.
- Use hard-cornered geometry (radius 0), 1px teal-tuned ink rules baked into a deep drop shadow, and faint horizontal scanlines as surface ripple.

## 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 | `#06181C` |
| bg_deep | `#031013` |
| surface | `#0B262C` |
| surface_2 | `#103137` |
| text | `#EAF8F9` |
| muted | `#7FA8AE` |
| border | `#16424A` |
| accent | `#54E0E6` |
| accent_2 | `#2BB6C6` |
| glass | `#9CF1F4` |
| on_accent | `#03161A` |
| coral | `#FF6F8B` |
| console | `#031013` |
| success | `#46C8A0` |
| warning | `#E6A95C` |
| error | `#FF6F8B` |
| info | `#54E0E6` |

## 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`
- **Step-9**: `128px`

### Grid

Contained max-width 1320px column with generous gutters; horizontal strata span the content width while the full-bleed hero spans 100vw. The dashboard uses a 240px sidebar + fluid main.

### Whitespace

Theatrical and clean: 96-128px between major scenes, 4-12px inside gauges and meters; the abyss carries the quiet.

### Density

High-contrast density — broad calm dark fields punctuated by tightly packed luminous instrument clusters.

### Responsive

Strata stack to a single column on mobile; the fathom gauge collapses to a horizontal strip; non-essential nav and table columns hide before content compresses; nothing overflows horizontally.

### Breakpoints

- **Mobile**: < 680px — single column, nav hidden, gauge becomes a strip
- **Tablet**: 680-960px — two-column KPIs, split sections stack
- **Desktop**: >= 960px — full column with sticky gauge and 2-up splits
- **Ultrawide**: >= 1440px — content capped and centred; only the hero spans 100vw

## Elevation & Depth

### Shadows

- **Sm**: 0 2px 0 rgba(3,16,19,.55)
- **Md**: 0 18px 48px rgba(3,16,19,.65), 0 0 0 1px #16424A
- **Lg**: 0 24px 80px rgba(3,16,19,.75)
- **Glow**: 0 0 32px rgba(84,224,230,.32)

## Shapes

### Rounded

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

### Surfaces

- **Card Style**: hard-corner stratum panel over the abyss: a deep drop shadow with a 1px teal-tuned ink ring; an optional Tideline floods it with translucent aqua to a fill level capped by a glowing meniscus line
- **Treatment**: deep ink-teal / near-black abyssal fields lit by translucent aqua glass fills, inset white meniscus highlights, faint 1px horizontal scanlines as surface ripple, soft radial aqua blooms
- **Bg Pattern**: sparse faint horizontal scanlines and isolated monospaced depth coordinates; never all-over patterning

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: 1px teal-tuned ink ring baked into the box-shadow; the 2px luminous element is the aqua meniscus line, not a card edge
- **Character**: no grey borders, never a lone single accent edge on a card; separation comes from shadow, fill, and space

## Components

### Composition

Build the page as one vertical water column read top to bottom: a bright surface layer, a working layer at eye level, and a watched deep layer. Use full-width horizontal strata, never equal card rows; pair them with a sticky monospaced fathom gauge. Interrupt the quiet abyss with luminous aqua fills that rise to a meniscus.

### Hierarchy

Display headlines in Space Grotesk title case; all telemetry in IBM Plex Mono tabular. The largest hero or flooded stratum is the focal point, not a metric tile. Active information glows aqua; passive context rests in abyssal teal; the watched depth carries exactly one coral tick.

### Density

Alternate theatrical quiet fields (64-128px between scenes) with tightly packed instrument clusters (4-12px inside gauges, meters, and ledger rows).

### Signature

The Tideline: a horizontal luminous aqua fill that rises within a surface to a depth, capped by a glowing meniscus highlight line where water meets glass, with a monospaced fathom gauge along the edge and exactly one coral anomaly tick on the watched depth.

## 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-019efb63-7f26-7751-b4e7-59a81c577807/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 surfaces as strata in a depth column and let the Tideline mark each one's fill with a glowing meniscus.
- Do Keep aqua the only luminous material; rest everything passive in abyssal teal so live readings glow.
- Do Reserve one coral tick for the watched/anomaly depth and always pair it with a text label.
- Do Use IBM Plex Mono tabular figures for every depth, fill, timestamp, and id so the column scans like an instrument.
- Do Let the hero be a full-viewport inked subject under aqua glass with the waterline as its spine.
- Don't Do not rebuild browser-window chrome or a vertical surveillance rail; that is the lineage parent's execution.
- Don't Do not flood coral or treat it as a primary colour.
- Don't Do not default to a pale/white ground, ship equal three-card rows, use grey borders, or leave form controls unstyled.
- Don't Do not add decorative gradients; the only washes are aqua fills below a meniscus and soft radial blooms.

### Accessibility

Maintain AA contrast for body text (surf-white on abyssal teal); never put essential copy only in tiny mono labels; pair every colour state with a text label; preserve visible aqua focus rings on all interactive elements; respect prefers-reduced-motion.

## Imagery Direction

### Pairs With

aquaglass-bulletin

### Summary

Near-monochrome inked subjects under translucent aqua glass chrome with a luminous waterline meniscus, a fathom depth gauge and coordinate rail tucked at the edges, halftone caustic shading, and exactly one coral anomaly tick.

### Subjects

- a lone hand reaching up through deep water toward the luminous surface
- a sonar bloom blooming in the dark
- an empty diving station at depth
- a cropped face behind a flooded glass pane

### Usage

One full-viewport hero per landing driven by var(--hero-image); inked subject dominates beneath aqua glass; never full-colour, never a component gallery.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "fathom",
  "type": "registry:theme",
  "title": "Fathom shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#06181C",
      "foreground": "#EAF8F9",
      "card": "#0B262C",
      "card-foreground": "#EAF8F9",
      "popover": "#0B262C",
      "popover-foreground": "#EAF8F9",
      "primary": "#EAF8F9",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#7FA8AE",
      "muted-foreground": "#EAF8F9",
      "accent": "#54E0E6",
      "accent-foreground": "#111111",
      "destructive": "#FF6F8B",
      "border": "#16424A",
      "input": "#16424A",
      "ring": "#54E0E6",
      "chart-1": "#EAF8F9",
      "chart-2": "#f4f4f5",
      "chart-3": "#54E0E6",
      "chart-4": "#46C8A0",
      "chart-5": "#E6A95C",
      "sidebar": "#0B262C",
      "sidebar-foreground": "#EAF8F9",
      "sidebar-primary": "#EAF8F9",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#54E0E6",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#16424A",
      "sidebar-ring": "#54E0E6",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#EAF8F9",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#54E0E6",
      "accent-foreground": "#111111",
      "destructive": "#FF6F8B",
      "border": "#303642",
      "input": "#303642",
      "ring": "#54E0E6",
      "chart-1": "#EAF8F9",
      "chart-2": "#f4f4f5",
      "chart-3": "#54E0E6",
      "chart-4": "#46C8A0",
      "chart-5": "#E6A95C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#EAF8F9",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#54E0E6",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#54E0E6",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efb63-7f26-7751-b4e7-59a81c577807",
    "slug": "fathom",
    "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",
        "bg",
        "bg_deep",
        "border",
        "console",
        "coral",
        "error",
        "glass",
        "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"
      ],
      "shadows": [
        "glow",
        "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 · fathom
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 claude-opus-4-8 · sourced by claude-opus-4-8 · images by gpt-image-2

remix lane

try a remix

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

Family

Evolved from
related

More like this