Skip to content

Commit f7666be

Browse files
devongovettGarthDB
authored andcommitted
Simplified fill slider with offset (#116)
* RSP-629 - Fill Slider - with Offset * RSP-629 - Adding example of fill slider with offset * Adding back removed code while migration * Simplified fill offset slider
1 parent 58875bc commit f7666be

File tree

4 files changed

+85
-2
lines changed

4 files changed

+85
-2
lines changed

docs/slider/slider-filled-offset.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: Slider - Filled-Offset
3+
description: With fill and offset.
4+
markup: |
5+
<div class="spectrum-Slider">
6+
<div class="spectrum-Slider-labelContainer">
7+
<label class="spectrum-Slider-label" id="spectrum-Slider-label-18" for="spectrum-Slider-input-18">Slider Label</label>
8+
<div class="spectrum-Slider-value" role="textbox" aria-readonly="true" aria-labelledby="spectrum-Slider-label-18">14</div>
9+
</div>
10+
<div class="spectrum-Slider-controls">
11+
<div class="spectrum-Slider-track" style="width: 25%;"></div>
12+
<div class="spectrum-Slider-handle" style="left: 20%;">
13+
<input type="range" class="spectrum-Slider-input" value="14" min="10" max="20" id="spectrum-Slider-input-18">
14+
</div>
15+
<div class="spectrum-Slider-track" style="width: 50%;"></div>
16+
<div class="spectrum-Slider-fill" style="left: 20%; width: 30%"></div>
17+
</div>
18+
</div>
19+
<div class="spectrum-Slider">
20+
<div class="spectrum-Slider-labelContainer">
21+
<label class="spectrum-Slider-label" id="spectrum-Slider-label-19" for="spectrum-Slider-input-19">Slider Label</label>
22+
<div class="spectrum-Slider-value" role="textbox" aria-readonly="true" aria-labelledby="spectrum-Slider-label-19">14</div>
23+
</div>
24+
<div class="spectrum-Slider-controls">
25+
<div class="spectrum-Slider-track" style="width: 25%;"></div>
26+
<div class="spectrum-Slider-handle" style="left: 70%;">
27+
<input type="range" class="spectrum-Slider-input" value="14" min="10" max="20" id="spectrum-Slider-input-19">
28+
</div>
29+
<div class="spectrum-Slider-track" style="width: 50%;"></div>
30+
<div class="spectrum-Slider-fill spectrum-Slider-fill--right" style="left: 50%; width: 20%"></div>
31+
</div>
32+
</div>
33+
<div class="spectrum-Slider is-disabled">
34+
<div class="spectrum-Slider-labelContainer">
35+
<label class="spectrum-Slider-label" id="spectrum-Slider-label-19" for="spectrum-Slider-input-19">Slider Label</label>
36+
<div class="spectrum-Slider-value" role="textbox" aria-readonly="true" aria-labelledby="spectrum-Slider-label-19">14</div>
37+
</div>
38+
<div class="spectrum-Slider-controls">
39+
<div class="spectrum-Slider-track" style="width: 25%;"></div>
40+
<div class="spectrum-Slider-handle" style="left: 70%;">
41+
<input type="range" class="spectrum-Slider-input" value="14" min="10" max="20" id="spectrum-Slider-input-19">
42+
</div>
43+
<div class="spectrum-Slider-track" style="width: 50%;"></div>
44+
<div class="spectrum-Slider-fill spectrum-Slider-fill--right" style="left: 50%; width: 20%"></div>
45+
</div>
46+
</div>

src/slider/index.css

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464

6565
.spectrum-Slider-track,
6666
.spectrum-Slider-buffer,
67-
.spectrum-Slider-ramp {
67+
.spectrum-Slider-ramp,
68+
.spectrum-Slider-fill {
6869
height: var(--spectrum-slider-track-height);
6970
box-sizing: border-box;
7071

@@ -80,7 +81,8 @@
8081
}
8182

8283
.spectrum-Slider-track,
83-
.spectrum-Slider-buffer {
84+
.spectrum-Slider-buffer,
85+
.spectrum-Slider-fill {
8486
padding: 0 var(--spectrum-slider-track-handleoffset) 0 0;
8587
margin-left: var(--spectrum-slider-track-margin-offset);
8688

@@ -93,6 +95,15 @@
9395
}
9496
}
9597

98+
.spectrum-Slider-fill {
99+
margin-left: 0;
100+
padding: 0 0 0 calc(var(--spectrum-slider-controls-margin) + var(--spectrum-slider-track-handleoffset));
101+
}
102+
103+
.spectrum-Slider-fill--right {
104+
padding: 0 calc(var(--spectrum-slider-controls-margin) + var(--spectrum-slider-track-handleoffset)) 0 0;
105+
}
106+
96107
.spectrum-Slider-buffer {
97108
padding: 0 var(--spectrum-slider-track-handleoffset) 0 0;
98109
}

src/slider/skin.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
{{ slider/slider-filled.yml }}
99
*/
1010
/* topdoc
11+
{{ slider/slider-filled-offset.yml }}
12+
*/
13+
/* topdoc
1114
{{ slider/slider-player.yml }}
1215
*/
1316
/* topdoc
@@ -38,6 +41,12 @@
3841
}
3942
}
4043

44+
.spectrum-Slider-fill {
45+
&::before {
46+
background: var(--spectrum-slider-fill-track-color);
47+
}
48+
}
49+
4150
.spectrum-Slider-buffer {
4251
&::before,
4352
&::after {
@@ -261,6 +270,11 @@
261270
}
262271
}
263272
}
273+
.spectrum-Slider-fill {
274+
&::before {
275+
background: var(--spectrum-slider-fill-track-color-disabled);
276+
}
277+
}
264278
.spectrum-Slider-buffer {
265279
&::before {
266280
background: var(--spectrum-slider-player-track-buffer-color-disabled);

topdoc/resources/js/docs.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ function makeSlider(slider) {
359359
var handles = slider.querySelectorAll('.spectrum-Slider-handle');
360360
var handle = handles[0];
361361
var isColor = slider.classList.contains('spectrum-Slider--color');
362+
var fill = slider.querySelector('.spectrum-Slider-fill');
362363

363364
if (handles.length > 1) {
364365
makeDoubleSlider(slider);
@@ -407,6 +408,17 @@ function makeSlider(slider) {
407408
rightBuffer.style.right = (100 - bufferedAmount) + '%';
408409
}
409410
}
411+
412+
if (fill) {
413+
fill.style.left = (percent < 50 ? percent : 50) + '%';
414+
fill.style.width = (percent < 50 ? 50 - percent : percent - 50) + '%';
415+
if (percent > 50) {
416+
fill.classList.add('spectrum-Slider-fill--right');
417+
}
418+
else {
419+
fill.classList.remove('spectrum-Slider-fill--right');
420+
}
421+
}
410422
}
411423

412424
// Set initial track position

0 commit comments

Comments
 (0)