WIP: redesign 01 — typography (three type voices) #6

Closed
michalvankodev wants to merge 0 commits from redesign/01-typography into redesign/00-foundation

What

Slice 1/9 of the selected redesign (base: #5). Typography foundation — ports the decided type system, nothing else.

  • Three self-hosted voices — Exo 2 (display), Noto Sans (reading), Noto Sans Mono (machine); variable woff2 latin + latin-ext, font-display: swap. Slovak coverage verified via fonttools (union of subsets = complete). Noto Sans ↔ Mono vertical metrics identical by design (verified: 1069/-293 both).
  • Legacy fonts removed — baloo2, cantarell, comfortaa, orbitron, sansation, ubuntu + fallback-metric @font-face hacks (~2 MB of dead assets).
  • Fixed reading size — --text-read: 1.25rem / 1.75, all viewports; measure 42rem / note 36rem. Viewport-scaled body ramps (lg:text-readxl 28px) dropped per decision.
  • One heading rule — base-layer h1–h4 = Exo 2 + blue-950; named ramp tokens --text-display-1/2/3 (clamp + baked weight/line-height); extrabold/blue-900 stragglers normalized; pre-existing portfolio h2/h1 tag mismatch fixed.
  • ::selection brand pink, :focus-visible kept.

Visual delta: everything re-voices (Noto Sans body, Exo 2 headings), reading text is 20px fixed, headings unified navy. Layout/chrome untouched — that's slice 2.

Preview: https://redesign-01-typography.dev.michalvanko.dev

## What Slice 1/9 of the selected redesign (base: #5). Typography foundation — ports the decided type system, nothing else. - **Three self-hosted voices** — Exo 2 (display), Noto Sans (reading), Noto Sans Mono (machine); variable woff2 latin + latin-ext, `font-display: swap`. Slovak coverage verified via fonttools (union of subsets = complete). Noto Sans ↔ Mono vertical metrics identical by design (verified: 1069/-293 both). - **Legacy fonts removed** — baloo2, cantarell, comfortaa, orbitron, sansation, ubuntu + fallback-metric `@font-face` hacks (~2 MB of dead assets). - **Fixed reading size** — `--text-read: 1.25rem / 1.75`, all viewports; measure 42rem / note 36rem. Viewport-scaled body ramps (`lg:text-readxl` 28px) dropped per decision. - **One heading rule** — base-layer `h1–h4` = Exo 2 + `blue-950`; named ramp tokens `--text-display-1/2/3` (clamp + baked weight/line-height); extrabold/blue-900 stragglers normalized; pre-existing portfolio `h2`/`h1` tag mismatch fixed. - **`::selection` brand pink**, `:focus-visible` kept. Visual delta: everything re-voices (Noto Sans body, Exo 2 headings), reading text is 20px fixed, headings unified navy. Layout/chrome untouched — that's slice 2. **Preview:** https://redesign-01-typography.dev.michalvanko.dev
redesign: typography — three self-hosted type voices
All checks were successful
test / cargo test (push) Successful in 48s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 58s
28b4623ec3
- Exo 2 (display), Noto Sans (reading), Noto Sans Mono (machine) as
  variable woff2 (latin + latin-ext), font-display: swap, verified
  Slovak glyph coverage (ľščťžôäŕĺďň in the two-subset union)
- Noto Sans + Noto Sans Mono share identical vertical metrics
  (1069/-293) — code matches reading line boxes by design; Exo 2 gets
  explicit line-heights via display tokens instead of metric patching
- --font-display/--font-read/--font-mono + --font-sans = Noto stack;
  legacy dirs (baloo2 cantarell comfortaa orbitron sansation ubuntu)
  and fallback-metric @font-face hacks removed
- Fixed reading size: --text-read 1.25rem/1.75, all viewports (rem —
  browser preference respected; viewport scaling rejected); measure
  42rem, note 36rem; viewport type ramps on article content dropped
- One heading rule: base-layer h1–h4 = Exo 2 + blue-950; named display
  ramp tokens (--text-display-1/2/3 with baked weight + line-height);
  ad-hoc font-extrabold/weight drift in templates normalized;
  text-blue-900 heading stragglers fixed; portfolio h2/h1 mismatch
  fixed; article-body heading ramp bold/semibold
- ::selection brand pink (bg-pink-200 text-blue-950), :focus-visible
  blue outline kept
michalvankodev force-pushed redesign/01-typography from 28b4623ec3
All checks were successful
test / cargo test (push) Successful in 48s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 58s
to f567084ac3
All checks were successful
test / cargo test (push) Successful in 54s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m13s
2026-08-21 15:03:23 +02:00
Compare
michalvankodev force-pushed redesign/01-typography from f567084ac3
All checks were successful
test / cargo test (push) Successful in 54s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m13s
to 2b0b90b8a9
All checks were successful
test / cargo test (push) Successful in 55s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m6s
2026-08-21 16:10:07 +02:00
Compare
michalvankodev force-pushed redesign/01-typography from 2b0b90b8a9
All checks were successful
test / cargo test (push) Successful in 55s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Has been skipped
preview / build + deploy preview (pull_request) Successful in 1m6s
to af8531dad7
All checks were successful
test / cargo test (push) Successful in 48s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Successful in 0s
preview / build + deploy preview (pull_request) Has been skipped
2026-08-23 12:36:48 +02:00
Compare
Author
Owner

Merged into redesign/00-foundation (fast-forward to af8531d) per the agreed merge policy — slices integrate into 00, main stays production-safe until the redesign ships. Integrated state: https://redesign-00-foundation.dev.michalvanko.dev

Merged into redesign/00-foundation (fast-forward to af8531d) per the agreed merge policy — slices integrate into 00, main stays production-safe until the redesign ships. Integrated state: https://redesign-00-foundation.dev.michalvanko.dev
michalvankodev closed this pull request 2026-08-23 12:38:27 +02:00
All checks were successful
test / cargo test (push) Successful in 48s
preview / preview hostname (pull_request) Successful in 0s
preview / teardown preview (pull_request) Successful in 0s
preview / build + deploy preview (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
michalvankodev/michalvankodev-site!6
No description provided.