@inchurch/matcha-theme 21.4.0 → 22.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.
- package/abstracts/_colors.scss +236 -236
- package/abstracts/_elevation.scss +108 -108
- package/abstracts/_functions.scss +321 -321
- package/abstracts/_media-breakpoint.scss +26 -26
- package/abstracts/_theme-api.scss +219 -219
- package/abstracts/_typography.scss +128 -128
- package/base/_reset.scss +446 -445
- package/components/app-page-header.scss +260 -260
- package/components/matcha-accordion.scss +293 -293
- package/components/matcha-audio-player.scss +31 -31
- package/components/matcha-autocomplete.scss +145 -145
- package/components/matcha-avatar.scss +440 -301
- package/components/matcha-badge.scss +120 -120
- package/components/matcha-breadcrumb.scss +231 -231
- package/components/matcha-button-toggle.scss +383 -384
- package/components/matcha-buttons.scss +913 -913
- package/components/matcha-calendar.scss +218 -218
- package/components/matcha-cards.scss +230 -230
- package/components/matcha-chart-card.scss +53 -53
- package/components/matcha-checkbox.scss +255 -255
- package/components/matcha-chip.scss +292 -292
- package/components/matcha-color-pick.scss +34 -34
- package/components/matcha-command-palette.scss +316 -316
- package/components/matcha-contact.scss +35 -0
- package/components/matcha-crop.scss +406 -406
- package/components/matcha-date.scss +81 -81
- package/components/matcha-divider.scss +100 -100
- package/components/matcha-draggable.scss +23 -23
- package/components/matcha-drawer.scss +376 -376
- package/components/matcha-drop-image.scss +14 -14
- package/components/matcha-drop-list.scss +430 -430
- package/components/matcha-emoji.scss +69 -69
- package/components/matcha-empty-state.scss +230 -230
- package/components/matcha-file-uploader.scss +471 -471
- package/components/matcha-flag.scss +103 -103
- package/components/matcha-footer.scss +91 -91
- package/components/matcha-form-field.scss +606 -606
- package/components/matcha-form-section.scss +100 -100
- package/components/matcha-header.scss +135 -135
- package/components/matcha-highlight.scss +164 -164
- package/components/matcha-hint-text.scss +90 -90
- package/components/matcha-horizontal-tree.scss +316 -316
- package/components/matcha-icon.scss +98 -98
- package/components/matcha-image.scss +61 -61
- package/components/matcha-list.scss +211 -211
- package/components/matcha-menu.scss +99 -99
- package/components/matcha-modal.scss +210 -210
- package/components/matcha-nav.scss +581 -581
- package/components/matcha-notification.scss +413 -413
- package/components/matcha-option.scss +170 -170
- package/components/matcha-page-builder.scss +4196 -4196
- package/components/matcha-paginator.scss +689 -689
- package/components/matcha-panel.scss +194 -194
- package/components/matcha-profile-card.scss +50 -50
- package/components/matcha-progress-bar.scss +313 -313
- package/components/matcha-radio.scss +320 -320
- package/components/matcha-ripple.scss +7 -7
- package/components/matcha-scrollbar.scss +33 -33
- package/components/matcha-scrollbox-shadow.scss +120 -120
- package/components/matcha-section.scss +102 -102
- package/components/matcha-select-multiple.scss +56 -56
- package/components/matcha-select.scss +667 -667
- package/components/matcha-skeleton.scss +155 -155
- package/components/matcha-slide-toggle.scss +369 -369
- package/components/matcha-slider.scss +285 -285
- package/components/matcha-snack-bar.scss +259 -259
- package/components/matcha-spin.scss +164 -164
- package/components/matcha-spinner.scss +97 -97
- package/components/matcha-status-pill.scss +38 -18
- package/components/matcha-stepper.scss +376 -376
- package/components/matcha-table-cell.scss +49 -41
- package/components/matcha-table.scss +579 -579
- package/components/matcha-tabs.scss +600 -600
- package/components/matcha-text-editor.scss +105 -105
- package/components/matcha-time.scss +33 -33
- package/components/matcha-timepicker.scss +13 -13
- package/components/matcha-toolbar.scss +359 -359
- package/components/matcha-tooltip.scss +224 -224
- package/components/matcha-tree-view.scss +257 -257
- package/layout/matcha-page-layout.scss +778 -778
- package/main.scss +331 -329
- package/package.json +1 -1
- package/tokens/_animations-tokens.scss +37 -37
- package/tokens/_breakpoints-tokens.scss +35 -35
- package/tokens/_color-tokens.scss +274 -274
- package/tokens/_elevation-tokens.scss +33 -33
- package/tokens/_emit-tokens.scss +324 -324
- package/tokens/_material-palette.scss +1149 -1149
- package/tokens/_primitives.scss +98 -98
- package/tokens/_semantic-aliases.scss +120 -120
- package/tokens/_spacing-tokens.scss +94 -94
- package/tokens/_static-tokens.scss +137 -137
- package/tokens/_typography-tokens.scss +65 -65
- package/vendors/charts.scss +90 -90
|
@@ -1,231 +1,231 @@
|
|
|
1
|
-
@use "sass:map";
|
|
2
|
-
|
|
3
|
-
// =============================================================================
|
|
4
|
-
// matcha-breadcrumb.scss — Navigation breadcrumb trail (Figma DSV3 15831:35)
|
|
5
|
-
//
|
|
6
|
-
// Estado(3: Link, Atual, Disabled) × Ícone?(2: Yes, No) = 6 variantes
|
|
7
|
-
// Link/Disabled — bg surface-2, p 12, radius lg, text/secondary, Regular 14/20
|
|
8
|
-
// Atual — sem bg, py 12 (sem px), text/primary, Medium 14/20
|
|
9
|
-
// Separador — matcha/icon/chevron variant=right entre itens
|
|
10
|
-
// =============================================================================
|
|
11
|
-
|
|
12
|
-
@mixin matcha-breadcrumb-theme($theme) {
|
|
13
|
-
|
|
14
|
-
matcha-breadcrumb {
|
|
15
|
-
// ── Link items (clicáveis) ──
|
|
16
|
-
.breadcrumb-item-link {
|
|
17
|
-
// Figma DSV3: bg = matcha/color/elevation/surface-2 (canônico)
|
|
18
|
-
background: var(--matcha-color-elevation-surface-2);
|
|
19
|
-
color: var(--matcha-color-text-secondary);
|
|
20
|
-
|
|
21
|
-
&:hover:not([disabled]):not(.disabled) {
|
|
22
|
-
.breadcrumb-state {
|
|
23
|
-
opacity: var(--matcha-state-hover, 0.08);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
&:active:not([disabled]):not(.disabled) {
|
|
28
|
-
.breadcrumb-state {
|
|
29
|
-
opacity: var(--matcha-state-active, 0.12);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
&:focus-visible {
|
|
34
|
-
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
35
|
-
outline-offset: var(--matcha-state-focus-ring-offset, 2px);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// ── Página atual ──
|
|
40
|
-
.breadcrumb-item-current {
|
|
41
|
-
color: var(--matcha-color-text-primary);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// ── Separator (chevron) ──
|
|
45
|
-
.breadcrumb-separator {
|
|
46
|
-
color: var(--matcha-color-icon-default);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// ── Disabled (real disabled — não confundir com ellipsis) ──
|
|
50
|
-
.breadcrumb-item-link--disabled {
|
|
51
|
-
opacity: var(--matcha-opacity-disabled, 0.5);
|
|
52
|
-
pointer-events: none;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// ── Ellipsis (…) — visibilidade NORMAL (não é disabled).
|
|
56
|
-
// Quando clicável (maxItems ativo), tem hover/focus state-layer normal.
|
|
57
|
-
// Quando estático (--static), só muda cursor pra default.
|
|
58
|
-
.breadcrumb-ellipsis {
|
|
59
|
-
// Mantém color/bg do Link. Sem opacity reduzida.
|
|
60
|
-
color: var(--matcha-color-text-secondary);
|
|
61
|
-
|
|
62
|
-
&--static {
|
|
63
|
-
cursor: default;
|
|
64
|
-
pointer-events: none;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// ── Layout ──────────────────────────────────────────────────────────────────
|
|
71
|
-
|
|
72
|
-
matcha-breadcrumb {
|
|
73
|
-
display: flex;
|
|
74
|
-
align-items: center;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
matcha-breadcrumb {
|
|
78
|
-
.breadcrumb-list {
|
|
79
|
-
display: flex;
|
|
80
|
-
align-items: center;
|
|
81
|
-
list-style: none;
|
|
82
|
-
margin: 0;
|
|
83
|
-
padding: 0;
|
|
84
|
-
gap: var(--matcha-space-100, 8px);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.breadcrumb-li {
|
|
88
|
-
display: flex;
|
|
89
|
-
align-items: center;
|
|
90
|
-
gap: var(--matcha-space-100, 8px);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// ── Item link (Link/Disabled/Ellipsis) ──
|
|
94
|
-
// Figma: pad 12, radius lg, gap 8 (com ícone) ou 0 (sem). gap controlado por
|
|
95
|
-
// `> matcha-icon + span` (presença do ícone como sibling).
|
|
96
|
-
.breadcrumb-item-link {
|
|
97
|
-
display: flex;
|
|
98
|
-
align-items: center;
|
|
99
|
-
gap: 0;
|
|
100
|
-
padding: var(--matcha-space-150, 12px);
|
|
101
|
-
border: none;
|
|
102
|
-
border-radius: var(--matcha-radius-lg, 8px);
|
|
103
|
-
cursor: pointer;
|
|
104
|
-
font-family: var(--matcha-font-family);
|
|
105
|
-
font-size: var(--matcha-text-body-md, 14px);
|
|
106
|
-
font-weight: var(--matcha-weight-regular, 400);
|
|
107
|
-
line-height: var(--matcha-leading-body-md, 20px);
|
|
108
|
-
text-decoration: none;
|
|
109
|
-
position: relative;
|
|
110
|
-
overflow: hidden;
|
|
111
|
-
box-sizing: border-box;
|
|
112
|
-
|
|
113
|
-
// Gap 8 só quando o ícone está presente (Figma: gap=0 sem ícone)
|
|
114
|
-
> matcha-icon + .breadcrumb-text {
|
|
115
|
-
margin-left: var(--matcha-space-100, 8px);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// State layer (hover/active overlay)
|
|
119
|
-
.breadcrumb-state {
|
|
120
|
-
position: absolute;
|
|
121
|
-
inset: 0;
|
|
122
|
-
background: currentColor;
|
|
123
|
-
opacity: 0;
|
|
124
|
-
border-radius: inherit;
|
|
125
|
-
pointer-events: none;
|
|
126
|
-
transition: opacity var(--matcha-duration-instant, 80ms) linear;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
matcha-icon {
|
|
130
|
-
flex-shrink: 0;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// ── Página atual ──
|
|
135
|
-
// Figma: SEM bg, py 12 (sem px), Medium 500, gap 8/0 igual ao link.
|
|
136
|
-
.breadcrumb-item-current {
|
|
137
|
-
display: flex;
|
|
138
|
-
align-items: center;
|
|
139
|
-
gap: 0;
|
|
140
|
-
padding: var(--matcha-space-150, 12px) 0;
|
|
141
|
-
font-family: var(--matcha-font-family);
|
|
142
|
-
font-size: var(--matcha-text-body-md, 14px);
|
|
143
|
-
font-weight: var(--matcha-weight-medium, 500);
|
|
144
|
-
line-height: var(--matcha-leading-body-md, 20px);
|
|
145
|
-
box-sizing: border-box;
|
|
146
|
-
|
|
147
|
-
> matcha-icon + .breadcrumb-text {
|
|
148
|
-
margin-left: var(--matcha-space-100, 8px);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
matcha-icon {
|
|
152
|
-
flex-shrink: 0;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// ── Texto do item — single-line + truncate quando max-width está setado ──
|
|
157
|
-
.breadcrumb-text {
|
|
158
|
-
overflow: hidden;
|
|
159
|
-
text-overflow: ellipsis;
|
|
160
|
-
white-space: nowrap;
|
|
161
|
-
min-width: 0;
|
|
162
|
-
display: inline-block;
|
|
163
|
-
max-width: 100%;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// ── Separator ──
|
|
167
|
-
.breadcrumb-separator {
|
|
168
|
-
flex-shrink: 0;
|
|
169
|
-
width: var(--matcha-icon-size-sm, 16px);
|
|
170
|
-
height: var(--matcha-icon-size-sm, 16px);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// ── Reduced motion ──────────────────────────────────────────────────────────
|
|
175
|
-
@media (prefers-reduced-motion: reduce) {
|
|
176
|
-
matcha-breadcrumb .breadcrumb-state {
|
|
177
|
-
transition: none;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// ── Mobile responsive ───────────────────────────────────────────────────────
|
|
182
|
-
// Em viewports estreitas, items longos sem maxWidth podem estourar. flex-wrap
|
|
183
|
-
// nowrap + overflow-x evita quebra de linha; consumer deve usar maxItems pra
|
|
184
|
-
// auto-truncar trail. Default sem max-width = nowrap horizontal (scroll se
|
|
185
|
-
// container permite, senão clip).
|
|
186
|
-
@media (max-width: 639px) {
|
|
187
|
-
matcha-breadcrumb .breadcrumb-list {
|
|
188
|
-
flex-wrap: nowrap;
|
|
189
|
-
overflow-x: auto;
|
|
190
|
-
overflow-y: hidden;
|
|
191
|
-
scrollbar-width: none; // Firefox
|
|
192
|
-
-ms-overflow-style: none; // IE/Edge legacy
|
|
193
|
-
&::-webkit-scrollbar { display: none; }
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// ── Forced colors (Windows High Contrast) ──
|
|
198
|
-
@media (forced-colors: active) {
|
|
199
|
-
matcha-breadcrumb {
|
|
200
|
-
.breadcrumb-item-link {
|
|
201
|
-
background: Canvas !important;
|
|
202
|
-
color: LinkText !important;
|
|
203
|
-
border: 1px solid CanvasText;
|
|
204
|
-
|
|
205
|
-
&:hover, &:focus { color: ActiveText !important; }
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
.breadcrumb-item-current {
|
|
209
|
-
color: CanvasText !important;
|
|
210
|
-
background: transparent !important;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
.breadcrumb-separator {
|
|
214
|
-
color: GrayText !important;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
.breadcrumb-item-link:focus-visible {
|
|
218
|
-
outline: 2px solid CanvasText !important;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// ── Print ──
|
|
224
|
-
// Breadcrumb é navigation chrome — some em impressão (página impressa não
|
|
225
|
-
// precisa de "como cheguei aqui").
|
|
226
|
-
@media print {
|
|
227
|
-
matcha-breadcrumb {
|
|
228
|
-
display: none !important;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// matcha-breadcrumb.scss — Navigation breadcrumb trail (Figma DSV3 15831:35)
|
|
5
|
+
//
|
|
6
|
+
// Estado(3: Link, Atual, Disabled) × Ícone?(2: Yes, No) = 6 variantes
|
|
7
|
+
// Link/Disabled — bg surface-2, p 12, radius lg, text/secondary, Regular 14/20
|
|
8
|
+
// Atual — sem bg, py 12 (sem px), text/primary, Medium 14/20
|
|
9
|
+
// Separador — matcha/icon/chevron variant=right entre itens
|
|
10
|
+
// =============================================================================
|
|
11
|
+
|
|
12
|
+
@mixin matcha-breadcrumb-theme($theme) {
|
|
13
|
+
|
|
14
|
+
matcha-breadcrumb {
|
|
15
|
+
// ── Link items (clicáveis) ──
|
|
16
|
+
.breadcrumb-item-link {
|
|
17
|
+
// Figma DSV3: bg = matcha/color/elevation/surface-2 (canônico)
|
|
18
|
+
background: var(--matcha-color-elevation-surface-2);
|
|
19
|
+
color: var(--matcha-color-text-secondary);
|
|
20
|
+
|
|
21
|
+
&:hover:not([disabled]):not(.disabled) {
|
|
22
|
+
.breadcrumb-state {
|
|
23
|
+
opacity: var(--matcha-state-hover, 0.08);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&:active:not([disabled]):not(.disabled) {
|
|
28
|
+
.breadcrumb-state {
|
|
29
|
+
opacity: var(--matcha-state-active, 0.12);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&:focus-visible {
|
|
34
|
+
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
35
|
+
outline-offset: var(--matcha-state-focus-ring-offset, 2px);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ── Página atual ──
|
|
40
|
+
.breadcrumb-item-current {
|
|
41
|
+
color: var(--matcha-color-text-primary);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// ── Separator (chevron) ──
|
|
45
|
+
.breadcrumb-separator {
|
|
46
|
+
color: var(--matcha-color-icon-default);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ── Disabled (real disabled — não confundir com ellipsis) ──
|
|
50
|
+
.breadcrumb-item-link--disabled {
|
|
51
|
+
opacity: var(--matcha-opacity-disabled, 0.5);
|
|
52
|
+
pointer-events: none;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// ── Ellipsis (…) — visibilidade NORMAL (não é disabled).
|
|
56
|
+
// Quando clicável (maxItems ativo), tem hover/focus state-layer normal.
|
|
57
|
+
// Quando estático (--static), só muda cursor pra default.
|
|
58
|
+
.breadcrumb-ellipsis {
|
|
59
|
+
// Mantém color/bg do Link. Sem opacity reduzida.
|
|
60
|
+
color: var(--matcha-color-text-secondary);
|
|
61
|
+
|
|
62
|
+
&--static {
|
|
63
|
+
cursor: default;
|
|
64
|
+
pointer-events: none;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ── Layout ──────────────────────────────────────────────────────────────────
|
|
71
|
+
|
|
72
|
+
matcha-breadcrumb {
|
|
73
|
+
display: flex;
|
|
74
|
+
align-items: center;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
matcha-breadcrumb {
|
|
78
|
+
.breadcrumb-list {
|
|
79
|
+
display: flex;
|
|
80
|
+
align-items: center;
|
|
81
|
+
list-style: none;
|
|
82
|
+
margin: 0;
|
|
83
|
+
padding: 0;
|
|
84
|
+
gap: var(--matcha-space-100, 8px);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.breadcrumb-li {
|
|
88
|
+
display: flex;
|
|
89
|
+
align-items: center;
|
|
90
|
+
gap: var(--matcha-space-100, 8px);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// ── Item link (Link/Disabled/Ellipsis) ──
|
|
94
|
+
// Figma: pad 12, radius lg, gap 8 (com ícone) ou 0 (sem). gap controlado por
|
|
95
|
+
// `> matcha-icon + span` (presença do ícone como sibling).
|
|
96
|
+
.breadcrumb-item-link {
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
gap: 0;
|
|
100
|
+
padding: var(--matcha-space-150, 12px);
|
|
101
|
+
border: none;
|
|
102
|
+
border-radius: var(--matcha-radius-lg, 8px);
|
|
103
|
+
cursor: pointer;
|
|
104
|
+
font-family: var(--matcha-font-family);
|
|
105
|
+
font-size: var(--matcha-text-body-md, 14px);
|
|
106
|
+
font-weight: var(--matcha-weight-regular, 400);
|
|
107
|
+
line-height: var(--matcha-leading-body-md, 20px);
|
|
108
|
+
text-decoration: none;
|
|
109
|
+
position: relative;
|
|
110
|
+
overflow: hidden;
|
|
111
|
+
box-sizing: border-box;
|
|
112
|
+
|
|
113
|
+
// Gap 8 só quando o ícone está presente (Figma: gap=0 sem ícone)
|
|
114
|
+
> matcha-icon + .breadcrumb-text {
|
|
115
|
+
margin-left: var(--matcha-space-100, 8px);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// State layer (hover/active overlay)
|
|
119
|
+
.breadcrumb-state {
|
|
120
|
+
position: absolute;
|
|
121
|
+
inset: 0;
|
|
122
|
+
background: currentColor;
|
|
123
|
+
opacity: 0;
|
|
124
|
+
border-radius: inherit;
|
|
125
|
+
pointer-events: none;
|
|
126
|
+
transition: opacity var(--matcha-duration-instant, 80ms) linear;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
matcha-icon {
|
|
130
|
+
flex-shrink: 0;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// ── Página atual ──
|
|
135
|
+
// Figma: SEM bg, py 12 (sem px), Medium 500, gap 8/0 igual ao link.
|
|
136
|
+
.breadcrumb-item-current {
|
|
137
|
+
display: flex;
|
|
138
|
+
align-items: center;
|
|
139
|
+
gap: 0;
|
|
140
|
+
padding: var(--matcha-space-150, 12px) 0;
|
|
141
|
+
font-family: var(--matcha-font-family);
|
|
142
|
+
font-size: var(--matcha-text-body-md, 14px);
|
|
143
|
+
font-weight: var(--matcha-weight-medium, 500);
|
|
144
|
+
line-height: var(--matcha-leading-body-md, 20px);
|
|
145
|
+
box-sizing: border-box;
|
|
146
|
+
|
|
147
|
+
> matcha-icon + .breadcrumb-text {
|
|
148
|
+
margin-left: var(--matcha-space-100, 8px);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
matcha-icon {
|
|
152
|
+
flex-shrink: 0;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// ── Texto do item — single-line + truncate quando max-width está setado ──
|
|
157
|
+
.breadcrumb-text {
|
|
158
|
+
overflow: hidden;
|
|
159
|
+
text-overflow: ellipsis;
|
|
160
|
+
white-space: nowrap;
|
|
161
|
+
min-width: 0;
|
|
162
|
+
display: inline-block;
|
|
163
|
+
max-width: 100%;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// ── Separator ──
|
|
167
|
+
.breadcrumb-separator {
|
|
168
|
+
flex-shrink: 0;
|
|
169
|
+
width: var(--matcha-icon-size-sm, 16px);
|
|
170
|
+
height: var(--matcha-icon-size-sm, 16px);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// ── Reduced motion ──────────────────────────────────────────────────────────
|
|
175
|
+
@media (prefers-reduced-motion: reduce) {
|
|
176
|
+
matcha-breadcrumb .breadcrumb-state {
|
|
177
|
+
transition: none;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// ── Mobile responsive ───────────────────────────────────────────────────────
|
|
182
|
+
// Em viewports estreitas, items longos sem maxWidth podem estourar. flex-wrap
|
|
183
|
+
// nowrap + overflow-x evita quebra de linha; consumer deve usar maxItems pra
|
|
184
|
+
// auto-truncar trail. Default sem max-width = nowrap horizontal (scroll se
|
|
185
|
+
// container permite, senão clip).
|
|
186
|
+
@media (max-width: 639px) {
|
|
187
|
+
matcha-breadcrumb .breadcrumb-list {
|
|
188
|
+
flex-wrap: nowrap;
|
|
189
|
+
overflow-x: auto;
|
|
190
|
+
overflow-y: hidden;
|
|
191
|
+
scrollbar-width: none; // Firefox
|
|
192
|
+
-ms-overflow-style: none; // IE/Edge legacy
|
|
193
|
+
&::-webkit-scrollbar { display: none; }
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// ── Forced colors (Windows High Contrast) ──
|
|
198
|
+
@media (forced-colors: active) {
|
|
199
|
+
matcha-breadcrumb {
|
|
200
|
+
.breadcrumb-item-link {
|
|
201
|
+
background: Canvas !important;
|
|
202
|
+
color: LinkText !important;
|
|
203
|
+
border: 1px solid CanvasText;
|
|
204
|
+
|
|
205
|
+
&:hover, &:focus { color: ActiveText !important; }
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.breadcrumb-item-current {
|
|
209
|
+
color: CanvasText !important;
|
|
210
|
+
background: transparent !important;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.breadcrumb-separator {
|
|
214
|
+
color: GrayText !important;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.breadcrumb-item-link:focus-visible {
|
|
218
|
+
outline: 2px solid CanvasText !important;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// ── Print ──
|
|
224
|
+
// Breadcrumb é navigation chrome — some em impressão (página impressa não
|
|
225
|
+
// precisa de "como cheguei aqui").
|
|
226
|
+
@media print {
|
|
227
|
+
matcha-breadcrumb {
|
|
228
|
+
display: none !important;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|