@dsrc-cm/core 0.1.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 (51) hide show
  1. package/dist/dsrc.css +10743 -0
  2. package/dist/dsrc.min.css +1 -0
  3. package/package.json +44 -0
  4. package/src/base/print.css +404 -0
  5. package/src/base/reset.css +106 -0
  6. package/src/components/accordion/accordion.css +216 -0
  7. package/src/components/alert/alert.css +187 -0
  8. package/src/components/badge/badge.css +178 -0
  9. package/src/components/breadcrumb/breadcrumb.css +235 -0
  10. package/src/components/button/button.css +805 -0
  11. package/src/components/callout/callout.css +95 -0
  12. package/src/components/card/card.css +551 -0
  13. package/src/components/checkbox/checkbox.css +257 -0
  14. package/src/components/consent/consent.css +297 -0
  15. package/src/components/download/download.css +66 -0
  16. package/src/components/dropdown/dropdown.css +295 -0
  17. package/src/components/highlight/highlight.css +74 -0
  18. package/src/components/input/input.css +337 -0
  19. package/src/components/label/label.css +29 -0
  20. package/src/components/link/link.css +208 -0
  21. package/src/components/logo/logo.css +86 -0
  22. package/src/components/modal/modal.css +271 -0
  23. package/src/components/notice/notice.css +211 -0
  24. package/src/components/pagination/pagination.css +132 -0
  25. package/src/components/password/password.css +195 -0
  26. package/src/components/quote/quote.css +156 -0
  27. package/src/components/radio/radio.css +270 -0
  28. package/src/components/range/range.css +362 -0
  29. package/src/components/search/search.css +129 -0
  30. package/src/components/select/select.css +130 -0
  31. package/src/components/sidemenu/sidemenu.css +268 -0
  32. package/src/components/spinner/spinner.css +73 -0
  33. package/src/components/stepper/stepper.css +140 -0
  34. package/src/components/summary/summary.css +142 -0
  35. package/src/components/tab/tab.css +184 -0
  36. package/src/components/table/table.css +556 -0
  37. package/src/components/tag/tag.css +201 -0
  38. package/src/components/tile/tile.css +389 -0
  39. package/src/components/toggle/toggle.css +229 -0
  40. package/src/components/tooltip/tooltip.css +158 -0
  41. package/src/components/translate/translate.css +356 -0
  42. package/src/components/upload/upload.css +185 -0
  43. package/src/index.css +77 -0
  44. package/src/layout/bandeau/bandeau.css +44 -0
  45. package/src/layout/entete/entete.css +130 -0
  46. package/src/layout/footer/footer.css +107 -0
  47. package/src/layout/grid/grid.css +197 -0
  48. package/src/layout/hero/hero.css +86 -0
  49. package/src/layout/main/main.css +123 -0
  50. package/src/layout/navigation/navigation.css +206 -0
  51. package/src/utilities/utilities.css +430 -0
@@ -0,0 +1,187 @@
1
+ /**
2
+ * DSRC Alert Component
3
+ * Composant d'alerte contextuelle (en page)
4
+ *
5
+ * Aligne sur les patrons du DSFR (fr-alert) adaptes pour le DSRC.
6
+ * - Barre d'accent a gauche (border-left)
7
+ * - Texte sombre (--dsrc-color-noir), fond pastel de la variante
8
+ * - 4 variantes : --info, --success, --warning, --error
9
+ * - Variante sans type : neutre (gris)
10
+ * - Taille reduite : --sm (ligne unique, pas de titre)
11
+ * - Fermable : bouton .dsrc-btn--close
12
+ *
13
+ * Markup:
14
+ *
15
+ * <!-- Avec titre -->
16
+ * <div class="dsrc-alert dsrc-alert--info" role="alert">
17
+ * <h3 class="dsrc-alert__title">Titre de l'information</h3>
18
+ * <p>Description optionnelle plus detaillee.</p>
19
+ * </div>
20
+ *
21
+ * <!-- Sans titre -->
22
+ * <div class="dsrc-alert dsrc-alert--info" role="alert">
23
+ * <p>Information : texte de l'alerte.</p>
24
+ * </div>
25
+ *
26
+ * <!-- Taille reduite -->
27
+ * <div class="dsrc-alert dsrc-alert--info dsrc-alert--sm" role="alert">
28
+ * <p>Information courte.</p>
29
+ * </div>
30
+ *
31
+ * <!-- Fermable -->
32
+ * <div class="dsrc-alert dsrc-alert--info" role="alert">
33
+ * <h3 class="dsrc-alert__title">Information</h3>
34
+ * <p>Cliquer sur la croix pour fermer.</p>
35
+ * <button type="button" class="dsrc-btn dsrc-btn--close">Masquer</button>
36
+ * </div>
37
+ */
38
+
39
+ /* ============================================
40
+ * 1. Base
41
+ * ============================================ */
42
+
43
+ .dsrc-alert {
44
+ position: relative;
45
+ display: block;
46
+ padding: var(--dsrc-spacing-4) var(--dsrc-spacing-5);
47
+ border-radius: var(--dsrc-radius-default);
48
+ font-family: var(--dsrc-font-family-sans);
49
+ font-size: var(--dsrc-font-size-body);
50
+ line-height: var(--dsrc-font-line-height-relaxed);
51
+ color: var(--dsrc-color-noir);
52
+ width: 100%;
53
+
54
+ /* Accent bar - left border (thicker than default, DSFR-inspired) */
55
+ border-left-style: solid;
56
+ border-left-width: var(--dsrc-spacing-1); /* 4px */
57
+ border-left-color: var(--dsrc-color-gris-400);
58
+
59
+ /* Default (no type): neutral grey */
60
+ background-color: var(--dsrc-color-gris-50);
61
+ }
62
+
63
+ /* ============================================
64
+ * 2. Title
65
+ * ============================================ */
66
+
67
+ .dsrc-alert__title {
68
+ font-size: var(--dsrc-font-size-h4);
69
+ font-weight: var(--dsrc-font-weight-semibold);
70
+ line-height: var(--dsrc-font-line-height-normal);
71
+ margin: 0 0 var(--dsrc-spacing-2) 0;
72
+ color: var(--dsrc-color-noir);
73
+ }
74
+
75
+ /* ============================================
76
+ * 3. Description paragraphs
77
+ * ============================================ */
78
+
79
+ .dsrc-alert > p {
80
+ margin: 0;
81
+ }
82
+
83
+ .dsrc-alert > p + p {
84
+ margin-top: var(--dsrc-spacing-2);
85
+ }
86
+
87
+ /* Links inside alert */
88
+ .dsrc-alert a {
89
+ color: var(--dsrc-color-noir);
90
+ text-decoration: underline;
91
+ text-underline-offset: 3px;
92
+ }
93
+
94
+ .dsrc-alert a:hover {
95
+ text-decoration-thickness: 2px;
96
+ }
97
+
98
+ /* ============================================
99
+ * 4. Type variants
100
+ * Background: pastel / fond
101
+ * Border-left: dark status color / bordure
102
+ * Text stays --dsrc-color-noir (DSFR pattern)
103
+ * ============================================ */
104
+
105
+ /* --- Info --- */
106
+ .dsrc-alert--info {
107
+ background-color: var(--dsrc-color-info-fond);
108
+ border-left-color: var(--dsrc-color-info-bordure);
109
+ }
110
+
111
+ .dsrc-alert--info .dsrc-alert__title {
112
+ color: var(--dsrc-color-info-texte);
113
+ }
114
+
115
+ /* --- Success --- */
116
+ .dsrc-alert--success {
117
+ background-color: var(--dsrc-color-succes-fond);
118
+ border-left-color: var(--dsrc-color-succes-bordure);
119
+ }
120
+
121
+ .dsrc-alert--success .dsrc-alert__title {
122
+ color: var(--dsrc-color-succes-texte);
123
+ }
124
+
125
+ /* --- Warning --- */
126
+ .dsrc-alert--warning {
127
+ background-color: var(--dsrc-color-alerte-fond);
128
+ border-left-color: var(--dsrc-color-alerte-bordure);
129
+ }
130
+
131
+ .dsrc-alert--warning .dsrc-alert__title {
132
+ color: var(--dsrc-color-alerte-texte);
133
+ }
134
+
135
+ /* --- Error --- */
136
+ .dsrc-alert--error {
137
+ background-color: var(--dsrc-color-erreur-fond);
138
+ border-left-color: var(--dsrc-color-erreur-bordure);
139
+ }
140
+
141
+ .dsrc-alert--error .dsrc-alert__title {
142
+ color: var(--dsrc-color-erreur-texte);
143
+ }
144
+
145
+ /* ============================================
146
+ * 5. Small size (--sm)
147
+ * Reduced padding, single-line, no title expected
148
+ * ============================================ */
149
+
150
+ .dsrc-alert--sm {
151
+ padding: var(--dsrc-spacing-2) var(--dsrc-spacing-4);
152
+ font-size: var(--dsrc-font-size-small);
153
+ }
154
+
155
+ .dsrc-alert--sm .dsrc-alert__title {
156
+ font-size: var(--dsrc-font-size-body);
157
+ margin-bottom: var(--dsrc-spacing-1);
158
+ }
159
+
160
+ /* ============================================
161
+ * 6. Close button integration
162
+ * Uses the shared .dsrc-btn.dsrc-btn--close
163
+ * positioned in the top-right corner
164
+ * ============================================ */
165
+
166
+ .dsrc-alert > .dsrc-btn--close {
167
+ position: absolute;
168
+ top: var(--dsrc-spacing-3);
169
+ right: var(--dsrc-spacing-3);
170
+ }
171
+
172
+ /* Extra right padding when a close button is present,
173
+ to prevent text overlapping the button.
174
+ Apply via the presence of the close button sibling.
175
+ Alternatively, authors can use padding-right directly. */
176
+ .dsrc-alert:has(> .dsrc-btn--close) {
177
+ padding-right: var(--dsrc-spacing-8);
178
+ }
179
+
180
+ /* ============================================
181
+ * 7. Hidden state
182
+ * When dismissed (JS sets aria-hidden="true")
183
+ * ============================================ */
184
+
185
+ .dsrc-alert[aria-hidden="true"] {
186
+ display: none;
187
+ }
@@ -0,0 +1,178 @@
1
+ /**
2
+ * DSRC Badge Component
3
+ * Aligned with DSFR quality patterns
4
+ *
5
+ * Semantic variants:
6
+ * --success .... Green (validated, complete)
7
+ * --error ...... Red (rejected, failed)
8
+ * --warning .... Orange/amber (pending, attention)
9
+ * --info ....... Blue (informational)
10
+ * --neutral .... Grey (default / no semantic meaning)
11
+ * --new ........ Primary green (novelty / "Nouveau")
12
+ *
13
+ * Color variants:
14
+ * --green ...... Explicit green coloring
15
+ * --orange ..... Explicit orange coloring
16
+ * --purple ..... Explicit purple coloring
17
+ *
18
+ * Modifiers:
19
+ * --sm ......... Smaller badge
20
+ * --no-icon .... Hides the icon slot
21
+ *
22
+ * Groups:
23
+ * .dsrc-badges-group (flex-wrap container for badge lists)
24
+ *
25
+ * Usage:
26
+ * <p class="dsrc-badge dsrc-badge--success">Valide</p>
27
+ * <p class="dsrc-badge dsrc-badge--sm dsrc-badge--info">Information</p>
28
+ * <p class="dsrc-badge dsrc-badge--new">Nouveau</p>
29
+ *
30
+ * <ul class="dsrc-badges-group">
31
+ * <li><p class="dsrc-badge dsrc-badge--new">Nouveau</p></li>
32
+ * <li><p class="dsrc-badge dsrc-badge--neutral">Libelle</p></li>
33
+ * </ul>
34
+ */
35
+
36
+
37
+ /* ============================================
38
+ * 1. Base badge
39
+ * ============================================ */
40
+
41
+ .dsrc-badge {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ gap: var(--dsrc-spacing-1);
45
+ font-family: var(--dsrc-font-family-sans);
46
+ font-size: var(--dsrc-font-size-caption);
47
+ font-weight: var(--dsrc-font-weight-semibold);
48
+ line-height: 1;
49
+ padding: var(--dsrc-spacing-1) var(--dsrc-spacing-2);
50
+ border-radius: var(--dsrc-radius-small);
51
+ white-space: nowrap;
52
+ text-transform: uppercase;
53
+ letter-spacing: var(--dsrc-font-letter-spacing-caps);
54
+
55
+ /* Default appearance (unstyled / no variant) */
56
+ background-color: var(--dsrc-color-gris-100);
57
+ color: var(--dsrc-color-gris-700);
58
+ }
59
+
60
+
61
+ /* ============================================
62
+ * 2. Semantic variants
63
+ * ============================================ */
64
+
65
+ /* Success */
66
+ .dsrc-badge--success {
67
+ background-color: var(--dsrc-color-succes-fond);
68
+ color: var(--dsrc-color-succes-texte);
69
+ }
70
+
71
+ /* Error */
72
+ .dsrc-badge--error {
73
+ background-color: var(--dsrc-color-erreur-fond);
74
+ color: var(--dsrc-color-erreur-texte);
75
+ }
76
+
77
+ /* Warning */
78
+ .dsrc-badge--warning {
79
+ background-color: var(--dsrc-color-alerte-fond);
80
+ color: var(--dsrc-color-alerte-texte);
81
+ }
82
+
83
+ /* Info */
84
+ .dsrc-badge--info {
85
+ background-color: var(--dsrc-color-info-fond);
86
+ color: var(--dsrc-color-info-texte);
87
+ }
88
+
89
+ /* Neutral */
90
+ .dsrc-badge--neutral {
91
+ background-color: var(--dsrc-color-gris-100);
92
+ color: var(--dsrc-color-gris-700);
93
+ }
94
+
95
+ /* New / Novelty (primary green) */
96
+ .dsrc-badge--new {
97
+ background-color: var(--dsrc-color-primaire-clair);
98
+ color: var(--dsrc-color-primaire-fonce);
99
+ }
100
+
101
+
102
+ /* ============================================
103
+ * 3. Color variants (explicit hue, not semantic)
104
+ * ============================================ */
105
+
106
+ .dsrc-badge--green {
107
+ background-color: var(--dsrc-color-succes-fond);
108
+ color: var(--dsrc-color-succes-texte);
109
+ }
110
+
111
+ .dsrc-badge--orange {
112
+ background-color: var(--dsrc-color-alerte-fond);
113
+ color: var(--dsrc-color-alerte-texte);
114
+ }
115
+
116
+ .dsrc-badge--purple {
117
+ background-color: var(--dsrc-color-purple-fond);
118
+ color: var(--dsrc-color-purple-texte);
119
+ }
120
+
121
+
122
+ /* ============================================
123
+ * 4. Size variants
124
+ * ============================================ */
125
+
126
+ /* Small badge */
127
+ .dsrc-badge--sm {
128
+ font-size: var(--dsrc-font-size-micro);
129
+ padding: 2px var(--dsrc-spacing-1);
130
+ gap: 2px;
131
+ }
132
+
133
+
134
+ /* ============================================
135
+ * 5. Icon handling
136
+ * ============================================ */
137
+
138
+ /* Badge icon slot */
139
+ .dsrc-badge__icon {
140
+ width: 12px;
141
+ height: 12px;
142
+ flex-shrink: 0;
143
+ }
144
+
145
+ /* Small badge icon */
146
+ .dsrc-badge--sm .dsrc-badge__icon {
147
+ width: 10px;
148
+ height: 10px;
149
+ }
150
+
151
+ /* Hide icon when --no-icon modifier is applied */
152
+ .dsrc-badge--no-icon .dsrc-badge__icon {
153
+ display: none;
154
+ }
155
+
156
+
157
+ /* ============================================
158
+ * 6. Badge group
159
+ *
160
+ * <ul class="dsrc-badges-group">
161
+ * <li><p class="dsrc-badge dsrc-badge--success">Valide</p></li>
162
+ * <li><p class="dsrc-badge dsrc-badge--info">En cours</p></li>
163
+ * </ul>
164
+ * ============================================ */
165
+
166
+ .dsrc-badges-group {
167
+ display: flex;
168
+ flex-wrap: wrap;
169
+ gap: var(--dsrc-spacing-2);
170
+ align-items: center;
171
+ padding: 0;
172
+ margin: 0;
173
+ }
174
+
175
+ .dsrc-badges-group li {
176
+ list-style: none;
177
+ display: flex;
178
+ }
@@ -0,0 +1,235 @@
1
+ /**
2
+ * DSRC Breadcrumb Component
3
+ * Design Systeme de la Republique du Cameroun
4
+ *
5
+ * Architecture alignee sur le DSFR : les separateurs sont generes
6
+ * en CSS via ::before (pas de <span> dans le HTML), et le fil
7
+ * d'Ariane est collapsible sur mobile.
8
+ *
9
+ * Structure HTML :
10
+ *
11
+ * <nav class="dsrc-breadcrumb" role="navigation" aria-label="Vous etes ici :">
12
+ * <button class="dsrc-breadcrumb__btn" aria-expanded="false" aria-controls="breadcrumb-list">
13
+ * Voir le fil d'Ariane
14
+ * </button>
15
+ * <div class="dsrc-collapse" id="breadcrumb-list">
16
+ * <ol class="dsrc-breadcrumb__list">
17
+ * <li class="dsrc-breadcrumb__item">
18
+ * <a class="dsrc-breadcrumb__link" href="/">Accueil</a>
19
+ * </li>
20
+ * <li class="dsrc-breadcrumb__item">
21
+ * <a class="dsrc-breadcrumb__link" href="/services">Services</a>
22
+ * </li>
23
+ * <li class="dsrc-breadcrumb__item" aria-current="page">
24
+ * Cadastre
25
+ * </li>
26
+ * </ol>
27
+ * </div>
28
+ * </nav>
29
+ *
30
+ * Sur desktop le .dsrc-collapse est toujours visible.
31
+ * Sur mobile il est masque et le bouton le deplie.
32
+ */
33
+
34
+
35
+ /* ==========================================================================
36
+ 1. CONTAINER
37
+ ========================================================================== */
38
+
39
+ .dsrc-breadcrumb {
40
+ font-family: var(--dsrc-font-family-sans);
41
+ font-size: var(--dsrc-font-size-small);
42
+ padding: var(--dsrc-spacing-2) 0;
43
+ }
44
+
45
+
46
+ /* ==========================================================================
47
+ 2. MOBILE TOGGLE BUTTON
48
+ Masque sur desktop, visible sur mobile.
49
+ ========================================================================== */
50
+
51
+ .dsrc-breadcrumb__btn {
52
+ display: none;
53
+ align-items: center;
54
+ gap: var(--dsrc-spacing-2);
55
+ padding: var(--dsrc-spacing-2) var(--dsrc-spacing-3);
56
+ font-family: inherit;
57
+ font-size: inherit;
58
+ font-weight: var(--dsrc-font-weight-medium);
59
+ color: var(--dsrc-color-primaire);
60
+ background-color: transparent;
61
+ border: none;
62
+ cursor: pointer;
63
+ }
64
+
65
+ .dsrc-breadcrumb__btn:focus-visible {
66
+ outline: var(--dsrc-outline-width) solid var(--dsrc-color-primaire-focus);
67
+ outline-offset: var(--dsrc-outline-offset);
68
+ border-radius: var(--dsrc-radius-small);
69
+ }
70
+
71
+ /* Chevron */
72
+ .dsrc-breadcrumb__btn::before {
73
+ content: '';
74
+ display: inline-block;
75
+ width: 8px;
76
+ height: 8px;
77
+ border-right: var(--dsrc-border-width-default) solid currentColor;
78
+ border-bottom: var(--dsrc-border-width-default) solid currentColor;
79
+ transform: rotate(45deg);
80
+ transition: transform var(--dsrc-transition-duration-fast) ease;
81
+ }
82
+
83
+ .dsrc-breadcrumb__btn[aria-expanded="true"]::before {
84
+ transform: rotate(-135deg);
85
+ }
86
+
87
+
88
+ /* ==========================================================================
89
+ 3. LIST
90
+ ========================================================================== */
91
+
92
+ .dsrc-breadcrumb__list {
93
+ display: flex;
94
+ align-items: center;
95
+ flex-wrap: wrap;
96
+ gap: 0;
97
+ list-style: none;
98
+ margin: 0;
99
+ padding: 0;
100
+ }
101
+
102
+
103
+ /* ==========================================================================
104
+ 4. ITEMS
105
+ ========================================================================== */
106
+
107
+ .dsrc-breadcrumb__item {
108
+ display: flex;
109
+ align-items: center;
110
+ color: var(--dsrc-color-gris-600);
111
+ }
112
+
113
+ /* CSS-generated separator — no HTML needed */
114
+ .dsrc-breadcrumb__item:not(:first-child)::before {
115
+ content: '';
116
+ display: inline-block;
117
+ width: 14px;
118
+ height: 14px;
119
+ flex-shrink: 0;
120
+ margin: 0 var(--dsrc-spacing-2);
121
+ background-color: var(--dsrc-color-gris-400);
122
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath d='M5 2l5 5-5 5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
123
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath d='M5 2l5 5-5 5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
124
+ -webkit-mask-repeat: no-repeat;
125
+ mask-repeat: no-repeat;
126
+ -webkit-mask-size: contain;
127
+ mask-size: contain;
128
+ }
129
+
130
+ /* Current page (last item) */
131
+ .dsrc-breadcrumb__item[aria-current="page"] {
132
+ color: var(--dsrc-color-gris-600);
133
+ font-weight: var(--dsrc-font-weight-regular);
134
+ }
135
+
136
+
137
+ /* ==========================================================================
138
+ 5. LINKS
139
+ ========================================================================== */
140
+
141
+ .dsrc-breadcrumb__link {
142
+ color: var(--dsrc-color-primaire);
143
+ text-decoration: none;
144
+ }
145
+
146
+ .dsrc-breadcrumb__link:hover {
147
+ text-decoration: underline;
148
+ }
149
+
150
+ .dsrc-breadcrumb__link:focus-visible {
151
+ outline: var(--dsrc-outline-width) solid var(--dsrc-color-primaire-focus);
152
+ outline-offset: var(--dsrc-outline-offset);
153
+ border-radius: var(--dsrc-radius-small);
154
+ }
155
+
156
+
157
+ /* ==========================================================================
158
+ 6. MOBILE RESPONSIVE
159
+ On mobile: show toggle button, hide breadcrumb via collapse.
160
+ ========================================================================== */
161
+
162
+ @media (max-width: 767px) {
163
+ .dsrc-breadcrumb__btn {
164
+ display: inline-flex;
165
+ }
166
+
167
+ /* On mobile, the collapse wraps the list.
168
+ On desktop the collapse is always visible regardless of class. */
169
+ .dsrc-breadcrumb .dsrc-collapse {
170
+ max-height: 0;
171
+ overflow: hidden;
172
+ transition: max-height var(--dsrc-transition-duration-normal) ease;
173
+ }
174
+
175
+ .dsrc-breadcrumb .dsrc-collapse--expanded {
176
+ max-height: 500px;
177
+ }
178
+
179
+ .dsrc-breadcrumb__list {
180
+ flex-direction: column;
181
+ align-items: flex-start;
182
+ padding: var(--dsrc-spacing-2) var(--dsrc-spacing-3);
183
+ }
184
+
185
+ .dsrc-breadcrumb__item:not(:first-child)::before {
186
+ margin: 0 var(--dsrc-spacing-1);
187
+ }
188
+ }
189
+
190
+ /* On desktop: always show collapse content */
191
+ @media (min-width: 768px) {
192
+ .dsrc-breadcrumb .dsrc-collapse {
193
+ max-height: none !important;
194
+ overflow: visible;
195
+ }
196
+ }
197
+
198
+
199
+ /* ==========================================================================
200
+ 7. HIGH CONTRAST (forced-colors)
201
+ ========================================================================== */
202
+
203
+ @media (forced-colors: active) {
204
+ .dsrc-breadcrumb__item:not(:first-child)::before {
205
+ background-color: ButtonText;
206
+ }
207
+
208
+ .dsrc-breadcrumb__link {
209
+ color: LinkText;
210
+ }
211
+
212
+ .dsrc-breadcrumb__link:focus-visible {
213
+ outline: 2px solid Highlight;
214
+ }
215
+
216
+ .dsrc-breadcrumb__btn::before {
217
+ border-right-color: LinkText;
218
+ border-bottom-color: LinkText;
219
+ }
220
+ }
221
+
222
+
223
+ /* ==========================================================================
224
+ 8. REDUCED MOTION
225
+ ========================================================================== */
226
+
227
+ @media (prefers-reduced-motion: reduce) {
228
+ .dsrc-breadcrumb__btn::before {
229
+ transition: none;
230
+ }
231
+
232
+ .dsrc-breadcrumb .dsrc-collapse {
233
+ transition: none;
234
+ }
235
+ }