@inchurch/matcha-theme 20.0.11 → 20.277.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 (116) hide show
  1. package/abstracts/_colors.scss +404 -404
  2. package/abstracts/_elevation.scss +102 -102
  3. package/abstracts/_functions.scss +1186 -1212
  4. package/abstracts/_media-breakpoint.scss +23 -23
  5. package/abstracts/_theme-api.scss +230 -0
  6. package/abstracts/_typography.scss +127 -127
  7. package/base/_reset.scss +438 -438
  8. package/components/app-page-header.scss +259 -0
  9. package/components/matcha-accordion.scss +293 -157
  10. package/components/matcha-audio-player.scss +1 -2
  11. package/components/matcha-autocomplete.scss +10 -11
  12. package/components/matcha-avatar.scss +173 -33
  13. package/components/matcha-badge.scss +15 -15
  14. package/components/matcha-breadcrumb.scss +231 -126
  15. package/components/matcha-button-toggle.scss +46 -2
  16. package/components/matcha-buttons.scss +908 -784
  17. package/components/matcha-calendar.scss +99 -35
  18. package/components/matcha-cards.scss +58 -33
  19. package/components/matcha-chart-card.scss +5 -12
  20. package/components/matcha-checkbox.scss +191 -490
  21. package/components/matcha-chip.scss +297 -212
  22. package/components/matcha-color-pick.scss +1 -2
  23. package/components/matcha-command-palette.scss +290 -63
  24. package/components/matcha-crop.scss +406 -172
  25. package/components/matcha-date.scss +81 -81
  26. package/components/matcha-divider.scss +86 -31
  27. package/components/matcha-draggable.scss +4 -5
  28. package/components/matcha-drawer.scss +207 -66
  29. package/components/matcha-drop-image.scss +14 -0
  30. package/components/matcha-drop-list.scss +87 -47
  31. package/components/matcha-emoji.scss +2 -2
  32. package/components/matcha-empty-state.scss +195 -83
  33. package/components/matcha-file-uploader.scss +462 -0
  34. package/components/matcha-flag.scss +93 -52
  35. package/components/matcha-footer.scss +67 -164
  36. package/components/matcha-form-field.scss +55 -3
  37. package/components/matcha-form-section.scss +100 -101
  38. package/components/matcha-header.scss +134 -325
  39. package/components/matcha-highlight.scss +65 -197
  40. package/components/matcha-hint-text.scss +25 -4
  41. package/components/matcha-horizontal-tree.scss +316 -317
  42. package/components/matcha-icon.scss +37 -45
  43. package/components/matcha-image.scss +2 -3
  44. package/components/matcha-list.scss +14 -15
  45. package/components/matcha-menu.scss +15 -2
  46. package/components/matcha-modal.scss +59 -86
  47. package/components/matcha-nav.scss +362 -231
  48. package/components/matcha-notification.scss +412 -197
  49. package/components/matcha-option.scss +98 -23
  50. package/components/matcha-page-builder.scss +16 -16
  51. package/components/matcha-paginator.scss +688 -235
  52. package/components/matcha-panel.scss +42 -27
  53. package/components/matcha-profile-card.scss +50 -50
  54. package/components/matcha-progress-bar.scss +257 -153
  55. package/components/matcha-radio.scss +244 -452
  56. package/components/matcha-scrollbar.scss +1 -2
  57. package/components/matcha-scrollbox-shadow.scss +120 -122
  58. package/components/matcha-section.scss +5 -9
  59. package/components/matcha-select-multiple.scss +56 -0
  60. package/components/matcha-select.scss +10 -10
  61. package/components/matcha-skeleton.scss +24 -7
  62. package/components/matcha-slide-toggle.scss +80 -301
  63. package/components/matcha-slider.scss +174 -77
  64. package/components/matcha-snack-bar.scss +123 -131
  65. package/components/matcha-spin.scss +12 -103
  66. package/components/matcha-spinner.scss +76 -57
  67. package/components/matcha-status-pill.scss +82 -0
  68. package/components/matcha-stepper.scss +376 -177
  69. package/components/matcha-table.scss +568 -785
  70. package/components/matcha-tabs.scss +622 -469
  71. package/components/matcha-text-editor.scss +78 -78
  72. package/components/matcha-time.scss +2 -2
  73. package/components/matcha-toolbar.scss +359 -206
  74. package/components/matcha-tooltip.scss +158 -62
  75. package/components/matcha-tree-view.scss +189 -0
  76. package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
  77. package/fonts/manrope/manrope-latin.woff2 +0 -0
  78. package/layout/matcha-page-layout.scss +4 -4
  79. package/main.scss +237 -265
  80. package/package.json +1 -1
  81. package/tokens/_animations-tokens.scss +37 -37
  82. package/tokens/_breakpoints-tokens.scss +35 -26
  83. package/tokens/_color-tokens.scss +1149 -1152
  84. package/tokens/_css-custom-properties.scss +704 -568
  85. package/tokens/_primitives.scss +82 -0
  86. package/tokens/_semantic-aliases.scss +120 -0
  87. package/tokens/_spacing-tokens.scss +94 -94
  88. package/vendors/angular-editor.scss +56 -56
  89. package/vendors/angular-material-fixes.scss +297 -297
  90. package/vendors/charts.scss +92 -92
  91. package/vendors/ng5-slider.scss +56 -56
  92. package/vendors/ngx-material-timepicker.scss +50 -50
  93. package/components/matcha-uploader.scss +0 -215
  94. package/fonts/CircularStd-Black.eot +0 -0
  95. package/fonts/CircularStd-Black.svg +0 -3426
  96. package/fonts/CircularStd-Black.ttf +0 -0
  97. package/fonts/CircularStd-Black.woff +0 -0
  98. package/fonts/CircularStd-Black.woff2 +0 -0
  99. package/fonts/CircularStd-Bold.eot +0 -0
  100. package/fonts/CircularStd-Bold.otf +0 -0
  101. package/fonts/CircularStd-Bold.svg +0 -13532
  102. package/fonts/CircularStd-Bold.ttf +0 -0
  103. package/fonts/CircularStd-Bold.woff +0 -0
  104. package/fonts/CircularStd-Bold.woff2 +0 -0
  105. package/fonts/CircularStd-Medium.eot +0 -0
  106. package/fonts/CircularStd-Medium.otf +0 -0
  107. package/fonts/CircularStd-Medium.svg +0 -13511
  108. package/fonts/CircularStd-Medium.ttf +0 -0
  109. package/fonts/CircularStd-Medium.woff +0 -0
  110. package/fonts/CircularStd-Medium.woff2 +0 -0
  111. package/fonts/CircularStd-Regular.eot +0 -0
  112. package/fonts/CircularStd-Regular.otf +0 -0
  113. package/fonts/CircularStd-Regular.svg +0 -2378
  114. package/fonts/CircularStd-Regular.ttf +0 -0
  115. package/fonts/CircularStd-Regular.woff +0 -0
  116. package/fonts/CircularStd-Regular.woff2 +0 -0
@@ -7,47 +7,43 @@
7
7
  // =========================================================
8
8
 
9
9
  @mixin matcha-calendar-theme($theme) {
10
- $is-dark: map.get($theme, is-dark);
11
-
12
10
  .matcha-calendar {
13
- background: var(--matcha-color-surface-card, var(--matcha-color-surface, #{getSurface($theme)}));
14
- color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
15
- box-shadow: var(--matcha-shadow-2, #{if($is-dark, $shadow-2-dark, $shadow-2-light)});
16
-
17
- @if $is-dark {
18
- border: var(--matcha-border-hairline, 1px) solid var(--matcha-color-surface-border, rgba(255, 255, 255, 0.12));
19
- }
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);
20
16
  }
21
17
 
22
18
  // ── Header ──────────────────────────────────────────────
23
19
  .matcha-calendar-header-label {
24
- color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
20
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg));
25
21
 
26
22
  &:hover {
27
23
  background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
28
24
  }
29
25
 
30
26
  &:focus-visible {
31
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
27
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
32
28
  outline-offset: var(--matcha-state-focus-ring-offset, 2px);
33
29
  }
34
30
  }
35
31
 
36
32
  .matcha-calendar-nav-btn {
37
- color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
33
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg));
38
34
 
39
35
  &:hover:not(:disabled):not(.is-disabled) {
40
36
  background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
41
37
  }
42
38
 
43
39
  &:focus-visible {
44
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
40
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
45
41
  outline-offset: var(--matcha-state-focus-ring-offset, 2px);
46
42
  }
47
43
 
48
44
  &[disabled],
49
45
  &.is-disabled {
50
- color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
46
+ color: var(--matcha-color-interaction-disabled-fg);
51
47
  }
52
48
  }
53
49
 
@@ -57,48 +53,54 @@
57
53
  }
58
54
 
59
55
  .matcha-calendar-divider {
60
- background: var(--matcha-color-surface-border, var(--matcha-color-border, #{getGrey($theme)}));
56
+ background: var(--matcha-color-surface-border, var(--matcha-color-border));
61
57
  }
62
58
 
63
59
  // ── Day cells (Month view) ──────────────────────────────
64
60
  .matcha-calendar-cell {
65
- color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
61
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg));
66
62
 
67
63
  &:hover:not(.is-disabled):not(.is-selected):not(.is-range-start):not(.is-range-end) {
68
64
  background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
69
65
  }
70
66
 
71
67
  &:focus-visible {
72
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
68
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
73
69
  outline-offset: -2px;
74
70
  }
75
71
 
76
72
  // Today: ring accent (sem fill)
77
73
  &.is-today:not(.is-selected):not(.is-range-start):not(.is-range-end) {
78
- box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent, #{getAccent($theme)});
74
+ box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
79
75
  }
80
76
 
81
77
  // In-range (exclusive): pill individual com accent-alpha
82
78
  &.is-in-range:not(.is-selected):not(.is-range-start):not(.is-range-end) {
83
- background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
79
+ background-color: var(--matcha-color-accent-alpha);
80
+ }
81
+
82
+ // Selected single (Figma: outlined accent, NÃO filled — preserva text-primary)
83
+ &.is-selected:not(.is-range-start):not(.is-range-end) {
84
+ background-color: transparent;
85
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg));
86
+ box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
84
87
  }
85
88
 
86
- // Selected / range start / range end: fill accent + contrast
87
- &.is-selected,
89
+ // Range anchors (start/end): filled accent destaque visual dos pontos do range
88
90
  &.is-range-start,
89
91
  &.is-range-end {
90
- background-color: var(--matcha-color-accent, #{getAccent($theme)});
91
- color: var(--matcha-color-accent-contrast, getAccentContrast($theme));
92
+ background-color: var(--matcha-color-accent);
93
+ color: var(--matcha-color-accent-contrast);
92
94
  font-weight: var(--matcha-weight-semibold, 600);
93
95
  box-shadow: none;
94
96
  }
95
97
 
96
98
  &.is-other-month {
97
- color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
99
+ color: var(--matcha-color-interaction-disabled-fg);
98
100
  }
99
101
 
100
102
  &.is-disabled {
101
- color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
103
+ color: var(--matcha-color-interaction-disabled-fg);
102
104
  background-color: transparent;
103
105
  box-shadow: none;
104
106
  }
@@ -106,49 +108,111 @@
106
108
 
107
109
  // ── Grid views (Year / Decade) ──────────────────────────
108
110
  .matcha-calendar-grid-cell {
109
- color: var(--matcha-color-text-primary, var(--matcha-color-fg, #{getForeground($theme)}));
111
+ color: var(--matcha-color-text-primary, var(--matcha-color-fg));
110
112
 
111
113
  &:hover:not(.is-disabled):not(.is-selected) {
112
114
  background-color: var(--matcha-color-surface-hover, rgba(255, 255, 255, 0.08));
113
115
  }
114
116
 
115
117
  &:focus-visible {
116
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
118
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
117
119
  outline-offset: -2px;
118
120
  }
119
121
 
120
122
  &.is-today:not(.is-selected) {
121
- box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent, #{getAccent($theme)});
123
+ box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-accent);
122
124
  }
123
125
 
124
126
  &.is-selected {
125
- background-color: var(--matcha-color-accent, #{getAccent($theme)});
126
- color: var(--matcha-color-accent-contrast, getAccentContrast($theme));
127
+ background-color: var(--matcha-color-accent);
128
+ color: var(--matcha-color-accent-contrast);
127
129
  font-weight: var(--matcha-weight-semibold, 600);
128
130
  box-shadow: none;
129
131
  }
130
132
 
131
133
  &.is-disabled {
132
- color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
134
+ color: var(--matcha-color-interaction-disabled-fg);
133
135
  }
134
136
  }
135
137
 
136
138
  // ── Footer (botão Hoje) ─────────────────────────────────
137
139
  .matcha-calendar-today-btn {
138
- color: var(--matcha-color-accent, #{getAccent($theme)});
140
+ color: var(--matcha-color-accent);
139
141
 
140
142
  &:hover:not(:disabled):not(.is-disabled) {
141
- background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
143
+ background-color: var(--matcha-color-accent-alpha);
142
144
  }
143
145
 
144
146
  &:focus-visible {
145
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
147
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
146
148
  outline-offset: 2px;
147
149
  }
148
150
 
149
151
  &[disabled],
150
152
  &.is-disabled {
151
- color: var(--matcha-color-interaction-disabled-fg, #{getDisabledContrast($theme)});
153
+ color: var(--matcha-color-interaction-disabled-fg);
154
+ }
155
+ }
156
+ }
157
+
158
+ // ── Forced colors (Windows High Contrast) ──
159
+ // Calendar tem muitos estados (selected, today, disabled) — todos precisam
160
+ // distinção visível via system tokens.
161
+ @media (forced-colors: active) {
162
+ matcha-calendar {
163
+ border: 1px solid CanvasText;
164
+ background: Canvas;
165
+
166
+ .matcha-calendar-day-cell {
167
+ border: 1px solid transparent;
168
+
169
+ &.is-selected {
170
+ background: Highlight !important;
171
+ color: HighlightText !important;
172
+ border-color: HighlightText;
173
+ }
174
+
175
+ // Today — outlined (não usa Highlight pra não confundir com selected)
176
+ &.is-today:not(.is-selected) {
177
+ border-color: CanvasText !important;
178
+ }
179
+
180
+ &.is-disabled,
181
+ &[disabled] {
182
+ color: GrayText !important;
183
+ }
184
+
185
+ &:focus-visible {
186
+ outline: 2px solid CanvasText !important;
187
+ outline-offset: -2px;
188
+ }
189
+ }
190
+
191
+ .matcha-calendar-today-btn:focus-visible {
192
+ outline: 2px solid CanvasText !important;
193
+ }
194
+ }
195
+ }
196
+
197
+ // ── Reduced motion ──
198
+ // Calendar tem transitions em hover/select e nav arrows.
199
+ @media (prefers-reduced-motion: reduce) {
200
+ matcha-calendar {
201
+ *,
202
+ *::before,
203
+ *::after {
204
+ transition: none !important;
205
+ animation: none !important;
152
206
  }
153
207
  }
154
208
  }
209
+
210
+ // ── Print ──
211
+ // Calendar é informacional — mantém visível, sem shadow + break-inside avoid.
212
+ @media print {
213
+ matcha-calendar {
214
+ box-shadow: none !important;
215
+ border: 1px solid currentColor;
216
+ break-inside: avoid;
217
+ }
218
+ }
@@ -6,7 +6,6 @@
6
6
  // =============================================================================
7
7
 
8
8
  @mixin matcha-cards-theme($theme) {
9
- $is-dark: map.get($theme, is-dark);
10
9
 
11
10
  matcha-card,
12
11
  .matcha-card,
@@ -14,93 +13,97 @@
14
13
 
15
14
  // ── Default: surface ──
16
15
  &:not([color]) {
17
- background-color: var(--matcha-color-surface, #{getSurface($theme)});
18
- color: var(--matcha-color-fg, #{getForeground($theme)});
16
+ background-color: var(--matcha-color-surface);
17
+ color: var(--matcha-color-fg);
19
18
  }
20
19
 
21
20
  // ── Semantic colors ──
22
21
  &[color="surface"] {
23
- background-color: var(--matcha-color-surface, #{getSurface($theme)});
24
- color: var(--matcha-color-fg, #{getForeground($theme)});
22
+ background-color: var(--matcha-color-surface);
23
+ color: var(--matcha-color-fg);
25
24
  }
26
25
 
27
26
  &[color="bg"] {
28
- background-color: var(--matcha-color-bg, #{getBackground($theme)});
29
- color: var(--matcha-color-fg, #{getForeground($theme)});
27
+ background-color: var(--matcha-color-bg);
28
+ color: var(--matcha-color-fg);
30
29
  }
31
30
 
32
31
  &[color="accent"] {
33
- background-color: var(--matcha-color-accent, #{getAccent($theme)});
34
- color: var(--matcha-color-accent-contrast, #{getAccentContrast($theme)});
32
+ background-color: var(--matcha-color-accent);
33
+ color: var(--matcha-color-accent-contrast);
35
34
  }
36
35
 
37
36
  &[color="primary"] {
38
- background-color: var(--matcha-color-primary, #{getPrimary($theme)});
39
- color: var(--matcha-color-primary-contrast, #{getPrimaryContrast($theme)});
37
+ background-color: var(--matcha-color-primary);
38
+ color: var(--matcha-color-primary-contrast);
40
39
  }
41
40
 
42
41
  &[color="danger"] {
43
- background-color: var(--matcha-color-danger, #{getDanger($theme)});
44
- color: var(--matcha-color-danger-contrast, #{getDangerContrast($theme)});
42
+ background-color: var(--matcha-color-danger);
43
+ color: var(--matcha-color-danger-contrast);
45
44
  }
46
45
 
47
46
  // ── Alpha modifier ──
48
47
  &[alpha]:not([alpha="false"]) {
49
48
  &[color="accent"] {
50
- background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
51
- color: var(--matcha-color-fg, #{getForeground($theme)});
49
+ background-color: var(--matcha-color-accent-alpha);
50
+ color: var(--matcha-color-fg);
52
51
  }
53
52
  &[color="primary"] {
54
- background-color: var(--matcha-color-primary-alpha, #{getPrimaryAlpha($theme)});
55
- color: var(--matcha-color-fg, #{getForeground($theme)});
53
+ background-color: var(--matcha-color-primary-alpha);
54
+ color: var(--matcha-color-fg);
56
55
  }
57
56
  &[color="danger"] {
58
- background-color: var(--matcha-color-danger-alpha, #{getDangerAlpha($theme)});
59
- color: var(--matcha-color-fg, #{getForeground($theme)});
57
+ background-color: var(--matcha-color-danger-alpha);
58
+ color: var(--matcha-color-fg);
60
59
  }
60
+ // Figma DSV3: alpha + color=surface usa surface-bg (#111318), não surface-alpha.
61
61
  &[color="surface"] {
62
- background-color: #{getSurfaceAlpha($theme)};
63
- color: var(--matcha-color-fg, #{getForeground($theme)});
62
+ background-color: var(--matcha-color-surface-bg);
63
+ color: var(--matcha-color-fg);
64
64
  }
65
65
  &[color="bg"] {
66
- background-color: #{getBackgroundAlpha($theme)};
67
- color: var(--matcha-color-fg, #{getForeground($theme)});
66
+ background-color: var(--matcha-color-surface-bg-alpha);
67
+ color: var(--matcha-color-fg);
68
68
  }
69
69
  }
70
70
 
71
71
  // ── Outline modifier ──
72
+ // Figma DSV3: border 1px surface-border (rgba 255,255,255,0.12 dark).
73
+ // Antes era `inset 2px currentColor` — divergia da spec e ficava grosso demais.
72
74
  &[outline]:not([outline="false"]) {
73
75
  background: transparent;
74
- box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) currentColor;
76
+ border: var(--matcha-border-hairline, 1px) solid var(--matcha-color-surface-border, rgba(255, 255, 255, 0.12));
77
+ box-shadow: none;
75
78
 
76
79
  &:not([color]) {
77
- color: var(--matcha-color-fg, #{getForeground($theme)});
80
+ color: var(--matcha-color-fg);
78
81
  }
79
82
  }
80
83
 
81
84
  // ── Tint modifier ──
82
85
  &[tint]:not([tint="false"]) {
83
86
  &[color="accent"] {
84
- background-color: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
85
- color: var(--matcha-color-accent, #{getAccent($theme)});
87
+ background-color: var(--matcha-color-accent-alpha);
88
+ color: var(--matcha-color-accent);
86
89
  }
87
90
  &[color="primary"] {
88
- background-color: var(--matcha-color-primary-alpha, #{getPrimaryAlpha($theme)});
89
- color: var(--matcha-color-primary, #{getPrimary($theme)});
91
+ background-color: var(--matcha-color-primary-alpha);
92
+ color: var(--matcha-color-primary);
90
93
  }
91
94
  &[color="danger"] {
92
- background-color: var(--matcha-color-danger-alpha, #{getDangerAlpha($theme)});
93
- color: var(--matcha-color-danger, #{getDanger($theme)});
95
+ background-color: var(--matcha-color-danger-alpha);
96
+ color: var(--matcha-color-danger);
94
97
  }
95
98
  }
96
99
 
97
100
  // ── Basic modifier ──
98
101
  &[basic]:not([basic="false"]) {
99
102
  box-shadow: none;
100
- background-color: var(--matcha-color-surface, #{getSurface($theme)});
103
+ background-color: var(--matcha-color-surface);
101
104
 
102
105
  &:not([color]) {
103
- color: var(--matcha-color-fg, #{getForeground($theme)});
106
+ color: var(--matcha-color-fg);
104
107
  }
105
108
  }
106
109
 
@@ -203,3 +206,25 @@ matcha-card,
203
206
  }
204
207
  }
205
208
  }
209
+
210
+ // ── Forced colors (Windows High Contrast) ──
211
+ @media (forced-colors: active) {
212
+ matcha-card,
213
+ .matcha-card,
214
+ .matcha-card-flat {
215
+ border: 1px solid CanvasText !important;
216
+ background: Canvas !important;
217
+ box-shadow: none !important;
218
+ }
219
+ }
220
+
221
+ // ── Print ──
222
+ // Cards visíveis (contêm conteúdo), sem shadow + break-inside avoid.
223
+ @media print {
224
+ matcha-card,
225
+ .matcha-card,
226
+ .matcha-card-flat {
227
+ box-shadow: none !important;
228
+ break-inside: avoid;
229
+ }
230
+ }
@@ -8,22 +8,15 @@
8
8
  // =============================================================================
9
9
 
10
10
  @mixin matcha-chart-card-theme($theme) {
11
- $is-dark: map.get($theme, is-dark);
12
-
13
11
  .matcha-chart-card {
14
- background: var(--matcha-color-surface, #{getSurface($theme)});
15
- box-shadow: var(--matcha-shadow-1,
16
- 0 2px 12px rgba(0, 0, 0, if($is-dark, 0.3, 0.06)),
17
- 0 0 4px rgba(0, 0, 0, if($is-dark, 0.2, 0.04))
18
- );
19
-
20
- @if $is-dark {
21
- border: var(--matcha-border-hairline, 1px) solid rgba(#212121, 0.06); // ok: structural
22
- }
12
+ background: var(--matcha-color-surface);
13
+ box-shadow: var(--matcha-shadow-1);
14
+ // Borda só-no-dark vira valor por modo (light = 0/transparent, sem mudar layout).
15
+ border: var(--matcha-chart-card-border);
23
16
  }
24
17
 
25
18
  .matcha-chart-card__accent {
26
- background: var(--matcha-color-accent, #{getAccent($theme)});
19
+ background: var(--matcha-color-accent);
27
20
  }
28
21
  }
29
22