Skip to content

Commit b871678

Browse files
committed
fix(stepper): custom icons not centered inside circle
Fixes custom stepper icons not being centered inside the circle, because they aren't inside a `.mat-step-icon-content` which is what does the centering. Fixes #12945.
1 parent 193c2d0 commit b871678

File tree

2 files changed

+25
-22
lines changed

2 files changed

+25
-22
lines changed

src/lib/stepper/step-header.html

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,31 @@
33
[class.mat-step-icon-not-touched]="state == 'number' && !selected"
44
[ngSwitch]="state">
55

6-
<ng-container *ngSwitchCase="'number'" [ngSwitch]="!!(iconOverrides && iconOverrides.number)">
7-
<ng-container
8-
*ngSwitchCase="true"
9-
[ngTemplateOutlet]="iconOverrides.number"
10-
[ngTemplateOutletContext]="_getIconContext()"></ng-container>
11-
<span class="mat-step-icon-content" *ngSwitchDefault>{{index + 1}}</span>
12-
</ng-container>
6+
<div class="mat-step-icon-content">
7+
<ng-container *ngSwitchCase="'number'" [ngSwitch]="!!(iconOverrides && iconOverrides.number)">
8+
<ng-container
9+
*ngSwitchCase="true"
10+
[ngTemplateOutlet]="iconOverrides.number"
11+
[ngTemplateOutletContext]="_getIconContext()"></ng-container>
12+
<span *ngSwitchDefault>{{index + 1}}</span>
13+
</ng-container>
1314

14-
<ng-container *ngSwitchCase="'edit'" [ngSwitch]="!!(iconOverrides && iconOverrides.edit)">
15-
<ng-container
16-
*ngSwitchCase="true"
17-
[ngTemplateOutlet]="iconOverrides.edit"
18-
[ngTemplateOutletContext]="_getIconContext()"></ng-container>
19-
<mat-icon class="mat-step-icon-content" *ngSwitchDefault>create</mat-icon>
20-
</ng-container>
15+
<ng-container *ngSwitchCase="'edit'" [ngSwitch]="!!(iconOverrides && iconOverrides.edit)">
16+
<ng-container
17+
*ngSwitchCase="true"
18+
[ngTemplateOutlet]="iconOverrides.edit"
19+
[ngTemplateOutletContext]="_getIconContext()"></ng-container>
20+
<mat-icon *ngSwitchDefault>create</mat-icon>
21+
</ng-container>
2122

22-
<ng-container *ngSwitchCase="'done'" [ngSwitch]="!!(iconOverrides && iconOverrides.done)">
23-
<ng-container
24-
*ngSwitchCase="true"
25-
[ngTemplateOutlet]="iconOverrides.done"
26-
[ngTemplateOutletContext]="_getIconContext()"></ng-container>
27-
<mat-icon class="mat-step-icon-content" *ngSwitchDefault>done</mat-icon>
28-
</ng-container>
23+
<ng-container *ngSwitchCase="'done'" [ngSwitch]="!!(iconOverrides && iconOverrides.done)">
24+
<ng-container
25+
*ngSwitchCase="true"
26+
[ngTemplateOutlet]="iconOverrides.done"
27+
[ngTemplateOutletContext]="_getIconContext()"></ng-container>
28+
<mat-icon *ngSwitchDefault>done</mat-icon>
29+
</ng-container>
30+
</div>
2931
</div>
3032
<div class="mat-step-label"
3133
[class.mat-step-label-active]="active"

src/lib/stepper/step-header.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ $mat-step-header-icon-size: 16px !default;
3030
position: relative;
3131
}
3232

33-
.mat-step-icon-content {
33+
.mat-step-icon-content,
34+
.mat-step-icon .mat-icon {
3435
// Use absolute positioning to center the content, because it works better with text.
3536
position: absolute;
3637
top: 50%;

0 commit comments

Comments
 (0)