MatIcon `inline` doesn't work with `svgIcon`
- 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
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