|
2 | 2 | --slider-track-background: var(--salt-track-borderColor); |
3 | 3 | --slider-track-fill: var(--salt-accent-borderColor); |
4 | 4 | --slider-progressPercentage: 0%; |
| 5 | + --slider-tick-height: calc((var(--salt-size-selectable) - var(--salt-size-bar)) / 2); |
5 | 6 | /* For range */ |
6 | 7 | --slider-progressPercentageStart: 0%; |
7 | 8 | --slider-progressPercentageEnd: 0%; |
8 | 9 |
|
9 | | - --slider-mark-percentage: 0%; |
10 | | - |
11 | 10 | display: flex; |
12 | 11 | width: 100%; |
13 | 12 | } |
14 | 13 |
|
| 14 | +.saltSliderTrack.saltSliderTrack-withMarks { |
| 15 | + /* To wrap the marks within the boundary box */ |
| 16 | + margin-bottom: calc(var(--salt-size-base) / 2); |
| 17 | +} |
| 18 | + |
15 | 19 | .saltSliderTrack-disabled { |
16 | 20 | cursor: var(--salt-selectable-cursor-disabled); |
17 | 21 | } |
|
20 | 24 | align-items: center; |
21 | 25 | display: flex; |
22 | 26 | flex-direction: row; |
23 | | - gap: var(--salt-spacing-50); |
| 27 | + gap: var(--salt-spacing-100); |
24 | 28 | width: 100%; |
25 | 29 | } |
26 | 30 |
|
27 | 31 | .saltSliderTrack-wrapper { |
28 | 32 | align-items: center; |
| 33 | + cursor: var(--salt-selectable-cursor-hover); |
29 | 34 | display: flex; |
30 | 35 | flex: 1; |
31 | | - height: var(--salt-size-base); |
| 36 | + height: var(--salt-size-selectable); |
32 | 37 | position: relative; |
33 | 38 | width: 100%; |
34 | 39 | } |
35 | 40 |
|
| 41 | +.saltSliderTrack-disabled, |
| 42 | +.saltSliderTrack-disabled .saltSliderTrack-wrapper { |
| 43 | + cursor: var(--salt-selectable-cursor-disabled); |
| 44 | +} |
| 45 | + |
| 46 | +.saltSliderTrack-disabled .saltSliderTrack-wrapper { |
| 47 | + pointer-events: none; |
| 48 | +} |
| 49 | + |
36 | 50 | .saltSliderTrack-rail { |
37 | | - cursor: var(--salt-selectable-cursor-hover); |
38 | 51 | display: flex; |
39 | 52 | flex: 100%; |
40 | 53 | height: var(--salt-size-bar); |
|
53 | 66 | background: var(--slider-track-fill); |
54 | 67 | border-top-left-radius: var(--salt-palette-corner-weaker); |
55 | 68 | border-bottom-left-radius: var(--salt-palette-corner-weaker); |
56 | | - width: calc(var(--slider-progressPercentage) - (var(--salt-size-border-strong) / 2)); |
| 69 | + width: calc(var(--slider-progressPercentage) - 1.5 * var(--salt-size-border-strong)); |
57 | 70 | } |
58 | 71 |
|
59 | 72 | .saltSliderTrack-hasMinTick.saltSliderTrack-rail::before { |
|
64 | 77 | background: var(--slider-track-background); |
65 | 78 | border-top-right-radius: var(--salt-palette-corner-weaker); |
66 | 79 | border-bottom-right-radius: var(--salt-palette-corner-weaker); |
67 | | - width: calc(100% - var(--slider-progressPercentage) - (var(--salt-size-border-strong) * 2)); |
| 80 | + width: calc(100% - var(--slider-progressPercentage) - 1.5 * var(--salt-size-border-strong)); |
68 | 81 | } |
69 | 82 |
|
70 | 83 | .saltSliderTrack-hasMaxTick.saltSliderTrack-rail::after { |
|
73 | 86 |
|
74 | 87 | .saltSliderTrack-range .saltSliderTrack-rail::before { |
75 | 88 | background: var(--slider-track-background); |
76 | | - width: calc(var(--slider-progressPercentageStart) - (var(--salt-size-border-strong) * 2)); |
| 89 | + width: calc(var(--slider-progressPercentageStart) - (var(--salt-size-border-strong) * 1.5)); |
77 | 90 | } |
78 | 91 |
|
79 | 92 | .saltSliderTrack-range .saltSliderTrack-rail::after { |
80 | 93 | background: var(--slider-track-background); |
81 | | - width: calc(100% - var(--slider-progressPercentageEnd) - (var(--salt-size-border-strong) * 2)); |
| 94 | + width: calc(100% - var(--slider-progressPercentageEnd) - (var(--salt-size-border-strong) * 1.5)); |
82 | 95 | } |
83 | 96 |
|
84 | 97 | .saltSliderTrack-range .saltSliderTrack-rail .saltSliderTrack-fill { |
85 | 98 | background: var(--slider-track-fill); |
86 | 99 | height: 100%; |
87 | | - left: calc(var(--slider-progressPercentageStart) + (var(--salt-size-border-strong) / 2)); |
| 100 | + left: calc(var(--slider-progressPercentageStart) + 1.5 * var(--salt-size-border-strong)); |
88 | 101 | position: absolute; |
89 | | - width: calc(var(--slider-progressPercentageEnd) - var(--slider-progressPercentageStart) - var(--salt-size-border-strong)); |
| 102 | + width: calc(var(--slider-progressPercentageEnd) - var(--slider-progressPercentageStart) - var(--salt-size-border-strong) * 3); |
90 | 103 | } |
91 | 104 |
|
92 | 105 | .saltSliderTrack-minLabel, |
|
95 | 108 | } |
96 | 109 |
|
97 | 110 | .saltSliderTrack-dragging, |
98 | | -.saltSliderTrack-dragging .saltSliderTrack-rail { |
| 111 | +.saltSliderTrack-dragging .saltSliderTrack-wrapper { |
99 | 112 | cursor: var(--salt-draggable-grab-cursor-active); |
100 | 113 | } |
101 | 114 |
|
|
104 | 117 | --slider-track-background: var(--salt-track-borderColor-disabled); |
105 | 118 | } |
106 | 119 |
|
107 | | -.saltSliderTrack-disabled .saltSliderTrack-rail { |
108 | | - pointer-events: none; |
109 | | -} |
110 | | - |
111 | | -.saltSliderTrack-marks { |
| 120 | +.saltSliderTrack-ticks { |
| 121 | + top: calc(var(--salt-size-bar) + var(--slider-tick-height)); |
112 | 122 | position: absolute; |
113 | | - user-select: none; |
114 | 123 | width: 100%; |
115 | | - top: calc((var(--salt-size-base) / 2) + (var(--salt-size-bar) / 2)); |
116 | 124 | } |
117 | 125 |
|
118 | | -.saltSliderTrack-mark { |
119 | | - align-items: center; |
120 | | - display: flex; |
121 | | - flex-direction: column; |
| 126 | +.saltSliderTrack-tick { |
| 127 | + background: var(--slider-track-background); |
| 128 | + height: var(--slider-tick-height); |
122 | 129 | position: absolute; |
123 | | - justify-content: center; |
124 | | - left: var(--slider-mark-percentage); |
125 | | - transform: translateX(-50%); |
126 | | - gap: 4px; |
| 130 | + transform: translate(-50%); |
| 131 | + width: var(--salt-size-border-strong); |
127 | 132 | } |
128 | 133 |
|
129 | | -.saltSliderTrack-markLabel { |
130 | | - white-space: nowrap; |
131 | | - overflow: hidden; |
132 | | - text-overflow: ellipsis; |
| 134 | +.saltSliderTrack-withTicks .saltSliderTrack-tickHidden { |
| 135 | + visibility: hidden; |
133 | 136 | } |
134 | 137 |
|
135 | | -.saltSliderTrack-markTick { |
136 | | - height: 5px; |
137 | | - width: var(--salt-size-border-strong); |
138 | | - background: var(--slider-track-background); |
139 | | - visibility: hidden; |
| 138 | +.saltSliderTrack-tickSelected { |
| 139 | + background: var(--slider-track-fill); |
140 | 140 | } |
141 | 141 |
|
142 | | -.saltSliderTrack-withMarkTicks .saltSliderTrack-markTick { |
143 | | - visibility: visible; |
| 142 | +.saltSliderTrack-tick:first-of-type { |
| 143 | + transform: unset; |
144 | 144 | } |
145 | 145 |
|
146 | | -.saltSliderTrack-withMarkTicks .saltSliderTrack-markTickHidden { |
147 | | - visibility: hidden; |
| 146 | +.saltSliderTrack-tick:last-of-type { |
| 147 | + transform: translateX(-100%); |
| 148 | +} |
| 149 | + |
| 150 | +.saltSliderTrack-marks { |
| 151 | + position: absolute; |
| 152 | + user-select: none; |
| 153 | + width: 100%; |
148 | 154 | } |
149 | 155 |
|
150 | | -.saltSliderTrack-mark:last-of-type .saltSliderTrack-markTick { |
| 156 | +.saltSliderTrack-markLabel { |
| 157 | + color: var(--salt-content-secondary-foreground); |
| 158 | + font-family: var(--salt-text-label-fontFamily); |
| 159 | + font-weight: var(--salt-text-label-fontWeight); |
| 160 | + font-size: var(--salt-text-label-fontSize); |
| 161 | + line-height: var(--salt-text-label-lineHeight); |
| 162 | + overflow: hidden; |
| 163 | + position: absolute; |
| 164 | + text-overflow: ellipsis; |
151 | 165 | transform: translateX(-50%); |
| 166 | + top: calc(var(--slider-tick-height) + var(--salt-spacing-50)); |
| 167 | + white-space: nowrap; |
152 | 168 | } |
153 | 169 |
|
154 | | -.saltSliderTrack-mark:first-of-type .saltSliderTrack-markTick { |
155 | | - transform: translateX(50%); |
| 170 | +.saltSliderTrack-constrainLabelPosition .saltSliderTrack-markLabel:first-of-type { |
| 171 | + transform: translateX(0%); |
156 | 172 | } |
157 | 173 |
|
158 | | -.saltSliderTrack-markSelected { |
159 | | - background: var(--slider-track-fill); |
| 174 | +.saltSliderTrack-constrainLabelPosition .saltSliderTrack-markLabel:last-of-type { |
| 175 | + transform: translateX(-100%); |
160 | 176 | } |
161 | 177 |
|
162 | | -.saltSliderTrack-constrainLabelPosition .saltSliderTrack-mark:first-of-type .saltSliderTrack-markLabel { |
163 | | - transform: translateX(50%); |
| 178 | +/* Styles applied when slider and range slider are inside a form field */ |
| 179 | + |
| 180 | +.saltFormField .saltSliderTrack.saltSliderTrack-withMark { |
| 181 | + margin-bottom: 0; |
164 | 182 | } |
165 | 183 |
|
166 | | -.saltSliderTrack-constrainLabelPosition .saltSliderTrack-mark:last-of-type .saltSliderTrack-markLabel { |
167 | | - transform: translateX(-50%); |
| 184 | +.saltFormField .saltSliderTrack-container { |
| 185 | + --saltFormField-label-width: 10%; |
| 186 | + |
| 187 | + height: var(--salt-size-base); |
| 188 | +} |
| 189 | + |
| 190 | +.saltFormField .saltSliderTrack-markLabel { |
| 191 | + top: calc((var(--salt-size-base) - var(--salt-size-bar)) / 2); |
168 | 192 | } |
0 commit comments