# Retro CRT — phosphor glow, scanlines and a screen vignette. # # The tube is one curved piece of glass, and the plate has to read as that. # Every layer is therefore concentric on the same centre: the phosphor bloom, # the sheen on the glass and the vignette that darkens the corners are the # same curvature seen three ways. The earlier plate put a blurred ellipse at # 20%/14% and a bloom at 50%/40%, so two unrelated smears crossed the screen # and the result read as a stain rather than a tube. name: retro-crt label: Retro CRT summary: A phosphor-green CRT tube — scanlines, glow, screen vignette. tokens: palette: bg: "#0B120B" # off-tube black surface: "#0F180F" ink: "#C9FFCE" # phosphor green ink_muted: "#83B288" # sized against the lit band, not the dark rim accent: "#33FF5C" # bright phosphor accent_alt: "#FFE14A" # amber secondary rule: "#1F3A22" on_accent: "#0B120B" surfaces: title: { bg: "#050A05", ink: "#C9FFCE", muted: "#93C298", accent: "#33FF5C" } section: { bg: "#1A3A1E", ink: "#C9FFCE", muted: "#99CE9E" } dark: bg: "#050A05" surface: "#0C140C" ink: "#C9FFCE" ink_muted: "#83B288" accent: "#3BFF68" accent_alt: "#FFE14A" rule: "#1A3320" on_accent: "#050A05" type: display: { family: "IBM Plex Mono", weight: 700, size: 38, line: 1.1, tracking: 1.0 } heading: { family: "IBM Plex Mono", weight: 700, size: 28, line: 1.15, tracking: 0.8 } subhead: { family: "IBM Plex Mono", weight: 400, size: 14, line: 1.5, tracking: 0 } body: { family: "IBM Plex Mono", weight: 400, size: 12.5, line: 1.6, tracking: 0 } caption: { family: "IBM Plex Mono", weight: 400, size: 10, line: 1.35, tracking: 0.2 } eyebrow: { family: "IBM Plex Mono", weight: 700, size: 10, line: 1.2, tracking: 2.0, transform: upper } stat: { family: "IBM Plex Mono", weight: 700, size: 54, line: 1.0, tracking: 0 } grid: margin: { top: 0.66, right: 0.75, bottom: 0.58, left: 0.75 } gutter: 0.30 columns: 12 band: { eyebrow_y: 0.66, title_y: 1.36, body_y: 2.62 } shape: radius: { card: 0.06, pill: 0.40, chip: 0.04 } border: { width: 1, color: "#2A4A30" } card_pad: 0.30 shadow: card: { type: outer, blur: 8, offset: 2, angle: 90, color: "000000", opacity: 0.5 } # Composition — src/composition.js owns the vocabulary; every axis # left out here is the shared default. layout: title: composition: top section: composition: numeral heading: opening: bar list: marker: arrow plate: enabled: true html: |
surfaces: title: |
section: |
voice: feel: retro, precise, immersive, playful-tech density: medium prefers: - system and hardware framing - a playful-but-exact register - short lines, terminal energy avoid: - corporate prose - long paragraphs - soft warm language headline_style: > Like a boot message. "PIPELINE ONLINE // 60FPS" over "Rendering". Caps-able, terse, techy. body_style: > Compact and complete. Each line a fact; no filler lines.