angular / angular/components

One syntax for all types of mat-icon

Open
#12,484 3 comments 5 reactions 0 assignees View on GitHub
area: material/icon feature P3
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.