|
167 | 167 |
|
168 | 168 | .slider.horizontal .track {
|
169 | 169 | height: 40px;
|
170 |
| - width: 100%; |
| 170 | + width: calc(100% - var(--_state-layer-size)); |
171 | 171 | }
|
172 | 172 |
|
173 | 173 | /* track full */
|
|
269 | 269 | opacity: 0.4;
|
270 | 270 | }
|
271 | 271 |
|
| 272 | +.track:before { |
| 273 | + background-color: var(--_inactive-track-color); |
| 274 | + block-size: var(--_inactive-track-height); |
| 275 | + border-radius: var(--_inactive-track-shape); |
| 276 | + position: absolute; |
| 277 | + content: ''; |
| 278 | + inset-inline-start: calc( |
| 279 | + var(--_state-layer-size) / 2 - var(--_with-tick-marks-container-size) |
| 280 | + ); |
| 281 | + inset-inline-end: calc( |
| 282 | + var(--_state-layer-size) / 2 - var(--_with-tick-marks-container-size) |
| 283 | + ); |
| 284 | + background-size: calc( |
| 285 | + (100% - var(--_with-tick-marks-container-size) * 2) / var(--_tick-count) |
| 286 | + ) |
| 287 | + 100%; |
| 288 | +} |
| 289 | + |
| 290 | +.track:after { |
| 291 | + background: var(--_active-track-color); |
| 292 | + block-size: var(--_active-track-height); |
| 293 | + border-radius: var(--_active-track-shape); |
| 294 | + clip-path: inset( |
| 295 | + 0 |
| 296 | + calc( |
| 297 | + var(--_with-tick-marks-container-size) * |
| 298 | + min((1 - var(--_end-fraction)) * 1000000000, 1) + |
| 299 | + (100% - var(--_with-tick-marks-container-size) * 2) * |
| 300 | + (1 - var(--_end-fraction)) |
| 301 | + ) |
| 302 | + 0 |
| 303 | + calc( |
| 304 | + var(--_with-tick-marks-container-size) * |
| 305 | + min(var(--_start-fraction) * 1000000000, 1) + |
| 306 | + (100% - var(--_with-tick-marks-container-size) * 2) * |
| 307 | + var(--_start-fraction) |
| 308 | + ) |
| 309 | + ); |
| 310 | + position: absolute; |
| 311 | + content: ''; |
| 312 | + inset-inline-start: calc( |
| 313 | + var(--_state-layer-size) / 2 - var(--_with-tick-marks-container-size) |
| 314 | + ); |
| 315 | + inset-inline-end: calc( |
| 316 | + var(--_state-layer-size) / 2 - var(--_with-tick-marks-container-size) |
| 317 | + ); |
| 318 | + background-size: calc( |
| 319 | + (100% - var(--_with-tick-marks-container-size) * 2) / var(--_tick-count) |
| 320 | + ) |
| 321 | + 100%; |
| 322 | +} |
| 323 | + |
272 | 324 | .slider .label {
|
273 | 325 | position: absolute;
|
274 | 326 | box-sizing: border-box;
|
|
0 commit comments