Packs docs/packs/crt-terminal/aesthetic.md
CRT Terminal — Pack Aesthetic #
The appearance reference for the crt-terminal Pack — the emissive third
point of the pack triangle. syntax is warm reflective
paper (zine collage, hard-offset shadow); editorial-mono
is cool reflective print (flat, art-directed restraint); CRT Terminal is light,
not pigment: an 80s phosphor terminal — VT100 / IBM 5151 register — where every
element is a small green-glowing screen. The engine and Pipelines are identical;
only the dress changes. This doc is what the Critic verifies a crt-terminal
Preset against.
This pack exists to stress the roles a color swap never touched: depth is glow, not shadow. Grain is scanline, not paper tooth. Edges are hard pixels, not torn fiber. If a piece re-skins under CRT and still reads broadcast, the Pack contract is real.
Register references: IBM 5151 monochrome display, DEC VT100, Apple II monitor, MU/TH/UR 6000 (Alien), WOPR terminals (WarGames). Period-serious, not retro-game.
Channel Voice #
Precise, machine-calm, a little ominous. The mood is "mission console," not "arcade cabinet." Uniformity is the personality: one type voice, one color at several intensities, everything on the character grid. Where Syntax is hand-made and Editorial Mono is art-directed, CRT Terminal is machine-made — nothing is placed casually; everything aligns.
Palette — one phosphor, several excitations #
Green phosphor (P1 family) on near-black glass. There is one hue; hierarchy comes from intensity (how hard the phosphor is driven), never from a second color. Resolved through the Pack manifest, never inline.
| Role | Value | Use |
|---|---|---|
| substrate / glass | #070b08 |
near-black screen glass, faint green cast |
| phosphor ink | #45ff6e |
primary text and strokes — the driven phosphor |
| hot core | #d9ffe0 |
white-green overdriven centers (title moments, cursor) |
| dim phosphor | #1e8f3d |
secondary text, rules, de-emphasised labels |
| ghost | #0f3a1c |
persistence residue, faint grid lines, dividers |
- Emissive, not printed: light values glow on dark glass — the exact inversion of both reflective packs. The "ink" is the brightest thing in frame.
- No second hue. No amber (adjacent to Syntax yellow), no cyan (Editorial Mono's mark), no warm anything. Alerts/accents are brighter or blinking phosphor, not a different color.
Type System #
Modern mono wearing the phosphor — the period feel comes from the material (glow, persistence, grid), never from pixelated glyphs. One family everywhere: the engine's mono stack (JetBrains Mono — already bundled for the Syntax kicker thread), all weights, generous tracking in caps for labels. Crisp at 4K; A+ text is non-negotiable (bitmap faces read retro-game at 3840×2160 and fail long-body readability — rejected).
- Titles: mono, hot-core intensity, optional character-grid reveal.
- Body: phosphor ink, looser leading (scanlines need air between lines).
- Labels/kickers: dim phosphor caps — the terminal's status-line voice.
Surface Treatment — the screen material #
The defining structural inversions, and the roles they exercise:
- Depth is glow.
*.depthresolves to a phosphor bloom halo, never a drop shadow — a shadow implies an object above paper; a screen has neither. Intensity scales with the element's excitation (hot core blooms widest). - Edges are hard.
edge-treatment: none— pixel-crisp element boundaries, no torn fiber, no soft feather. The character grid is the only permissible edge texture. - Grain is scanline. The grain/material roles resolve to a subtle horizontal scanline raster + faint phosphor triad shimmer inside element pixels — a screen texture, not paper tooth. Low contrast; visible at pause, invisible in motion.
- Persistence. Phosphor decay is the pack's signature material behavior: moving/exiting elements may leave a brief ghost-intensity trail (deterministic, frame-driven — never wall-clock).
- Pointer.
cursor-trail.pointerresolves to a block cursor (▮), with the trail as phosphor persistence.
Screen scope — per-element emissive; full-frame only when opaque #
- Transparent overlays: each element is its own small emissive screen — glow, scanlines, persistence live inside the element's pixels (the ADR-0030 emissive-screen shaderPass pattern). The footage underneath is never treated: it isn't ours.
- Opaque segments/bumpers: the pack's chrome appends the physical
crt-tubeeffect — a flat-glass beam raster (gaussian scanlines that swell on bright strokes), subtle shadow-mask texture, rounded-glass bezel with inner shadow, and bright-pass halation — the whole frame is the terminal. The chrome dial must keep small dim-phosphor text above the G5 floor and hairline form dress must span ≥1 raster pitch or the beam nulls it. - No curvature, ever. Barrel distortion fights composition geometry,
safe-areas, and reflow; the flat-glass late-period CRT is the claim — the
chrome runs
curvature: 0even though the generalcrt-tubeeffect supports it.
Motion Vocabulary Preferences #
A subset of the shared vocabulary, biased to the machine end: type-on /
character reveal (the native terminal entrance), sharp snaps (sharp
ease — instant excitation, phosphor-decay settle), stroke-draw (a plotter
sweep), cursor-blink beats as punctuation. Phosphor persistence gives exits
their character: elements decay rather than slide away. Avoid: bouncy,
tape-down, settled-place paper physics, anything hand-made or jittery — a
machine does not wobble.
Anti-Aesthetic — what CRT Terminal is not #
- Not retro-game kitsch: no bitmap/pixel fonts, no CP437 box-art, no rainbow ANSI palettes, no chromatic "glitch" abuse.
- No second hue — one phosphor at several intensities. Amber and cyan are other packs' property.
- No shadows of any kind — depth is bloom. A drop shadow under CRT is a pipeline bug by definition.
- No paper artifacts: no torn edges, no tape, no grain-as-tooth, no collage.
- No curvature / barrel distortion; no full-frame treatment on transparent overlays (the footage is not ours to scanline).
- Not nostalgic-cute: if a move reads "arcade," it's wrong; the register is mission console.