Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6a5f30c
docs(style[toc,body]): refine right-panel TOC and body typography
tony Mar 14, 2026
b85cb5a
docs(style[toc,content]): flexible TOC width with inner-panel padding
tony Mar 14, 2026
a412604
docs(style[toc]): increase TOC font size from 81.25% to 87.5%
tony Mar 14, 2026
693a880
docs(style[headings]): refine heading hierarchy — scale, spacing, eye…
tony Mar 14, 2026
9c45202
docs(fonts): self-host IBM Plex via Fontsource CDN
tony Mar 14, 2026
98d2e0f
docs(fonts[css]): fix variable specificity — use body instead of :root
tony Mar 14, 2026
2c560c4
docs(fonts[preload]): add <link rel="preload"> for critical font weights
tony Mar 14, 2026
b9e8b6f
docs(fonts[css]): add kerning, ligatures, and code rendering overrides
tony Mar 14, 2026
f83b0cb
docs(images[cls]): prevent layout shift and add non-blocking loading
tony Mar 14, 2026
b3a0481
docs(nav[spa]): add SPA-like navigation to avoid full page reloads
tony Mar 14, 2026
ccab059
docs(fonts[fallback]): add fallback font metrics to eliminate FOUT re…
tony Mar 14, 2026
36ead8f
docs(images[badges]): add placeholder sizing for external badge images
tony Mar 14, 2026
c67cb99
docs(sidebar[projects]): prevent active link flash with visibility gate
tony Mar 14, 2026
006a281
docs(nav[spa]): wrap DOM swap in View Transitions API for smooth cros…
tony Mar 14, 2026
7fede09
docs(css[structure]): move view transitions section after image rules
tony Mar 14, 2026
0fa6520
docs(fonts[loading]): switch to font-display block with inline CSS
tony Mar 14, 2026
f128bf2
docs(fonts[lint]): add docstrings to sphinx_fonts extension
tony Mar 14, 2026
09b5b2f
test(docs[sphinx_fonts]): add tests for sphinx_fonts extension
tony Mar 14, 2026
5d37f93
test(docs[sphinx_fonts]): fix ruff lint errors in test_sphinx_fonts
tony Mar 14, 2026
2e5f1ad
test(docs[sphinx_fonts]): apply ruff format to test_sphinx_fonts
tony Mar 14, 2026
2f458a7
test(docs[sphinx_fonts]): fix mypy errors in test_sphinx_fonts
tony Mar 14, 2026
8def325
pyproject(mypy): add sphinx_fonts to ignore_missing_imports
tony Mar 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
docs(style[headings]): refine heading hierarchy — scale, spacing, eye…
…brow labels

why: Furo headings are large and bold, crowding the page and
flattening visual hierarchy. Biome-inspired medium-weight scale
uses size and spacing — not boldness — to convey structure.
what:
- Set all article headings to font-weight: 500
- Scale: h1 1.8em, h2 1.6em, h3 1.15em, h4-h6 eyebrow treatment
- Add uppercase + letter-spacing + muted color for h4-h6
- Add changelog heading extras for #history section
- Revert TOC variables from body back to :root
  • Loading branch information
tony committed Mar 14, 2026
commit 693a880567305bf2d9a40cb3f0c88787bd1a64ca
99 changes: 81 additions & 18 deletions docs/_static/css/custom.css
Original file line number Diff line number Diff line change
@@ -1,20 +1,3 @@
h2 {
margin-bottom: 1.25rem;
margin-top: 1.25rem;
scroll-margin-top: 0.5rem;
}

h3 {
margin-bottom: 1.25rem;
margin-top: 1.25rem;
scroll-margin-top: 0.5rem;
}

h4 {
margin-bottom: 1.25rem;
scroll-margin-top: 0.5rem;
}

.sidebar-tree p.indented-block {
padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0
var(--sidebar-item-spacing-horizontal);
Expand All @@ -36,14 +19,94 @@ h4 {
font-weight: bold;
}


/* ── Global heading refinements ─────────────────────────────
* Biome-inspired scale: medium weight (500) throughout — size
* and spacing carry hierarchy, not boldness. H4-H6 add eyebrow
* treatment (uppercase, muted). `article` prefix overrides
* Furo's bare h1-h6 selectors.
* ────────────────────────────────────────────────────────── */
article h1 {
font-size: 1.8em;
font-weight: 500;
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}

article h2 {
font-size: 1.6em;
font-weight: 500;
margin-top: 2.5rem;
margin-bottom: 0.5rem;
}

article h3 {
font-size: 1.15em;
font-weight: 500;
margin-top: 1.5rem;
margin-bottom: 0.375rem;
}

article h4 {
font-size: 0.85em;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--color-foreground-secondary);
margin-top: 1rem;
margin-bottom: 0.25rem;
}

article h5 {
font-size: 0.8em;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--color-foreground-secondary);
}

article h6 {
font-size: 0.75em;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--color-foreground-secondary);
}

/* ── Changelog heading extras ───────────────────────────────
* Vertical spacing separates consecutive version entries.
* Category headings (h3) are muted. Item headings (h4) are
* subtle. Targets #history section from CHANGES markdown.
* ────────────────────────────────────────────────────────── */

/* Spacing between consecutive version entries */
#history > section + section {
margin-top: 2.5rem;
}

/* Category headings — muted secondary color */
#history h3 {
color: var(--color-foreground-secondary);
margin-top: 1.25rem;
}

/* Item headings — subtle, same size as body */
#history h4 {
font-size: 1em;
margin-top: 1rem;
text-transform: none;
letter-spacing: normal;
color: inherit;
}

/* ── Right-panel TOC refinements ────────────────────────────
* Adjust Furo's table-of-contents proportions for better
* readability. Inspired by Starlight defaults (Biome docs).
* Uses Furo CSS variable overrides where possible.
* ────────────────────────────────────────────────────────── */

/* TOC font sizes: override Furo defaults (75% → 87.5%) */
body {
:root {
--toc-font-size: var(--font-size--small); /* 87.5% = 14px */
--toc-title-font-size: var(--font-size--small); /* 87.5% = 14px */
}
Expand Down