@@ -12,6 +12,7 @@ $md-slider-thumb-size: 20px !default;
1212
1313$md-slider-thumb-default-scale : 0.7 !default ;
1414$md-slider-thumb-focus-scale : 1 !default ;
15+ $md-slider-thumb-disabled-scale : 0.5 !default ;
1516
1617$md-slider-thumb-arrow-gap : 12px !default ;
1718
@@ -30,16 +31,29 @@ md-slider {
3031 vertical-align : middle ;
3132}
3233
33- .md-slider-track {
34+ .md-slider-wrapper {
3435 position : absolute ;
3536}
3637
38+ .md-slider-track-wrapper {
39+ position : absolute ;
40+ top : 0 ;
41+ left : 0 ;
42+ overflow : hidden ;
43+ }
44+
3745.md-slider-track-fill {
3846 position : absolute ;
3947 transform-origin : 0 0 ;
4048 transition : transform $swift-ease-out-duration $swift-ease-out-timing-function ;
4149}
4250
51+ .md-slider-track-background {
52+ position : absolute ;
53+ transform-origin : 100% 100% ;
54+ transition : transform $swift-ease-out-duration $swift-ease-out-timing-function ;
55+ }
56+
4357.md-slider-ticks-container {
4458 position : absolute ;
4559 left : 0 ;
@@ -93,6 +107,7 @@ md-slider {
93107// Slider sliding state.
94108.md-slider-sliding {
95109 .md-slider-track-fill ,
110+ .md-slider-track-background ,
96111 .md-slider-thumb-container {
97112 // Must use `transition-duration: 0ms` to disable animation rather than `transition: none`.
98113 // On Mobile Safari `transition: none` causes the slider thumb to appear stuck.
@@ -103,7 +118,7 @@ md-slider {
103118
104119// Slider with ticks.
105120.md-slider-has-ticks {
106- .md-slider-track ::after {
121+ .md-slider-wrapper ::after {
107122 content : ' ' ;
108123 position : absolute ;
109124 border : 0 solid $md-slider-tick-color ;
@@ -113,7 +128,7 @@ md-slider {
113128
114129 & .md-slider-active ,
115130 & :hover {
116- .md-slider-track ::after {
131+ .md-slider-wrapper ::after {
117132 opacity : 1 ;
118133 }
119134
@@ -137,6 +152,10 @@ md-slider {
137152 .md-slider-track-fill {
138153 transform-origin : 100% 100% ;
139154 }
155+
156+ .md-slider-track-background {
157+ transform-origin : 0 0 ;
158+ }
140159}
141160
142161
@@ -160,22 +179,40 @@ md-slider {
160179}
161180
162181
182+ // Disabled slider.
183+ .md-slider-disabled {
184+ .md-slider-thumb {
185+ transform : scale ($md-slider-thumb-disabled-scale );
186+ }
187+
188+ .md-slider-thumb-label {
189+ display : none ;
190+ }
191+ }
192+
193+
163194// Horizontal slider.
164195.md-slider-horizontal {
165196 height : $md-slider-thickness ;
166197 min-width : $md-slider-min-size ;
167198
168- .md-slider-track {
199+ .md-slider-wrapper {
169200 height : $md-slider-track-thickness ;
170201 top : ($md-slider-thickness - $md-slider-track-thickness ) / 2 ;
171202 left : $md-slider-padding ;
172203 right : $md-slider-padding ;
173204 }
174205
175- .md-slider-track ::after {
206+ .md-slider-wrapper ::after {
176207 height : $md-slider-track-thickness ;
177208 border-left-width : $md-slider-tick-size ;
178209 right : 0 ;
210+ top : 0 ;
211+ }
212+
213+ .md-slider-track-wrapper {
214+ height : $md-slider-track-thickness ;
215+ width : 100% ;
179216 }
180217
181218 .md-slider-track-fill {
@@ -184,6 +221,12 @@ md-slider {
184221 transform : scaleX (0 );
185222 }
186223
224+ .md-slider-track-background {
225+ height : $md-slider-track-thickness ;
226+ width : 100% ;
227+ transform : scaleX (1 );
228+ }
229+
187230 .md-slider-ticks-container {
188231 height : $md-slider-track-thickness ;
189232 width : 100% ;
@@ -230,17 +273,23 @@ md-slider {
230273 width : $md-slider-thickness ;
231274 min-height : $md-slider-min-size ;
232275
233- .md-slider-track {
276+ .md-slider-wrapper {
234277 width : $md-slider-track-thickness ;
235278 top : $md-slider-padding ;
236279 bottom : $md-slider-padding ;
237280 left : ($md-slider-thickness - $md-slider-track-thickness ) / 2 ;
238281 }
239282
240- .md-slider-track ::after {
283+ .md-slider-wrapper ::after {
241284 width : $md-slider-track-thickness ;
242285 border-top-width : $md-slider-tick-size ;
243286 bottom : 0 ;
287+ left : 0 ;
288+ }
289+
290+ .md-slider-track-wrapper {
291+ height : 100% ;
292+ width : $md-slider-track-thickness ;
244293 }
245294
246295 .md-slider-track-fill {
@@ -249,6 +298,12 @@ md-slider {
249298 transform : scaleY (0 );
250299 }
251300
301+ .md-slider-track-background {
302+ height : 100% ;
303+ width : $md-slider-track-thickness ;
304+ transform : scaleY (1 );
305+ }
306+
252307 .md-slider-ticks-container {
253308 width : $md-slider-track-thickness ;
254309 height : 100% ;
@@ -288,7 +343,7 @@ md-slider {
288343
289344// Slider in RTL languages.
290345[dir = ' rtl' ] {
291- .md-slider-track ::after {
346+ .md-slider-wrapper ::after {
292347 left : 0 ;
293348 right : auto ;
294349 }
@@ -298,10 +353,18 @@ md-slider {
298353 transform-origin : 100% 100% ;
299354 }
300355
356+ .md-slider-track-background {
357+ transform-origin : 0 0 ;
358+ }
359+
301360 & .md-slider-axis-inverted {
302361 .md-slider-track-fill {
303362 transform-origin : 0 0 ;
304363 }
364+
365+ .md-slider-track-background {
366+ transform-origin : 100% 100% ;
367+ }
305368 }
306369 }
307370}
0 commit comments