@hirobius/design-system 0.11.0 → 0.13.0

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.
Files changed (93) hide show
  1. package/README.md +50 -9
  2. package/dist/brand.js +36 -0
  3. package/dist/contexts.js +63 -59
  4. package/dist/hirobius-ui.js +22636 -3818
  5. package/dist/manifest.js +9 -9
  6. package/dist/scroll.js +42 -0
  7. package/dist/static.css +388 -0
  8. package/dist/styles.css +1 -1
  9. package/dist/tokens.css +1 -1
  10. package/dist/tokens.js +14 -1
  11. package/dist/types/src/app/components/activity-feed.d.ts +24 -2
  12. package/dist/types/src/app/components/alert-dialog.d.ts +56 -0
  13. package/dist/types/src/app/components/app-shell.d.ts +38 -0
  14. package/dist/types/src/app/components/aspect-ratio.d.ts +25 -0
  15. package/dist/types/src/app/components/avatar-group.d.ts +22 -0
  16. package/dist/types/src/app/components/bleed.d.ts +39 -0
  17. package/dist/types/src/app/components/blockquote.d.ts +20 -0
  18. package/dist/types/src/app/components/box-sx.d.ts +69 -0
  19. package/dist/types/src/app/components/box.d.ts +42 -0
  20. package/dist/types/src/app/components/breadcrumb.d.ts +5 -0
  21. package/dist/types/src/app/components/button-group.d.ts +18 -0
  22. package/dist/types/src/app/components/calendar.d.ts +20 -0
  23. package/dist/types/src/app/components/card.d.ts +29 -13
  24. package/dist/types/src/app/components/carousel.d.ts +24 -0
  25. package/dist/types/src/app/components/center.d.ts +36 -0
  26. package/dist/types/src/app/components/circular-progress.d.ts +28 -0
  27. package/dist/types/src/app/components/cluster.d.ts +39 -0
  28. package/dist/types/src/app/components/code-block.d.ts +19 -1
  29. package/dist/types/src/app/components/command-palette.d.ts +44 -0
  30. package/dist/types/src/app/components/container.d.ts +10 -0
  31. package/dist/types/src/app/components/context-menu.d.ts +55 -0
  32. package/dist/types/src/app/components/cover.d.ts +43 -0
  33. package/dist/types/src/app/components/date-input.d.ts +31 -0
  34. package/dist/types/src/app/components/date-range-input.d.ts +34 -0
  35. package/dist/types/src/app/components/date-time-input.d.ts +30 -0
  36. package/dist/types/src/app/components/disclosure.d.ts +5 -1
  37. package/dist/types/src/app/components/divider.d.ts +14 -10
  38. package/dist/types/src/app/components/doc-link-card.d.ts +5 -1
  39. package/dist/types/src/app/components/field.d.ts +9 -11
  40. package/dist/types/src/app/components/file-input.d.ts +28 -0
  41. package/dist/types/src/app/components/frame.d.ts +38 -0
  42. package/dist/types/src/app/components/heading-stack.d.ts +15 -5
  43. package/dist/types/src/app/components/hover-card.d.ts +31 -0
  44. package/dist/types/src/app/components/image-lightbox.d.ts +13 -0
  45. package/dist/types/src/app/components/inline-code.d.ts +14 -3
  46. package/dist/types/src/app/components/input-group.d.ts +23 -0
  47. package/dist/types/src/app/components/kbd.d.ts +18 -0
  48. package/dist/types/src/app/components/metadata-list.d.ts +43 -0
  49. package/dist/types/src/app/components/multi-selector.d.ts +40 -0
  50. package/dist/types/src/app/components/nav-group.d.ts +7 -2
  51. package/dist/types/src/app/components/nav-item.d.ts +12 -2
  52. package/dist/types/src/app/components/overflow-list.d.ts +19 -0
  53. package/dist/types/src/app/components/pin.d.ts +30 -0
  54. package/dist/types/src/app/components/reveal.d.ts +31 -0
  55. package/dist/types/src/app/components/segmented-control.d.ts +37 -3
  56. package/dist/types/src/app/components/selectable-card.d.ts +29 -0
  57. package/dist/types/src/app/components/side-nav.d.ts +21 -0
  58. package/dist/types/src/app/components/sidebar.d.ts +45 -0
  59. package/dist/types/src/app/components/stat.d.ts +8 -10
  60. package/dist/types/src/app/components/status-dot.d.ts +25 -0
  61. package/dist/types/src/app/components/status-list-item.d.ts +10 -11
  62. package/dist/types/src/app/components/stepper.d.ts +31 -0
  63. package/dist/types/src/app/components/switcher.d.ts +41 -0
  64. package/dist/types/src/app/components/table.d.ts +12 -1
  65. package/dist/types/src/app/components/tag.d.ts +19 -18
  66. package/dist/types/src/app/components/text.d.ts +8 -2
  67. package/dist/types/src/app/components/time-input.d.ts +24 -0
  68. package/dist/types/src/app/components/timestamp.d.ts +24 -0
  69. package/dist/types/src/app/components/toast.d.ts +8 -2
  70. package/dist/types/src/app/components/toggle-button.d.ts +32 -0
  71. package/dist/types/src/app/components/token.d.ts +26 -1
  72. package/dist/types/src/app/components/tokenizer.d.ts +24 -0
  73. package/dist/types/src/app/components/toolbar.d.ts +36 -0
  74. package/dist/types/src/app/components/top-nav.d.ts +21 -0
  75. package/dist/types/src/app/components/tree-list.d.ts +28 -0
  76. package/dist/types/src/app/components/visually-hidden.d.ts +17 -0
  77. package/dist/types/src/app/context/TenantContext.d.ts +1 -1
  78. package/dist/types/src/app/data/nav-model.d.ts +39 -0
  79. package/dist/types/src/app/design-system/generated-token-refs.d.ts +13 -0
  80. package/dist/types/src/app/design-system/generated-token-values.d.ts +14 -1
  81. package/dist/types/src/app/{pages/hds → layouts}/HdsSystemDocLayout.d.ts +1 -1
  82. package/dist/types/src/app/lib/hds-search.d.ts +45 -0
  83. package/dist/types/src/brand/index.d.ts +9 -0
  84. package/dist/types/src/brand/overlay.d.ts +71 -0
  85. package/dist/types/src/index.d.ts +92 -2
  86. package/dist/types/src/scroll/index.d.ts +16 -0
  87. package/dist/types/src/scroll/smooth-scroll.d.ts +48 -0
  88. package/dist/types/src/scroll/use-scroll-progress.d.ts +34 -0
  89. package/dist/variables.css +16 -5
  90. package/hirobius.tokens.json +57 -10
  91. package/package.json +37 -67
  92. package/public/hds-manifest.json +6167 -4929
  93. package/dist/types/src/app/components/info-page.d.ts +0 -10
package/dist/scroll.js ADDED
@@ -0,0 +1,42 @@
1
+ import { jsx as o, Fragment as d } from "react/jsx-runtime";
2
+ import * as c from "react";
3
+ import { ReactLenis as i } from "lenis/react";
4
+ import { useLenis as R } from "lenis/react";
5
+ import { useScroll as a } from "motion/react";
6
+ const f = {
7
+ duration: 1.2,
8
+ easing: (e) => Math.min(1, 1.001 - Math.pow(2, -10 * e)),
9
+ smoothWheel: !0
10
+ }, n = "(prefers-reduced-motion: reduce)";
11
+ function u() {
12
+ return c.useSyncExternalStore(
13
+ (e) => {
14
+ if (typeof window > "u" || !window.matchMedia) return () => {
15
+ };
16
+ const r = window.matchMedia(n);
17
+ return r.addEventListener("change", e), () => r.removeEventListener("change", e);
18
+ },
19
+ () => typeof window < "u" && window.matchMedia ? window.matchMedia(n).matches : !1,
20
+ () => !1
21
+ );
22
+ }
23
+ function p({
24
+ children: e,
25
+ options: r,
26
+ root: t = !0,
27
+ ignoreReducedMotion: s = !1
28
+ }) {
29
+ return u() && !s ? /* @__PURE__ */ o(d, { children: e }) : /* @__PURE__ */ o(i, { root: t, options: { ...f, ...r }, children: e });
30
+ }
31
+ function M(e, r) {
32
+ const { scrollYProgress: t } = a({
33
+ target: e,
34
+ offset: (r == null ? void 0 : r.offset) ?? ["start end", "end start"]
35
+ });
36
+ return t;
37
+ }
38
+ export {
39
+ p as SmoothScroll,
40
+ R as useLenis,
41
+ M as useScrollProgress
42
+ };
@@ -0,0 +1,388 @@
1
+ /* @hirobius/design-system/static.css — CSS-only static-primitive layer.
2
+ * Plain `.hds-badge` / `.hds-card` / `.hds-alert` / `.hds-divider` / `.hds-tag`
3
+ * classes for Badge/Card/Alert/Divider/Tag with NO React and NO reset — every
4
+ * rule is scoped to `.hds-*` and bound to the same design tokens the React
5
+ * components use, so it stays theme-aware via [data-theme]/[data-brand]. Pair
6
+ * with @hirobius/design-system/variables.css for the token vars themselves.
7
+ * See docs/CONSUMING.md §14. */
8
+ /**
9
+ * static.css — CSS-only static-primitive layer (#64).
10
+ *
11
+ * A hand-authored, framework-free stylesheet that lets a page with ZERO React
12
+ * (a plain `.astro`/`.html` file) render Badge, Card, Alert, Divider, and Tag
13
+ * using plain semantic classes (`.hds-badge`, `.hds-card`, `.hds-alert`,
14
+ * `.hds-divider`, `.hds-tag`) instead of the React components in
15
+ * `src/app/components/{badge,card,alert,divider,tag}.tsx`.
16
+ *
17
+ * Every declaration below binds to the SAME `--semantic-*` / `--component-*` /
18
+ * `--role-*` custom properties the React cva variants reference (see the
19
+ * per-primitive header comments for the exact source mapping) — this is a
20
+ * markup-only reskin of the token graph, not a parallel design decision. It
21
+ * therefore auto-themes via `[data-theme]`/`.dark`/`data-brand` exactly like
22
+ * the React components, with zero JS.
23
+ *
24
+ * Rules:
25
+ * - Every selector is scoped under `.hds-*` (or `[data-theme='dark'] .hds-*`
26
+ * / `.dark .hds-*` for the one non-token color flip below) — no bare
27
+ * element selectors, no `*`, no `:root`. Safe to drop into any host page.
28
+ * - Reset-free: no margin/padding/box-sizing resets outside what a given
29
+ * primitive itself owns. Pair with `@hirobius/design-system/variables.css`
30
+ * (tokens only, also host-safe) — see docs/CONSUMING.md §14.
31
+ * - `--primitive-*` is referenced exactly once (Tag's WCAG hit-target size),
32
+ * annotated `tier-ok` — mirrors the same primitive-tier reference already
33
+ * present in tag.tsx (no semantic alias exists for it yet).
34
+ * - Two declarations reference a raw `rgb()` overlay (Badge's neutral tone
35
+ * tint) — annotated `css-ok`; it mirrors badge.tsx's own `bg-black/[0.04]`
36
+ * / `dark:bg-white/[0.04]` exactly, which has no semantic token either
37
+ * (documented as an intentional exemption at the source, badge.tsx:15).
38
+ * - Two font-size/weight pairs (Badge, Tag) bind to the already-registered
39
+ * `--component-badge-*` / `--component-tag-*` typography tokens rather
40
+ * than mirroring the raw untokened Tailwind utilities the current React
41
+ * render happens to use (`text-[11px]`, `text-xs`) — those tokens exist
42
+ * precisely to describe these components (see REACT_COMPONENTS.md's Tag
43
+ * recipe) and keep this static layer 100% token-bound with no numeric
44
+ * literals to justify.
45
+ *
46
+ * Emitted as `dist/static.css` by scripts/build-static-css.mjs (part of
47
+ * `pnpm build:lib`) and published as the `@hirobius/design-system/static.css`
48
+ * subpath export.
49
+ */
50
+
51
+ /* ── Badge — src/app/components/badge.tsx ──────────────────────────────────── */
52
+
53
+ .hds-badge {
54
+ display: inline-flex;
55
+ width: fit-content;
56
+ box-sizing: border-box;
57
+ align-items: center;
58
+ justify-content: center;
59
+ white-space: nowrap;
60
+ line-height: 1;
61
+ text-transform: uppercase;
62
+ font-size: var(--component-badge-fontSize);
63
+ font-weight: var(--component-badge-fontWeight);
64
+ height: var(--component-badge-height);
65
+ min-width: var(--component-badge-minWidth);
66
+ padding: var(--component-badge-paddingY) var(--component-badge-paddingX);
67
+ border-radius: var(--component-badge-radius);
68
+ /* neutral tone (default) */
69
+ background-color: rgb(
70
+ 0 0 0 / 0.04
71
+ ); /* css-ok: mirrors badge.tsx's bg-black/[0.04] neutral-tone overlay — no semantic token exists for this tint (source-exempted, badge.tsx:15) */
72
+ color: var(--semantic-color-content-secondary);
73
+ }
74
+
75
+ [data-theme='dark'] .hds-badge,
76
+ .dark .hds-badge {
77
+ background-color: rgb(
78
+ 255 255 255 / 0.04
79
+ ); /* css-ok: mirrors badge.tsx's dark:bg-white/[0.04] neutral-tone overlay */
80
+ }
81
+
82
+ .hds-badge--neutral {
83
+ /* Explicit alias for the default — see .hds-badge above. */
84
+ background-color: rgb(
85
+ 0 0 0 / 0.04
86
+ ); /* css-ok: same neutral-tone overlay as the .hds-badge base rule */
87
+ color: var(--semantic-color-content-secondary);
88
+ }
89
+
90
+ [data-theme='dark'] .hds-badge--neutral,
91
+ .dark .hds-badge--neutral {
92
+ background-color: rgb(
93
+ 255 255 255 / 0.04
94
+ ); /* css-ok: same dark-mode neutral-tone overlay as the .hds-badge base rule */
95
+ }
96
+
97
+ .hds-badge--info {
98
+ background-color: var(--semantic-color-feedback-bg-info);
99
+ color: var(--semantic-color-feedback-info);
100
+ }
101
+
102
+ .hds-badge--success {
103
+ background-color: var(--semantic-color-feedback-bg-success);
104
+ color: var(--semantic-color-feedback-success);
105
+ }
106
+
107
+ .hds-badge--danger {
108
+ background-color: var(--semantic-color-feedback-bg-error);
109
+ color: var(--semantic-color-feedback-error);
110
+ }
111
+
112
+ .hds-badge--warning {
113
+ background-color: var(--semantic-color-feedback-bg-warning);
114
+ color: var(--semantic-color-feedback-warning);
115
+ }
116
+
117
+ .hds-badge--in-progress {
118
+ background-color: var(--semantic-color-feedback-bg-inProgress);
119
+ color: var(--semantic-color-feedback-inProgress);
120
+ }
121
+
122
+ /* ── Card — src/app/components/card.tsx ─────────────────────────────────────
123
+ * Root surface only (variant + tone), matching the deliverable scope. Compose
124
+ * header/body/footer content with your own markup inside `.hds-card`; reach
125
+ * for the real <Card> compound parts (Card.Header/.Progress/.Metric, …) if you
126
+ * need the full slot anatomy — that requires React.
127
+ *
128
+ * Cascade order below is intentional and mirrors card.tsx's "tone always wins
129
+ * over variant" contract (card.tsx:97-101): `--accent`/`--bordered` are
130
+ * declared before the `--danger/--success/--warning/--info` tone modifiers, so
131
+ * combining a tone class with `--accent` lets the tone's border win by source
132
+ * order (both are single-class selectors, so specificity is equal).
133
+ */
134
+
135
+ .hds-card {
136
+ display: flex;
137
+ height: 100%;
138
+ flex-direction: column;
139
+ box-sizing: border-box;
140
+ border-radius: var(
141
+ --primitive-radius-8
142
+ ); /* tier-ok: REACT_COMPONENTS.md Card recipe mandates var(--primitive-radius-8) directly (no semantic radius alias for the 8px card corner) */
143
+ background-color: var(--role-card);
144
+ color: var(--role-card-foreground);
145
+ border-style: solid;
146
+ border-width: 1px;
147
+ border-color: transparent;
148
+ padding: var(--semantic-space-component-padding);
149
+ gap: var(--semantic-space-layout-tight);
150
+ }
151
+
152
+ .hds-card--no-padding {
153
+ padding: 0;
154
+ gap: 0;
155
+ }
156
+
157
+ .hds-card--accent {
158
+ border-width: 2px;
159
+ border-color: var(--semantic-color-border-accent);
160
+ }
161
+
162
+ .hds-card--bordered {
163
+ border-color: var(--semantic-color-border-default);
164
+ }
165
+
166
+ .hds-card--danger {
167
+ border-width: 1px;
168
+ border-color: var(--semantic-color-feedback-error);
169
+ }
170
+
171
+ .hds-card--success {
172
+ border-width: 1px;
173
+ border-color: var(--semantic-color-feedback-success);
174
+ }
175
+
176
+ .hds-card--warning {
177
+ border-width: 1px;
178
+ border-color: var(--semantic-color-feedback-warning);
179
+ }
180
+
181
+ .hds-card--info {
182
+ border-width: 1px;
183
+ border-color: var(--semantic-color-feedback-info);
184
+ }
185
+
186
+ /* ── Alert — src/app/components/alert.tsx ───────────────────────────────────
187
+ * `role="alert"` still belongs on the markup (an ARIA live-region role, not a
188
+ * styling concern) — see docs/CONSUMING.md §14. No entrance-motion equivalent
189
+ * ships here: alert.tsx's opacity/y motion is a React (motion/react) nicety,
190
+ * not required for a static page to read correctly.
191
+ */
192
+
193
+ .hds-alert {
194
+ display: flex;
195
+ align-items: center;
196
+ box-sizing: border-box;
197
+ gap: var(--semantic-space-component-gap);
198
+ padding: var(--semantic-space-component-gap);
199
+ border-radius: var(
200
+ --primitive-radius-4
201
+ ); /* tier-ok: alert.tsx itself carries the identical exemption ("tier-ok: 4px primitive radius, no semantic 4px token", alert.tsx:24) */
202
+ background-color: var(--semantic-color-feedback-bg-info);
203
+ }
204
+
205
+ .hds-alert--with-title {
206
+ /* Add alongside a tone modifier when the alert has a title element
207
+ * (.hds-alert__title) above the body — mirrors alert.tsx's hasTitle:true
208
+ * cross-axis switch from items-center to items-start. */
209
+ align-items: flex-start;
210
+ }
211
+
212
+ .hds-alert--success {
213
+ background-color: var(--semantic-color-feedback-bg-success);
214
+ }
215
+
216
+ .hds-alert--danger {
217
+ background-color: var(--semantic-color-feedback-bg-error);
218
+ }
219
+
220
+ .hds-alert--warning {
221
+ background-color: var(--semantic-color-feedback-bg-warning);
222
+ }
223
+
224
+ .hds-alert--info {
225
+ background-color: var(--semantic-color-feedback-bg-info);
226
+ }
227
+
228
+ .hds-alert__icon {
229
+ flex-shrink: 0;
230
+ width: var(
231
+ --primitive-typography-size-base
232
+ ); /* tier-ok: mirrors Icon size="small" (hds.iconSize.small = var(--primitive-typography-size-base)), Icon has no semantic size alias */
233
+ height: var(--primitive-typography-size-base); /* tier-ok: see above */
234
+ color: var(--semantic-color-feedback-info);
235
+ }
236
+
237
+ .hds-alert--success .hds-alert__icon {
238
+ color: var(--semantic-color-feedback-success);
239
+ }
240
+
241
+ .hds-alert--danger .hds-alert__icon {
242
+ color: var(--semantic-color-feedback-error);
243
+ }
244
+
245
+ .hds-alert--warning .hds-alert__icon {
246
+ color: var(--semantic-color-feedback-warning);
247
+ }
248
+
249
+ .hds-alert--info .hds-alert__icon {
250
+ color: var(--semantic-color-feedback-info);
251
+ }
252
+
253
+ .hds-alert__title {
254
+ display: block;
255
+ font-family: var(--semantic-typography-ui-font-family);
256
+ font-size: var(--semantic-typography-ui-font-size);
257
+ font-weight: var(--semantic-typography-ui-font-weight);
258
+ line-height: var(--semantic-typography-ui-line-height);
259
+ color: var(--semantic-color-content-primary);
260
+ }
261
+
262
+ .hds-alert__body {
263
+ display: block;
264
+ font-family: var(--semantic-typography-caption-font-family);
265
+ font-size: var(--semantic-typography-caption-font-size);
266
+ font-weight: var(--semantic-typography-caption-font-weight);
267
+ line-height: var(--semantic-typography-caption-line-height);
268
+ color: var(--semantic-color-content-primary);
269
+ }
270
+
271
+ /* ── Divider — src/app/components/divider.tsx ───────────────────────────────
272
+ * Decorative + non-interactive, so no hover/focus states. `<hr>` carries
273
+ * browser-agent defaults (border, height, color) that a reset-free stylesheet
274
+ * can't zero globally — `.hds-divider` resets them itself (class-scoped, not
275
+ * a bare `hr` rule) so the primitive is correct with or without a host reset.
276
+ */
277
+
278
+ .hds-divider {
279
+ box-sizing: border-box;
280
+ margin: 0;
281
+ flex-shrink: 0;
282
+ height: 0;
283
+ color: inherit;
284
+ overflow: visible;
285
+ border-style: solid;
286
+ border-width: 0;
287
+ border-color: var(--semantic-color-border-default);
288
+ }
289
+
290
+ .hds-divider--horizontal {
291
+ width: 100%;
292
+ align-self: stretch;
293
+ border-top-width: 1px;
294
+ }
295
+
296
+ .hds-divider--vertical {
297
+ height: 100%;
298
+ border-left-width: 1px;
299
+ }
300
+
301
+ .hds-divider--strong {
302
+ border-color: var(--semantic-color-border-strong);
303
+ }
304
+
305
+ /* ── Tag — src/app/components/tag.tsx ────────────────────────────────────────
306
+ * Two-part anatomy: `.hds-tag` is the accessible 44px hit-target button;
307
+ * `.hds-tag__pill` is the compact visible surface inside it — same split as
308
+ * tag.tsx's outer <button> + inner pill <span>.
309
+ */
310
+
311
+ .hds-tag {
312
+ display: inline-flex;
313
+ box-sizing: border-box;
314
+ min-width: var(
315
+ --primitive-size-interactive-min
316
+ ); /* tier-ok: mirrors tag.tsx's own var(--primitive-size-interactive-min) hit-target size (tag.tsx:25) — no semantic alias exists */
317
+ align-items: center;
318
+ justify-content: center;
319
+ cursor: pointer;
320
+ user-select: none;
321
+ border: 0;
322
+ background: transparent;
323
+ padding: 0;
324
+ color: inherit;
325
+ }
326
+
327
+ .hds-tag:disabled {
328
+ pointer-events: none;
329
+ cursor: not-allowed;
330
+ opacity: 0.5;
331
+ }
332
+
333
+ .hds-tag:focus-visible {
334
+ outline: var(--semantic-borderWidth-emphasis) solid var(--semantic-color-border-accent);
335
+ outline-offset: 2px;
336
+ position: relative;
337
+ }
338
+
339
+ .hds-tag__pill {
340
+ pointer-events: none;
341
+ box-sizing: border-box;
342
+ display: inline-flex;
343
+ min-height: var(--component-tag-minHeight);
344
+ min-width: var(--component-tag-minWidth);
345
+ align-items: center;
346
+ justify-content: center;
347
+ white-space: nowrap;
348
+ line-height: 1;
349
+ font-size: var(--component-tag-fontSize);
350
+ font-weight: var(--component-tag-fontWeight);
351
+ border-radius: var(--component-tag-radius);
352
+ border-style: solid;
353
+ border-width: 1px;
354
+ padding: var(--component-tag-paddingY) var(--component-tag-paddingX);
355
+ border-color: var(--semantic-color-border-default);
356
+ background-color: var(--semantic-color-surface-raised);
357
+ color: var(--semantic-color-content-secondary);
358
+ transition:
359
+ color 0.15s ease,
360
+ background-color 0.15s ease,
361
+ border-color 0.15s ease;
362
+ }
363
+
364
+ @media (prefers-reduced-motion: reduce) {
365
+ .hds-tag__pill {
366
+ transition: none;
367
+ }
368
+ }
369
+
370
+ .hds-tag:hover .hds-tag__pill {
371
+ border-color: var(--semantic-color-border-accent);
372
+ background-color: var(--semantic-color-surface-accentSubtle);
373
+ color: var(--semantic-color-content-primary);
374
+ }
375
+
376
+ .hds-tag:active .hds-tag__pill {
377
+ border-color: var(--semantic-color-border-accent);
378
+ }
379
+
380
+ .hds-tag--active .hds-tag__pill {
381
+ border-color: var(--component-tag-activeBorder);
382
+ background-color: var(--component-tag-activeBackground);
383
+ color: var(--component-tag-activeText);
384
+ }
385
+
386
+ .hds-tag--active:hover .hds-tag__pill {
387
+ background-color: var(--component-tag-activeHover);
388
+ }