03Type system

Typography

One typeface, used one way. Manrope at weight 500 carries the entire system; hierarchy comes from scale, tracking, and colour, never from weight contrast. A senior developer set this type, not a brand designer. Two other faces appear, each quarantined to a single job.

Families

Three faces, strict lanes

Manrope does the work. Plus Jakarta Sans exists only for the literal word Stacklane. Inter appears only inside step-by-step procedure cards. Crossing those lanes dissolves the signal each font carries.

AaEverything. One weight (500), every size from 58px to 14px.
Manropedisplay + body
AaThe literal word “Stacklane”. Weight 600. Never a heading, never body.
Plus Jakarta Sanswordmark only
AaThe numerals and body inside How-It-Works step cards. The font shift signals “procedure”.
Interprocedure cards only

Scale

Five steps, one font

A modular scale from 58px display down to 14px label, every step at least 1.25× from the last. Rank between sections comes from content order and colour, not from inventing new sizes.

Displayclamp(44–58px) · 500 · -0.04em
Real software, shipped weekly
Headline28px · 500 · -0.03em
Serious software. Simple pricing.
Title20px · 500 · -0.03em
You own the code
Body16px · 500 · -0.03em
First working code in 48 hours, weekly demo on a fixed slot.
Label14px · 500 · -0.03em
Pause anytime, 7-day notice

Named rule

Hierarchy without weight

Manrope ships at weight 500 only. Size, colour, and the per-word emphasis pair do the ranking. Reaching for bold to mark importance dilutes both signals at once.

A better way to buildSame font, smaller, dimmer. The hierarchy still reads.
Do. One weight. Size and colour rank the lines.
A better way to buildHeavy weights fight the colour cue.
Don't. Don't mix weights for emphasis. Bold on top of size and colour is noise.

Detail

Tight tracking is the signature

Negative letter-spacing is the system’s fingerprint: -0.04em on display, -0.03em on body. It is what makes Manrope here read as set, not as default.

Stacklane
Display tracking-0.04em
Default tracking

0em reads loose and generic.

Brand tracking

-0.04em reads set and intentional.