@helixui/library 3.2.0-next.100 → 3.2.0-next.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +10 -10
- package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
- package/dist/components/hx-alert/index.js +1 -1
- package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
- package/dist/components/hx-banner/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +5 -5
- package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
- package/dist/components/hx-button/index.js +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
- package/dist/components/hx-checkbox/index.js +1 -1
- package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
- package/dist/components/hx-code-snippet/index.js +1 -1
- package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
- package/dist/components/hx-combobox/index.js +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-date-picker/index.js +1 -1
- package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
- package/dist/components/hx-link/index.js +1 -1
- package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -1
- package/dist/components/hx-list/index.js +1 -1
- package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
- package/dist/components/hx-rating/index.js +1 -1
- package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
- package/dist/components/hx-select/index.js +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.d.ts +1 -1
- package/dist/components/hx-side-nav/index.js +1 -1
- package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
- package/dist/components/hx-slider/index.js +1 -1
- package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
- package/dist/components/hx-split-button/index.js +1 -1
- package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
- package/dist/components/hx-switch/index.js +1 -1
- package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/index.js +1 -1
- package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
- package/dist/components/hx-text-input/index.js +1 -1
- package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
- package/dist/components/hx-textarea/index.js +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/index.js +1 -1
- package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.js +1 -1
- package/dist/css/helix-all.css +48 -111
- package/dist/css/helix-core.css +23 -21
- package/dist/css/helix-data.css +2 -4
- package/dist/css/helix-feedback.css +3 -12
- package/dist/css/helix-forms.css +16 -63
- package/dist/css/helix-navigation.css +2 -3
- package/dist/css/helix-tokens.css +8 -8
- package/dist/css/helix-utility.css +2 -8
- package/dist/css/hx-alert.css +1 -4
- package/dist/css/hx-banner.css +2 -8
- package/dist/css/hx-button.css +22 -17
- package/dist/css/hx-checkbox.css +1 -4
- package/dist/css/hx-code-snippet.css +2 -4
- package/dist/css/hx-combobox.css +2 -8
- package/dist/css/hx-date-picker.css +5 -21
- package/dist/css/hx-link.css +1 -4
- package/dist/css/hx-rating.css +1 -2
- package/dist/css/hx-select.css +1 -4
- package/dist/css/hx-side-nav.css +1 -1
- package/dist/css/hx-slider.css +1 -4
- package/dist/css/hx-split-button.css +2 -8
- package/dist/css/hx-switch.css +1 -4
- package/dist/css/hx-text-input.css +2 -8
- package/dist/css/hx-textarea.css +1 -4
- package/dist/css/hx-toggle-button.css +1 -4
- package/dist/css/hx-tree-view.css +1 -2
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +16 -14
- package/dist/index.js +21 -21
- package/dist/shared/{hx-alert-C597yHpD.js → hx-alert-CLn7CstP.js} +2 -5
- package/dist/shared/hx-alert-CLn7CstP.js.map +1 -0
- package/dist/shared/{hx-banner-Cxd7eFUP.js → hx-banner-D3DzpfcP.js} +7 -13
- package/dist/shared/hx-banner-D3DzpfcP.js.map +1 -0
- package/dist/shared/{hx-button-9OUjJnk7.js → hx-button-CHlkRQTe.js} +31 -26
- package/dist/shared/hx-button-CHlkRQTe.js.map +1 -0
- package/dist/shared/{hx-checkbox-DBD-gMoz.js → hx-checkbox-D7xma9YH.js} +6 -9
- package/dist/shared/hx-checkbox-D7xma9YH.js.map +1 -0
- package/dist/shared/{hx-code-snippet-B26RM1_C.js → hx-code-snippet-Bi-arDKH.js} +3 -5
- package/dist/shared/hx-code-snippet-Bi-arDKH.js.map +1 -0
- package/dist/shared/{hx-combobox-ClhNRAS5.js → hx-combobox-DDzqNKEW.js} +6 -12
- package/dist/shared/hx-combobox-DDzqNKEW.js.map +1 -0
- package/dist/shared/{hx-date-picker-BJm7Yrda.js → hx-date-picker-2iRG1p74.js} +12 -28
- package/dist/shared/hx-date-picker-2iRG1p74.js.map +1 -0
- package/dist/shared/{hx-link-9Ig2DW6L.js → hx-link-C-O6vq0Q.js} +2 -5
- package/dist/shared/hx-link-C-O6vq0Q.js.map +1 -0
- package/dist/shared/{hx-list-CkphGi9T.js → hx-list-MyEhh8c7.js} +3 -5
- package/dist/shared/hx-list-MyEhh8c7.js.map +1 -0
- package/dist/shared/{hx-nav-item-CqbO5-T5.js → hx-nav-item-Dap3DYgB.js} +2 -2
- package/dist/shared/hx-nav-item-Dap3DYgB.js.map +1 -0
- package/dist/shared/{hx-radio-dFjUAost.js → hx-radio-CJvNU2yP.js} +2 -5
- package/dist/shared/{hx-radio-dFjUAost.js.map → hx-radio-CJvNU2yP.js.map} +1 -1
- package/dist/shared/{hx-rating-CGtsejNf.js → hx-rating-C3QP53k9.js} +2 -3
- package/dist/shared/hx-rating-C3QP53k9.js.map +1 -0
- package/dist/shared/{hx-select-Bf4usFts.js → hx-select-C8fEHQhC.js} +2 -5
- package/dist/shared/hx-select-C8fEHQhC.js.map +1 -0
- package/dist/shared/{hx-slider-m0aEClH1.js → hx-slider-Blmv_rwS.js} +23 -26
- package/dist/shared/hx-slider-Blmv_rwS.js.map +1 -0
- package/dist/shared/{hx-split-button-BxDFfx4D.js → hx-split-button-Djnc5Aeg.js} +3 -9
- package/dist/shared/hx-split-button-Djnc5Aeg.js.map +1 -0
- package/dist/shared/{hx-switch-DvAW4YY-.js → hx-switch-BrZFaRue.js} +6 -9
- package/dist/shared/hx-switch-BrZFaRue.js.map +1 -0
- package/dist/shared/{hx-tab-panel-SWOEHuJc.js → hx-tab-panel-DspCrKqo.js} +3 -9
- package/dist/shared/{hx-tab-panel-SWOEHuJc.js.map → hx-tab-panel-DspCrKqo.js.map} +1 -1
- package/dist/shared/{hx-text-input-Bn7Gn8CI.js → hx-text-input-D6FlOZM-.js} +3 -9
- package/dist/shared/hx-text-input-D6FlOZM-.js.map +1 -0
- package/dist/shared/{hx-textarea-Jx1xnhgv.js → hx-textarea-CNG590KY.js} +6 -9
- package/dist/shared/hx-textarea-CNG590KY.js.map +1 -0
- package/dist/shared/{hx-toggle-button-DPAIh_Xo.js → hx-toggle-button-iLiYrMbD.js} +2 -5
- package/dist/shared/hx-toggle-button-iLiYrMbD.js.map +1 -0
- package/dist/shared/{hx-tree-item-Dt0Ozqyr.js → hx-tree-item-C2CiWuDE.js} +2 -3
- package/dist/shared/hx-tree-item-C2CiWuDE.js.map +1 -0
- package/figma-inventory.json +12 -12
- package/package.json +2 -2
- package/dist/shared/hx-alert-C597yHpD.js.map +0 -1
- package/dist/shared/hx-banner-Cxd7eFUP.js.map +0 -1
- package/dist/shared/hx-button-9OUjJnk7.js.map +0 -1
- package/dist/shared/hx-checkbox-DBD-gMoz.js.map +0 -1
- package/dist/shared/hx-code-snippet-B26RM1_C.js.map +0 -1
- package/dist/shared/hx-combobox-ClhNRAS5.js.map +0 -1
- package/dist/shared/hx-date-picker-BJm7Yrda.js.map +0 -1
- package/dist/shared/hx-link-9Ig2DW6L.js.map +0 -1
- package/dist/shared/hx-list-CkphGi9T.js.map +0 -1
- package/dist/shared/hx-nav-item-CqbO5-T5.js.map +0 -1
- package/dist/shared/hx-rating-CGtsejNf.js.map +0 -1
- package/dist/shared/hx-select-Bf4usFts.js.map +0 -1
- package/dist/shared/hx-slider-m0aEClH1.js.map +0 -1
- package/dist/shared/hx-split-button-BxDFfx4D.js.map +0 -1
- package/dist/shared/hx-switch-DvAW4YY-.js.map +0 -1
- package/dist/shared/hx-text-input-Bn7Gn8CI.js.map +0 -1
- package/dist/shared/hx-textarea-Jx1xnhgv.js.map +0 -1
- package/dist/shared/hx-toggle-button-DPAIh_Xo.js.map +0 -1
- package/dist/shared/hx-tree-item-Dt0Ozqyr.js.map +0 -1
package/dist/css/helix-all.css
CHANGED
|
@@ -309,10 +309,7 @@
|
|
|
309
309
|
|
|
310
310
|
.alert__close-button:focus-visible {
|
|
311
311
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
312
|
-
var(
|
|
313
|
-
--hx-alert-close-btn-focus-ring-color,
|
|
314
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
315
|
-
);
|
|
312
|
+
var(--hx-alert-close-btn-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
316
313
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
317
314
|
opacity: 1;
|
|
318
315
|
}
|
|
@@ -832,10 +829,7 @@
|
|
|
832
829
|
|
|
833
830
|
.banner__action:focus-visible {
|
|
834
831
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
835
|
-
var(
|
|
836
|
-
--hx-banner-action-focus-ring-color,
|
|
837
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
838
|
-
);
|
|
832
|
+
var(--hx-banner-action-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
839
833
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
840
834
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
841
835
|
}
|
|
@@ -876,10 +870,7 @@
|
|
|
876
870
|
|
|
877
871
|
.banner__close-button:focus-visible {
|
|
878
872
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
879
|
-
var(
|
|
880
|
-
--hx-banner-close-btn-focus-ring-color,
|
|
881
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
882
|
-
);
|
|
873
|
+
var(--hx-banner-close-btn-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
883
874
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
884
875
|
opacity: 1;
|
|
885
876
|
}
|
|
@@ -1255,15 +1246,16 @@
|
|
|
1255
1246
|
|
|
1256
1247
|
/* ─── Inverted Mode ─── */
|
|
1257
1248
|
|
|
1258
|
-
/* Inline-fallback contract for
|
|
1249
|
+
/* Inline-fallback contract for the on-dark-* tokens in this section:
|
|
1259
1250
|
the literal rgba(255, 255, 255, 0.X) arms are a LIGHT-MODE-only last
|
|
1260
1251
|
resort (cold-start, CSS-not-loaded). At runtime, hx-theme injects
|
|
1261
|
-
dark
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1252
|
+
the dark.* override (overlay-black-* for the strong border and the
|
|
1253
|
+
surface.on-dark-overlay-* fills) so dark-mode inverted buttons stay
|
|
1254
|
+
visible on the now-light surface.inverse (#EBEEE9). The inline white
|
|
1255
|
+
overlays would render invisible (≈1.1:1) on a light surface, but
|
|
1256
|
+
they never paint when the theme is mounted. If a future change
|
|
1257
|
+
moves these into a context where hx-theme is not guaranteed,
|
|
1258
|
+
replace with mode-aware tokens. */
|
|
1267
1259
|
|
|
1268
1260
|
/* Override text color and filter-based hover/active for all variants */
|
|
1269
1261
|
:host([inverted]) .button {
|
|
@@ -1281,8 +1273,12 @@
|
|
|
1281
1273
|
|
|
1282
1274
|
:host([inverted]) .button:focus-visible {
|
|
1283
1275
|
/* WCAG 1.4.11: focus indicator needs ≥3:1 against adjacent colors.
|
|
1284
|
-
border-on-dark-
|
|
1285
|
-
|
|
1276
|
+
border-on-dark-strong (overlay-white-70) ≈ 5:1 on neutral-900 — passes.
|
|
1277
|
+
The lower-alpha siblings used to live in border.* but were sub-3:1
|
|
1278
|
+
against any plausible surface and could not honour a border contract;
|
|
1279
|
+
they're now surface.on-dark-overlay-{default,subtle} (translucent
|
|
1280
|
+
fills, not borders) and used elsewhere in this file. See
|
|
1281
|
+
tokens.json color.surface.on-dark-overlay-* for canonical ratios. */
|
|
1286
1282
|
outline-color: var(
|
|
1287
1283
|
--hx-button-inverted-focus-ring-color,
|
|
1288
1284
|
var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7))
|
|
@@ -1347,19 +1343,19 @@
|
|
|
1347
1343
|
}
|
|
1348
1344
|
|
|
1349
1345
|
:host([inverted]) .button--secondary:hover {
|
|
1350
|
-
--hx-button-bg: var(--hx-color-
|
|
1346
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3));
|
|
1351
1347
|
}
|
|
1352
1348
|
|
|
1353
|
-
/* Tertiary inverted — resting at subtle (10%) lifts to default
|
|
1354
|
-
so the runtime hover delta is visually distinct, not
|
|
1355
|
-
single token. */
|
|
1349
|
+
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
1350
|
+
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
1351
|
+
collapsed onto a single token. */
|
|
1356
1352
|
:host([inverted]) .button--tertiary {
|
|
1357
|
-
--hx-button-bg: var(--hx-color-
|
|
1353
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1));
|
|
1358
1354
|
--hx-button-border-color: transparent;
|
|
1359
1355
|
}
|
|
1360
1356
|
|
|
1361
1357
|
:host([inverted]) .button--tertiary:hover {
|
|
1362
|
-
--hx-button-bg: var(--hx-color-
|
|
1358
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3));
|
|
1363
1359
|
}
|
|
1364
1360
|
|
|
1365
1361
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -1371,7 +1367,7 @@
|
|
|
1371
1367
|
:host([inverted]) .button--ghost:hover {
|
|
1372
1368
|
--hx-button-bg: var(
|
|
1373
1369
|
--hx-button-inverted-ghost-hover-bg,
|
|
1374
|
-
var(--hx-color-
|
|
1370
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
1375
1371
|
);
|
|
1376
1372
|
}
|
|
1377
1373
|
|
|
@@ -1381,7 +1377,7 @@
|
|
|
1381
1377
|
}
|
|
1382
1378
|
|
|
1383
1379
|
:host([inverted]) .button--outline:hover {
|
|
1384
|
-
--hx-button-bg: var(--hx-color-
|
|
1380
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3));
|
|
1385
1381
|
}
|
|
1386
1382
|
|
|
1387
1383
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -2058,10 +2054,7 @@
|
|
|
2058
2054
|
|
|
2059
2055
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
2060
2056
|
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
2061
|
-
var(
|
|
2062
|
-
--hx-checkbox-focus-ring-color,
|
|
2063
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
2064
|
-
);
|
|
2057
|
+
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
2065
2058
|
outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
|
|
2066
2059
|
}
|
|
2067
2060
|
|
|
@@ -2753,8 +2746,7 @@
|
|
|
2753
2746
|
}
|
|
2754
2747
|
|
|
2755
2748
|
.code-snippet__copy-button:focus-visible {
|
|
2756
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
2757
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078));
|
|
2749
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
2758
2750
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
2759
2751
|
}
|
|
2760
2752
|
|
|
@@ -2795,8 +2787,7 @@
|
|
|
2795
2787
|
}
|
|
2796
2788
|
|
|
2797
2789
|
.code-snippet__expand-button:focus-visible {
|
|
2798
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
2799
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078));
|
|
2790
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
2800
2791
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
2801
2792
|
}
|
|
2802
2793
|
|
|
@@ -3184,17 +3175,11 @@
|
|
|
3184
3175
|
box-shadow var(--hx-transition-fast, 150ms ease);
|
|
3185
3176
|
}
|
|
3186
3177
|
.field__input-wrapper:focus-within {
|
|
3187
|
-
border-color: var(
|
|
3188
|
-
--hx-combobox-focus-ring-color,
|
|
3189
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
3190
|
-
);
|
|
3178
|
+
border-color: var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
3191
3179
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
3192
3180
|
color-mix(
|
|
3193
3181
|
in srgb,
|
|
3194
|
-
var(
|
|
3195
|
-
--hx-combobox-focus-ring-color,
|
|
3196
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
3197
|
-
)
|
|
3182
|
+
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
|
|
3198
3183
|
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
3199
3184
|
transparent
|
|
3200
3185
|
);
|
|
@@ -4130,17 +4115,11 @@
|
|
|
4130
4115
|
}
|
|
4131
4116
|
|
|
4132
4117
|
.field__input-wrapper:focus-within {
|
|
4133
|
-
border-color: var(
|
|
4134
|
-
--hx-date-picker-focus-ring-color,
|
|
4135
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
4136
|
-
);
|
|
4118
|
+
border-color: var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
4137
4119
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
4138
4120
|
color-mix(
|
|
4139
4121
|
in srgb,
|
|
4140
|
-
var(
|
|
4141
|
-
--hx-date-picker-focus-ring-color,
|
|
4142
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
4143
|
-
)
|
|
4122
|
+
var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
|
|
4144
4123
|
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
4145
4124
|
transparent
|
|
4146
4125
|
);
|
|
@@ -4209,17 +4188,10 @@
|
|
|
4209
4188
|
}
|
|
4210
4189
|
|
|
4211
4190
|
.field__trigger:focus-visible {
|
|
4212
|
-
color: var(
|
|
4213
|
-
--hx-date-picker-focus-ring-color,
|
|
4214
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
4215
|
-
);
|
|
4191
|
+
color: var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
4216
4192
|
background-color: color-mix(
|
|
4217
4193
|
in srgb,
|
|
4218
|
-
var(
|
|
4219
|
-
--hx-date-picker-focus-ring-color,
|
|
4220
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
4221
|
-
)
|
|
4222
|
-
8%,
|
|
4194
|
+
var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078)) 8%,
|
|
4223
4195
|
transparent
|
|
4224
4196
|
);
|
|
4225
4197
|
}
|
|
@@ -4316,10 +4288,7 @@
|
|
|
4316
4288
|
|
|
4317
4289
|
:is(.calendar__nav-btn, .calendar__day):focus-visible {
|
|
4318
4290
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
4319
|
-
var(
|
|
4320
|
-
--hx-date-picker-focus-ring-color,
|
|
4321
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
4322
|
-
);
|
|
4291
|
+
var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
4323
4292
|
z-index: 1;
|
|
4324
4293
|
}
|
|
4325
4294
|
|
|
@@ -6108,10 +6077,7 @@ export const helixGridItemStyles = css`
|
|
|
6108
6077
|
|
|
6109
6078
|
.link:focus-visible {
|
|
6110
6079
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
6111
|
-
var(
|
|
6112
|
-
--hx-link-focus-ring-color,
|
|
6113
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
6114
|
-
);
|
|
6080
|
+
var(--hx-link-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
6115
6081
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
6116
6082
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
6117
6083
|
}
|
|
@@ -8193,8 +8159,7 @@ export const helixGridItemStyles = css`
|
|
|
8193
8159
|
}
|
|
8194
8160
|
|
|
8195
8161
|
.symbol:focus-visible {
|
|
8196
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
8197
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078));
|
|
8162
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
8198
8163
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
8199
8164
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
8200
8165
|
}
|
|
@@ -8308,10 +8273,7 @@ export const helixGridItemStyles = css`
|
|
|
8308
8273
|
--_border-radius: var(--hx-select-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
8309
8274
|
|
|
8310
8275
|
/* Focus ring */
|
|
8311
|
-
--_focus-ring-color: var(
|
|
8312
|
-
--hx-select-focus-ring-color,
|
|
8313
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
8314
|
-
);
|
|
8276
|
+
--_focus-ring-color: var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
8315
8277
|
|
|
8316
8278
|
/* Error */
|
|
8317
8279
|
--_error-color: var(--hx-select-error-color, var(--hx-color-error-500, #e5493e));
|
|
@@ -8779,7 +8741,7 @@ export const helixGridItemStyles = css`
|
|
|
8779
8741
|
|
|
8780
8742
|
.side-nav__toggle:hover {
|
|
8781
8743
|
background-color: var(
|
|
8782
|
-
--hx-color-
|
|
8744
|
+
--hx-color-surface-on-dark-overlay-subtle,
|
|
8783
8745
|
rgba(255, 255, 255, 0.1)
|
|
8784
8746
|
); /* fallback for browsers without color-mix() */
|
|
8785
8747
|
color: var(--hx-side-nav-toggle-hover-color, var(--hx-color-text-inverse, #ffffff));
|
|
@@ -9151,10 +9113,7 @@ export const helixGridItemStyles = css`
|
|
|
9151
9113
|
.slider__input:focus-visible ~ .slider__thumb-visual {
|
|
9152
9114
|
box-shadow:
|
|
9153
9115
|
0 0 0 var(--hx-focus-ring-width, 2px)
|
|
9154
|
-
var(
|
|
9155
|
-
--hx-slider-focus-ring-color,
|
|
9156
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
9157
|
-
),
|
|
9116
|
+
var(--hx-slider-focus-ring-color, var(--hx-focus-ring-color, #0f7078)),
|
|
9158
9117
|
var(--hx-slider-thumb-shadow, var(--hx-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05)));
|
|
9159
9118
|
}
|
|
9160
9119
|
|
|
@@ -9423,10 +9382,7 @@ export const helixGridItemStyles = css`
|
|
|
9423
9382
|
|
|
9424
9383
|
.split-button__primary:focus-visible {
|
|
9425
9384
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
9426
|
-
var(
|
|
9427
|
-
--hx-split-button-focus-ring-color,
|
|
9428
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
9429
|
-
);
|
|
9385
|
+
var(--hx-split-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
9430
9386
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
9431
9387
|
z-index: 1;
|
|
9432
9388
|
position: relative;
|
|
@@ -9468,10 +9424,7 @@ export const helixGridItemStyles = css`
|
|
|
9468
9424
|
|
|
9469
9425
|
.split-button__trigger:focus-visible {
|
|
9470
9426
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
9471
|
-
var(
|
|
9472
|
-
--hx-split-button-focus-ring-color,
|
|
9473
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
9474
|
-
);
|
|
9427
|
+
var(--hx-split-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
9475
9428
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
9476
9429
|
z-index: 1;
|
|
9477
9430
|
position: relative;
|
|
@@ -10539,10 +10492,7 @@ export const helixStructuredListRowStyles = css`
|
|
|
10539
10492
|
|
|
10540
10493
|
.switch__track:focus-visible {
|
|
10541
10494
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
10542
|
-
var(
|
|
10543
|
-
--hx-switch-focus-ring-color,
|
|
10544
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
10545
|
-
);
|
|
10495
|
+
var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
10546
10496
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
10547
10497
|
}
|
|
10548
10498
|
|
|
@@ -11321,10 +11271,7 @@ export const helixTableSectionBaseStyles = css`
|
|
|
11321
11271
|
);
|
|
11322
11272
|
--_text-input-border-color-focus: var(
|
|
11323
11273
|
--hx-text-input-border-color-focus,
|
|
11324
|
-
var(
|
|
11325
|
-
--hx-input-focus-ring-color,
|
|
11326
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
11327
|
-
)
|
|
11274
|
+
var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
|
|
11328
11275
|
);
|
|
11329
11276
|
--_text-input-border-color-invalid: var(
|
|
11330
11277
|
--hx-text-input-border-color-invalid,
|
|
@@ -11350,10 +11297,7 @@ export const helixTableSectionBaseStyles = css`
|
|
|
11350
11297
|
/* Focus ring */
|
|
11351
11298
|
--_text-input-focus-ring-color: var(
|
|
11352
11299
|
--hx-text-input-focus-ring-color,
|
|
11353
|
-
var(
|
|
11354
|
-
--hx-input-focus-ring-color,
|
|
11355
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
11356
|
-
)
|
|
11300
|
+
var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
|
|
11357
11301
|
);
|
|
11358
11302
|
--_text-input-focus-ring-width: var(
|
|
11359
11303
|
--hx-text-input-focus-ring-width,
|
|
@@ -11663,10 +11607,7 @@ export const helixTableSectionBaseStyles = css`
|
|
|
11663
11607
|
);
|
|
11664
11608
|
--_textarea-border-color-focus: var(
|
|
11665
11609
|
--hx-textarea-border-color-focus,
|
|
11666
|
-
var(
|
|
11667
|
-
--hx-input-focus-ring-color,
|
|
11668
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
11669
|
-
)
|
|
11610
|
+
var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
|
|
11670
11611
|
);
|
|
11671
11612
|
--_textarea-border-color-invalid: var(
|
|
11672
11613
|
--hx-textarea-border-color-invalid,
|
|
@@ -12490,10 +12431,7 @@ export const helixToastStackStyles = css`
|
|
|
12490
12431
|
|
|
12491
12432
|
.button:focus-visible {
|
|
12492
12433
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
12493
|
-
var(
|
|
12494
|
-
--hx-toggle-button-focus-ring-color,
|
|
12495
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
12496
|
-
);
|
|
12434
|
+
var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
12497
12435
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
12498
12436
|
}
|
|
12499
12437
|
|
|
@@ -13017,8 +12955,7 @@ export const helixToastStackStyles = css`
|
|
|
13017
12955
|
}
|
|
13018
12956
|
|
|
13019
12957
|
.tree:focus-visible {
|
|
13020
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
13021
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078));
|
|
12958
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
13022
12959
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
13023
12960
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
13024
12961
|
}
|
package/dist/css/helix-core.css
CHANGED
|
@@ -578,15 +578,16 @@
|
|
|
578
578
|
|
|
579
579
|
/* ─── Inverted Mode ─── */
|
|
580
580
|
|
|
581
|
-
/* Inline-fallback contract for
|
|
581
|
+
/* Inline-fallback contract for the on-dark-* tokens in this section:
|
|
582
582
|
the literal rgba(255, 255, 255, 0.X) arms are a LIGHT-MODE-only last
|
|
583
583
|
resort (cold-start, CSS-not-loaded). At runtime, hx-theme injects
|
|
584
|
-
dark
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
584
|
+
the dark.* override (overlay-black-* for the strong border and the
|
|
585
|
+
surface.on-dark-overlay-* fills) so dark-mode inverted buttons stay
|
|
586
|
+
visible on the now-light surface.inverse (#EBEEE9). The inline white
|
|
587
|
+
overlays would render invisible (≈1.1:1) on a light surface, but
|
|
588
|
+
they never paint when the theme is mounted. If a future change
|
|
589
|
+
moves these into a context where hx-theme is not guaranteed,
|
|
590
|
+
replace with mode-aware tokens. */
|
|
590
591
|
|
|
591
592
|
/* Override text color and filter-based hover/active for all variants */
|
|
592
593
|
:host([inverted]) .button {
|
|
@@ -604,8 +605,12 @@
|
|
|
604
605
|
|
|
605
606
|
:host([inverted]) .button:focus-visible {
|
|
606
607
|
/* WCAG 1.4.11: focus indicator needs ≥3:1 against adjacent colors.
|
|
607
|
-
border-on-dark-
|
|
608
|
-
|
|
608
|
+
border-on-dark-strong (overlay-white-70) ≈ 5:1 on neutral-900 — passes.
|
|
609
|
+
The lower-alpha siblings used to live in border.* but were sub-3:1
|
|
610
|
+
against any plausible surface and could not honour a border contract;
|
|
611
|
+
they're now surface.on-dark-overlay-{default,subtle} (translucent
|
|
612
|
+
fills, not borders) and used elsewhere in this file. See
|
|
613
|
+
tokens.json color.surface.on-dark-overlay-* for canonical ratios. */
|
|
609
614
|
outline-color: var(
|
|
610
615
|
--hx-button-inverted-focus-ring-color,
|
|
611
616
|
var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7))
|
|
@@ -670,19 +675,19 @@
|
|
|
670
675
|
}
|
|
671
676
|
|
|
672
677
|
:host([inverted]) .button--secondary:hover {
|
|
673
|
-
--hx-button-bg: var(--hx-color-
|
|
678
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3));
|
|
674
679
|
}
|
|
675
680
|
|
|
676
|
-
/* Tertiary inverted — resting at subtle (10%) lifts to default
|
|
677
|
-
so the runtime hover delta is visually distinct, not
|
|
678
|
-
single token. */
|
|
681
|
+
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
682
|
+
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
683
|
+
collapsed onto a single token. */
|
|
679
684
|
:host([inverted]) .button--tertiary {
|
|
680
|
-
--hx-button-bg: var(--hx-color-
|
|
685
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1));
|
|
681
686
|
--hx-button-border-color: transparent;
|
|
682
687
|
}
|
|
683
688
|
|
|
684
689
|
:host([inverted]) .button--tertiary:hover {
|
|
685
|
-
--hx-button-bg: var(--hx-color-
|
|
690
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3));
|
|
686
691
|
}
|
|
687
692
|
|
|
688
693
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -694,7 +699,7 @@
|
|
|
694
699
|
:host([inverted]) .button--ghost:hover {
|
|
695
700
|
--hx-button-bg: var(
|
|
696
701
|
--hx-button-inverted-ghost-hover-bg,
|
|
697
|
-
var(--hx-color-
|
|
702
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
698
703
|
);
|
|
699
704
|
}
|
|
700
705
|
|
|
@@ -704,7 +709,7 @@
|
|
|
704
709
|
}
|
|
705
710
|
|
|
706
711
|
:host([inverted]) .button--outline:hover {
|
|
707
|
-
--hx-button-bg: var(--hx-color-
|
|
712
|
+
--hx-button-bg: var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3));
|
|
708
713
|
}
|
|
709
714
|
|
|
710
715
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -1519,10 +1524,7 @@
|
|
|
1519
1524
|
|
|
1520
1525
|
.link:focus-visible {
|
|
1521
1526
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
1522
|
-
var(
|
|
1523
|
-
--hx-link-focus-ring-color,
|
|
1524
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
1525
|
-
);
|
|
1527
|
+
var(--hx-link-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
1526
1528
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
1527
1529
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
1528
1530
|
}
|
package/dist/css/helix-data.css
CHANGED
|
@@ -106,8 +106,7 @@
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
.code-snippet__copy-button:focus-visible {
|
|
109
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
110
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078));
|
|
109
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
111
110
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
112
111
|
}
|
|
113
112
|
|
|
@@ -148,8 +147,7 @@
|
|
|
148
147
|
}
|
|
149
148
|
|
|
150
149
|
.code-snippet__expand-button:focus-visible {
|
|
151
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
152
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078));
|
|
150
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
153
151
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
154
152
|
}
|
|
155
153
|
|
|
@@ -160,10 +160,7 @@
|
|
|
160
160
|
|
|
161
161
|
.alert__close-button:focus-visible {
|
|
162
162
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
163
|
-
var(
|
|
164
|
-
--hx-alert-close-btn-focus-ring-color,
|
|
165
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
166
|
-
);
|
|
163
|
+
var(--hx-alert-close-btn-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
167
164
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
168
165
|
opacity: 1;
|
|
169
166
|
}
|
|
@@ -336,10 +333,7 @@
|
|
|
336
333
|
|
|
337
334
|
.banner__action:focus-visible {
|
|
338
335
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
339
|
-
var(
|
|
340
|
-
--hx-banner-action-focus-ring-color,
|
|
341
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
342
|
-
);
|
|
336
|
+
var(--hx-banner-action-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
343
337
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
344
338
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
345
339
|
}
|
|
@@ -380,10 +374,7 @@
|
|
|
380
374
|
|
|
381
375
|
.banner__close-button:focus-visible {
|
|
382
376
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
383
|
-
var(
|
|
384
|
-
--hx-banner-close-btn-focus-ring-color,
|
|
385
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-600, #0f7078))
|
|
386
|
-
);
|
|
377
|
+
var(--hx-banner-close-btn-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
387
378
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
388
379
|
opacity: 1;
|
|
389
380
|
}
|