@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
@@ -1,212 +1,297 @@
1
- @use "sass:map";
2
-
3
- // =============================================================================
4
- // matcha-chip.scss — Theme mixin + structural styles
5
- // =============================================================================
6
-
7
- // ── Structural (outside mixin — no theme dependency) ─────────────────────────
8
-
9
- matcha-chip {
10
- display: inline-flex;
11
- align-items: center;
12
- padding: var(--matcha-space-100, 8px) var(--matcha-space-150, 12px);
13
- // Figma matcha/chip: 36 height (8+20+8), label 14/500/20
14
- font-size: var(--matcha-text-md, 14px);
15
- font-weight: var(--matcha-weight-medium, 500);
16
- line-height: var(--matcha-leading-body-md, 20px);
17
- cursor: default;
18
- white-space: nowrap;
19
- user-select: none;
20
- overflow: hidden;
21
- border: var(--matcha-border-thin, 2px) solid transparent;
22
- border-radius: var(--matcha-radius-pill, 9999px);
23
- position: relative;
24
- transition: border-color 200ms ease, box-shadow 200ms ease;
25
-
26
- // State layer
27
- &::before {
28
- content: '';
29
- position: absolute;
30
- inset: 0;
31
- background: currentColor;
32
- opacity: 0;
33
- border-radius: inherit;
34
- pointer-events: none;
35
- transition: opacity var(--matcha-duration-instant, 80ms) linear;
36
- }
37
-
38
- // Figma: shadow-1 + subtle darken on hover — darken is achieved via state layer opacity (not filter)
39
- &:hover:not([disabled]):not(.matcha-chip-disabled) {
40
- box-shadow: var(--matcha-shadow-1, 0 1px 3px rgba(0,0,0,0.12));
41
- }
42
- &:hover:not([disabled]):not(.matcha-chip-disabled)::before { opacity: var(--matcha-state-hover, 0.12); }
43
- &:active:not([disabled]):not(.matcha-chip-disabled)::before { opacity: var(--matcha-state-active, 0.16); }
44
-
45
- &[disabled],
46
- &.matcha-chip-disabled {
47
- pointer-events: none;
48
- cursor: default;
49
- }
50
-
51
- &:not([disabled]):not(.matcha-chip-disabled) {
52
- cursor: pointer;
53
- }
54
-
55
- @media (prefers-reduced-motion: reduce) {
56
- transition: none;
57
- &::before { transition: none; }
58
- }
59
- }
60
-
61
- .matcha-chip-content {
62
- display: inline-flex;
63
- align-items: center;
64
- overflow: hidden;
65
- text-overflow: ellipsis;
66
- }
67
-
68
- .matcha-chip-remove {
69
- display: inline-flex;
70
- align-items: center;
71
- justify-content: center;
72
- width: var(--matcha-icon-size-sm, 16px);
73
- height: var(--matcha-icon-size-sm, 16px);
74
- margin-left: var(--matcha-space-100, 8px);
75
- margin-right: -4px;
76
- padding: 0;
77
- border: none;
78
- background: transparent;
79
- border-radius: 50%;
80
- cursor: pointer;
81
- outline: none;
82
- transition: opacity 0.2s;
83
-
84
- // State-layer 12% on hover (Figma spec)
85
- position: relative;
86
- &::before {
87
- content: '';
88
- position: absolute;
89
- inset: 0;
90
- background: currentColor;
91
- opacity: 0;
92
- border-radius: inherit;
93
- pointer-events: none;
94
- transition: opacity 80ms linear;
95
- }
96
- &:hover:not([disabled])::before { opacity: 0.12; }
97
- &:focus-visible:not([disabled])::before { opacity: 0.12; }
98
-
99
- &[disabled] {
100
- cursor: default;
101
- }
102
-
103
- @media (prefers-reduced-motion: reduce) {
104
- transition: none;
105
- }
106
- }
107
-
108
- .matcha-chip-remove-icon {
109
- font-size: var(--matcha-text-title-md, 18px);
110
- line-height: 1; // 18/18 ratio — matches font-size
111
- color: inherit;
112
- }
113
-
114
- .matcha-chip-list-wrapper {
115
- display: flex;
116
- flex-wrap: wrap;
117
- gap: var(--matcha-space-100, 8px);
118
- align-items: center;
119
-
120
- &.matcha-chip-list-vertical {
121
- flex-direction: column;
122
- align-items: flex-start;
123
- }
124
- }
125
-
126
- // ── Theme mixin ──────────────────────────────────────────────────────────────
127
-
128
- @mixin matcha-chip-theme($theme) {
129
- // Mapa de cores sem\u00e2nticas \u2014 mesmo pattern do matcha-button
130
- $chip-colors: (
131
- primary: (getPrimary, getPrimaryContrast),
132
- accent: (getAccent, getAccentContrast),
133
- success: (getSuccess, getSuccessContrast),
134
- warn: (getWarn, getWarnContrast),
135
- danger: (getDanger, getDangerContrast),
136
- info: (getInfo, getInfoContrast),
137
- );
138
-
139
- matcha-chip {
140
- border-color: var(--matcha-color-hint, #{getGrey($theme)});
141
- color: var(--matcha-color-fg, #{getForeground($theme)});
142
-
143
- // Per-color rules (outline default: border + text = cor, fundo transparente)
144
- @each $name, $fns in $chip-colors {
145
- $fn: nth($fns, 1);
146
- $fnContrast: nth($fns, 2);
147
-
148
- &[color="#{$name}"] {
149
- border-color: call(get-function(#{$fn}), $theme);
150
- color: call(get-function(#{$fn}), $theme);
151
-
152
- // Selected na cor: filled com contraste
153
- &.matcha-chip-selected,
154
- &[selected] {
155
- background-color: call(get-function(#{$fn}), $theme);
156
- color: call(get-function(#{$fnContrast}), $theme);
157
-
158
- .matcha-chip-remove-icon {
159
- color: call(get-function(#{$fnContrast}), $theme);
160
- }
161
- }
162
- }
163
- }
164
-
165
- // Selected state (fallback — quando n\u00e3o tem color, usa accent)
166
- &.matcha-chip-selected,
167
- &[selected] {
168
- &:not([color]) {
169
- background-color: var(--matcha-color-accent, #{getAccent($theme)});
170
- border-color: var(--matcha-color-accent, #{getAccent($theme)});
171
- color: var(--matcha-color-accent-contrast, #{getAccentContrast($theme)});
172
-
173
- .matcha-chip-remove-icon {
174
- color: var(--matcha-color-accent-contrast, #{getAccentContrast($theme)});
175
- }
176
- }
177
- }
178
-
179
- // Disabled
180
- &[disabled],
181
- &.matcha-chip-disabled {
182
- border-color: var(--matcha-color-disabled-bg, #{getDisabled($theme)});
183
- color: var(--matcha-color-disabled-fg, #{getDisabledContrast($theme)});
184
-
185
- .matcha-chip-remove-icon {
186
- color: var(--matcha-color-disabled-fg, #{getDisabledContrast($theme)});
187
- }
188
- }
189
-
190
- // Focus ring
191
- &:focus-within {
192
- outline: var(--matcha-state-focus-ring-width, 2px) solid
193
- var(--matcha-color-primary, #{getPrimary($theme)});
194
- outline-offset: var(--matcha-state-focus-ring-offset, 2px);
195
- }
196
- }
197
-
198
- .matcha-chip-remove {
199
- color: var(--matcha-color-hint, #{getGrey($theme)});
200
- }
201
-
202
- // Chip list disabled
203
- .matcha-chip-list-disabled,
204
- [matcha-chip-list][disabled] {
205
- pointer-events: none;
206
-
207
- matcha-chip {
208
- border-color: var(--matcha-color-disabled-bg, #{getDisabled($theme)});
209
- color: var(--matcha-color-disabled-fg, #{getDisabledContrast($theme)});
210
- }
211
- }
212
- }
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-chip.scss — Figma DSV3 matcha/chip (14567:467)
5
+ // 1:1 com spec: 36×* pill, 2px border, gap 8, padding 8/12.
6
+ // 8 variants visuais (Selected × State) implementados via attr/pseudo.
7
+ // =============================================================================
8
+
9
+ // ── Structural + canônico Figma (fora do mixin de tema) ────────────────────
10
+
11
+ matcha-chip {
12
+ // Layout
13
+ box-sizing: border-box;
14
+ display: inline-flex;
15
+ flex-direction: row;
16
+ align-items: center;
17
+ gap: var(--matcha-space-100, 8px);
18
+ padding: var(--matcha-space-100, 8px) var(--matcha-space-150, 12px);
19
+
20
+ // Tipografia — Figma matcha/text/label-md (14/500/20)
21
+ font-family: var(--matcha-font-family, 'Manrope', sans-serif);
22
+ font-size: var(--matcha-text-label-md, 14px);
23
+ font-weight: var(--matcha-weight-medium, 500);
24
+ line-height: var(--matcha-leading-label-md, 20px);
25
+
26
+ // Box — Off Default
27
+ // Slots: --matcha-chip-border, --matcha-chip-bg, --matcha-chip-text
28
+ // permitem consumer override (cascade-friendly) sem specificity battle.
29
+ border: var(--matcha-border-thin, 2px) solid var(--matcha-chip-border, var(--matcha-color-text-hint, #9AA0A6));
30
+ border-radius: var(--matcha-radius-pill, 9999px);
31
+ background: var(--matcha-chip-bg, transparent);
32
+ color: var(--matcha-chip-text, var(--matcha-color-text-primary, #E8EAED));
33
+
34
+ // Comportamento (decorativo por padrão — sem cursor pointer, sem hover)
35
+ white-space: nowrap;
36
+ user-select: none;
37
+ cursor: default;
38
+ outline: none;
39
+ position: relative;
40
+ transition:
41
+ border-color var(--matcha-duration-instant, 80ms) var(--matcha-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
42
+ background var(--matcha-duration-instant, 80ms) var(--matcha-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
43
+ box-shadow var(--matcha-duration-instant, 80ms) var(--matcha-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
44
+
45
+ // ── Interactive (clicável) — cursor pointer + hover/focus effects ──
46
+ &[interactive]:not([disabled]):not(.matcha-chip-disabled) {
47
+ cursor: pointer;
48
+
49
+ // Off interactive — Hover (bg accent-alpha 10% + shadow-1) ──
50
+ &:not([selected]):hover {
51
+ background: var(--matcha-color-accent-alpha, rgba(168, 217, 78, 0.1));
52
+ box-shadow: var(--matcha-shadow-1);
53
+ }
54
+
55
+ // Off interactive — Focus (border vira primary) ──
56
+ &:not([selected]):focus-visible,
57
+ &:not([selected]):has(:focus-visible) {
58
+ border-color: var(--matcha-color-primary, #64B5F6);
59
+ }
60
+ }
61
+
62
+ // ── Selected (On) — bg + border accent, texto preto ──
63
+ &[selected] {
64
+ background: var(--matcha-color-accent, #A8D94E);
65
+ border-color: var(--matcha-color-accent, #A8D94E);
66
+ color: var(--matcha-color-accent-contrast, rgba(0, 0, 0, 0.87));
67
+
68
+ // On interactive — Hover (overlay rgba(0,0,0,0.2) sobre accent) ──
69
+ &[interactive]:not([disabled]):not(.matcha-chip-disabled):hover {
70
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
71
+ var(--matcha-color-accent, #A8D94E);
72
+ box-shadow: var(--matcha-shadow-1);
73
+ }
74
+
75
+ // On interactive — Focus (border vira primary, bg permanece accent) ──
76
+ &[interactive]:not([disabled]):not(.matcha-chip-disabled):focus-visible,
77
+ &[interactive]:not([disabled]):not(.matcha-chip-disabled):has(:focus-visible) {
78
+ border-color: var(--matcha-color-primary, #64B5F6);
79
+ }
80
+ }
81
+
82
+ // ── Disabled (Off) — opacity 0.4 (token) + border disabled-bg + texto disabled-fg ──
83
+ &[disabled],
84
+ &.matcha-chip-disabled {
85
+ pointer-events: none;
86
+ cursor: default;
87
+ opacity: var(--matcha-opacity-disabled, 0.4);
88
+ border-color: var(--matcha-color-interaction-disabled-bg, #282C34);
89
+ color: var(--matcha-color-interaction-disabled-fg, rgba(232, 234, 237, 0.38));
90
+
91
+ // Disabled + Selected — mantém bg accent, opacity faz o resto
92
+ &[selected] {
93
+ background: var(--matcha-color-accent, #A8D94E);
94
+ border-color: var(--matcha-color-accent, #A8D94E);
95
+ color: var(--matcha-color-interaction-disabled-fg, rgba(232, 234, 237, 0.38));
96
+ }
97
+ }
98
+
99
+ @media (prefers-reduced-motion: reduce) {
100
+ transition: none;
101
+ }
102
+ }
103
+
104
+ // ── Leading icon — 18×18 cinza Off / preto On / disabled-fg Disabled ────────
105
+ .matcha-chip-leading {
106
+ display: inline-flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ flex-shrink: 0;
110
+ width: 18px;
111
+ height: 18px;
112
+ color: var(--matcha-color-text-hint, #9AA0A6); // Off Default
113
+ }
114
+
115
+ matcha-chip[selected] .matcha-chip-leading {
116
+ color: var(--matcha-color-accent-contrast, rgba(0, 0, 0, 0.87));
117
+ }
118
+
119
+ matcha-chip[disabled] .matcha-chip-leading,
120
+ matcha-chip.matcha-chip-disabled .matcha-chip-leading {
121
+ color: var(--matcha-color-interaction-disabled-fg, rgba(232, 234, 237, 0.38));
122
+ }
123
+
124
+ // ── Force matcha-icon dentro do chip a herdar a cor do parent ───────────
125
+ // O theme global do matcha-icon aplica color: var(--matcha-color-icon-default)
126
+ // que sobrescreve inherit. Aqui aumentamos especificidade pra herdar.
127
+ matcha-chip .matcha-chip-leading matcha-icon,
128
+ matcha-chip .matcha-chip-leading [class*=" i-matcha-"],
129
+ matcha-chip .matcha-chip-remove matcha-icon,
130
+ matcha-chip .matcha-chip-remove [class*=" i-matcha-"] {
131
+ color: inherit;
132
+ }
133
+
134
+ // ── Content (label) — herda color do parent matcha-chip ─────────────────────
135
+ .matcha-chip-content {
136
+ display: inline-flex;
137
+ align-items: center;
138
+ overflow: hidden;
139
+ text-overflow: ellipsis;
140
+ }
141
+
142
+ // ── Divider 1×18 — usa currentColor com opacity baixa pra seguir o contraste
143
+ // do chip em qualquer estado (Off=text-primary 24%, On=accent-contrast 24%).
144
+ // Figma spec textual diz "surface/border" mas isso fica invisível no
145
+ // selected (fundo claro). currentColor opaco resolve sem divergir do intent.
146
+ .matcha-chip-divider {
147
+ display: inline-block;
148
+ flex-shrink: 0;
149
+ width: 1px;
150
+ height: 18px;
151
+ background: currentColor;
152
+ opacity: 0.24;
153
+ }
154
+
155
+ // ── Remove button 18×18 — herda color do chip parent ───────────────────────
156
+ // State-layer 12% on hover via background-color (sem ::before pra consistência
157
+ // com chip principal que usa bg específico por estado).
158
+ .matcha-chip-remove {
159
+ display: inline-flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ flex-shrink: 0;
163
+ width: 18px;
164
+ height: 18px;
165
+ padding: 0;
166
+ border: none;
167
+ background: transparent;
168
+ border-radius: 50%;
169
+ color: inherit;
170
+ cursor: pointer;
171
+ outline: none;
172
+ transition: background-color var(--matcha-duration-instant, 80ms) linear;
173
+
174
+ &:hover:not([disabled]),
175
+ &:focus-visible:not([disabled]) {
176
+ background: color-mix(in srgb, currentColor 12%, transparent);
177
+ }
178
+
179
+ &[disabled] {
180
+ cursor: default;
181
+ }
182
+
183
+ @media (prefers-reduced-motion: reduce) {
184
+ transition: none;
185
+ }
186
+ }
187
+
188
+ // ── Chip list wrapper ──────────────────────────────────────────────────────
189
+ .matcha-chip-list-wrapper {
190
+ display: flex;
191
+ flex-wrap: wrap;
192
+ gap: var(--matcha-space-100, 8px);
193
+ align-items: center;
194
+
195
+ &.matcha-chip-list-vertical {
196
+ flex-direction: column;
197
+ align-items: flex-start;
198
+ }
199
+ }
200
+
201
+ // ============================================================================
202
+ // Theme mixin — extensão Angular (cores semânticas além de accent)
203
+ // Figma DSV3 só especifica accent — primary/success/warn/danger/info são
204
+ // extensão de produto (mesmo pattern do matcha-button).
205
+ // ============================================================================
206
+
207
+ @mixin matcha-chip-theme($theme) {
208
+ $chip-colors: (
209
+ primary: (getPrimary, getPrimaryContrast),
210
+ success: (getSuccess, getSuccessContrast),
211
+ warn: (getWarn, getWarnContrast),
212
+ danger: (getDanger, getDangerContrast),
213
+ info: (getInfo, getInfoContrast),
214
+ );
215
+
216
+ matcha-chip {
217
+ @each $name, $fns in $chip-colors {
218
+ $fn: nth($fns, 1);
219
+ $fnContrast: nth($fns, 2);
220
+
221
+ &[color="#{$name}"] {
222
+ // Off na cor: outline + texto na cor (visualmente quente)
223
+ border-color: call(get-function(#{$fn}), $theme);
224
+ color: call(get-function(#{$fn}), $theme);
225
+
226
+ .matcha-chip-leading {
227
+ color: call(get-function(#{$fn}), $theme);
228
+ }
229
+
230
+ // Selected na cor: filled
231
+ &[selected],
232
+ // Explicit variant=filled — sem precisar [selected] (status estático)
233
+ &[variant="filled"] {
234
+ background-color: call(get-function(#{$fn}), $theme);
235
+ border-color: call(get-function(#{$fn}), $theme);
236
+ color: call(get-function(#{$fnContrast}), $theme);
237
+
238
+ .matcha-chip-leading {
239
+ color: call(get-function(#{$fnContrast}), $theme);
240
+ }
241
+ }
242
+
243
+ // ── Variant filled-alpha (canon status pill DSV3) ──
244
+ // bg alpha 10% da cor + border transparente + texto cor sólida.
245
+ // Sem precisar [selected]. Usado pra status: Publicado/Rascunho/Arquivado/etc.
246
+ &[variant="filled-alpha"] {
247
+ background-color: var(--matcha-color-feedback-#{$name}-alpha, var(--matcha-color-#{$name}-alpha));
248
+ border-color: transparent;
249
+ color: call(get-function(#{$fn}), $theme);
250
+
251
+ .matcha-chip-leading {
252
+ color: call(get-function(#{$fn}), $theme);
253
+ }
254
+ }
255
+ }
256
+ }
257
+ }
258
+
259
+ // Chip list disabled (propaga visual)
260
+ .matcha-chip-list-disabled,
261
+ [matcha-chip-list][disabled] {
262
+ pointer-events: none;
263
+ matcha-chip {
264
+ opacity: 0.4;
265
+ border-color: var(--matcha-color-interaction-disabled-bg);
266
+ color: var(--matcha-color-interaction-disabled-fg);
267
+ }
268
+ }
269
+ }
270
+
271
+ // ── Forced colors ──
272
+ @media (forced-colors: active) {
273
+ matcha-chip {
274
+ border: 1px solid CanvasText !important;
275
+ background: Canvas !important;
276
+ color: CanvasText !important;
277
+
278
+ &:focus-visible {
279
+ outline: 2px solid CanvasText !important;
280
+ outline-offset: 2px;
281
+ }
282
+
283
+ &[disabled],
284
+ &.is-disabled {
285
+ color: GrayText !important;
286
+ border-color: GrayText !important;
287
+ }
288
+ }
289
+ }
290
+
291
+ // ── Print ──
292
+ @media print {
293
+ matcha-chip {
294
+ border: 1px solid currentColor !important;
295
+ background: transparent !important;
296
+ }
297
+ }
@@ -7,11 +7,10 @@
7
7
  // =============================================================================
8
8
 
9
9
  @mixin matcha-color-pick-theme($theme) {
10
- $is-dark: map.get($theme, is-dark);
11
10
 
12
11
  .matcha-color-pick {
13
12
  .is-selected {
14
- box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-surface, #{getSurface($theme)});
13
+ box-shadow: inset 0 0 0 var(--matcha-border-thin, 2px) var(--matcha-color-surface);
15
14
  }
16
15
  }
17
16
  }