Skip to content

Commit 948f655

Browse files
crisbetommalerba
authored andcommitted
fix(progress-bar): query state animation not working (#11459)
Currently the animation for a progress bar in the `query` state is disabled by default due to the `_noop-animation` producing the wrong selector. It looks like using the ampersand inside interpolation (e.g. in `@at-root ._mat-animation-noopable#{&}`) doesn't work as expected once we have more than one selector. What ends up happening is that SASS interpolates the first selector, but then leaves the other one as it is, which causes it to disable the animation. Fixes #11453.
1 parent 78ac07a commit 948f655

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/lib/progress-bar/progress-bar.scss

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ $mat-progress-bar-piece-animation-duration: 250ms !default;
4040
// The progress bar buffer is the bar indicator showing the buffer value and is only visible
4141
// beyond the current value of the primary progress bar.
4242
.mat-progress-bar-buffer {
43-
@include _noop-animation();
4443
transform-origin: top left;
4544
transition: transform $mat-progress-bar-piece-animation-duration ease;
4645

@@ -58,7 +57,6 @@ $mat-progress-bar-piece-animation-duration: 250ms !default;
5857

5958
// The progress bar fill fills the progress bar with the indicator color.
6059
.mat-progress-bar-fill {
61-
@include _noop-animation();
6260
animation: none;
6361
transform-origin: top left;
6462
transition: transform $mat-progress-bar-piece-animation-duration ease;
@@ -70,7 +68,6 @@ $mat-progress-bar-piece-animation-duration: 250ms !default;
7068

7169
// A pseudo element is created for each progress bar bar that fills with the indicator color.
7270
.mat-progress-bar-fill::after {
73-
@include _noop-animation();
7471
animation: none;
7572
content: '';
7673
display: inline-block;
@@ -95,27 +92,23 @@ $mat-progress-bar-piece-animation-duration: 250ms !default;
9592
&[mode='indeterminate'],
9693
&[mode='query'] {
9794
.mat-progress-bar-fill {
98-
@include _noop-animation();
9995
transition: none;
10096
}
10197
.mat-progress-bar-primary {
10298
// Avoids stacked animation tearing in Firefox >= 57.
103-
@include _noop-animation();
10499
@include backface-visibility(hidden);
105100
animation: mat-progress-bar-primary-indeterminate-translate
106101
$mat-progress-bar-full-animation-duration infinite linear;
107102
left: -145.166611%;
108103
}
109104
.mat-progress-bar-primary.mat-progress-bar-fill::after {
110105
// Avoids stacked animation tearing in Firefox >= 57.
111-
@include _noop-animation();
112106
@include backface-visibility(hidden);
113107
animation: mat-progress-bar-primary-indeterminate-scale
114108
$mat-progress-bar-full-animation-duration infinite linear;
115109
}
116110
.mat-progress-bar-secondary {
117111
// Avoids stacked animation tearing in Firefox >= 57.
118-
@include _noop-animation();
119112
@include backface-visibility(hidden);
120113
animation: mat-progress-bar-secondary-indeterminate-translate
121114
$mat-progress-bar-full-animation-duration infinite linear;
@@ -124,7 +117,6 @@ $mat-progress-bar-piece-animation-duration: 250ms !default;
124117
}
125118
.mat-progress-bar-secondary.mat-progress-bar-fill::after {
126119
// Avoids stacked animation tearing in Firefox >= 57.
127-
@include _noop-animation();
128120
@include backface-visibility(hidden);
129121
animation: mat-progress-bar-secondary-indeterminate-scale
130122
$mat-progress-bar-full-animation-duration infinite linear;
@@ -134,7 +126,6 @@ $mat-progress-bar-piece-animation-duration: 250ms !default;
134126
&[mode='buffer'] {
135127
.mat-progress-bar-background {
136128
// Avoids stacked animation tearing in Firefox >= 57.
137-
@include _noop-animation();
138129
@include backface-visibility(hidden);
139130
animation: mat-progress-bar-background-scroll
140131
$mat-progress-bar-piece-animation-duration infinite linear;
@@ -144,6 +135,21 @@ $mat-progress-bar-piece-animation-duration: 250ms !default;
144135
display: block;
145136
}
146137
}
138+
139+
// Disabled animations handling.
140+
&._mat-animation-noopable {
141+
.mat-progress-bar-fill,
142+
.mat-progress-bar-fill::after,
143+
.mat-progress-bar-buffer,
144+
.mat-progress-bar-primary,
145+
.mat-progress-bar-primary.mat-progress-bar-fill::after,
146+
.mat-progress-bar-secondary,
147+
.mat-progress-bar-secondary.mat-progress-bar-fill::after,
148+
.mat-progress-bar-background {
149+
animation: none;
150+
transition: none;
151+
}
152+
}
147153
}
148154

149155

0 commit comments

Comments
 (0)