# Mono Terminal Light — a typescript/terminal aesthetic on paper. # IBM Plex Mono throughout, off-white background with dark mono ink, a single # terminal-green accent. The LIGHT sibling of retro-terminal (dark CRT green): # same monospace discipline, opposite canvas, so the pair is a family, not a # duplicate. Reads like a printed session log. name: mono-terminal-light label: Mono Terminal Light summary: Monospace session-log aesthetic on paper — IBM Plex Mono, one green accent. tokens: palette: bg: "#F4F4F0" # paper surface: "#FFFFFF" ink: "#1C1E1A" ink_muted: "#5E6158" accent: "#2E7D32" # terminal green accent_alt: "#1F4E79" # command blue rule: "#D8D8D0" on_accent: "#F4F4F0" surfaces: title: { bg: "#1C1E1A", ink: "#F4F4F0", muted: "#A9ADA1", accent: "#4CAF50" } section: { bg: "#2E7D32", ink: "#F4F4F0", muted: "#C8E6C9" } dark: bg: "#14160F" surface: "#1C1E17" ink: "#EDF0E4" ink_muted: "#A6AB9B" accent: "#66BB6A" accent_alt: "#64B5F6" rule: "#FFFFFF26" on_accent: "#14160F" type: display: { family: "IBM Plex Mono", weight: 600, size: 38, line: 1.2, tracking: -0.8 } heading: { family: "IBM Plex Mono", weight: 600, size: 27, line: 1.3, tracking: -0.3 } subhead: { family: "IBM Plex Mono", weight: 400, size: 14, line: 1.55, tracking: 0 } body: { family: "IBM Plex Mono", weight: 400, size: 11.5, line: 1.7, tracking: 0 } caption: { family: "IBM Plex Mono", weight: 400, size: 9.5, line: 1.4, tracking: 0.2 } eyebrow: { family: "IBM Plex Mono", weight: 600, size: 10.5, line: 1.25, tracking: 1.0, transform: upper } stat: { family: "IBM Plex Mono", weight: 600, size: 48, line: 1.0, tracking: -1 } grid: margin: { top: 0.62, right: 0.7, bottom: 0.55, left: 0.7 } gutter: 0.30 columns: 12 band: { eyebrow_y: 0.62, title_y: 1.30, body_y: 2.55 } shape: radius: { card: 0, pill: 0.40, chip: 0 } border: { width: 1, color: "#C8C8BE" } card_pad: 0.28 shadow: card: { type: outer, blur: 0, offset: 0, angle: 90, color: "1C1E1A", opacity: 0 } # A faint terminal-green grid — vertical hairlines like a monitor's grille. # Built from native rects, each far below full-opacity so text stays legible. background: decor: - { shape: rect, x: 1.2, y: 0, w: 0.02, h: 7.5, fill: "#2E7D32", transparency: 88 } - { shape: rect, x: 3.6, y: 0, w: 0.02, h: 7.5, fill: "#2E7D32", transparency: 88 } - { shape: rect, x: 6.0, y: 0, w: 0.02, h: 7.5, fill: "#2E7D32", transparency: 88 } - { shape: rect, x: 8.4, y: 0, w: 0.02, h: 7.5, fill: "#2E7D32", transparency: 88 } - { shape: rect, x: 10.8, y: 0, w: 0.02, h: 7.5, fill: "#2E7D32", transparency: 88 } - { shape: rect, x: 0, y: 2.1, w: 13.333, h: 0.02, fill: "#2E7D32", transparency: 92 } - { shape: rect, x: 0, y: 4.2, w: 13.333, h: 0.02, fill: "#2E7D32", transparency: 92 } - { shape: rect, x: 0, y: 6.3, w: 13.333, h: 0.02, fill: "#2E7D32", transparency: 92 } # Composition — src/composition.js owns the vocabulary; every axis # left out here is the shared default. layout: heading: opening: rule rule: under list: marker: arrow plate: enabled: false voice: feel: technical, efficient, unadorned, precise density: medium prefers: - a system's clarity — steps, inputs, outputs - exact terms and figures - terse, information-dense phrasing avoid: - adjectives that decorate rather than define - marketing gloss - prose that reads like a brochure headline_style: > Type it like a command. "RAY_TRACE // HOW FRAMES ARE BUILT". Uppercase or sentence case, but always exact and terse. body_style: > Compact and complete. Each line a fact; no filler lines.