Skip to content
SloplessTry the picker

Base style · contemporary · balanced

Technical Hairline

Engineered technical minimalism: a warm off-white page boxed into cells by 1 px hairlines, Geist with Geist Mono metadata, weight-500 headlines, isometric line drawings and one dark pill CTA.

Moods
technical, calm, minimal, serious
Suits
ai, devtools, saas, science, fintech, finance
Type
Geist

Principles

  • Box the page with 1 px hairlines: full-width rules between groups, cells sharing borders, 12 px radius on the outer box
  • Set headlines large and tight at weight 500, never bold; body in the same sans at 400
  • Carry all metadata in mono: uppercase tracked eyebrows, indices (01, 02), chips, dates, footnotes, state labels
  • Illustrate with isometric line drawings in thin ink strokes inside bordered panels, never photos, gradients or 3D renders
  • No shadows, no gradients, at most one muted accent; the dark pill button is the only filled shape

Hard rules

  • No drop shadows, glows, gradients, glass, grain or textures; depth comes from hairlines only.
  • No bold (600+) headlines, no all-caps headlines, no italic display type; caps live only in the small mono labels.
  • No photos, stock 3D renders, blobs or emoji as illustrations; isometric line drawings only (grayscale portraits are allowed in team cells).
  • No more than one accent colour, and never as a section fill; the only inverted area is one `heading`-colour ink band per page.
  • No floating cards with gaps between them where the pattern says shared cells, and no double borders where two cells meet.
  • No centred hero with three feature cards under it; heroes are split or headline-over-panel, flush left.

Full page preview with sample copy, rendered from the same tokens and layout the agent receives.

For coding agents

Rules and live patterns

Every pattern Technical Hairline owns, drawn by the same renderer as the picker with the style's default tokens and sample copy. Each has an anchor (#<pattern id>). A design's own DESIGN.md and tokens.json stay the source of truth; this page shows what the patterns look like.

Do

  • Use the palette as given: page `bg` (#FAFAF8 warm off-white), `heading` near-black for headlines and the primary button, `text` for paragraphs, `textMuted` for secondary lines and mono metadata, `border` for every hairline. `surface` only for a highlighted cell or the code panel header.
  • Draw structure with 1 px solid hairlines in the `border` colour: a full-width rule (edge to edge of the viewport, not the column) under the nav, between section groups and above the footer; a 1 px border with the 12 px `radius` around each boxed object.
  • Build card rows as one bordered object whose cells share their borders: the outer box has the radius, the inner cells are split by single 1 px hairlines (vertical between columns, horizontal between rows), no gap and no double lines. Cells have 32 × 24 px padding.
  • Set headlines in the heading face at weight 500 with tight tracking (-0.035em at display size, -0.02em at h2) and tight leading (0.96–1.05): hero display at step 7–8 (about 72–96 px at 1440), section h2 at step 5, cell titles at step 2–3.
  • Put a mono eyebrow over every section title: uppercase, weight 400, tracking 0.12–0.14em, step −1, `textMuted` or `text`, items separated by a middle dot ("TRAINING DATA · EVALS · RL ENVIRONMENTS").
  • Use the mono face for every index (01, 02, 03), date (13 OCT 2026), version, state label ("rest", "06"), file name, footnote ("Free estimate in about a minute · NDA on request") and chip.
  • Make chips and tags mono at step −1 inside a 1 px `border` outline with 4–6 px radius and 4 × 8 px padding; never filled.
  • Use exactly two button styles: the primary is a dark pill (`heading` fill, `bg` text, fully rounded, 40–44 px tall, weight 500, sentence case), the secondary is a plain text link in the heading colour with a trailing arrow (→). A bordered button is allowed only inside pricing cells.
  • Illustrate with isometric line drawings (`treatment: isometric`): rounded slabs, stacked plates, cubes and connectors drawn in 1–1.25 px `heading`-colour strokes on the page colour, no fills except a faint `surface` on the top face. Large drawings sit in a bordered panel with a tiny mono state label in the top-right corner; small 72–96 px drawings act as icons at the top of a cell.
  • Write lists inside cells as em-dash lists ("— Rights review and chain of title"): one item per line, the dash in `textMuted`.
  • Keep motion restrained: 160 ms colour and border transitions on hover (border to `heading`, arrow nudges 2 px right); isometric drawings may slowly drift a few px. Nothing animates under `prefers-reduced-motion`.
  • At 375 px: cells stack to one column (figures and people two per row), the hairlines become horizontal rules between cells, the hero drawing panel stays square under the copy, and the logo strip scrolls sideways. Side padding 20 px.

Don't

  • No drop shadows, glows, gradients, glass, grain or textures; depth comes from hairlines only.
  • No bold (600+) headlines, no all-caps headlines, no italic display type; caps live only in the small mono labels.
  • No photos, stock 3D renders, blobs or emoji as illustrations; isometric line drawings only (grayscale portraits are allowed in team cells).
  • No more than one accent colour, and never as a section fill; the only inverted area is one `heading`-colour ink band per page.
  • No floating cards with gaps between them where the pattern says shared cells, and no double borders where two cells meet.
  • No centred hero with three feature cards under it; heroes are split or headline-over-panel, flush left.
  • No thick rules (2 px+), dashed rules, or coloured borders; every line is 1 px `border` (or `heading` on hover).
  • No proportional fonts for metadata and no mono for paragraphs: the face says what kind of text it is.

Heroes (4)

Technical isometric split

hero.technical-isometric-split · hero

Desktop, 1440 px
Phone, 390 px
Rule
Copy in 1–6 (mono eyebrow, weight-500 headline, lead, dark pill CTA + arrow link, mono footnote); in 7–12 a 1 px bordered square panel holds an isometric line drawing with a mono state label top-right.
Slots
eyebrow, headline, subhead, cta, cta2, meta, heroImage, index
Grid
copy 1-6 · panel 7-12
Notes
The panel is only the 1 px border and the 12 px radius: no fill, no shadow. The drawing is one large slab among smaller ones, in thin heading-colour strokes.

The reference hero. Columns 1–6, vertically centred: mono uppercase eyebrow with dot separators, display headline at step 7 (weight 500, tight, ≤14 ch, about four lines), a lead paragraph at step 1 (≤50 ch), a row with the dark pill CTA and a text link with an arrow, then a mono footnote in `textMuted`. Columns 7–12: a square panel with a 1 px border and 12 px radius, no fill, holding a large isometric drawing (one big slab among a dozen small ones) and a tiny mono state label 16 px from the top-right corner. Phone: copy first, the square panel under it.

Hairline spec strip

hero.hairline-spec-strip · hero

Desktop, 1440 px
Phone, 390 px
Rule
Headline in 1–8 with the lead and CTAs bottom-aligned in 9–12; below, one bordered object: a 21:9 isometric drawing over a row of four figure cells that share their hairlines.
Slots
eyebrow, headline, subhead, cta, cta2, heroImage, index, stats[4..4]
Grid
headline 1-8 · aside 9-12 · panel 1-12

Top row: eyebrow and the display headline (step 7, weight 500, ≤17 ch) in 1–8; the muted lead and the CTA row bottom-aligned in 9–12. Below, one bordered object across 1–12: a 21:9 isometric drawing with a mono state label top-right, a full-width hairline, then four figure cells sharing hairlines (mono uppercase label, figure at step 5 weight 500, a small line). Two figure cells per row on phones.

Technical docs index

hero.technical-docs-index · hero

Desktop, 1440 px
Phone, 390 px
Rule
A contents rail in columns 1–3 (mono label, numbered ruled list); the message in 5–12 with a weight-500 headline, lead, CTAs and a strip of three key/value cells sharing hairlines.
Slots
sectionLabel, items[5..6], eyebrow, headline, subhead, cta, cta2, facts[3..3]
Grid
rail 1-3 · message 5-12

Docs-like. Columns 1–3: a contents rail (mono eyebrow, a hairline, five or six rows of mono number + title at weight 500 separated by hairlines); hidden on phones. Columns 5–12: eyebrow, display headline at step 7 (weight 500, ≤16 ch), lead, the dark pill CTA beside a bordered secondary button with arrow, then a bordered strip of three key/value cells sharing hairlines (mono uppercase key, value at weight 500).

Hairline boxed sheet

hero.hairline-boxed-sheet · hero

Desktop, 1440 px
Phone, 390 px
Rule
The whole hero is one bordered sheet: a mono header bar (eyebrow left, state label right) over a hairline, copy in 1–7 beside a square isometric drawing in 8–12, then a hairline and three key/value cells sharing hairlines.
Slots
eyebrow, index, headline, subhead, cta, cta2, meta, heroImage, facts[3..3]
Grid
copy 1-7 · drawing 8-12 · cells 1-12

The whole hero is one bordered sheet with the 12 px radius. A 48 px header bar: the mono uppercase eyebrow left and a mono state label right, closed by a hairline. Then copy in 1–7 (display headline at step 7, weight 500, ≤15 ch; lead; dark pill CTA + arrow link; mono footnote) beside a square isometric drawing in 8–12, no inner border. A hairline, then three key/value cells sharing vertical hairlines (mono uppercase key, value at weight 500). Phone: the drawing drops under the copy, the cells stack.

Navigation (2)

Content blocks (14)

Hairline shared cells

features.hairline-shared-cells · features

Desktop, 1440 px
Phone, 390 px
Rule
Header (h2 in 1–6, muted paragraph bottom-aligned in 8–12); then one bordered object of three cells split by shared hairlines: small isometric icon, mono uppercase label, title, muted line, mono arrow link.
Slots
sectionLabel, title, body, features[3..3]
Grid
title 1-6 · intro 8-12 · cells 1-12

Section header: mono eyebrow and h2 (step 5, weight 500, ≤20 ch) in 1–6, a muted paragraph bottom-aligned in 8–12. Then one bordered object split into three cells by vertical hairlines. Each cell, top to bottom: a small isometric icon (about 96 × 72 px), a mono uppercase label, the title at step 2 weight 500, a muted line or an em-dash list, and a mono arrow link (dropped on phones).

Technical program cards

features.technical-program-cards · features

Desktop, 1440 px
Phone, 390 px
Rule
Mono eyebrow and h2 left; three separate bordered cards 24 px apart: a drawing well (isometric, mono index top-right) over a hairline, then a mono chip, title, paragraph and arrow link.
Slots
sectionLabel, title, items[3..3]
Grid
title 1-6 · cards 1-12

Eyebrow and h2 (≤18 ch) top-left. Three separate bordered cards, 24 px apart. Each card: a drawing well (16:9 isometric drawing with the mono index top-right), a hairline across the card, then the body with 24 px padding: a mono uppercase chip, the title at step 3 weight 500, a muted paragraph and a text link with an arrow. On phones the cards scroll sideways, one and a bit in view.

Hairline index rows

list.hairline-index-rows · list

Desktop, 1440 px
Phone, 390 px
Rule
Header, then a ruled index: mono number in 1, title in 2–5, muted line in 6–10, arrow right-aligned in 11–12; full-row hairlines between rows.
Slots
sectionLabel, title, body, items[4..6]
Grid
number 1-1 · title 2-5 · body 6-10 · arrow 12-12

Section header as in the shared cells. Then a ruled index between two hairlines: each row is a 12-column sub-grid with the mono number in column 1, the title (step 2, weight 500) in 2–5, a muted line in 6–10 and an arrow link right-aligned in 11–12. Rows have 20 px padding top and bottom, split by hairlines. Phones drop the muted line.

Technical manifest split

content.technical-manifest-split · content

Desktop, 1440 px
Phone, 390 px
Rule
Opens on a full-width hairline. 1–6: eyebrow, h2 and a ruled list of guarantees; 7–12: a bordered manifest panel, a mono header row (label, note) over a hairline, then mono key/value lines.
Slots
sectionLabel, title, features[4..4], label, index, facts[4..4], email
Grid
copy 1-6 · panel 7-12

Opens on a full-width hairline with 64 px below it. Left 1–6: eyebrow, h2 (≤18 ch) and four guarantees as a ruled list (title at weight 500, muted line). Right 7–12: a bordered manifest panel: a header row with a mono file name left and a mono index right, a hairline, mono key/value lines (`key` in `textMuted` in the first third, value in `text`) split by hairlines like a JSON manifest, a hairline and a mono footnote (an address or file path).

Hairline figure cells

stats.hairline-figure-cells · stats

Desktop, 1440 px
Phone, 390 px
Rule
Header, then four figures in one bordered strip split by shared hairlines: mono uppercase label on top, the figure at step 6 weight 500, a one-line note. Two per row on phones.
Slots
sectionLabel, title, body, stats[4..4]
Grid
title 1-6 · intro 8-12 · cells 1-12

Section header, then four figures in one bordered strip with shared hairlines: mono uppercase label at the top, the figure at step 6 weight 500 with tabular numerals, a muted one-line note. Two per row on phones with the hairlines kept between them.

Technical paired quotes

testimonial.technical-paired-quotes · testimonial

Desktop, 1440 px
Phone, 390 px
Rule
Eyebrow and h2; two quotes in one bordered object split by a hairline: small isometric icon, the quote at step 2 weight 500, then the name and a mono role.
Slots
sectionLabel, title, quotes[2..2]
Grid
quotes 1-12

Eyebrow and h2. Two quotes in one bordered object split by a vertical hairline. Each: a small isometric icon, the quote at step 2 weight 500 (tight, ≤48 ch, no quote marks bigger than the text), then the name at weight 500 and the mono role under it.

Hairline plan cells

pricing.hairline-plan-cells · pricing

Desktop, 1440 px
Phone, 390 px
Rule
Header, then three plans in one bordered strip split by shared hairlines: mono uppercase plan name, mono chip, price at step 6 weight 500, muted line, bordered button; a mono footnote under the strip.
Slots
sectionLabel, title, body, plans[3..3], note
Grid
title 1-6 · intro 8-12 · plans 1-12

Section header, then three plans in one bordered strip with shared hairlines: mono uppercase plan name with a mono outlined chip on the same row, the price at step 6 weight 500, a muted line and a bordered button. A mono footnote under the strip ("Prices in EUR · billed monthly"). Never a lifted "most popular" card; the chip says it.

Technical ruled FAQ

faq.technical-ruled-list · faq

Desktop, 1440 px
Phone, 390 px
Rule
Title block in 1–4 (eyebrow, h2, mono note, arrow link); questions in 6–12 as a ruled list: mono index first, the question at weight 500, the answer under it. All answers visible.
Slots
sectionLabel, title, note, cta, faqs[5..6]
Grid
title 1-4 · list 6-12

Columns 1–4: eyebrow, h2 (≤12 ch), a mono note and an arrow link, pinned to the top. Columns 6–12: a ruled list between hairlines; each row has the mono index (01) in its first column and the question at step 1 weight 500 with the muted answer under it. All answers visible, no chevrons.

Technical two ways in

cta.technical-two-ways · cta

Desktop, 1440 px
Phone, 390 px
Rule
Opens on a full-width hairline. 1–5: h2 at step 6, a muted line, dark pill CTA + arrow link, a mono footnote; 7–12: two or three ruled routes, each a bordered mono letter chip, title, line and arrow.
Slots
sectionLabel, title, body, cta, cta2, meta, items[2..3]
Grid
copy 1-5 · routes 7-12

Opens on a full-width hairline. Left 1–5: eyebrow, h2 at step 6 (≤14 ch), a muted line, the dark pill CTA + arrow link and a mono footnote. Right 7–12: two or three routes between hairlines, each a 32 px bordered mono letter or number chip, the title at step 3 weight 500 with a muted line, and an arrow at the far right.

Hairline research cells

blog.hairline-research-cells · blog

Desktop, 1440 px
Phone, 390 px
Rule
h2 and an arrow link on one row, space between; three posts in one bordered strip split by shared hairlines: small isometric icon, mono date, title at weight 500, muted summary.
Slots
title, cta, posts[3..3]
Grid
title 1-8 · link 9-12 · posts 1-12

The h2 left and an arrow link right on one row. Three posts in one bordered strip with shared hairlines: a small isometric icon (a stacked cylinder or plate), the mono date, the title at step 2 weight 500, a muted two-line summary.

Technical mono strip

logos.technical-mono-strip · logos

Desktop, 1440 px
Phone, 390 px
Rule
A band between two full-width hairlines: a mono uppercase label, then five or six names in muted mono split by vertical hairlines. Scrolls sideways on phones.
Slots
sectionLabel, clients[5..6]
Grid
label 1-2 · names 3-12

A band between two full-width hairlines, 24 px padding: a mono uppercase label, then five or six customer names set in the mono face in `textMuted`, separated by vertical hairlines. On phones the names scroll sideways.

Hairline form cells

contact.hairline-form-cells · contact

Desktop, 1440 px
Phone, 390 px
Rule
Left 1–5: eyebrow, h2, muted line and a ruled list of mono key/value rows; right 7–12: a bordered form panel (name, email, message) with a mono heading.
Slots
sectionLabel, title, body, facts[3..4], label, contact
Grid
copy 1-5 · form 7-12

Left 1–5: eyebrow, h2, a muted line and a ruled list of mono key/value rows (EMAIL, PHONE, OFFICE). Right 7–12: a bordered form panel with a mono uppercase heading; inputs are 1 px bordered fields with the 12 px radius on the page colour, the submit is the dark pill.

Technical crew cells

team.technical-crew-cells · team

Desktop, 1440 px
Phone, 390 px
Rule
Header, then four people in one bordered strip split by shared hairlines: square grayscale portrait, name at weight 500, mono role. Two per row on phones.
Slots
sectionLabel, title, body, team[4..4]
Grid
title 1-6 · intro 8-12 · people 1-12

Section header, then four people in one bordered strip with shared hairlines: a square grayscale portrait, the name at weight 500 and the mono role. Two per row on phones.

Technical ink band

content.technical-ink-band · content

Desktop, 1440 px
Phone, 390 px
Rule
The one inverted band: heading-colour fill edge to edge. 1–6: eyebrow, h2, line, hairline, three short points, inverted pill CTA + arrow link; 7–12: a bordered drawing panel.
Slots
sectionLabel, title, body, features[3..3], cta, cta2, image, index
Grid
copy 1-6 · panel 7-12

The single inverted band on a page: `heading` fill edge to edge with `bg`-colour text. Copy in 1–6 (eyebrow, h2, a line, a hairline, three short points in a row, then the inverted pill CTA and an arrow link); a bordered isometric drawing panel in 7–12 with light strokes and the mono state label.

Footers (2)

Technical sitemap wordmark

footer.technical-sitemap-wordmark · footer

Desktop, 1440 px
Phone, 390 px
Rule
Opens on a full-width hairline: wordmark, tagline and mono status line in 1–4, stacked links in 6–8, mono contact in 9–12; a hairline, the mono legal row, then the site name as a giant outlined wordmark.
Slots
siteName, tagline, meta, pages, label, email, address, legal, social
Grid
brand 1-4 · links 6-8 · contact 9-12

Opens on a full-width hairline. Wordmark, tagline and a mono status line in 1–4; stacked links in 6–8; mono contact (label, email, address) in 9–12; a hairline, a mono legal row with a social link, then the site name at step 8 as a giant outlined wordmark (1 px stroke, no fill) bleeding off the bottom.

Hairline compact bar

footer.hairline-compact-bar · footer

Desktop, 1440 px
Phone, 390 px
Rule
A 1 px hairline, then one row: wordmark, plain links and the mono legal line, space between.
Slots
siteName, pages, legal

A 1 px hairline, then one row: wordmark, plain links and the mono legal line, space between.

Hero library heroes that suit Technical Hairline