[Angular] Migrate from the Material Icons font to Material Symbols #1170

Open
opened 2026-10-02 04:44:19 +00:00 by spikerj · 0 comments
Owner

Why

Google's legacy Material Icons font is deprecated in favour of Material Symbols (variable font: weight/fill/grade/optical size, far larger icon set, still maintained). Angular Material 22.2 mat-icon now detects Material Symbols ligatures and applies the right classes (angular/components#33750), so the switch no longer needs per-icon fontSet plumbing.

What changes for us

  • Self-hosted font: projects/spikersoft/src/assets/fonts/material-icons/material-icons.css (+ the font files) → self-host Material Symbols (Outlined/Rounded — pick one to match the glass theme) and set MatIconRegistry.setDefaultFontSetClass(...) at bootstrap.
  • 454 files use <mat-icon>; a handful of ligature names differ between the sets — script a check of all used ligature names against the Symbols codepoints list.
  • contact.component.ts uses MatIconRegistry directly — review.
  • Re-check the ngsw asset groups / offline cache include the new font.

Acceptance criteria

  • one icon font shipped (old font removed)
  • every used ligature renders (scripted check + visual pass of nav, dashboards, playgrounds)
  • bundle/asset size noted in the PR

Size: M. Best after the Angular 22.2 upgrade.

Links: Best after #1165.


Filed from the 2026-10-02 spikersoft-angular pnpm outdated changelog review.

## Why Google's legacy **Material Icons** font is deprecated in favour of **Material Symbols** (variable font: weight/fill/grade/optical size, far larger icon set, still maintained). Angular Material 22.2 `mat-icon` now detects Material Symbols ligatures and applies the right classes (angular/components#33750), so the switch no longer needs per-icon `fontSet` plumbing. ## What changes for us - Self-hosted font: `projects/spikersoft/src/assets/fonts/material-icons/material-icons.css` (+ the font files) → self-host Material Symbols (Outlined/Rounded — pick one to match the glass theme) and set `MatIconRegistry.setDefaultFontSetClass(...)` at bootstrap. - 454 files use `<mat-icon>`; a handful of ligature names differ between the sets — script a check of all used ligature names against the Symbols codepoints list. - `contact.component.ts` uses `MatIconRegistry` directly — review. - Re-check the ngsw asset groups / offline cache include the new font. ## Acceptance criteria - [ ] one icon font shipped (old font removed) - [ ] every used ligature renders (scripted check + visual pass of nav, dashboards, playgrounds) - [ ] bundle/asset size noted in the PR Size: **M**. Best after the Angular 22.2 upgrade. **Links:** Best after #1165. --- _Filed from the 2026-10-02 spikersoft-angular `pnpm outdated` changelog review._
spikerj added the enhancement label 2026-10-02 04:44:19 +00:00
Sign in to join this conversation.