Skip to content

Update bundled Google Fonts (Material Symbols + Roboto v50) - #5762

Merged
falkoschindler merged 2 commits into
zauberzeug:mainfrom
evnchn:update/google-fonts
Feb 11, 2026
Merged

Update bundled Google Fonts (Material Symbols + Roboto v50)#5762
falkoschindler merged 2 commits into
zauberzeug:mainfrom
evnchn:update/google-fonts

Conversation

@evnchn

@evnchn evnchn commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator

Motivation

Users report that newer Material Symbols icons like database_upload, cloud_alert, and desktop_cloud render incorrectly as two separate icons instead of one. This is because the bundled Material Symbols fonts were last updated in January 2024 and are missing icons added since then.

See discussion: #5743

An audit script confirmed the update is purely additive -- 519 new codepoints added, 0 removed across all font variants. Full audit results posted here: #5743 (reply in thread)

Implementation

  • Re-ran fetch_google_fonts.py to download latest fonts from Google Fonts
  • Fixed fetch_google_fonts.py to handle duplicate font URLs: Google now serves Roboto v50 as a variable font where the same file is shared across multiple weights, which caused the script to crash on duplicate filenames
  • Removed stale version-pinned URL fallback replacements (v140, v30) that were dead code after the download loop

Font changes:

  • Material Icons (all 4 variants): byte-for-byte identical, no change
  • Material Symbols Outlined: 254KB -> 313KB (+519 codepoints)
  • Material Symbols Rounded: 294KB -> 361KB (+519 codepoints)
  • Material Symbols Sharp: 241KB -> 298KB (+519 codepoints)
  • Roboto: v30 -> v50 (variable font), 42 files -> 9 files
  • Total font files: 49 -> 16

Progress

  • I chose a meaningful title that completes the sentence: "If applied, this PR will..."
  • The implementation is complete.
  • If this PR addresses a security issue, it has been coordinated via the security advisory process.
  • Pytests have been added (or are not necessary).
  • Documentation has been added (or is not necessary).

Re-fetch all bundled Google Fonts to pick up latest Material Symbols
icons (e.g. database_upload, cloud_alert, desktop_cloud).

- Material Symbols Outlined/Rounded/Sharp grew ~23% with new icons
- Roboto upgraded from v30 to v50 (variable font), reducing font
  files from 49 to 16
- Fix fetch_google_fonts.py to handle duplicate font URLs (Google now
  serves the same Roboto variable font file across multiple weights)
- Remove stale version-pinned URL fallback replacements (v140, v30)

Closes zauberzeug#5743

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@evnchn

evnchn commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator Author

I like this for the Lighthouse improvement as well: variable fonts are the future!

@falkoschindler
falkoschindler self-requested a review February 11, 2026 13:54
@falkoschindler falkoschindler added feature Type/scope: New or intentionally changed behavior review Status: PR is open and needs review labels Feb 11, 2026
@falkoschindler falkoschindler added this to the 3.8 milestone Feb 11, 2026

@falkoschindler falkoschindler left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! 👌🏻

@falkoschindler
falkoschindler added this pull request to the merge queue Feb 11, 2026
Merged via the queue into zauberzeug:main with commit f63c881 Feb 11, 2026
7 checks passed
@evnchn
evnchn deleted the update/google-fonts branch February 12, 2026 13:08
@falkoschindler falkoschindler added dependencies Type/scope: Third party libraries and removed feature Type/scope: New or intentionally changed behavior labels Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Type/scope: Third party libraries review Status: PR is open and needs review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants