55$fallbacks : m3-progress-spinner .get-tokens ();
66
77.mat-mdc-progress-spinner {
8+ --mat-progress-spinner-animation-multiplier : 1 ;
9+
810 // Explicitly set to `block` since the browser defaults custom elements to `inline`.
911 display : block ;
1012
@@ -54,6 +56,11 @@ $fallbacks: m3-progress-spinner.get-tokens();
5456 }
5557}
5658
59+ // Slow down the animation by 25% when the user configured their OS to reduce motion.
60+ .mat-progress-spinner-reduced-motion {
61+ --mat-progress-spinner-animation-multiplier : 1.25 ;
62+ }
63+
5764.mdc-circular-progress__determinate-container ,
5865.mdc-circular-progress__indeterminate-circle-graphic ,
5966.mdc-circular-progress__indeterminate-container ,
@@ -79,7 +86,8 @@ $fallbacks: m3-progress-spinner.get-tokens();
7986
8087 .mdc-circular-progress--indeterminate & {
8188 opacity : 1 ;
82- animation : mdc- circular- progress- container- rotate 1568.2352941176ms linear infinite ;
89+ animation : mdc- circular- progress- container- rotate
90+ calc (1568.2352941176ms * var (--mat-progress-spinner-animation-multiplier )) linear infinite ;
8391 }
8492}
8593
@@ -127,11 +135,15 @@ $fallbacks: m3-progress-spinner.get-tokens();
127135 }
128136
129137 .mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left & {
130- animation : mdc- circular- progress- left- spin 1333ms cubic-bezier (0.4 , 0 , 0.2 , 1 ) infinite both ;
138+ animation : mdc- circular- progress- left- spin
139+ calc (1333ms * var (--mat-progress-spinner-animation-multiplier ))
140+ cubic-bezier (0.4 , 0 , 0.2 , 1 ) infinite both ;
131141 }
132142
133143 .mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right & {
134- animation : mdc- circular- progress- right- spin 1333ms cubic-bezier (0.4 , 0 , 0.2 , 1 ) infinite both ;
144+ animation : mdc- circular- progress- right- spin
145+ calc (1333ms * var (--mat-progress-spinner-animation-multiplier ))
146+ cubic-bezier (0.4 , 0 , 0.2 , 1 ) infinite both ;
135147 }
136148}
137149
@@ -145,7 +157,8 @@ $fallbacks: m3-progress-spinner.get-tokens();
145157
146158.mdc-circular-progress__spinner-layer {
147159 .mdc-circular-progress--indeterminate & {
148- animation : mdc- circular- progress- spinner- layer- rotate 5332ms cubic-bezier (0.4 , 0 , 0.2 , 1 )
160+ animation : mdc- circular- progress- spinner- layer- rotate
161+ calc (5332ms * var (--mat-progress-spinner-animation-multiplier )) cubic-bezier (0.4 , 0 , 0.2 , 1 )
149162 infinite both ;
150163 }
151164}
0 commit comments