Styleguide
Behind the scenes of this site. Before any page, we designed the system: graph paper, graphite, a single coral and the pencil grades as a way of thinking. It was born in Figma, matured in Figma Make and became code with Claude AI, where we refined the structure and every detail until the site went live. And it keeps evolving the same way: improvements, implementation and everyday tools all go through Claude AI. This page reads the same token file that paints the site, so every color, measure and contrast here is the real value.
00. Brand
Two signatures, one system. Lápis HB signs the studio and the ambigram signs the designer. The domain picks the brand, tone of voice, favicon and share image, without duplicating a single page.
Hover or tap: the ambigram reads the same upside down.
Clear space: hexagon height ÷ 4 on every side.
01. Color tokens
Graphite, paper and a single coral. Every color has a light and a dark version, and the ratio next to it is computed live against the background it sits on.
-
background
--color-backgroundCream paper: main background, textured
- Light
- Dark
-
surface
--color-surfaceIndex cards and panels
- Light
- Dark
-
foreground
--color-foregroundGraphite: body text
- Light
- 15.72:1 · AAA
- Dark
- 17.53:1 · AAA
-
muted
--color-mutedSoft fills, stamps
- Light
- Dark
-
muted-foreground
--color-muted-foregroundMetadata and captions
- Light
- 5.68:1 · AA
- Dark
- 7.39:1 · AAA
-
accent
--color-accentCoral: large display, strokes and icons
- Light
- 3.37:1 · AA
- Dark
- 5.96:1 · AA
Rev. 03: #E36D5B → 2.87:1
-
accent-text
--color-accent-textCoral for small text and links
- Light
- 4.52:1 · AA
- Dark
- 8.37:1 · AAA
-
accent-contrast
--color-accent-contrastText on coral fill
- Light
- Dark
-
border
--color-borderComponent borders (3:1)
- Light
- 3.26:1 · AA
- Dark
- 3.39:1 · AA
Rev. 03: rgba(0,0,0,0.22) → 1.68:1
-
rule
--color-ruleDecorative rules and dividers
- Light
- Dark
Decorative
-
paper-grid
--color-paper-gridGraph-paper grid (40px lines; 8px lines use 35% of this value)
- Light
- Dark
Decorative
-
margin-line
--color-margin-lineNotebook margin line
- Light
- Dark
Decorative
-
destructive
--color-destructiveErrors and removal
- Light
- 5.38:1 · AA
- Dark
- 6.92:1 · AA
02. Texture and atmosphere
Paper is the surface of everything, because that’s where the work starts: a soft cream in the light theme and graphite in the dark one, both with fibers and grain generated in SVG (no image to download), an 8 and 40 px graph grid made purely in CSS (sharp at any zoom), and the notebook margin line.
background-image:
linear-gradient(var(--color-paper-grid) 1px, transparent 1px),
linear-gradient(90deg, var(--color-paper-grid) 1px, transparent 1px),
linear-gradient(var(--grid-minor-color) 1px, transparent 1px),
linear-gradient(90deg, var(--grid-minor-color) 1px, transparent 1px),
var(--paper-fiber); /* SVG fiber, one version per theme */
background-size: 40px 40px, 40px 40px, 8px 8px, 8px 8px, 520px 520px;
03. Typography
Three families, three roles: Space Grotesk for headings, Inter for reading and JetBrains Mono for notes. The prototype asked for Space Grotesk 900, which doesn’t exist, so the browser faked the bold. Here it’s a real 700 with tight tracking.
Usage rule: uppercase JetBrains Mono is only for short labels (about four words at most), like dates, stamps and figure captions. Sentences and explanations use Inter in normal case.
Space Grotesk
--font-display · 500 / 700
Headings. Uppercase, real 700 (the family has no 900).
Inter
--font-sans · 400 / 500 / 700
Body copy and interface.
JetBrains Mono
--font-mono · 400 / 700
Metadata, annotations and code.
-
display-xl 160px / 0.86 / -0.045em / 700
Lápis HB
-
display-l 96px / 0.9 / -0.04em / 700
Every good idea starts on paper
-
display-m 72px / 0.92 / -0.035em / 700
Every good idea starts on paper
-
heading 36px / 1 / -0.03em / 700
Every good idea starts on paper
-
title 22px / 1.1 / -0.02em / 700
Every good idea starts on paper
-
lead 26px / 1.3 / -0.01em / 500
Every good idea starts on paper
-
body 17px / 1.6 / 0 / 400
Every good idea starts on paper
-
small 14px / 1.5 / 0 / 400
Every good idea starts on paper
-
label 12px / 1.2 / 0.24em / 700
Every good idea starts on paper
-
micro 11px / 1.3 / 0.32em / 400
Every good idea starts on paper
04. Spacing
4 px base, tied to the paper’s 8 px grid: every space lands on a notebook line.
| token | px | bar |
|---|---|---|
--space-1 | 4px | |
--space-2 | 8px | |
--space-3 | 12px | |
--space-4 | 16px | |
--space-5 | 20px | |
--space-6 | 24px | |
--space-8 | 32px | |
--space-10 | 40px | |
--space-12 | 48px | |
--space-16 | 64px | |
--space-20 | 80px | |
--space-24 | 96px | |
--space-32 | 128px |
05. Grid
Content up to 1280px, with fluid side padding (clamp(16px, 4vw, 48px)). On desktop, the notebook margin line sits 56px from the edge.
06. Borders and strokes
Two kinds of line. Component borders use the border token (3:1, visible to everyone); decorative lines use rule and stay light, like a notebook’s ruling.
07. Interface elements
Real pieces of the site, with the same classes as the pages: what you see here is exactly what the site uses.
08. Notebook marks
Gestures of someone taking notes by hand, brought into the interface: page header, figure mark, circle and stamp.
annot
fig + corner-marks
#2B_estratégia
mark-circle
stamp--tilt
09. Iconography
Lucide, 2 px stroke, inline in the HTML. Always with visible text or an accessible label.
10. Accessibility
Accessibility is a rule of the system, not a final check. The table is computed right now from the tokens, in both themes: text needs 4.5:1; large text and graphics need 3:1.
| Pair | Light | Dark |
|---|---|---|
foreground on background |
15.72:1 · AAA | 17.53:1 · AAA |
foreground on surface |
16.10:1 · AAA | 15.84:1 · AAA |
muted-foreground on background |
5.68:1 · AA | 7.39:1 · AAA |
muted-foreground on surface |
5.83:1 · AA | 6.68:1 · AA |
muted-foreground on muted |
5.34:1 · AA | 5.48:1 · AA |
accent on background |
3.37:1 · AA (3:1) | 5.96:1 · AA (3:1) |
accent on surface |
3.45:1 · AA (3:1) | 5.38:1 · AA (3:1) |
accent-text on background |
4.52:1 · AA | 8.37:1 · AAA |
accent-text on surface |
4.63:1 · AA | 7.57:1 · AAA |
border on background |
3.26:1 · AA (3:1) | 3.39:1 · AA (3:1) |
destructive on background |
5.38:1 · AA | 6.92:1 · AA |
Everything that moves on its own stops with the pause button at the top, and disappears with the system’s “reduce motion”. Keyboard focus is always visible in coral.
11. Before the redesign
The previous site was a wall of covers filtered by tags, built with Bootstrap and Klavika, on white. The brand was always born from pencil and paper, but that idea stayed locked in the logo. Years later, we found a way to carry it across the whole site: graph paper, pencil strokes and notebook marks, all drawn from this guide. Navigation changed too. The wall gave way to cases told from problem to result, with studio and designer on two domains and a reading experience designed for mobile as well. And work that couldn’t go into the portfolio before, such as projects under NDA, now has a place, protected by a password.


