@inchurch/matcha-theme 22.39.0 → 22.40.1
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 +291 -291
- package/abstracts/_elevation.scss +108 -108
- package/abstracts/_functions.scss +321 -321
- package/abstracts/_media-breakpoint.scss +26 -26
- package/abstracts/_theme-api.scss +224 -224
- package/abstracts/_typography.scss +128 -128
- package/base/_reset.scss +487 -487
- package/components/app-page-header.scss +260 -260
- package/components/matcha-accordion.scss +297 -297
- package/components/matcha-audio-player.scss +31 -31
- package/components/matcha-autocomplete.scss +145 -145
- package/components/matcha-avatar.scss +426 -426
- package/components/matcha-badge.scss +120 -120
- package/components/matcha-breadcrumb.scss +231 -231
- package/components/matcha-button-toggle.scss +484 -484
- package/components/matcha-buttons.scss +973 -973
- package/components/matcha-calendar.scss +253 -253
- package/components/matcha-cards.scss +212 -212
- package/components/matcha-chart-card.scss +53 -53
- package/components/matcha-checkbox.scss +266 -266
- package/components/matcha-chip.scss +311 -311
- package/components/matcha-color-pick.scss +34 -34
- package/components/matcha-command-palette.scss +316 -316
- package/components/matcha-crop.scss +419 -419
- 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 +650 -650
- package/components/matcha-flag.scss +103 -103
- package/components/matcha-footer.scss +91 -91
- package/components/matcha-form-field.scss +883 -883
- 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 +247 -247
- package/components/matcha-icon.scss +111 -111
- package/components/matcha-image.scss +60 -60
- 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 +770 -770
- package/components/matcha-notification.scss +417 -417
- package/components/matcha-option.scss +170 -170
- package/components/matcha-page-builder.scss +4196 -4196
- package/components/matcha-paginator.scss +699 -699
- package/components/matcha-panel.scss +216 -216
- package/components/matcha-period.scss +174 -174
- package/components/matcha-profile-card.scss +50 -50
- package/components/matcha-progress-bar.scss +355 -355
- package/components/matcha-radio.scss +325 -325
- 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 +643 -629
- package/components/matcha-skeleton.scss +182 -182
- 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-stepper.scss +376 -376
- package/components/matcha-table-cell.scss +107 -107
- package/components/matcha-table.scss +722 -722
- package/components/matcha-tabs.scss +642 -642
- package/components/matcha-text-editor.scss +111 -111
- package/components/matcha-time.scss +33 -33
- package/components/matcha-timepicker.scss +13 -13
- package/components/matcha-toolbar.scss +366 -366
- package/components/matcha-tooltip.scss +235 -235
- package/components/matcha-tree-view.scss +658 -658
- package/layout/matcha-page-layout.scss +778 -778
- package/main.scss +334 -334
- package/package.json +1 -1
- package/tokens/_animations-tokens.scss +37 -37
- package/tokens/_breakpoints-tokens.scss +35 -35
- package/tokens/_color-tokens.scss +288 -288
- package/tokens/_elevation-tokens.scss +33 -33
- package/tokens/_emit-tokens.scss +329 -329
- 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,253 +1,253 @@
|
|
|
1
|
-
@use "sass:map";
|
|
2
|
-
|
|
3
|
-
// =========================================================
|
|
4
|
-
// Matcha Calendar — somente cores/sombras/bordas (tema)
|
|
5
|
-
// Estrutura (layout, tamanhos, transitions) vive em
|
|
6
|
-
// matcha-components/src/lib/matcha-calendar/calendar/matcha-calendar.component.scss
|
|
7
|
-
// =========================================================
|
|
8
|
-
|
|
9
|
-
@mixin matcha-calendar-theme($theme) {
|
|
10
|
-
.matcha-calendar {
|
|
11
|
-
background: var(--matcha-color-surface-card, var(--matcha-color-surface));
|
|
12
|
-
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
13
|
-
box-shadow: var(--matcha-shadow-2);
|
|
14
|
-
// Borda só-no-dark vira valor por modo (light = 0/transparent).
|
|
15
|
-
border: var(--matcha-calendar-border);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// ── Header ──────────────────────────────────────────────
|
|
19
|
-
// Fundo accent-alpha em repouso (não só no hover) — sinaliza de cara que o
|
|
20
|
-
// label do mês/ano é clicável (abre view ano/década), não só um título.
|
|
21
|
-
// Seletor com o pai (.matcha-calendar-header) — precisa de +especificidade
|
|
22
|
-
// que o próprio `all: unset` da célula, que carrega DEPOIS (CSS de
|
|
23
|
-
// componente ViewEncapsulation.None sempre entra depois do CSS global do
|
|
24
|
-
// tema) e tem a mesma especificidade se for só a classe sozinha.
|
|
25
|
-
.matcha-calendar-header .matcha-calendar-header-label {
|
|
26
|
-
color: var(--matcha-color-accent);
|
|
27
|
-
background-color: var(--matcha-color-accent-alpha);
|
|
28
|
-
|
|
29
|
-
&:hover {
|
|
30
|
-
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
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
|
-
.matcha-calendar-nav-btn {
|
|
40
|
-
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
41
|
-
|
|
42
|
-
&:hover:not(:disabled):not(.is-disabled) {
|
|
43
|
-
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
&:focus-visible {
|
|
47
|
-
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
48
|
-
outline-offset: var(--matcha-state-focus-ring-offset, 2px);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
&[disabled],
|
|
52
|
-
&.is-disabled {
|
|
53
|
-
color: var(--matcha-color-interaction-disabled-fg);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// ── Weekday + Divider ───────────────────────────────────
|
|
58
|
-
.matcha-calendar-weekday {
|
|
59
|
-
color: var(--matcha-color-text-secondary, rgba(255, 255, 255, 0.7));
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.matcha-calendar-divider {
|
|
63
|
-
background: var(--matcha-color-surface-border, var(--matcha-color-border));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// ── Day cells (Month view) ──────────────────────────────
|
|
67
|
-
.matcha-calendar-cell {
|
|
68
|
-
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
69
|
-
|
|
70
|
-
&:hover:not(.is-disabled):not(.is-selected):not(.is-range-start):not(.is-range-end) {
|
|
71
|
-
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
&:focus-visible {
|
|
75
|
-
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
76
|
-
outline-offset: -2px;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Today: ring accent (sem fill)
|
|
80
|
-
&.is-today:not(.is-selected):not(.is-range-start):not(.is-range-end) {
|
|
81
|
-
box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// In-range (exclusive): pill individual com accent-alpha
|
|
85
|
-
&.is-in-range:not(.is-selected):not(.is-range-start):not(.is-range-end) {
|
|
86
|
-
background-color: var(--matcha-color-accent-alpha);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Selected single (Figma: outlined accent, NÃO filled — preserva text-primary)
|
|
90
|
-
&.is-selected:not(.is-range-start):not(.is-range-end) {
|
|
91
|
-
background-color: transparent;
|
|
92
|
-
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
93
|
-
box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Range anchors (start/end): filled accent — destaque visual dos pontos do range
|
|
97
|
-
&.is-range-start,
|
|
98
|
-
&.is-range-end {
|
|
99
|
-
background-color: var(--matcha-color-accent);
|
|
100
|
-
color: var(--matcha-color-accent-contrast);
|
|
101
|
-
font-weight: var(--matcha-weight-semibold, 600);
|
|
102
|
-
box-shadow: none;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
&.is-other-month {
|
|
106
|
-
color: var(--matcha-color-interaction-disabled-fg);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
&.is-disabled {
|
|
110
|
-
color: var(--matcha-color-interaction-disabled-fg);
|
|
111
|
-
background-color: transparent;
|
|
112
|
-
box-shadow: none;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// Marcador de dia (dot). is-selected é outlined (não filled, ver acima) então
|
|
116
|
-
// convive sem ajuste; range anchors SÃO filled com --matcha-color-accent — mesma
|
|
117
|
-
// cor invisibilizaria o dot, por isso o contraste-swap abaixo.
|
|
118
|
-
&.is-marked::after {
|
|
119
|
-
background-color: var(--matcha-color-calendar-marker-bg, var(--matcha-color-accent));
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
&.is-range-start.is-marked::after,
|
|
123
|
-
&.is-range-end.is-marked::after {
|
|
124
|
-
background-color: var(--matcha-color-calendar-marker-contrast-bg, var(--matcha-color-accent-contrast));
|
|
125
|
-
box-shadow: 0 0 0 1px var(--matcha-color-accent);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
&.is-disabled.is-marked::after,
|
|
129
|
-
&.is-other-month.is-marked::after {
|
|
130
|
-
background-color: var(--matcha-color-interaction-disabled-fg);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// ── Grid views (Year / Decade) ──────────────────────────
|
|
135
|
-
.matcha-calendar-grid-cell {
|
|
136
|
-
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
137
|
-
|
|
138
|
-
&:hover:not(.is-disabled):not(.is-selected) {
|
|
139
|
-
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
&:focus-visible {
|
|
143
|
-
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
144
|
-
outline-offset: -2px;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
&.is-today:not(.is-selected) {
|
|
148
|
-
box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
&.is-selected {
|
|
152
|
-
background-color: var(--matcha-color-accent);
|
|
153
|
-
color: var(--matcha-color-accent-contrast);
|
|
154
|
-
font-weight: var(--matcha-weight-semibold, 600);
|
|
155
|
-
box-shadow: none;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
&.is-disabled {
|
|
159
|
-
color: var(--matcha-color-interaction-disabled-fg);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// ── Footer (botão Hoje) ─────────────────────────────────
|
|
164
|
-
.matcha-calendar-today-btn {
|
|
165
|
-
color: var(--matcha-color-accent);
|
|
166
|
-
|
|
167
|
-
&:hover:not(:disabled):not(.is-disabled) {
|
|
168
|
-
background-color: var(--matcha-color-accent-alpha);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
&:focus-visible {
|
|
172
|
-
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
173
|
-
outline-offset: 2px;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
&[disabled],
|
|
177
|
-
&.is-disabled {
|
|
178
|
-
color: var(--matcha-color-interaction-disabled-fg);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// ── Forced colors (Windows High Contrast) ──
|
|
184
|
-
// Calendar tem muitos estados (selected, today, disabled) — todos precisam
|
|
185
|
-
// distinção visível via system tokens.
|
|
186
|
-
@media (forced-colors: active) {
|
|
187
|
-
matcha-calendar {
|
|
188
|
-
border: 1px solid CanvasText;
|
|
189
|
-
background: Canvas;
|
|
190
|
-
|
|
191
|
-
.matcha-calendar-cell {
|
|
192
|
-
border: 1px solid transparent;
|
|
193
|
-
|
|
194
|
-
&.is-selected {
|
|
195
|
-
background: Highlight !important;
|
|
196
|
-
color: HighlightText !important;
|
|
197
|
-
border-color: HighlightText;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// Today — outlined (não usa Highlight pra não confundir com selected)
|
|
201
|
-
&.is-today:not(.is-selected) {
|
|
202
|
-
border-color: CanvasText !important;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
&.is-disabled,
|
|
206
|
-
&[disabled] {
|
|
207
|
-
color: GrayText !important;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
&.is-marked::after {
|
|
211
|
-
background: CanvasText !important;
|
|
212
|
-
forced-color-adjust: none;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
&:focus-visible {
|
|
216
|
-
outline: 2px solid CanvasText !important;
|
|
217
|
-
outline-offset: -2px;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.matcha-calendar-today-btn:focus-visible {
|
|
222
|
-
outline: 2px solid CanvasText !important;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// ── Reduced motion ──
|
|
228
|
-
// Calendar tem transitions em hover/select e nav arrows.
|
|
229
|
-
@media (prefers-reduced-motion: reduce) {
|
|
230
|
-
matcha-calendar {
|
|
231
|
-
*,
|
|
232
|
-
*::before,
|
|
233
|
-
*::after {
|
|
234
|
-
transition: none !important;
|
|
235
|
-
animation: none !important;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// ── Print ──
|
|
241
|
-
// Calendar é informacional — mantém visível, sem shadow + break-inside avoid.
|
|
242
|
-
@media print {
|
|
243
|
-
matcha-calendar {
|
|
244
|
-
box-shadow: none !important;
|
|
245
|
-
border: 1px solid currentColor;
|
|
246
|
-
break-inside: avoid;
|
|
247
|
-
|
|
248
|
-
.matcha-calendar-cell.is-marked::after {
|
|
249
|
-
background: CanvasText;
|
|
250
|
-
box-shadow: none;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
// =========================================================
|
|
4
|
+
// Matcha Calendar — somente cores/sombras/bordas (tema)
|
|
5
|
+
// Estrutura (layout, tamanhos, transitions) vive em
|
|
6
|
+
// matcha-components/src/lib/matcha-calendar/calendar/matcha-calendar.component.scss
|
|
7
|
+
// =========================================================
|
|
8
|
+
|
|
9
|
+
@mixin matcha-calendar-theme($theme) {
|
|
10
|
+
.matcha-calendar {
|
|
11
|
+
background: var(--matcha-color-surface-card, var(--matcha-color-surface));
|
|
12
|
+
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
13
|
+
box-shadow: var(--matcha-shadow-2);
|
|
14
|
+
// Borda só-no-dark vira valor por modo (light = 0/transparent).
|
|
15
|
+
border: var(--matcha-calendar-border);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// ── Header ──────────────────────────────────────────────
|
|
19
|
+
// Fundo accent-alpha em repouso (não só no hover) — sinaliza de cara que o
|
|
20
|
+
// label do mês/ano é clicável (abre view ano/década), não só um título.
|
|
21
|
+
// Seletor com o pai (.matcha-calendar-header) — precisa de +especificidade
|
|
22
|
+
// que o próprio `all: unset` da célula, que carrega DEPOIS (CSS de
|
|
23
|
+
// componente ViewEncapsulation.None sempre entra depois do CSS global do
|
|
24
|
+
// tema) e tem a mesma especificidade se for só a classe sozinha.
|
|
25
|
+
.matcha-calendar-header .matcha-calendar-header-label {
|
|
26
|
+
color: var(--matcha-color-accent);
|
|
27
|
+
background-color: var(--matcha-color-accent-alpha);
|
|
28
|
+
|
|
29
|
+
&:hover {
|
|
30
|
+
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
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
|
+
.matcha-calendar-nav-btn {
|
|
40
|
+
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
41
|
+
|
|
42
|
+
&:hover:not(:disabled):not(.is-disabled) {
|
|
43
|
+
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&:focus-visible {
|
|
47
|
+
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
48
|
+
outline-offset: var(--matcha-state-focus-ring-offset, 2px);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&[disabled],
|
|
52
|
+
&.is-disabled {
|
|
53
|
+
color: var(--matcha-color-interaction-disabled-fg);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// ── Weekday + Divider ───────────────────────────────────
|
|
58
|
+
.matcha-calendar-weekday {
|
|
59
|
+
color: var(--matcha-color-text-secondary, rgba(255, 255, 255, 0.7));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.matcha-calendar-divider {
|
|
63
|
+
background: var(--matcha-color-surface-border, var(--matcha-color-border));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ── Day cells (Month view) ──────────────────────────────
|
|
67
|
+
.matcha-calendar-cell {
|
|
68
|
+
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
69
|
+
|
|
70
|
+
&:hover:not(.is-disabled):not(.is-selected):not(.is-range-start):not(.is-range-end) {
|
|
71
|
+
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&:focus-visible {
|
|
75
|
+
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
76
|
+
outline-offset: -2px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Today: ring accent (sem fill)
|
|
80
|
+
&.is-today:not(.is-selected):not(.is-range-start):not(.is-range-end) {
|
|
81
|
+
box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// In-range (exclusive): pill individual com accent-alpha
|
|
85
|
+
&.is-in-range:not(.is-selected):not(.is-range-start):not(.is-range-end) {
|
|
86
|
+
background-color: var(--matcha-color-accent-alpha);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Selected single (Figma: outlined accent, NÃO filled — preserva text-primary)
|
|
90
|
+
&.is-selected:not(.is-range-start):not(.is-range-end) {
|
|
91
|
+
background-color: transparent;
|
|
92
|
+
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
93
|
+
box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Range anchors (start/end): filled accent — destaque visual dos pontos do range
|
|
97
|
+
&.is-range-start,
|
|
98
|
+
&.is-range-end {
|
|
99
|
+
background-color: var(--matcha-color-accent);
|
|
100
|
+
color: var(--matcha-color-accent-contrast);
|
|
101
|
+
font-weight: var(--matcha-weight-semibold, 600);
|
|
102
|
+
box-shadow: none;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&.is-other-month {
|
|
106
|
+
color: var(--matcha-color-interaction-disabled-fg);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
&.is-disabled {
|
|
110
|
+
color: var(--matcha-color-interaction-disabled-fg);
|
|
111
|
+
background-color: transparent;
|
|
112
|
+
box-shadow: none;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Marcador de dia (dot). is-selected é outlined (não filled, ver acima) então
|
|
116
|
+
// convive sem ajuste; range anchors SÃO filled com --matcha-color-accent — mesma
|
|
117
|
+
// cor invisibilizaria o dot, por isso o contraste-swap abaixo.
|
|
118
|
+
&.is-marked::after {
|
|
119
|
+
background-color: var(--matcha-color-calendar-marker-bg, var(--matcha-color-accent));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
&.is-range-start.is-marked::after,
|
|
123
|
+
&.is-range-end.is-marked::after {
|
|
124
|
+
background-color: var(--matcha-color-calendar-marker-contrast-bg, var(--matcha-color-accent-contrast));
|
|
125
|
+
box-shadow: 0 0 0 1px var(--matcha-color-accent);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
&.is-disabled.is-marked::after,
|
|
129
|
+
&.is-other-month.is-marked::after {
|
|
130
|
+
background-color: var(--matcha-color-interaction-disabled-fg);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// ── Grid views (Year / Decade) ──────────────────────────
|
|
135
|
+
.matcha-calendar-grid-cell {
|
|
136
|
+
color: var(--matcha-color-text-primary, var(--matcha-color-fg));
|
|
137
|
+
|
|
138
|
+
&:hover:not(.is-disabled):not(.is-selected) {
|
|
139
|
+
background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
&:focus-visible {
|
|
143
|
+
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
144
|
+
outline-offset: -2px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
&.is-today:not(.is-selected) {
|
|
148
|
+
box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
&.is-selected {
|
|
152
|
+
background-color: var(--matcha-color-accent);
|
|
153
|
+
color: var(--matcha-color-accent-contrast);
|
|
154
|
+
font-weight: var(--matcha-weight-semibold, 600);
|
|
155
|
+
box-shadow: none;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
&.is-disabled {
|
|
159
|
+
color: var(--matcha-color-interaction-disabled-fg);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// ── Footer (botão Hoje) ─────────────────────────────────
|
|
164
|
+
.matcha-calendar-today-btn {
|
|
165
|
+
color: var(--matcha-color-accent);
|
|
166
|
+
|
|
167
|
+
&:hover:not(:disabled):not(.is-disabled) {
|
|
168
|
+
background-color: var(--matcha-color-accent-alpha);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
&:focus-visible {
|
|
172
|
+
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
|
|
173
|
+
outline-offset: 2px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
&[disabled],
|
|
177
|
+
&.is-disabled {
|
|
178
|
+
color: var(--matcha-color-interaction-disabled-fg);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// ── Forced colors (Windows High Contrast) ──
|
|
184
|
+
// Calendar tem muitos estados (selected, today, disabled) — todos precisam
|
|
185
|
+
// distinção visível via system tokens.
|
|
186
|
+
@media (forced-colors: active) {
|
|
187
|
+
matcha-calendar {
|
|
188
|
+
border: 1px solid CanvasText;
|
|
189
|
+
background: Canvas;
|
|
190
|
+
|
|
191
|
+
.matcha-calendar-cell {
|
|
192
|
+
border: 1px solid transparent;
|
|
193
|
+
|
|
194
|
+
&.is-selected {
|
|
195
|
+
background: Highlight !important;
|
|
196
|
+
color: HighlightText !important;
|
|
197
|
+
border-color: HighlightText;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Today — outlined (não usa Highlight pra não confundir com selected)
|
|
201
|
+
&.is-today:not(.is-selected) {
|
|
202
|
+
border-color: CanvasText !important;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
&.is-disabled,
|
|
206
|
+
&[disabled] {
|
|
207
|
+
color: GrayText !important;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
&.is-marked::after {
|
|
211
|
+
background: CanvasText !important;
|
|
212
|
+
forced-color-adjust: none;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
&:focus-visible {
|
|
216
|
+
outline: 2px solid CanvasText !important;
|
|
217
|
+
outline-offset: -2px;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.matcha-calendar-today-btn:focus-visible {
|
|
222
|
+
outline: 2px solid CanvasText !important;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// ── Reduced motion ──
|
|
228
|
+
// Calendar tem transitions em hover/select e nav arrows.
|
|
229
|
+
@media (prefers-reduced-motion: reduce) {
|
|
230
|
+
matcha-calendar {
|
|
231
|
+
*,
|
|
232
|
+
*::before,
|
|
233
|
+
*::after {
|
|
234
|
+
transition: none !important;
|
|
235
|
+
animation: none !important;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// ── Print ──
|
|
241
|
+
// Calendar é informacional — mantém visível, sem shadow + break-inside avoid.
|
|
242
|
+
@media print {
|
|
243
|
+
matcha-calendar {
|
|
244
|
+
box-shadow: none !important;
|
|
245
|
+
border: 1px solid currentColor;
|
|
246
|
+
break-inside: avoid;
|
|
247
|
+
|
|
248
|
+
.matcha-calendar-cell.is-marked::after {
|
|
249
|
+
background: CanvasText;
|
|
250
|
+
box-shadow: none;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|