One syntax for all types of mat-icon
- Dominant language
- TypeScript
- Stars
- 25k
- Forks
- 6.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 91
Description
#### Bug, feature request, or proposal:
Feature request
#### What is the expected behavior?
Changing between ligature-based and class-based icon specification shouldn't be a huge chore.
#### What is the current behavior?
To use ligature-based icons, I write `home`. If I want to change from an icon font to a font set that uses CSS classes to pick a glyph, I'd have to change each component by hand to something like ``.
#### What is the use-case or motivation for changing an existing behavior?
I've created a large application that uses dozens of `mat-icon` components, and would like a simple method of changing how they're rendered. Ideally, I'd be able to call something like `setDefaultFontSetClass` once and have all icons (that don't explicitly set a `fontSet` attribute) change their source.
#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
N/A, mat-icon has always behaved like this
#### Is there anything else we should know?
It would be great if either the `fontIcon` attribute or the component content could be used to select a glyph regardless of how the font set is provided, but I'd be happy to be told to just always use one or the other, as long as switching between types of font set using the icon registry is straightforward.
Contributor guide
Research direction
Start by reading the mat-icon component behavior and the icon registry APIs described in the issue, focusing on how ligature content, fontIcon, and fontSet are selected. Done means a large existing application can switch between ligature-based and class-based icon sources through one default configuration without editing each mat-icon usage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100