angular / angular/components

MatIcon `inline` doesn't work with `svgIcon`

Open
#16,483 3 comments 11 reactions 0 assignees View on GitHub
area: material/icon P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

#### Reproduction

https://stackblitz.com/edit/angular-s9aswa

#### Expected Behavior

Loading an icon via SVG and displaying it `inline` should make its size proportionate to the text.

#### Actual Behavior

The size of the icon did not change and the icon's position broke.

I think it has to do with how the SVG has `width: 100%; height: 100%` applied to it:

https://github.com/angular/components/blob/738f10c9931642469f3699d4c8ff50b1e66a960e/src/material/icon/icon-registry.ts#L525

Maybe it could change to `1em` for `inline` icons?

Alternatively if `inline` is not supported for `svgIcon` then it should be documented.

Note: I had to inline the SVG as base64 because the original StackBlitz is broken - I will open another issue for this.

#### Environment

- Angular: Docs Stackblitz (8.1.0)
- CDK/Material: Docs Stackblitz (8.0.2)
- Browser(s): Chrome 75
- Operating System (e.g. Windows, macOS, Ubuntu): Windows 10

Contributor guide

Open the contributing guide

Research direction

Start with the linked StackBlitz reproduction, then inspect src/material/icon/icon-registry.ts around line 525, where SVG sizing is applied. Confirm how inline SVG icons behave with svgIcon and establish whether the final result should make the icon proportionate to surrounding text or document that combination as unsupported.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.