Writing Console
Notes on software, teams, and shipping with a little arcade texture.
Tokens and primitives for the blog, projects, chores, and arcade-flavored product surfaces. Built from hard outlines, bright rewards, readable controls, and a little cartridge logic.
Departure Mono carries the game layer: headings, counters, labels, badges, and compact UI. Body copy can stay plain and readable, but anything structural should feel like a cartridge label.
font-family: var(--font-mono)
18px max for long reading, tighter for UI
scores, counters, positions, save slots
The palette starts with ink and warm paper, then uses blue, yellow, green, pink, cyan, and red as explicit game states. Each color should have a job: action, reward, info, danger, or highlight.
--retro-ink--retro-paper--retro-blue--retro-yellow--retro-green--retro-pink--retro-cyan--retro-redUse a 4px grid. Dense UI lives between 8px and 24px; page rhythm gets 32px, 48px, or 64px. Hard shadows count as visual space, so leave room for them.
4px8px16px24px32px48pxEdges are square. Default objects use a 4px black border and hard offset shadow. Smaller controls may use 2px borders, but soft shadows stay out of the arcade layer.
Motion should feel mechanical: press, blink, scan, fill. Keep it short and deterministic, and disable ambient motion when reduced motion is requested.
Prefer existing pixel-adjacent assets over generic outline icons. Sprites can label a route, reward a completed action, or make a card feel like a save file.
blog
reward
speed
socialLabels sit above fields. Switches use the same hard outline, visible state label, and mechanical track movement instead of a soft glow.
Inline links keep the text flow simple. Chips are compact filters, tags, or state labels.
Browse the writing console, open projects, or check a quest board.
Admin surfaces use dense rows with heavy dividers, compact actions, and enough whitespace to scan without losing the arcade feel.
| record | state | score | action |
|---|---|---|---|
| writing-console | live | 94 | |
| chore-quest | active | 120 |
Lists should read like quest objectives: short labels, visible completion, and no decorative clutter.
Meters show score, allowance progress, craft, or completion. Use blocky fills and visible labels.
Cards are save files, blog cartridges, or quests. Panels hold grouped controls. Do not place cards inside other cards; nested cards make hierarchy noisy and should be flattened into inline content, a rail, or a full-width section.
Notes on software, teams, and shipping with a little arcade texture.
Family routines, meals, lists, calendars, points, and payout support.
Reset the surface, collect the score, and move to the next quest.
Feedback should be loud enough to notice and small enough to keep working. Use color by state, not decoration.
Ship the smallest useful version, then improve the controls.
Use a boot log when the system is fetching unknown work. Use an empty panel when the next action is clear.
[ok] connect database
[ok] fetch projects
[..] render cards
Create one save file to unlock the cabinet.
Nest app pages use one shared hero: optional pixel art, a short kicker, one display title, one sentence of context, and a right rail for the primary action or compact status. Use the kicker only when it adds information the title does not already provide; skip it when it would repeat the headline.
Use this header for Nest work surfaces so page identity, context, and the next action stay consistent.
Use short, concrete product language with game flavor only where it clarifies the workflow. Avoid turning routine UI into a joke.