Irozon Design System — design foundations, tokens and components by Irozon AB.
Irozon Design System · v1.0
Typography

Manrope is the current digital typeface. Chalet is the historical one.

Manrope modernizes the original Irozon identity for digital use while preserving its clean, geometric and forward-looking character. As of Phase 2, this scale is shipped as ten reusable .type-* classes in src/index.css (@layer components) and applied across every public page — see docs/design/irozon-design-audit.md for the migration record.

Current digital typeface

Manrope

Self-hosted variable font (weight axis 200–800). Primary typeface for irozon.se, UI, marketing pages and future Irozon digital products, rendered live throughout this page.

Historical brand typeface

Chalet

Preserved as brand heritage, not embedded here or in production — no confirmed web license. Do not download it from unlicensed "free font" sources; it is not part of the historical logo design either, which is artwork, not type.

Weight system — disciplined, not arbitrary

  • Display XL / Display L / H1 / H2 — weight 700
  • H3 — weight 600
  • Body Large / Body / Body Small — weight 400
  • Label — weight 600
  • Caption — weight 500
Display XL .type-display-xlclamp(2.75rem, 2rem + 3.6vw, 5.5rem) · weight 700 · tracking -0.035em · line-height 1
Digital work, done well
Display L .type-display-lclamp(2.25rem, 1.7rem + 2.6vw, 4rem) · weight 700 · tracking -0.035em · line-height 1.03
Calm, precise, forward-looking
Heading 1 .type-h1clamp(1.9rem, 1.6rem + 1.3vw, 2.75rem) · weight 700 · tracking -0.03em · line-height 1.05
Section-opening heading
Heading 2 .type-h2clamp(1.5rem, 1.32rem + 0.8vw, 2.125rem) · weight 700 · tracking -0.025em · line-height 1.1
Subsection heading
Heading 3 .type-h3clamp(1.2rem, 1.1rem + 0.4vw, 1.5rem) · weight 600 · tracking -0.01em · line-height 1.25
Card or block heading
Body Large .type-body-lg1.25rem · weight 400 · line-height 1.6
Used for intros and lede paragraphs beneath a heading.
Body .type-body1rem · weight 400 · line-height 1.65
The default reading size for paragraphs and long-form content.
Body Small .type-body-sm0.9375rem · weight 400 · line-height 1.6 · muted
Secondary copy, captions inside components, helper text.
Label .type-label0.8125rem · weight 600 · uppercase · tracking +0.06em
Form label / eyebrow / UI chrome
Caption .type-caption0.75rem · weight 500 · tracking +0.03em
Timestamps, metadata, fine print

Tracking & line-height rules

  • Tracking (letter-spacing) is size-specific, never one fixed value. Large display text tightens (-0.02em to -0.03em) because letters read too far apart as they grow; Label/Caption relax to slightly positive tracking (+0.03em to +0.06em) for legibility at small sizes.
  • Line-height tracks size inversely — tight on large headings (0.98–1.15) so a multi-line display doesn't feel loose, looser on body copy (1.55–1.65) so paragraphs stay easy to scan.
  • Never apply a heading's negative tracking to body text — it reads as cramped, not premium.
  • Build hierarchy from weight + size + line-height together, not size alone — see the Weight system above.

Good vs. bad typography

Do
One confident heading
Body copy at regular weight, comfortable line-height, no tracking games.

One heading weight, one body weight, sizes drawn from the scale above. Hierarchy comes from the size/weight jump, not decoration.

Don't
A HEADING IN ALL CAPS
A second, competing bold subheading
And a third size/weight before the body copy even starts.

Everything bold, uppercase used as a heading style rather than a rare Label treatment, and three unrelated sizes stacked with no scale logic — nothing reads as "the important part" because everything is fighting for it.

Typography on dark

Dark-theme text uses the same weight system and scale as light mode — only the color values change, and Primary Text is a soft off-white rather than pure white so long blocks of copy don't glare.

Heading — Primary Text

Body copy — Secondary Text. Comfortable line-height, same rules as light mode, just re-tuned for a dark surface instead of white.

Muted / caption text — for helper copy, timestamps and metadata.

A link on dark — Lime, not Green, so it never reads as a button

Links on dark surfaces use Lime rather than Green — Green stays reserved for actions (buttons), so a reader can tell "this is clickable text" apart from "this is the primary action" at a glance, on both themes.