back to gallery
design language·slate

Slate

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
Slate is a quiet broadcast-control language for software that watches a sleeping channel and waits for it to speak. Title-safe frames, manga-like panel discipline, an orbital handoff arc, monospaced captions, and a single magenta signal pulse express satellite lock, drift, and relay states without cyberpunk neon, hacker theater, or character illustration. A faithful refinement of Orbital Broadcast Control, brought up to standard.
values
restraint before spectacle: most states are graphite and still, magenta only for verified signal eventsbroadcast legibility: title-safe and action-safe zones, peak whites below pure white, caption clearanceoperational calm: the system persona appears as timing, relay, handoff, and signal-loss evidence, never a mascotmanga structure without fan art: hard panel division, gutters, and cropped fields supply rhythmtimecoded truth: captions, counters, cue numbers, and station IDs are primary interface materialanalog-digital tactility: subtle scan softness and dropout bands make the surface feel transmitted, never grungy
anti-values
×green terminal glow, matrix rain, random code waterfalls, or generic hacker command centers×neon cyberpunk city glow, rainbow gradients, saturated sci-fi palettes, or fan-art anime characters×SaaS card grids, rounded marketing panels, glassmorphism, or overloaded circular HUD ornament×magenta used as a general brand wash instead of a narrow lock/cue/acquisition signal state
tokens
colors16 items
bg
#101113
surface
#16181B
surface_2
#1E2024
rail
#0B0C0E
text
#E7E2D6
text_strong
#F0EDE3
muted
#9A9A96
secondary
#8F9090
guide
#CFC8B8
accent
#E044A6
on_accent
#101113
border
rgba(207,200,184,0.22)
success
#BFC8B0
warning
#D3B768
error
#D05A7F
info
#9EA8B7
typography11 items
base size
17px
body font
IBM Plex Sans Condensed
heading font
Tektur
mono font
Fragment Mono
heading weight
600
heading transform
none
letter spacing
-0.02em
display letter spacing
-0.04em
line height
1.55
scale ratio
1.2
google fonts url
https://fonts.googleapis.com/css2?family=Fragment+Mono:ital@0;1&family=IBM+Plex+Sans+Condensed:wght@400;500;600;700&family=Tektur:wght@500;600;700&display=swap
radii5 items
none
0px
sm
0px
md
0px
lg
0px
full
9999px
shadows3 items
sm
none
md
0 0 0 1px rgba(240,237,227,0.06)
lg
0 18px 70px rgba(0,0,0,0.42)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
bg pattern
Lifted graphite ground with a faint horizontal scanline field under 5% opacity, title-safe rectangles, and rare dropout bands; never grungy.
card style
No rounded cards; information lives in caption beds, corner station-ID slugs, clipped graphite panels, edge rails, and safe-area compartments, separated by 1px off-white hairline guides.
treatment
Lifted black and graphite planes with low-opacity off-white hairline guides as title-safe structure, low-opacity scanline texture, and one magenta signal mark per view.
borders4 items
default width
1px
accent width
2px
style
solid
character
1px off-white video-safe hairline guides at low opacity used as safe-area structure; magenta appears only as a lock tick, cue underline, or acquisition pulse, never as a card edge.
motion3 items
duration
640ms
easing
cubic-bezier(.2,0,.1,1)
philosophy
Slow relay behaviour: a pulse acquires, a waveform breathes, counters tick, and everything else stays nearly still. The settled state renders with no JavaScript; motion is layered behind an .anim class and respects prefers-reduced-motion.
rules
composition
Use a 16:9 title-safe master frame with action-safe and title-safe rectangles visible as interface architecture. Divide the field with hard manga-like gutters, then break the grid with one orbital arc that crosses panels and ends in bracketed antenna marks. Reserve the bottom band for the subtitle lock bed. Avoid equal-card rows; one viewport panel dominates and stays nearly empty while smaller relay panels carry compact telemetry.
hierarchy
Primary hierarchy comes from ghosted giant timecodes, then squared Tektur headings, then compact uppercase station IDs, then monospaced Fragment Mono captions and telemetry. Active states are marked by a magenta tick or underline, never by scale or colour flooding.
density
Alternate spacious graphite signal fields with dense timing strips: the central viewport feels almost empty while edge rails, subtitle bands, and status slugs carry compact technical information at 8px clusters against 64-128px quiet fields.
signature
Title-safe double frame: nested action-safe + title-safe rectangles in off-white hairlines, interrupted by frame-counter corner notches drawn with absolutely-positioned pseudo-elements.Orbital handoff arc: a thin SVG curved path crossing rectangular panels, terminating in bracketed antenna acquisition marks plus a small magenta acquisition dot.Subtitle lock bed: a reserved bottom band of monospaced captions and cue numbers; the current speech state carries one magenta underline (inset box-shadow).Signal-loss banding: horizontal graphite strips clip across a panel as analog dropout, with repeating-linear-gradient waveform ticks and a single magenta pulse.Station-ID slug stack: compact mono labels at panel corners like late-night broadcast bugs; never rounded badges.
layout
grid
Desktop uses a 16:9 safe-area frame inside a 12-column timing grid, 24px gutters, max-width 1320px (1440 ultra-wide), with one dominant 7-8 column signal viewport and an asymmetric 5-column relay stack. Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.
whitespace
Extreme spacing contrast: 8px telemetry clusters, 32px panel gutters, 96px quiet signal fields, and large top/bottom atmospheric margins. The viewport stays deliberately empty.
density

Medium-high operational density around the perimeter with a deliberately sparse central transmission window; the contrast makes silence feel intentional.

responsive
From ~390px mobile to 2560px+ ultra-wide: the safe-area frame stays visible, the subtitle bed moves below the viewport, tables drop non-essential columns or scroll within their own panel, the masthead nav collapses, and only the full-bleed hero spans 100vw.
breakpoints
mobile
< 640px single-column safe frame with caption bed retained, nav and non-essential table columns hidden
tablet
640-1023px two stacked panels with the orbital arc preserved
desktop
>= 1024px full 16:9 broadcast control composition
ultrawide
>= 1600px caps and centres the contained content; only the full-bleed hero spans 100vw
guidance
do
  • Use broadcast-safe grayscale and keep peak whites below pure white.
  • Reserve signal magenta for lock, drift, cue, or acquisition states only.
  • Draw title-safe and action-safe guides as part of the interface structure.
  • Make captions, frame counters, cue numbers, and station IDs meaningful and legible.
  • Let one transmission field stay quiet while edge systems carry detail.
  • Use hard panel divisions, gutters, and a cropped orbital arc instead of rounded cards.
  • Keep body copy at 17px+ with -0.02em tracking and strong contrast; mono captions never below 11px.
  • Pair every magenta or semantic state with a text label and a led/tick for accessibility.
avoid
  • Do not use green terminal glow, matrix rain, hacker dashboards, or random code waterfalls.
  • Do not add anime characters, fan-art silhouettes, neon city backgrounds, or cyberpunk gradients.
  • Do not build three equal SaaS cards or generic analytics widgets.
  • Do not fill empty graphite fields with decorative HUD circles or meaningless rings.
  • Do not make magenta a general brand wash; it is a narrow signal state.
  • Do not round corners except for tiny acquisition dots and waveform endpoints.
  • Do not let captions collide with the bottom safe area or become decorative lorem.
imagery
pairs with

downlink

summary
Stills pulled off a broadcast-safe video feed: lifted graphite grayscale with peak whites below pure white, faint scanlines, one or two signal-dropout bands, a title-safe hairline frame with counter notches, an orbital acquisition arc into bracketed antenna marks, and ONE narrow magenta signal tick as the only colour.
subjects
a relay satellite acquired over the night Earth limba ground-station dish tracking across the skyan antenna array against an empty graphite fielda spacecraft solar array catching low light
usage
Landing hero is generated in the Downlink technique, full-bleed behind a deliberate left-anchored graphite veil and the title-safe frame. Reserve the single magenta tick for the live signal element in each image.
katagami spec
# Slate

## Philosophy

Slate is a quiet broadcast-control language for software that watches a sleeping channel and waits for it to speak. Title-safe frames, manga-like panel discipline, an orbital handoff arc, monospaced captions, and a single magenta signal pulse express satellite lock, drift, and relay states without cyberpunk neon, hacker theater, or character illustration. A faithful refinement of Orbital Broadcast Control, brought up to standard.

### Values

- restraint before spectacle: most states are graphite and still, magenta only for verified signal events
- broadcast legibility: title-safe and action-safe zones, peak whites below pure white, caption clearance
- operational calm: the system persona appears as timing, relay, handoff, and signal-loss evidence, never a mascot
- manga structure without fan art: hard panel division, gutters, and cropped fields supply rhythm
- timecoded truth: captions, counters, cue numbers, and station IDs are primary interface material
- analog-digital tactility: subtle scan softness and dropout bands make the surface feel transmitted, never grungy

### Anti-Values

- green terminal glow, matrix rain, random code waterfalls, or generic hacker command centers
- neon cyberpunk city glow, rainbow gradients, saturated sci-fi palettes, or fan-art anime characters
- SaaS card grids, rounded marketing panels, glassmorphism, or overloaded circular HUD ornament
- magenta used as a general brand wash instead of a narrow lock/cue/acquisition signal state

### Visual Character

- A title-safe double frame of nested action-safe and title-safe rectangles is drawn in off-white hairlines with frame-counter corner notches as the interface architecture itself.
- A single thin orbital handoff arc crosses the rectangular graphite field and terminates in bracketed antenna acquisition marks with a small magenta acquisition dot.
- Large quiet timecodes ghost behind compact station-ID slugs while a subtitle lock bed reserves the bottom band for monospaced captions, one carrying the magenta underline.
- Signal-loss banding clips graphite strips across panels with tiny waveform ticks and a single magenta pulse; everything else holds video-safe grayscale.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#101113` |
| surface | `#16181B` |
| surface_2 | `#1E2024` |
| rail | `#0B0C0E` |
| text | `#E7E2D6` |
| text_strong | `#F0EDE3` |
| muted | `#9A9A96` |
| secondary | `#8F9090` |
| guide | `#CFC8B8` |
| accent | `#E044A6` |
| on_accent | `#101113` |
| border | `rgba(207,200,184,0.22)` |
| success | `#BFC8B0` |
| warning | `#D3B768` |
| error | `#D05A7F` |
| info | `#9EA8B7` |

### Typography

- **Base Size**: 17px
- **Body Font**: IBM Plex Sans Condensed
- **Heading Font**: Tektur
- **Mono Font**: Fragment Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Display Letter Spacing**: -0.04em
- **Line Height**: 1.55
- **Scale Ratio**: 1.2
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Fragment+Mono:ital@0;1&family=IBM+Plex+Sans+Condensed:wght@400;500;600;700&family=Tektur:wght@500;600;700&display=swap

### Radii

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

### Shadows

- **Sm**: none
- **Md**: 0 0 0 1px rgba(240,237,227,0.06)
- **Lg**: 0 18px 70px rgba(0,0,0,0.42)

### Spacing

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

### Surfaces

- **Bg Pattern**: Lifted graphite ground with a faint horizontal scanline field under 5% opacity, title-safe rectangles, and rare dropout bands; never grungy.
- **Card Style**: No rounded cards; information lives in caption beds, corner station-ID slugs, clipped graphite panels, edge rails, and safe-area compartments, separated by 1px off-white hairline guides.
- **Treatment**: Lifted black and graphite planes with low-opacity off-white hairline guides as title-safe structure, low-opacity scanline texture, and one magenta signal mark per view.

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: 1px off-white video-safe hairline guides at low opacity used as safe-area structure; magenta appears only as a lock tick, cue underline, or acquisition pulse, never as a card edge.

### Motion

- **Duration**: 640ms
- **Easing**: cubic-bezier(.2,0,.1,1)
- **Philosophy**: Slow relay behaviour: a pulse acquires, a waveform breathes, counters tick, and everything else stays nearly still. The settled state renders with no JavaScript; motion is layered behind an .anim class and respects prefers-reduced-motion.

## Rules

### Composition

Use a 16:9 title-safe master frame with action-safe and title-safe rectangles visible as interface architecture. Divide the field with hard manga-like gutters, then break the grid with one orbital arc that crosses panels and ends in bracketed antenna marks. Reserve the bottom band for the subtitle lock bed. Avoid equal-card rows; one viewport panel dominates and stays nearly empty while smaller relay panels carry compact telemetry.

### Hierarchy

Primary hierarchy comes from ghosted giant timecodes, then squared Tektur headings, then compact uppercase station IDs, then monospaced Fragment Mono captions and telemetry. Active states are marked by a magenta tick or underline, never by scale or colour flooding.

### Density

Alternate spacious graphite signal fields with dense timing strips: the central viewport feels almost empty while edge rails, subtitle bands, and status slugs carry compact technical information at 8px clusters against 64-128px quiet fields.

### Signature

- Title-safe double frame: nested action-safe + title-safe rectangles in off-white hairlines, interrupted by frame-counter corner notches drawn with absolutely-positioned pseudo-elements.
- Orbital handoff arc: a thin SVG curved path crossing rectangular panels, terminating in bracketed antenna acquisition marks plus a small magenta acquisition dot.
- Subtitle lock bed: a reserved bottom band of monospaced captions and cue numbers; the current speech state carries one magenta underline (inset box-shadow).
- Signal-loss banding: horizontal graphite strips clip across a panel as analog dropout, with repeating-linear-gradient waveform ticks and a single magenta pulse.
- Station-ID slug stack: compact mono labels at panel corners like late-night broadcast bugs; never rounded badges.

## Layout

### Grid

Desktop uses a 16:9 safe-area frame inside a 12-column timing grid, 24px gutters, max-width 1320px (1440 ultra-wide), with one dominant 7-8 column signal viewport and an asymmetric 5-column relay stack. Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.

### Whitespace

Extreme spacing contrast: 8px telemetry clusters, 32px panel gutters, 96px quiet signal fields, and large top/bottom atmospheric margins. The viewport stays deliberately empty.

### Density

Medium-high operational density around the perimeter with a deliberately sparse central transmission window; the contrast makes silence feel intentional.

### Responsive

From ~390px mobile to 2560px+ ultra-wide: the safe-area frame stays visible, the subtitle bed moves below the viewport, tables drop non-essential columns or scroll within their own panel, the masthead nav collapses, and only the full-bleed hero spans 100vw.

### Breakpoints

- **Mobile**: < 640px single-column safe frame with caption bed retained, nav and non-essential table columns hidden
- **Tablet**: 640-1023px two stacked panels with the orbital arc preserved
- **Desktop**: >= 1024px full 16:9 broadcast control composition
- **Ultrawide**: >= 1600px caps and centres the contained content; only the full-bleed hero spans 100vw

## Guidance

### Do

- Use broadcast-safe grayscale and keep peak whites below pure white.
- Reserve signal magenta for lock, drift, cue, or acquisition states only.
- Draw title-safe and action-safe guides as part of the interface structure.
- Make captions, frame counters, cue numbers, and station IDs meaningful and legible.
- Let one transmission field stay quiet while edge systems carry detail.
- Use hard panel divisions, gutters, and a cropped orbital arc instead of rounded cards.
- Keep body copy at 17px+ with -0.02em tracking and strong contrast; mono captions never below 11px.
- Pair every magenta or semantic state with a text label and a led/tick for accessibility.

### Don't

- Do not use green terminal glow, matrix rain, hacker dashboards, or random code waterfalls.
- Do not add anime characters, fan-art silhouettes, neon city backgrounds, or cyberpunk gradients.
- Do not build three equal SaaS cards or generic analytics widgets.
- Do not fill empty graphite fields with decorative HUD circles or meaningless rings.
- Do not make magenta a general brand wash; it is a narrow signal state.
- Do not round corners except for tiny acquisition dots and waveform endpoints.
- Do not let captions collide with the bottom safe area or become decorative lorem.

### Accessibility

Maintain strong contrast between graphite and off-white text, keep subtitle beds at readable sizes, avoid flicker, provide a non-colour label (text + led/tick) beside every magenta or semantic state, use magenta inset/outline focus states, and preserve safe margins at every breakpoint.

## Imagery Direction

### Pairs With

downlink

### Summary

Stills pulled off a broadcast-safe video feed: lifted graphite grayscale with peak whites below pure white, faint scanlines, one or two signal-dropout bands, a title-safe hairline frame with counter notches, an orbital acquisition arc into bracketed antenna marks, and ONE narrow magenta signal tick as the only colour.

### Subjects

- a relay satellite acquired over the night Earth limb
- a ground-station dish tracking across the sky
- an antenna array against an empty graphite field
- a spacecraft solar array catching low light

### Usage

Landing hero is generated in the Downlink technique, full-bleed behind a deliberate left-anchored graphite veil and the title-safe frame. Reserve the single magenta tick for the live signal element in each image.
DESIGN.md
---
version: "alpha"
name: "Slate"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#101113"
  surface: "#16181B"
  surface_2: "#1E2024"
  rail: "#0B0C0E"
  text: "#E7E2D6"
  text_strong: "#F0EDE3"
  muted: "#9A9A96"
  secondary: "#8F9090"
  guide: "#CFC8B8"
  accent: "#E044A6"
  on_accent: "#101113"
  success: "#BFC8B0"
  warning: "#D3B768"
  error: "#D05A7F"
  info: "#9EA8B7"
typography:
  headline-lg:
    fontFamily: "Tektur"
    fontSize: "1.836rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Tektur"
    fontSize: "1.53rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "IBM Plex Sans Condensed"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Fragment Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "0px"
  md: "0px"
  lg: "0px"
  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-surface_2:
    backgroundColor: "{colors.surface_2}"
  color-reference-rail:
    backgroundColor: "{colors.rail}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-text_strong:
    backgroundColor: "{colors.text_strong}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-guide:
    backgroundColor: "{colors.guide}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  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"
---

# Slate

## Overview

Slate is a quiet broadcast-control language for software that watches a sleeping channel and waits for it to speak. Title-safe frames, manga-like panel discipline, an orbital handoff arc, monospaced captions, and a single magenta signal pulse express satellite lock, drift, and relay states without cyberpunk neon, hacker theater, or character illustration. A faithful refinement of Orbital Broadcast Control, brought up to standard.

### Values

- restraint before spectacle: most states are graphite and still, magenta only for verified signal events
- broadcast legibility: title-safe and action-safe zones, peak whites below pure white, caption clearance
- operational calm: the system persona appears as timing, relay, handoff, and signal-loss evidence, never a mascot
- manga structure without fan art: hard panel division, gutters, and cropped fields supply rhythm
- timecoded truth: captions, counters, cue numbers, and station IDs are primary interface material
- analog-digital tactility: subtle scan softness and dropout bands make the surface feel transmitted, never grungy

### Anti-Values

- green terminal glow, matrix rain, random code waterfalls, or generic hacker command centers
- neon cyberpunk city glow, rainbow gradients, saturated sci-fi palettes, or fan-art anime characters
- SaaS card grids, rounded marketing panels, glassmorphism, or overloaded circular HUD ornament
- magenta used as a general brand wash instead of a narrow lock/cue/acquisition signal state

### Visual Character

- A title-safe double frame of nested action-safe and title-safe rectangles is drawn in off-white hairlines with frame-counter corner notches as the interface architecture itself.
- A single thin orbital handoff arc crosses the rectangular graphite field and terminates in bracketed antenna acquisition marks with a small magenta acquisition dot.
- Large quiet timecodes ghost behind compact station-ID slugs while a subtitle lock bed reserves the bottom band for monospaced captions, one carrying the magenta underline.
- Signal-loss banding clips graphite strips across panels with tiny waveform ticks and a single magenta pulse; everything else holds video-safe grayscale.

## 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 | `#101113` |
| surface | `#16181B` |
| surface_2 | `#1E2024` |
| rail | `#0B0C0E` |
| text | `#E7E2D6` |
| text_strong | `#F0EDE3` |
| muted | `#9A9A96` |
| secondary | `#8F9090` |
| guide | `#CFC8B8` |
| accent | `#E044A6` |
| on_accent | `#101113` |
| success | `#BFC8B0` |
| warning | `#D3B768` |
| error | `#D05A7F` |
| info | `#9EA8B7` |

## Typography

- **Headline-Lg**: Tektur, 1.836rem, weight 700, line-height 1.1.
- **Headline-Md**: Tektur, 1.53rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans Condensed, 17px, weight 400, line-height 1.55.
- **Label-Md**: Fragment 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

Desktop uses a 16:9 safe-area frame inside a 12-column timing grid, 24px gutters, max-width 1320px (1440 ultra-wide), with one dominant 7-8 column signal viewport and an asymmetric 5-column relay stack. Grids use minmax(0,1fr) columns and min-width:0 children so they never blow out their container.

### Whitespace

Extreme spacing contrast: 8px telemetry clusters, 32px panel gutters, 96px quiet signal fields, and large top/bottom atmospheric margins. The viewport stays deliberately empty.

### Density

Medium-high operational density around the perimeter with a deliberately sparse central transmission window; the contrast makes silence feel intentional.

### Responsive

From ~390px mobile to 2560px+ ultra-wide: the safe-area frame stays visible, the subtitle bed moves below the viewport, tables drop non-essential columns or scroll within their own panel, the masthead nav collapses, and only the full-bleed hero spans 100vw.

### Breakpoints

- **Mobile**: < 640px single-column safe frame with caption bed retained, nav and non-essential table columns hidden
- **Tablet**: 640-1023px two stacked panels with the orbital arc preserved
- **Desktop**: >= 1024px full 16:9 broadcast control composition
- **Ultrawide**: >= 1600px caps and centres the contained content; only the full-bleed hero spans 100vw

## Elevation & Depth

### Shadows

- **Sm**: none
- **Md**: 0 0 0 1px rgba(240,237,227,0.06)
- **Lg**: 0 18px 70px rgba(0,0,0,0.42)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: Lifted graphite ground with a faint horizontal scanline field under 5% opacity, title-safe rectangles, and rare dropout bands; never grungy.
- **Card Style**: No rounded cards; information lives in caption beds, corner station-ID slugs, clipped graphite panels, edge rails, and safe-area compartments, separated by 1px off-white hairline guides.
- **Treatment**: Lifted black and graphite planes with low-opacity off-white hairline guides as title-safe structure, low-opacity scanline texture, and one magenta signal mark per view.

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: 1px off-white video-safe hairline guides at low opacity used as safe-area structure; magenta appears only as a lock tick, cue underline, or acquisition pulse, never as a card edge.

## Components

### Composition

Use a 16:9 title-safe master frame with action-safe and title-safe rectangles visible as interface architecture. Divide the field with hard manga-like gutters, then break the grid with one orbital arc that crosses panels and ends in bracketed antenna marks. Reserve the bottom band for the subtitle lock bed. Avoid equal-card rows; one viewport panel dominates and stays nearly empty while smaller relay panels carry compact telemetry.

### Hierarchy

Primary hierarchy comes from ghosted giant timecodes, then squared Tektur headings, then compact uppercase station IDs, then monospaced Fragment Mono captions and telemetry. Active states are marked by a magenta tick or underline, never by scale or colour flooding.

### Density

Alternate spacious graphite signal fields with dense timing strips: the central viewport feels almost empty while edge rails, subtitle bands, and status slugs carry compact technical information at 8px clusters against 64-128px quiet fields.

### Signature

- Title-safe double frame: nested action-safe + title-safe rectangles in off-white hairlines, interrupted by frame-counter corner notches drawn with absolutely-positioned pseudo-elements.
- Orbital handoff arc: a thin SVG curved path crossing rectangular panels, terminating in bracketed antenna acquisition marks plus a small magenta acquisition dot.
- Subtitle lock bed: a reserved bottom band of monospaced captions and cue numbers; the current speech state carries one magenta underline (inset box-shadow).
- Signal-loss banding: horizontal graphite strips clip across a panel as analog dropout, with repeating-linear-gradient waveform ticks and a single magenta pulse.
- Station-ID slug stack: compact mono labels at panel corners like late-night broadcast bugs; never rounded badges.

## 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-019ef93d-fcce-7091-96fd-16b073a28f72/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 Use broadcast-safe grayscale and keep peak whites below pure white.
- Do Reserve signal magenta for lock, drift, cue, or acquisition states only.
- Do Draw title-safe and action-safe guides as part of the interface structure.
- Do Make captions, frame counters, cue numbers, and station IDs meaningful and legible.
- Do Let one transmission field stay quiet while edge systems carry detail.
- Do Use hard panel divisions, gutters, and a cropped orbital arc instead of rounded cards.
- Do Keep body copy at 17px+ with -0.02em tracking and strong contrast; mono captions never below 11px.
- Do Pair every magenta or semantic state with a text label and a led/tick for accessibility.
- Don't Do not use green terminal glow, matrix rain, hacker dashboards, or random code waterfalls.
- Don't Do not add anime characters, fan-art silhouettes, neon city backgrounds, or cyberpunk gradients.
- Don't Do not build three equal SaaS cards or generic analytics widgets.
- Don't Do not fill empty graphite fields with decorative HUD circles or meaningless rings.
- Don't Do not make magenta a general brand wash; it is a narrow signal state.
- Don't Do not round corners except for tiny acquisition dots and waveform endpoints.
- Don't Do not let captions collide with the bottom safe area or become decorative lorem.

### Accessibility

Maintain strong contrast between graphite and off-white text, keep subtitle beds at readable sizes, avoid flicker, provide a non-colour label (text + led/tick) beside every magenta or semantic state, use magenta inset/outline focus states, and preserve safe margins at every breakpoint.

## Imagery Direction

### Pairs With

downlink

### Summary

Stills pulled off a broadcast-safe video feed: lifted graphite grayscale with peak whites below pure white, faint scanlines, one or two signal-dropout bands, a title-safe hairline frame with counter notches, an orbital acquisition arc into bracketed antenna marks, and ONE narrow magenta signal tick as the only colour.

### Subjects

- a relay satellite acquired over the night Earth limb
- a ground-station dish tracking across the sky
- an antenna array against an empty graphite field
- a spacecraft solar array catching low light

### Usage

Landing hero is generated in the Downlink technique, full-bleed behind a deliberate left-anchored graphite veil and the title-safe frame. Reserve the single magenta tick for the live signal element in each image.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "slate",
  "type": "registry:theme",
  "title": "Slate shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#101113",
      "foreground": "#E7E2D6",
      "card": "#16181B",
      "card-foreground": "#E7E2D6",
      "popover": "#16181B",
      "popover-foreground": "#E7E2D6",
      "primary": "#E7E2D6",
      "primary-foreground": "#111111",
      "secondary": "#8F9090",
      "secondary-foreground": "#ffffff",
      "muted": "#9A9A96",
      "muted-foreground": "#E7E2D6",
      "accent": "#E044A6",
      "accent-foreground": "#ffffff",
      "destructive": "#D05A7F",
      "border": "rgba(207,200,184,0.22)",
      "input": "rgba(207,200,184,0.22)",
      "ring": "#E044A6",
      "chart-1": "#E7E2D6",
      "chart-2": "#8F9090",
      "chart-3": "#E044A6",
      "chart-4": "#BFC8B0",
      "chart-5": "#D3B768",
      "sidebar": "#16181B",
      "sidebar-foreground": "#E7E2D6",
      "sidebar-primary": "#E7E2D6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#9EA8B7",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "rgba(207,200,184,0.22)",
      "sidebar-ring": "#E044A6",
      "radius": "0px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E7E2D6",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#E044A6",
      "accent-foreground": "#ffffff",
      "destructive": "#D05A7F",
      "border": "#303642",
      "input": "#303642",
      "ring": "#E044A6",
      "chart-1": "#E7E2D6",
      "chart-2": "#8F9090",
      "chart-3": "#E044A6",
      "chart-4": "#BFC8B0",
      "chart-5": "#D3B768",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E7E2D6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#E044A6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#E044A6",
      "radius": "0px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef93d-fcce-7091-96fd-16b073a28f72",
    "slug": "slate",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "bg",
        "border",
        "error",
        "guide",
        "info",
        "muted",
        "on_accent",
        "rail",
        "secondary",
        "success",
        "surface",
        "surface_2",
        "text",
        "text_strong",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "display_letter_spacing",
        "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 · slate
DESIGN.md

at a glance

Typography

headline-lgTektur · 29px · 700

The quick brown fox jumps

headline-mdTektur · 24px · 600

The quick brown fox jumps

body-mdIBM Plex Sans Condensed · 17px · 400

The quick brown fox jumps

label-mdFragment Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

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

Family

1 descendant
related

More like this