--border; gap is 1px.Tokens
The primitives every component is built from. Change a value here and it propagates everywhere — that's the point of a token. All values are exposed as CSS custom properties so the system stays single-sourced.
Three roles: surfaces (where things live), text (how type reads), and accents (reserved moments). Neon accents render on dark surfaces only — never as decoration on cream.
--ink-blue carries links, tags & interactive state on cream. Neon lives on --espresso / --dark only.Two typefaces. Georgia does the editorial heavy lifting; system sans gets out of the way. Never mixed within a single element.
A 4px base scale. Use tokens, not arbitrary values — consistent rhythm is what makes surfaces feel like one system.
--s-1 4px--s-4 16px--s-6 32px--s-8 64pxSquare by default. Every surface, control, and container has a 0px radius. The sharp corner echoes the straight lines of the compass mark and the grid motif — a deliberate part of the identity, not an oversight. The exception: elements that are inherently round — avatars, status dots, the progress ring — stay circular, because their shape carries meaning rather than decorating a corner.
0--r-sm--r-md--r-lg--r-pillShadows are warm and low. Borders do the structural work; elevation signals only that something floats above the page.
Quick and unshowy. One duration, one easing curve. Motion confirms an action — it doesn't perform.
--dur 180ms--ease cubic-bezier(.22,.61,.36,1)Surfaces & content
The building blocks for pages people read — the blog, CMS, marketing, and brand surfaces. Every state below is live; hover and focus to see them.
Espresso primary on cream; the neon-yellow primary is reserved for dark surfaces. Uppercase sans, tight tracking, small radius.
Ink-blue category tags for content; count badges use neon red sparingly for notification state.
--ink-blue on --cream3Badge: --neon-red, count onlyFocus rings use ink blue. Labels are uppercase warm-brown eyebrows. Errors carry neon red with a helper line.
The core content unit. Kicker, serif title, one-to-two-sentence body. Hover lifts with elevation. The feature variant runs on espresso with a neon accent word.
The problem space
There's a point where every team shifts from "what's happening?" to "how do we fix it?" That shift is almost always premature.
Systems thinking
Incentives create behaviors. Behaviors reinforce structures. Structures outlast the rationale that created them.
Ask better questions.
When everyone has the same content operations, what's your actual differentiator?
Tracking results
Most teams define success after the thing is built. Very few can finish the sentence: "we'll know this worked when…"
Underline tabs for switching views within a page. Active state uses the ink-blue underline.
Inline messages. Left border carries the semantic color; icon and copy stay quiet.
Quiet data. Uppercase muted headers, hairline borders, hover row highlight. No zebra striping.
Product & interface
Interactive pieces for tools and app surfaces — overlays, feedback, and controls. Everything below works; open the modal, fire a toast, flip a switch.
Focused decisions on a scrim. Serif title, quiet body, right-aligned actions with a clear primary.
Transient confirmation, bottom-right, espresso surface with a neon status border. Auto-dismisses.
On-demand context. Espresso bubble, appears on hover with a small rise.
Binary settings. Ink-blue when on. Pair with a label; never leave a naked switch.
Action and option menus. Border resolves to ink blue when open; items highlight on cream 3.
Sort: Newest ⌄
Actions ⌄
Serif initials on brand surfaces — no photography, per the brand rules. Stacks show collaborators.
Linear and radial indicators. Ink-blue fill on a cream-3 track.
Nothing here yet — say so plainly and offer the one next step. The mark stands in for imagery.
No drafts yet
Start with the idea, not the setup for the idea.
Signature patterns
Composed patterns lifted straight from irvingspace.com — the defining surfaces where the tokens and components come together into something recognizably IrvingSpace. Reuse these as-is for brand-facing pages.
The homepage centerpiece: a faint yellow grid over espresso, an eyebrow with a leading rule, and a two-line Georgia headline where the second line glows neon. On the live site the neon line shifts colour and copy as you hover the CTAs — hover the buttons below to see it.
Are you solving for the right problem?
I write about the questions that get squeezed out when everyone's moving fast — on product, AI, and how to understand the space you're working with.
44px at 5% yellowHeadline Georgia 44–58pxNeon glow via text-shadow, dark onlyThe site's core layout device. Cells sit on a border-coloured background with 1px gaps, so the dividers are the background showing through — no drawn lines. Used for the idea cards, featured writing, and about blocks.
--cream.gap: 1pxbackground: --bordercells background: --creamThe three core ideas, each with a diagrammatic SVG (one accent colour apiece), a number, a serif title, and an uppercase ink-blue link that shifts to teal on hover. Illustrations are drawn, never stock — one accent per piece.
The article showcase: one ink-blue lead card with a cream serif title and amber meta, beside a stacked list of secondary posts. Each row is category label, serif title, excerpt, then date and read time.
The standalone featured article. A split accent border (coral tick over the yellow rule), an oversized ghosted index number, category and meta on one line, an ink-blue serif title, and a teal "Read" affordance. Reserved for the one post being spotlighted.
--neon-yel + --neon-coral tickWatermark № at 6% ink-blueRead link --neon-tealA full-bleed statement band on ink blue, with the grid fading in from the right. The eyebrow carries a trailing rule; a neon-yellow bar anchors the quote, whose first line reads upright and cream, the second italic and muted. The sub-note sits behind a hairline rule.
Product and systems thinker. Background in information systems. Writing at the intersection of problem definition, AI, and how teams understand the space they're working in.
--ink-blueAccent bar --neon-yelGrid masked to fade from rightThe two-up about pattern on a hairline grid: a bio cell (name, role, tags, link) beside a premise cell carrying an italic quote and the compass mark dissolving into a grid in the corner — the one place the mark appears as ambient texture rather than a logo.
"Irving Space is not a personal brand play. It's not a portfolio. It's a place to navigate through ideas, because exploring is how I figure out what I actually believe."— John Irving
The premise block. Large italic Georgia on cream 3, with a quiet attribution. Reserved for the voice speaking directly — no quotation-mark ornament, the italic carries it.
"Irving Space is not a personal brand play. It's not a portfolio. It's a place to navigate through ideas, because exploring is how I figure out what I actually believe."— John Irving
Principles for building
When a component decision isn't obvious, these settle it. They're the usage rules from the brand guide, applied to product.
- Let borders carry structure; reserve elevation for things that float
- Use ink blue for every interactive state on cream
- Keep neon on dark surfaces — the one exception is teal on link hover
- Serif for titles, sans for everything functional
- Pair every control with a clear label
- Scatter neon accents across cream surfaces to decorate
- Mix more than one neon on a single surface
- Introduce radii, shadows, or colors outside the tokens
- Use photography or external icon libraries
- Set body copy below 12px or mix serif and sans in one element