|
25 | 25 | --spectrum-numberfield-border-color-focus-hover: var(--highcontrast-numberfield-border-color-focus-hover, var(--mod-numberfield-border-color-focus-hover, var(--spectrum-gray-900)));
|
26 | 26 | --spectrum-numberfield-border-color-disabled: var(--highcontrast-numberfield-border-color-disabled, var(--mod-numberfield-border-color-disabled, var(--spectrum-disabled-border-color)));
|
27 | 27 |
|
28 |
| - --spectrum-numberfield-buttons-border-color: var(--highcontrast-numberfield-border-color, var(--mod-numberfield-border-color, var(--spectrum-numberfield-border-color-default))); |
29 |
| - --spectrum-numberfield-buttons-border-width: var(--mod-numberfield-buttons-border-width, var(--spectrum-numberfield-border-width)); |
30 |
| - |
31 | 28 | /* Invalid border */
|
32 | 29 | --spectrum-numberfield-border-color-invalid-default: var(--highcontrast-numberfield-border-color-invalid-default, var(--mod-numberfield-border-color-invalid-default, var(--spectrum-negative-border-color-default)));
|
33 | 30 | --spectrum-numberfield-border-color-invalid-hover: var(--highcontrast-numberfield-border-color-invalid-hover, var(--mod-numberfield-border-color-invalid-hover, var(--spectrum-negative-border-color-hover)));
|
|
57 | 54 | --spectrum-numberfield-min-inline-size: var(--mod-numberfield-min-inline-size, var(--spectrum-number-field-with-stepper-minimum-width-medium));
|
58 | 55 | --spectrum-numberfield-hidden-stepper-min-inline-size: calc(var(--spectrum-number-field-minimum-width-multiplier) * var(--spectrum-numberfield-block-size));
|
59 | 56 |
|
| 57 | + /* Icons */ |
| 58 | + --spectrum-numberfield-alert-icon-size: var(--spectrum-workflow-icon-size-100); |
| 59 | + |
60 | 60 | /* Spacing */
|
61 | 61 | --spectrum-numberfield-spacing-inline-edge-to-text: var(--spectrum-component-edge-to-text-100);
|
62 | 62 | --spectrum-numberfield-spacing-block-start-edge-to-text: var(--spectrum-component-top-to-text-100);
|
63 | 63 | --spectrum-numberfield-spacing-block-end-edge-to-text: var(--spectrum-component-bottom-to-text-100);
|
64 | 64 | --spectrum-numberfield-spacing-min-inline-end-text-to-stepper: var(--spectrum-text-to-visual-100);
|
| 65 | + --spectrum-numberfield-spacing-min-inline-end-value-to-icon: var(--spectrum-text-to-visual-100); |
65 | 66 | --spectrum-numberfield-spacing-field-to-helptext: var(--spectrum-help-text-to-component);
|
66 | 67 | --spectrum-numberfield-spacing-label-to-field: var(--spectrum-field-label-to-component);
|
67 | 68 | --spectrum-numberfield-spacing-validation-icon-to-stepper: var(--spectrum-number-field-visual-to-in-field-stepper-medium);
|
68 | 69 | --spectrum-numberfield-spacing-validation-icon-to-stepper-hidden: var(--spectrum-field-edge-to-validation-icon-medium);
|
| 70 | + --spectrum-numberfield-spacing-side-label-to-field: var(--spectrum-spacing-200); |
69 | 71 |
|
70 |
| - --spectrum-numberfield-button-size: var(--mod-numberfield-stepper-button-width, var(--spectrum-component-height-100)); |
| 72 | + /* Button size and offset (to properly position the validation icons/padding) */ |
| 73 | + --spectrum-numberfield-button-container-size: calc(var(--spectrum-infield-button-width, var(--spectrum-component-height-100)) *2); |
71 | 74 | --spectrum-numberfield-button-inline-offset: var(--mod-stepper-button-inline-offset, var(--spectrum-in-field-stepper-to-end-medium));
|
72 | 75 |
|
73 | 76 | --spectrum-numberfield-spacing-block-start-validation-icon-to-stepper: var(--spectrum-component-top-to-workflow-icon-100);
|
|
86 | 89 | --spectrum-numberfield-spacing-validation-icon-to-stepper: var(--spectrum-number-field-visual-to-in-field-stepper-small);
|
87 | 90 | --spectrum-numberfield-spacing-validation-icon-to-stepper-hidden: var(--spectrum-number-field-edge-to-validation-icon-small);
|
88 | 91 |
|
89 |
| - --spectrum-numberfield-button-size: var(--mod-numberfield-stepper-button-width, var(--spectrum-component-height-75)); |
| 92 | + --spectrum-numberfield-button-container-size: calc(var(--spectrum-infield-button-width, var(--spectrum-component-height-75)) *2); |
90 | 93 | --spectrum-numberfield-button-inline-offset: var(--mod-stepper-button-inline-offset, var(--spectrum-in-field-stepper-to-end-small));
|
91 | 94 |
|
92 | 95 | --spectrum-numberfield-spacing-block-start-validation-icon-to-stepper: var(--spectrum-component-top-to-workflow-icon-75);
|
93 | 96 | --spectrum-numberfield-spacing-block-end-validation-icon-to-stepper: var(--spectrum-component-top-to-workflow-icon-75);
|
| 97 | + --spectrum-numberfield-alert-icon-size: var(--spectrum-workflow-icon-size-75); |
94 | 98 | }
|
95 | 99 |
|
96 | 100 | &.spectrum-NumberField--sizeL {
|
|
106 | 110 | --spectrum-numberfield-spacing-validation-icon-to-stepper: var(--spectrum-number-field-visual-to-in-field-stepper-large);
|
107 | 111 | --spectrum-numberfield-spacing-validation-icon-to-stepper-hidden: var(--spectrum-number-field-edge-to-validation-icon-large);
|
108 | 112 |
|
109 |
| - --spectrum-numberfield-button-size: var(--mod-numberfield-stepper-button-width, var(--spectrum-component-height-200)); |
| 113 | + --spectrum-numberfield-button-container-size: calc(var(--spectrum-infield-button-width, var(--spectrum-component-height-200)) *2); |
110 | 114 | --spectrum-numberfield-button-inline-offset: var(--mod-stepper-button-inline-offset, var(--spectrum-in-field-stepper-to-end-large));
|
111 | 115 |
|
112 | 116 | --spectrum-numberfield-spacing-block-start-validation-icon-to-stepper: var(--spectrum-component-top-to-workflow-icon-200);
|
113 | 117 | --spectrum-numberfield-spacing-block-end-validation-icon-to-stepper: var(--spectrum-component-top-to-workflow-icon-200);
|
| 118 | + --spectrum-numberfield-alert-icon-size: var(--spectrum-workflow-icon-size-200); |
114 | 119 | }
|
115 | 120 |
|
116 | 121 | &.spectrum-NumberField--sizeXL {
|
|
126 | 131 | --spectrum-numberfield-spacing-validation-icon-to-stepper: var(--spectrum-number-field-visual-to-in-field-stepper-extra-large);
|
127 | 132 | --spectrum-numberfield-spacing-validation-icon-to-stepper-hidden: var(--spectrum-number-field-edge-to-validation-icon-extra-large);
|
128 | 133 |
|
129 |
| - --spectrum-numberfield-button-size: var(--mod-numberfield-stepper-button-width, var(--spectrum-component-height-300)); |
| 134 | + --spectrum-numberfield-button-container-size: calc(var(--spectrum-infield-button-width, var(--spectrum-component-height-300)) *2); |
130 | 135 | --spectrum-numberfield-button-inline-offset: var(--mod-stepper-button-inline-offset, var(--spectrum-in-field-stepper-to-end-extra-large));
|
131 | 136 |
|
132 | 137 | --spectrum-numberfield-spacing-block-start-validation-icon-to-stepper: var(--spectrum-component-top-to-workflow-icon-300);
|
133 | 138 | --spectrum-numberfield-spacing-block-end-validation-icon-to-stepper: var(--spectrum-component-top-to-workflow-icon-300);
|
| 139 | + --spectrum-numberfield-spacing-block-start-validation-icon-to-stepper-hidden: var(--spectrum-component-top-to-workflow-icon-300); |
134 | 140 | }
|
135 | 141 |
|
136 | 142 | /* @passthrough start -- MODS for sub components */
|
137 |
| - /* nested infield buttons */ |
138 |
| - --mod-infield-button-inline-size: var(--spectrum-numberfield-button-size); |
139 |
| - --mod-infield-button-block-size: var(--spectrum-numberfield-button-size); |
140 |
| - |
141 | 143 | /* nested textfield */
|
142 | 144 | --mod-textfield-corner-radius: var(--mod-numberfield-border-radius, var(--spectrum-numberfield-border-radius));
|
143 | 145 | --mod-textfield-border-width: var(--mod-numberfield-border-width, var(--spectrum-numberfield-border-width));
|
|
179 | 181 | }
|
180 | 182 |
|
181 | 183 | &:not(.is-disabled).is-focused,
|
182 |
| - &:not(.is-disabled):focus { |
| 184 | + &:not(.is-disabled):focus, |
| 185 | + &:not(.is-disabled):focus-within { |
183 | 186 | --mod-numberfield-border-color: var(--highcontrast-numberfield-border-color-focus, var(--mod-numberfield-border-color-focus, var(--spectrum-numberfield-border-color-focus)));
|
184 | 187 |
|
185 | 188 | &.is-hover,
|
|
189 | 192 | }
|
190 | 193 |
|
191 | 194 | &:not(.is-disabled).is-keyboardFocused,
|
192 |
| - &:not(.is-disabled):focus-visible { |
193 |
| - --mod-numberfield-border-color: var(--highcontrast-numberfield-border-color-focus, var(--mod-numberfield-border-color-focus, var(--spectrum-numberfield-border-color-keyboard-focus))); |
| 195 | + &:not(.is-disabled):focus-visible, |
| 196 | + &:not(.is-disabled):focus-within { |
| 197 | + --mod-numberfield-border-color: var(--highcontrast-numberfield-border-color-focus, var(--mod-numberfield-border-color-keyboard-focus, var(--spectrum-numberfield-border-color-keyboard-focus))); |
194 | 198 |
|
195 | 199 | &.is-hover,
|
196 | 200 | &:hover {
|
|
199 | 203 | }
|
200 | 204 |
|
201 | 205 | &.is-disabled {
|
202 |
| - /* --spectrum-numberfield-buttons-border-width: var(--spectrum-numberfield-button-border-width-disabled); |
203 |
| - --spectrum-numberfield-buttons-background-color: var(--spectrum-numberfield-buttons-background-color-disabled); */ |
204 |
| - |
205 | 206 | --mod-numberfield-border-color: var(--spectrum-numberfield-border-color-disabled);
|
206 | 207 | }
|
207 | 208 | }
|
208 | 209 |
|
209 | 210 | /* --- Component styles --- */
|
210 | 211 | .spectrum-NumberField {
|
211 | 212 | position: relative;
|
212 |
| - display: inline-flex; |
213 |
| - flex-flow: column nowrap; |
| 213 | + display: inline-grid; |
214 | 214 |
|
215 | 215 | min-inline-size: var(--spectrum-numberfield-min-inline-size);
|
216 | 216 | inline-size: var(--spectrum-numberfield-inline-size);
|
|
229 | 229 |
|
230 | 230 | &.hide-stepper {
|
231 | 231 | min-inline-size: var(--mod-numberfield-hidden-stepper-min-inline-size, var(--spectrum-numberfield-hidden-stepper-min-inline-size));
|
| 232 | + |
| 233 | + .spectrum-NumberField-textfield { |
| 234 | + padding-inline-end: var(--spectrum-numberfield-spacing-inline-edge-to-text); |
| 235 | + |
| 236 | + .spectrum-NumberField-input { |
| 237 | + padding-inline-end: calc(var(--spectrum-numberfield-spacing-min-inline-end-value-to-icon) + var(--spectrum-numberfield-alert-icon-size)); |
| 238 | + } |
| 239 | + |
| 240 | + &.spectrum-Textfield.is-invalid .spectrum-Textfield-validationIcon { |
| 241 | + /* accommodate validation icons when stepper buttons are hidden */ |
| 242 | + inset-inline-end: var(--spectrum-numberfield-spacing-inline-edge-to-text); |
| 243 | + } |
| 244 | + |
| 245 | + } |
| 246 | + .spectrum-NumberField-textfield:not(:has(.spectrum-Textfield-validationIcon)) { |
| 247 | + .spectrum-NumberField-input { |
| 248 | + padding-inline-end: 0; |
| 249 | + } |
| 250 | + } |
232 | 251 | }
|
233 | 252 |
|
234 | 253 | &.spectrum-NumberField--sideLabel {
|
235 |
| - flex-direction: row; |
| 254 | + grid-template-columns: auto auto auto; |
| 255 | + grid-template-rows: auto auto; |
| 256 | + |
| 257 | + .spectrum-NumberField-fieldLabel { |
| 258 | + grid-row: 1 / span 2; |
| 259 | + grid-column: 1 / span 1; |
| 260 | + margin-inline-end: var(--spectrum-numberfield-spacing-side-label-to-field, var(--spectrum-numberfield-spacing-side-label-to-field)); |
| 261 | + } |
| 262 | + |
| 263 | + .spectrum-NumberField-inputs { |
| 264 | + grid-row: 1 / span 1; |
| 265 | + grid-column: 2 / span 1; |
| 266 | + } |
| 267 | + |
| 268 | + .spectrum-NumberField-helpText { |
| 269 | + grid-row: 2; |
| 270 | + grid-column: 2 / span 1; |
| 271 | + } |
236 | 272 | }
|
237 | 273 | }
|
238 | 274 |
|
|
246 | 282 | margin-block-start: var(--mod-numberfield-spacing-field-to-helptext, var(--spectrum-numberfield-spacing-field-to-helptext));
|
247 | 283 | }
|
248 | 284 |
|
249 |
| - |
250 |
| - |
251 | 285 | /* Number field container includes .spectrum-Textfield and .spectrum-InfieldButtons */
|
252 | 286 | .spectrum-NumberField-inputs {
|
253 | 287 | block-size: var(--mod-numberfield-block-size, var(--spectrum-numberfield-block-size));
|
254 | 288 | border-radius: var(--spectrum-numberfield-border-radius);
|
255 | 289 | display: flex;
|
256 | 290 | align-items: center;
|
257 | 291 |
|
258 |
| - /* removes the border-radius and outline from unstyled input to avoid double focus rings */ |
| 292 | + /* removes the border-radius and outline from unstyled input to avoid double focus rings (which was being inherited from .spectrum-Textfield) */ |
259 | 293 | & .spectrum-Textfield .spectrum-Textfield-input {
|
260 | 294 | outline: none;
|
261 | 295 | border-radius: 0;
|
262 |
| - |
263 |
| - /* todo: this overwrites the funky calc to accommodate the buttons and the padding and the icon etc. how do you fix that? */ |
264 |
| - /* ensures the unstyled input respects the min-inline-size of .spectrum-NumberField */ |
265 |
| - inline-size: 100%; |
266 | 296 | }
|
267 | 297 | }
|
268 | 298 |
|
|
275 | 305 |
|
276 | 306 | border: var(--spectrum-numberfield-border-width) solid var(--spectrum-numberfield-border-color-default);
|
277 | 307 | padding-inline-start: var(--spectrum-numberfield-spacing-inline-edge-to-text);
|
278 |
| - padding-inline-end: var(--spectrum-numberfield-spacing-inline-edge-to-text); |
| 308 | + padding-inline-end: var(--spectrum-numberfield-button-container-size); |
279 | 309 | border-radius: var(--spectrum-numberfield-border-radius);
|
280 | 310 |
|
281 | 311 | /* accommodate stepper buttons and validation icons */
|
282 |
| - &.spectrum-Textfield.is-invalid .spectrum-Textfield-validationIcon, |
283 |
| - &.spectrum-Textfield.is-valid .spectrum-Textfield-validationIcon { |
284 |
| - /* stepper buttons' inline size + validation icons-to-stepper spacing */ |
285 |
| - inset-inline-end: calc(calc(2 * var(--spectrum-numberfield-button-size)) + var(--spectrum-numberfield-spacing-validation-icon-to-stepper)); |
286 |
| - |
287 |
| - /* accommodate validation icons when stepper buttons are hidden */ |
288 |
| - .spectrum-NumberField.hide-stepper & { |
289 |
| - inset-inline-end: var(--spectrum-numberfield-spacing-validation-icon-to-stepper-hidden); |
290 |
| - } |
| 312 | + &.spectrum-Textfield.is-invalid .spectrum-Textfield-validationIcon { |
| 313 | + inset-inline-end: var(--spectrum-numberfield-button-container-size); |
291 | 314 | }
|
292 | 315 | }
|
293 | 316 |
|
294 | 317 | /* unstyled input element */
|
295 | 318 | .spectrum-NumberField-input {
|
296 | 319 | padding-inline-start: 0;
|
297 |
| - padding-inline-end: var(--spectrum-numberfield-spacing-inline-edge-to-text); |
298 |
| - inline-size: calc(var(--spectrum-numberfield-inline-size) - calc(var(--spectrum-numberfield-button-size)* 2) - var(--spectrum-numberfield-button-inline-offset) - var(--spectrum-numberfield-spacing-min-inline-end-text-to-stepper)); |
| 320 | + padding-inline-end: var(--spectrum-numberfield-spacing-min-inline-end-text-to-stepper); |
299 | 321 | border: none;
|
300 | 322 | min-inline-size: 100%;
|
301 | 323 | block-size: calc(var(--mod-numberfield-block-size, var(--spectrum-numberfield-block-size)) - var(--spectrum-numberfield-border-width) * 2);
|
|
0 commit comments