ds-tis 1.0.0-beta.10

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 (79) hide show
  1. package/LICENSE +49 -0
  2. package/README.md +125 -0
  3. package/css/base/forced-colors.css +62 -0
  4. package/css/base/icons.css +73 -0
  5. package/css/base/index.css +4 -0
  6. package/css/base/reset.css +80 -0
  7. package/css/base/typography.css +211 -0
  8. package/css/components/accordion.css +153 -0
  9. package/css/components/alert.css +161 -0
  10. package/css/components/avatar.css +76 -0
  11. package/css/components/badge.css +83 -0
  12. package/css/components/breadcrumb.css +58 -0
  13. package/css/components/button.css +364 -0
  14. package/css/components/card.css +159 -0
  15. package/css/components/checkbox.css +296 -0
  16. package/css/components/combobox.css +330 -0
  17. package/css/components/divider.css +20 -0
  18. package/css/components/form-field.css +137 -0
  19. package/css/components/index.css +28 -0
  20. package/css/components/input.css +356 -0
  21. package/css/components/link.css +67 -0
  22. package/css/components/menu.css +246 -0
  23. package/css/components/modal.css +236 -0
  24. package/css/components/pagination.css +132 -0
  25. package/css/components/radio.css +280 -0
  26. package/css/components/select.css +399 -0
  27. package/css/components/skeleton.css +52 -0
  28. package/css/components/spinner.css +59 -0
  29. package/css/components/tabs.css +79 -0
  30. package/css/components/textarea.css +218 -0
  31. package/css/components/toggle.css +202 -0
  32. package/css/components/tooltip.css +116 -0
  33. package/css/design-system.css +13 -0
  34. package/css/tokens/generated/component.css +720 -0
  35. package/css/tokens/generated/foundation.css +282 -0
  36. package/css/tokens/generated/index.css +5 -0
  37. package/css/tokens/generated/theme-dark.css +243 -0
  38. package/css/tokens/generated/theme-light.css +244 -0
  39. package/css/tokens/index.css +6 -0
  40. package/css/utilities/elevation.css +24 -0
  41. package/css/utilities/index.css +2 -0
  42. package/css/utilities/layout.css +132 -0
  43. package/docs/agent-consumer-usage.en.md +322 -0
  44. package/docs/agent-consumer-usage.md +294 -0
  45. package/docs/api/adrs.json +186 -0
  46. package/docs/api/components.json +2071 -0
  47. package/docs/api/consumer-context.json +66 -0
  48. package/docs/api/foundations.json +94 -0
  49. package/docs/api/tokens.json +6839 -0
  50. package/docs/llms-full.txt +23699 -0
  51. package/docs/llms.txt +109 -0
  52. package/docs/templates/contact.html +364 -0
  53. package/docs/templates/dashboard.html +318 -0
  54. package/docs/templates/index.html +232 -0
  55. package/docs/templates/login.html +286 -0
  56. package/docs/templates/settings.html +365 -0
  57. package/docs/templates/signup.html +350 -0
  58. package/js/accordion.js +192 -0
  59. package/js/combobox.js +263 -0
  60. package/js/menu.js +301 -0
  61. package/js/modal.js +256 -0
  62. package/js/package.json +3 -0
  63. package/js/tabs.js +200 -0
  64. package/js/theme/apply.js +75 -0
  65. package/js/theme/brand-contrast-audit.js +133 -0
  66. package/js/theme/color.js +149 -0
  67. package/js/theme/config-schema.js +40 -0
  68. package/js/theme/contrast.js +76 -0
  69. package/js/theme/export.js +118 -0
  70. package/js/theme/index.js +21 -0
  71. package/js/theme/overlay.js +29 -0
  72. package/js/theme/package.json +3 -0
  73. package/js/theme/palette.js +103 -0
  74. package/js/theme/radius.js +76 -0
  75. package/js/theme/semantic-mapper.js +138 -0
  76. package/js/theme/typography.js +33 -0
  77. package/js/theme/url-state.js +52 -0
  78. package/js/tooltip.js +227 -0
  79. package/package.json +139 -0
@@ -0,0 +1,153 @@
1
+ /* ==========================================================================
2
+ Accordion
3
+ ========================================================================== */
4
+
5
+ .ds-accordion {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: var(--ds-space-2xs);
9
+ inline-size: 100%;
10
+ color: var(--ds-accordion-content-color-default);
11
+ }
12
+
13
+ .ds-accordion__item {
14
+ overflow: hidden;
15
+ border: var(--ds-accordion-item-border-width-default) solid var(--ds-accordion-item-border-color-default);
16
+ border-radius: var(--ds-accordion-item-radius-default);
17
+ background: var(--ds-accordion-item-bg-default);
18
+ transition:
19
+ background-color var(--ds-motion-duration-fast) var(--ds-motion-ease-default),
20
+ border-color var(--ds-motion-duration-fast) var(--ds-motion-ease-default);
21
+ }
22
+
23
+ .ds-accordion__item:hover:not(.ds-accordion__item--disabled):not([aria-disabled="true"]) {
24
+ border-color: var(--ds-accordion-item-border-color-hover);
25
+ background: var(--ds-accordion-item-bg-hover);
26
+ }
27
+
28
+ .ds-accordion__item:has(.ds-accordion__trigger:focus-visible) {
29
+ border-color: var(--ds-accordion-item-border-color-focus);
30
+ }
31
+
32
+ .ds-accordion__item--disabled,
33
+ .ds-accordion__item[aria-disabled="true"] {
34
+ border-color: var(--ds-accordion-item-border-color-default);
35
+ background: var(--ds-accordion-item-bg-disabled);
36
+ }
37
+
38
+ .ds-accordion__trigger {
39
+ position: relative;
40
+ display: flex;
41
+ align-items: center;
42
+ gap: var(--ds-accordion-trigger-gap-md);
43
+ inline-size: 100%;
44
+ min-block-size: var(--ds-accordion-trigger-height-md);
45
+ padding: var(--ds-accordion-trigger-padding-y-md) var(--ds-accordion-trigger-padding-x-md);
46
+ border: 0;
47
+ background: transparent;
48
+ color: var(--ds-accordion-trigger-content-color-default);
49
+ font-family: var(--ds-body-font-family-sans);
50
+ font-size: var(--ds-body-font-size-md);
51
+ font-weight: var(--ds-body-font-weight-semibold);
52
+ line-height: var(--ds-body-line-height-md);
53
+ text-align: start;
54
+ cursor: pointer;
55
+ }
56
+
57
+ .ds-accordion__trigger:focus-visible {
58
+ outline: none;
59
+ }
60
+
61
+ .ds-accordion__trigger:focus-visible::after {
62
+ content: "";
63
+ position: absolute;
64
+ inset: calc(var(--ds-focus-ring-width) * -1);
65
+ border: var(--ds-focus-ring-width) solid var(--ds-focus-ring-color-default);
66
+ border-radius: var(--ds-accordion-focus-ring-radius-default);
67
+ pointer-events: none;
68
+ }
69
+
70
+ .ds-accordion__title {
71
+ flex: 1;
72
+ min-inline-size: 0;
73
+ overflow-wrap: anywhere;
74
+ }
75
+
76
+ .ds-accordion__leading-icon,
77
+ .ds-accordion__chevron {
78
+ flex: 0 0 auto;
79
+ inline-size: var(--ds-accordion-leading-icon-size-md);
80
+ block-size: var(--ds-accordion-leading-icon-size-md);
81
+ color: var(--ds-accordion-leading-icon-color-default);
82
+ fill: none;
83
+ stroke: currentColor;
84
+ stroke-width: var(--ds-accordion-leading-icon-stroke-width-md);
85
+ }
86
+
87
+ .ds-accordion__chevron {
88
+ inline-size: var(--ds-accordion-chevron-size-md);
89
+ block-size: var(--ds-accordion-chevron-size-md);
90
+ color: var(--ds-accordion-chevron-color-default);
91
+ stroke-width: var(--ds-accordion-chevron-stroke-width-md);
92
+ transition: transform var(--ds-motion-duration-fast) var(--ds-motion-ease-default);
93
+ }
94
+
95
+ .ds-accordion__trigger[aria-expanded="true"] .ds-accordion__chevron,
96
+ .ds-accordion__item[data-state="open"] .ds-accordion__chevron,
97
+ .ds-accordion__item[open] .ds-accordion__chevron {
98
+ transform: rotate(180deg);
99
+ }
100
+
101
+ .ds-accordion__panel {
102
+ display: flex;
103
+ flex-direction: column;
104
+ gap: var(--ds-accordion-content-gap-md);
105
+ padding: 0 var(--ds-accordion-content-padding-x-md) var(--ds-accordion-content-padding-bottom-md);
106
+ color: var(--ds-accordion-content-color-default);
107
+ font-family: var(--ds-body-font-family-sans);
108
+ font-size: var(--ds-body-font-size-sm);
109
+ font-weight: var(--ds-body-font-weight-regular);
110
+ line-height: var(--ds-body-line-height-sm);
111
+ }
112
+
113
+ .ds-accordion__panel[hidden] {
114
+ display: none;
115
+ }
116
+
117
+ .ds-accordion__panel > :where(p, ul, ol, dl, blockquote, figure) {
118
+ margin: 0;
119
+ }
120
+
121
+ .ds-accordion__item--disabled .ds-accordion__trigger,
122
+ .ds-accordion__trigger:disabled,
123
+ .ds-accordion__trigger[aria-disabled="true"],
124
+ .ds-accordion__item[aria-disabled="true"] .ds-accordion__trigger {
125
+ color: var(--ds-accordion-trigger-content-color-disabled);
126
+ cursor: not-allowed;
127
+ }
128
+
129
+ .ds-accordion__item--disabled .ds-accordion__panel,
130
+ .ds-accordion__item[aria-disabled="true"] .ds-accordion__panel {
131
+ color: var(--ds-accordion-content-color-disabled);
132
+ }
133
+
134
+ .ds-accordion__item--disabled .ds-accordion__leading-icon,
135
+ .ds-accordion__trigger:disabled .ds-accordion__leading-icon,
136
+ .ds-accordion__trigger[aria-disabled="true"] .ds-accordion__leading-icon,
137
+ .ds-accordion__item[aria-disabled="true"] .ds-accordion__leading-icon {
138
+ color: var(--ds-accordion-leading-icon-color-disabled);
139
+ }
140
+
141
+ .ds-accordion__item--disabled .ds-accordion__chevron,
142
+ .ds-accordion__trigger:disabled .ds-accordion__chevron,
143
+ .ds-accordion__trigger[aria-disabled="true"] .ds-accordion__chevron,
144
+ .ds-accordion__item[aria-disabled="true"] .ds-accordion__chevron {
145
+ color: var(--ds-accordion-chevron-color-disabled);
146
+ }
147
+
148
+ @media (prefers-reduced-motion: reduce) {
149
+ .ds-accordion__item,
150
+ .ds-accordion__chevron {
151
+ transition: none;
152
+ }
153
+ }
@@ -0,0 +1,161 @@
1
+ /* ============================================================
2
+ COMPONENT: Alert
3
+ ============================================================ */
4
+
5
+ .ds-alert {
6
+ display: flex;
7
+ align-items: flex-start;
8
+ gap: var(--ds-alert-gap-default);
9
+ padding: var(--ds-alert-padding-default);
10
+ border-radius: var(--ds-alert-radius-default);
11
+ font-size: var(--ds-alert-description-font-size-default);
12
+ line-height: var(--ds-alert-description-line-height-default);
13
+ }
14
+
15
+ /* Icon — Figma: container size/md (24), ícone 20 (size/sm) */
16
+ .ds-alert__icon {
17
+ flex-shrink: 0;
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ width: var(--ds-alert-icon-size-default);
22
+ height: var(--ds-alert-icon-size-default);
23
+ }
24
+
25
+ .ds-alert__icon .ds-icon {
26
+ width: var(--ds-alert-icon-size-default);
27
+ height: var(--ds-alert-icon-size-default);
28
+ color: currentColor;
29
+ stroke-width: var(--ds-alert-icon-stroke-width-default);
30
+ }
31
+
32
+ /* Icon color em Subtle — tematizado por feedback via component tokens.
33
+ Em Filled, icon herda `color` do wrapper que já é content-contrast. */
34
+ .ds-alert--success.ds-alert--subtle .ds-alert__icon {
35
+ color: var(--ds-alert-icon-color-success-subtle);
36
+ }
37
+ .ds-alert--warning.ds-alert--subtle .ds-alert__icon {
38
+ color: var(--ds-alert-icon-color-warning-subtle);
39
+ }
40
+ .ds-alert--error.ds-alert--subtle .ds-alert__icon {
41
+ color: var(--ds-alert-icon-color-error-subtle);
42
+ }
43
+ .ds-alert--info.ds-alert--subtle .ds-alert__icon {
44
+ color: var(--ds-alert-icon-color-info-subtle);
45
+ }
46
+
47
+ .ds-alert__content {
48
+ flex: 1;
49
+ min-width: 0;
50
+ display: flex;
51
+ flex-direction: column;
52
+ gap: var(--ds-alert-content-gap-default);
53
+ }
54
+
55
+ /* Title — label/md: 14px Bold / 20px */
56
+ .ds-alert__title {
57
+ font-size: var(--ds-alert-title-font-size-default);
58
+ font-weight: var(--ds-alert-title-font-weight-default);
59
+ line-height: var(--ds-alert-title-line-height-default);
60
+ }
61
+
62
+ .ds-alert__description {
63
+ font-size: var(--ds-alert-description-font-size-default);
64
+ font-weight: var(--ds-alert-description-font-weight-default);
65
+ line-height: var(--ds-alert-description-line-height-default);
66
+ }
67
+
68
+ .ds-alert__close {
69
+ flex-shrink: 0;
70
+ display: inline-flex;
71
+ align-items: center;
72
+ justify-content: center;
73
+ width: var(--ds-alert-close-icon-size-default);
74
+ height: var(--ds-alert-close-icon-size-default);
75
+ background: none;
76
+ border: none;
77
+ padding: 0;
78
+ cursor: pointer;
79
+ color: inherit;
80
+ opacity: 0.7;
81
+ transition: opacity var(--ds-motion-duration-fast) var(--ds-motion-ease-default);
82
+ }
83
+
84
+ .ds-alert__close:hover {
85
+ opacity: 1;
86
+ }
87
+
88
+ .ds-alert__close .ds-icon {
89
+ width: var(--ds-alert-close-icon-size-default);
90
+ height: var(--ds-alert-close-icon-size-default);
91
+ color: currentColor;
92
+ stroke-width: var(--ds-alert-close-icon-stroke-width-default);
93
+ }
94
+
95
+ .ds-alert__close:focus-visible {
96
+ outline: var(--ds-focus-ring-width) solid var(--ds-focus-ring-color-default);
97
+ outline-offset: var(--ds-focus-ring-width);
98
+ border-radius: var(--ds-radius-sm);
99
+ }
100
+
101
+ /* ---------------------------------------------------------
102
+ Filled style
103
+ --------------------------------------------------------- */
104
+ .ds-alert--success.ds-alert--filled {
105
+ background-color: var(--ds-alert-bg-success-filled);
106
+ color: var(--ds-alert-description-color-success-filled);
107
+ }
108
+
109
+ .ds-alert--warning.ds-alert--filled {
110
+ background-color: var(--ds-alert-bg-warning-filled);
111
+ color: var(--ds-alert-description-color-warning-filled);
112
+ }
113
+
114
+ .ds-alert--error.ds-alert--filled {
115
+ background-color: var(--ds-alert-bg-error-filled);
116
+ color: var(--ds-alert-description-color-error-filled);
117
+ }
118
+
119
+ .ds-alert--info.ds-alert--filled {
120
+ background-color: var(--ds-alert-bg-info-filled);
121
+ color: var(--ds-alert-description-color-info-filled);
122
+ }
123
+
124
+ /* ---------------------------------------------------------
125
+ Subtle style
126
+ --------------------------------------------------------- */
127
+ .ds-alert--success.ds-alert--subtle {
128
+ background-color: var(--ds-alert-bg-success-subtle);
129
+ color: var(--ds-alert-description-color-subtle);
130
+ border: var(--ds-alert-border-width-default) solid var(--ds-alert-border-color-success-subtle);
131
+ }
132
+
133
+ .ds-alert--warning.ds-alert--subtle {
134
+ background-color: var(--ds-alert-bg-warning-subtle);
135
+ color: var(--ds-alert-description-color-subtle);
136
+ border: var(--ds-alert-border-width-default) solid var(--ds-alert-border-color-warning-subtle);
137
+ }
138
+
139
+ .ds-alert--error.ds-alert--subtle {
140
+ background-color: var(--ds-alert-bg-error-subtle);
141
+ color: var(--ds-alert-description-color-subtle);
142
+ border: var(--ds-alert-border-width-default) solid var(--ds-alert-border-color-error-subtle);
143
+ }
144
+
145
+ .ds-alert--info.ds-alert--subtle {
146
+ background-color: var(--ds-alert-bg-info-subtle);
147
+ color: var(--ds-alert-description-color-subtle);
148
+ border: var(--ds-alert-border-width-default) solid var(--ds-alert-border-color-info-subtle);
149
+ }
150
+
151
+ /* Description uses secondary content tone in subtle variants */
152
+ .ds-alert--subtle .ds-alert__description {
153
+ color: var(--ds-alert-description-color-subtle);
154
+ }
155
+
156
+ /* ---------------------------------------------------------
157
+ Reduced motion
158
+ --------------------------------------------------------- */
159
+ @media (prefers-reduced-motion: reduce) {
160
+ .ds-alert__close { transition: none; }
161
+ }
@@ -0,0 +1,76 @@
1
+ /* ============================================================
2
+ COMPONENT: Avatar
3
+ ============================================================ */
4
+
5
+ /* Base avatar */
6
+ .ds-avatar {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ border-radius: var(--ds-avatar-radius-default);
11
+ background-color: var(--ds-avatar-bg-default);
12
+ color: var(--ds-avatar-content-color-default);
13
+ font-family: var(--ds-body-font-family-sans);
14
+ font-weight: var(--ds-avatar-initials-font-weight-md);
15
+ flex-shrink: 0;
16
+ overflow: hidden;
17
+ user-select: none;
18
+ }
19
+
20
+ /* Default size: md (Figma: 40×40, initials 14/20 Bold) */
21
+ .ds-avatar {
22
+ width: var(--ds-avatar-size-md);
23
+ height: var(--ds-avatar-size-md);
24
+ font-size: var(--ds-avatar-initials-font-size-md);
25
+ line-height: var(--ds-avatar-initials-line-height-md);
26
+ }
27
+
28
+ /* ---------------------------------------------------------
29
+ Sizes — Figma initials scale 14/14/20 (sm/md/lg)
30
+ --------------------------------------------------------- */
31
+ .ds-avatar--sm {
32
+ width: var(--ds-avatar-size-sm);
33
+ height: var(--ds-avatar-size-sm);
34
+ font-size: var(--ds-avatar-initials-font-size-sm);
35
+ line-height: var(--ds-avatar-initials-line-height-sm);
36
+ font-weight: var(--ds-avatar-initials-font-weight-sm);
37
+ }
38
+
39
+ .ds-avatar--lg {
40
+ width: var(--ds-avatar-size-lg);
41
+ height: var(--ds-avatar-size-lg);
42
+ font-size: var(--ds-avatar-initials-font-size-lg);
43
+ line-height: var(--ds-avatar-initials-line-height-lg);
44
+ font-weight: var(--ds-avatar-initials-font-weight-lg);
45
+ }
46
+
47
+ /* ---------------------------------------------------------
48
+ Types
49
+ --------------------------------------------------------- */
50
+
51
+ /* Image avatar */
52
+ .ds-avatar img {
53
+ width: 100%;
54
+ height: 100%;
55
+ object-fit: cover;
56
+ }
57
+
58
+ /* Icon avatar */
59
+ .ds-avatar--icon .ds-icon {
60
+ width: var(--ds-avatar-icon-size-md);
61
+ height: var(--ds-avatar-icon-size-md);
62
+ color: currentColor;
63
+ stroke-width: var(--ds-avatar-icon-stroke-width-md);
64
+ }
65
+
66
+ .ds-avatar--sm.ds-avatar--icon .ds-icon {
67
+ width: var(--ds-avatar-icon-size-sm);
68
+ height: var(--ds-avatar-icon-size-sm);
69
+ stroke-width: var(--ds-avatar-icon-stroke-width-sm);
70
+ }
71
+
72
+ .ds-avatar--lg.ds-avatar--icon .ds-icon {
73
+ width: var(--ds-avatar-icon-size-lg);
74
+ height: var(--ds-avatar-icon-size-lg);
75
+ stroke-width: var(--ds-avatar-icon-stroke-width-lg);
76
+ }
@@ -0,0 +1,83 @@
1
+ /* ============================================================
2
+ COMPONENT: Badge
3
+ ============================================================ */
4
+
5
+ .ds-badge {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ gap: var(--ds-badge-gap-default);
9
+ padding: var(--ds-badge-padding-y-default) var(--ds-badge-padding-x-default);
10
+ /* Figma: Badge label = Inter Bold 12 / 18 (label/xs) */
11
+ font-size: var(--ds-badge-label-font-size-default);
12
+ font-weight: var(--ds-badge-label-font-weight-default);
13
+ line-height: var(--ds-badge-label-line-height-default);
14
+ border-radius: var(--ds-badge-radius-default);
15
+ white-space: nowrap;
16
+ }
17
+
18
+ /* ---------------------------------------------------------
19
+ Solid style (filled background)
20
+ --------------------------------------------------------- */
21
+ .ds-badge--brand.ds-badge--solid {
22
+ background-color: var(--ds-badge-bg-brand-solid);
23
+ color: var(--ds-badge-label-color-brand-solid);
24
+ }
25
+
26
+ .ds-badge--success.ds-badge--solid {
27
+ background-color: var(--ds-badge-bg-success-solid);
28
+ color: var(--ds-badge-label-color-success-solid);
29
+ }
30
+
31
+ .ds-badge--warning.ds-badge--solid {
32
+ background-color: var(--ds-badge-bg-warning-solid);
33
+ color: var(--ds-badge-label-color-warning-solid);
34
+ }
35
+
36
+ .ds-badge--error.ds-badge--solid {
37
+ background-color: var(--ds-badge-bg-error-solid);
38
+ color: var(--ds-badge-label-color-error-solid);
39
+ }
40
+
41
+ .ds-badge--info.ds-badge--solid {
42
+ background-color: var(--ds-badge-bg-info-solid);
43
+ color: var(--ds-badge-label-color-info-solid);
44
+ }
45
+
46
+ .ds-badge--neutral.ds-badge--solid {
47
+ background-color: var(--ds-badge-bg-neutral-default);
48
+ color: var(--ds-badge-label-color-neutral-solid);
49
+ }
50
+
51
+ /* ---------------------------------------------------------
52
+ Subtle style (light background)
53
+ --------------------------------------------------------- */
54
+ .ds-badge--brand.ds-badge--subtle {
55
+ background-color: var(--ds-badge-bg-brand-subtle);
56
+ color: var(--ds-badge-label-color-brand-subtle);
57
+ }
58
+
59
+ .ds-badge--success.ds-badge--subtle {
60
+ background-color: var(--ds-badge-bg-success-subtle);
61
+ color: var(--ds-badge-label-color-success-subtle);
62
+ }
63
+
64
+ .ds-badge--warning.ds-badge--subtle {
65
+ background-color: var(--ds-badge-bg-warning-subtle);
66
+ color: var(--ds-badge-label-color-warning-subtle);
67
+ }
68
+
69
+ .ds-badge--error.ds-badge--subtle {
70
+ background-color: var(--ds-badge-bg-error-subtle);
71
+ color: var(--ds-badge-label-color-error-subtle);
72
+ }
73
+
74
+ .ds-badge--info.ds-badge--subtle {
75
+ background-color: var(--ds-badge-bg-info-subtle);
76
+ color: var(--ds-badge-label-color-info-subtle);
77
+ }
78
+
79
+ .ds-badge--neutral.ds-badge--subtle {
80
+ background-color: var(--ds-badge-bg-neutral-default);
81
+ color: var(--ds-badge-label-color-neutral-subtle);
82
+ border: var(--ds-badge-border-width-default) solid var(--ds-badge-border-color-neutral-subtle);
83
+ }
@@ -0,0 +1,58 @@
1
+ /* ==========================================================================
2
+ Breadcrumb
3
+ ========================================================================== */
4
+
5
+ .ds-breadcrumb {
6
+ display: flex;
7
+ align-items: center;
8
+ gap: var(--ds-breadcrumb-gap-default);
9
+ font-size: var(--ds-breadcrumb-label-font-size-default);
10
+ font-weight: var(--ds-breadcrumb-label-font-weight-default);
11
+ line-height: var(--ds-breadcrumb-label-line-height-default);
12
+ letter-spacing: var(--ds-breadcrumb-label-letter-spacing-default);
13
+ }
14
+
15
+ /* Item
16
+ ========================================================================== */
17
+
18
+ .ds-breadcrumb__item {
19
+ display: inline-flex;
20
+ align-items: center;
21
+ gap: var(--ds-breadcrumb-item-gap-default);
22
+ color: var(--ds-breadcrumb-label-color-link);
23
+ border-radius: var(--ds-breadcrumb-focus-ring-radius-default);
24
+ text-decoration: none;
25
+ }
26
+
27
+ .ds-breadcrumb__item:hover {
28
+ color: var(--ds-link-content-hover);
29
+ text-decoration: underline;
30
+ }
31
+
32
+ .ds-breadcrumb__item:active {
33
+ color: var(--ds-link-content-active);
34
+ }
35
+
36
+ .ds-breadcrumb__item:focus-visible {
37
+ outline: var(--ds-focus-ring-width) solid var(--ds-focus-ring-color-default);
38
+ outline-offset: var(--ds-focus-ring-width);
39
+ }
40
+
41
+ /* Current (last item)
42
+ ========================================================================== */
43
+
44
+ .ds-breadcrumb__item--current {
45
+ color: var(--ds-breadcrumb-label-color-current);
46
+ pointer-events: none;
47
+ }
48
+
49
+ /* Separator
50
+ ========================================================================== */
51
+
52
+ .ds-breadcrumb__separator {
53
+ color: var(--ds-content-subtle);
54
+ font-size: var(--ds-breadcrumb-separator-font-size-default);
55
+ font-weight: var(--ds-breadcrumb-separator-font-weight-default);
56
+ line-height: var(--ds-breadcrumb-separator-line-height-default);
57
+ letter-spacing: var(--ds-breadcrumb-separator-letter-spacing-default);
58
+ }