Skip to content

Commit da74307

Browse files
author
Chance Strickland
committed
slider: simplify styles
1 parent 4b3cf21 commit da74307

File tree

7 files changed

+73
-44
lines changed

7 files changed

+73
-44
lines changed

packages/slider/examples/basic.example.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,20 @@ let name = "Basic";
77

88
function Example() {
99
return (
10-
<Slider id="gee-whiz">
11-
<SliderMarker value={10}>
12-
<span>10</span>
13-
</SliderMarker>
14-
<SliderMarker value={90}>
15-
<span>90</span>
16-
</SliderMarker>
17-
</Slider>
10+
<div>
11+
<Slider id="gee-whiz">
12+
<SliderMarker value={10}>
13+
<span>10</span>
14+
</SliderMarker>
15+
<SliderMarker value={90}>
16+
<span>90</span>
17+
</SliderMarker>
18+
</Slider>
19+
<br />
20+
<br />
21+
<br />
22+
<Slider defaultValue={30} disabled></Slider>
23+
</div>
1824
);
1925
}
2026

packages/slider/examples/controlled-audio-progress.example.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ function Example() {
4040
max={max}
4141
getAriaValueText={(val) => msToTime(val)}
4242
></Slider>
43+
<br />
44+
<br />
45+
<br />
4346
{audio}
4447
</div>
4548
);

packages/slider/examples/controlled.example.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ function Example() {
5050
<div>
5151
<button onClick={() => setValue(MIN)}>Bring it Down!</button>
5252
<button onClick={() => setValue(MAX)}>Max Out!</button>
53+
<br />
54+
<br />
5355
<Slider onChange={setValue} value={value} min={MIN} max={MAX}>
5456
{markers.map(({ face, label, value: val }) => (
5557
<SliderMarker value={val} key={val}>
@@ -59,6 +61,8 @@ function Example() {
5961
</SliderMarker>
6062
))}
6163
</Slider>
64+
<br />
65+
<br />
6266
<p role="status" style={{ color: "crimson" }}>
6367
Happieness level at {value}% – {status}
6468
</p>

packages/slider/examples/controlled.example.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ function Example() {
5050
<div>
5151
<button onClick={() => setValue(MIN)}>Bring it Down!</button>
5252
<button onClick={() => setValue(MAX)}>Max Out!</button>
53+
<br />
54+
<br />
5355
<Slider onChange={setValue} value={value} min={MIN} max={MAX}>
5456
{markers.map(({ face, label, value: val }) => (
5557
<SliderMarker value={val} key={val}>
@@ -59,6 +61,8 @@ function Example() {
5961
</SliderMarker>
6062
))}
6163
</Slider>
64+
<br />
65+
<br />
6266
<p role="status" style={{ color: "crimson" }}>
6367
Happieness level at {value}% – {status}
6468
</p>

packages/slider/examples/with-tooltip.example.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
} from "@reach/slider";
1010
import "@reach/tooltip/styles.css";
1111
import "@reach/slider/styles.css";
12+
import "./examples.css";
1213

1314
let name = "With Tooltip";
1415

packages/slider/src/index.tsx

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -440,17 +440,7 @@ const SliderInput = forwardRefWithAs<
440440
? getAriaValueText(value)
441441
: ariaValueTextProp;
442442

443-
let rangeStyle = isVertical
444-
? {
445-
width: `100%`,
446-
height: `${trackPercent}%`,
447-
bottom: 0,
448-
}
449-
: {
450-
width: `${trackPercent}%`,
451-
height: `100%`,
452-
left: 0,
453-
};
443+
let rangeStyle = { [isVertical ? "height" : "width"]: `${trackPercent}%` };
454444

455445
let ctx: ISliderContext = {
456446
ariaLabel: getAriaLabel ? getAriaLabel(value) : ariaLabel,

packages/slider/styles.css

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,31 @@
22
--reach-slider: 1;
33
}
44

5-
[data-reach-slider-input][data-orientation="horizontal"] {
6-
width: 350px;
5+
[data-reach-slider-input] {
76
max-width: 100%;
8-
height: 4px;
9-
padding-top: 30px;
10-
padding-bottom: 30px;
7+
}
8+
9+
[data-reach-slider-input][data-orientation="horizontal"] {
10+
height: 0.5rem;
1111
}
1212

1313
[data-reach-slider-input][data-orientation="vertical"] {
14-
width: 4px;
14+
width: 0.5rem;
15+
/* the height is somewhat arbitrary but necessary for vertical sliders for
16+
basic functionality */
1517
height: 250px;
1618
max-height: 100%;
17-
max-width: calc(100% - 60%);
18-
padding-left: 30px;
19-
padding-right: 30px;
2019
}
2120

2221
[data-reach-slider-input][data-disabled] {
2322
opacity: 0.5;
23+
pointer-events: none;
2424
}
2525

2626
[data-reach-slider-track] {
27-
border-radius: 2px;
28-
background: #f2f2f2;
27+
position: relative;
28+
border-radius: 0.25rem;
29+
background: hsl(0, 0%, 95%);
2930
}
3031

3132
[data-reach-slider-track][data-orientation="horizontal"] {
@@ -38,11 +39,31 @@
3839
height: 100%;
3940
}
4041

42+
/* This pseudo element provides an invisible area that increases the touch
43+
target size of the track */
44+
[data-reach-slider-track]::before {
45+
content: "";
46+
position: absolute;
47+
}
48+
49+
[data-reach-slider-track][data-orientation="horizontal"]::before {
50+
width: 100%;
51+
height: 1.5rem;
52+
top: calc(-0.5rem - 1px);
53+
left: 0;
54+
}
55+
56+
[data-reach-slider-track][data-orientation="vertical"]::before {
57+
width: 1.5rem;
58+
height: 100%;
59+
top: 0;
60+
left: calc(-0.5rem - 1px);
61+
}
62+
4163
[data-reach-slider-handle] {
42-
width: 12px;
43-
height: 12px;
44-
border: 2px solid #1159a6;
45-
background: #fff;
64+
width: 16px;
65+
height: 16px;
66+
background: #1159a6;
4667
border-radius: 10px;
4768
z-index: 1;
4869
transform-origin: center;
@@ -62,13 +83,11 @@
6283
transform: translateX(-50%);
6384
}
6485

65-
[data-reach-slider-handle][aria-orientation="vertical"]:focus {
66-
transform: translateX(-50%);
67-
}
68-
6986
[data-reach-slider-range] {
7087
border-radius: inherit;
7188
background: #1159a6;
89+
left: 0;
90+
bottom: 0;
7291
}
7392

7493
[data-reach-slider-range][data-orientation="horizontal"] {
@@ -80,33 +99,35 @@
8099
}
81100

82101
[data-reach-slider-marker] {
83-
width: 8px;
84-
height: 8px;
85-
background: inherit;
86-
border: 1px solid #fff;
87-
border-radius: 4px;
102+
background: hsl(0, 0%, 50%);
88103
transform-origin: center;
89104
}
90105

91106
[data-reach-slider-marker][data-orientation="horizontal"] {
92107
top: 50%;
93108
transform: translate(-50%, -50%);
109+
width: 3px;
110+
height: 0.75rem;
94111
}
95112

96113
[data-reach-slider-marker][data-orientation="vertical"] {
97114
left: 50%;
98115
transform: translate(-50%, -50%);
116+
width: 0.75rem;
117+
height: 3px;
99118
}
100119

101120
[data-reach-slider-marker][data-state="at-value"],
102121
[data-reach-slider-marker][data-state="under-value"] {
103-
background: #1159a6;
122+
/* */
104123
}
105124

106125
/* TODO: Remove in 1.0 */
107126
[data-reach-slider-track-highlight] {
108127
border-radius: inherit;
109128
background: #1159a6;
129+
left: 0;
130+
bottom: 0;
110131
}
111132

112133
[data-reach-slider-track-highlight][data-orientation="horizontal"] {

0 commit comments

Comments
 (0)