@inchurch/matcha-theme 20.0.8 → 20.276.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 (99) hide show
  1. package/abstracts/_colors.scss +404 -404
  2. package/abstracts/_elevation.scss +102 -102
  3. package/abstracts/_functions.scss +1212 -1212
  4. package/abstracts/_media-breakpoint.scss +23 -23
  5. package/abstracts/_typography.scss +127 -127
  6. package/base/_reset.scss +438 -438
  7. package/components/app-page-header.scss +260 -0
  8. package/components/matcha-accordion.scss +294 -157
  9. package/components/matcha-avatar.scss +171 -31
  10. package/components/matcha-badge.scss +4 -4
  11. package/components/matcha-breadcrumb.scss +232 -126
  12. package/components/matcha-button-toggle.scss +44 -0
  13. package/components/matcha-buttons.scss +908 -784
  14. package/components/matcha-calendar.scss +70 -2
  15. package/components/matcha-cards.scss +28 -2
  16. package/components/matcha-checkbox.scss +191 -490
  17. package/components/matcha-chip.scss +297 -212
  18. package/components/matcha-command-palette.scss +291 -63
  19. package/components/matcha-crop.scss +407 -172
  20. package/components/matcha-date.scss +81 -81
  21. package/components/matcha-divider.scss +86 -31
  22. package/components/matcha-drawer.scss +201 -50
  23. package/components/matcha-drop-image.scss +14 -0
  24. package/components/matcha-drop-list.scss +42 -1
  25. package/components/matcha-empty-state.scss +195 -83
  26. package/components/matcha-flag.scss +93 -52
  27. package/components/matcha-footer.scss +68 -164
  28. package/components/matcha-form-field.scss +52 -0
  29. package/components/matcha-form-section.scss +101 -101
  30. package/components/matcha-header.scss +135 -325
  31. package/components/matcha-highlight.scss +65 -197
  32. package/components/matcha-hint-text.scss +21 -0
  33. package/components/matcha-horizontal-tree.scss +317 -317
  34. package/components/matcha-icon.scss +17 -25
  35. package/components/matcha-list.scss +5 -5
  36. package/components/matcha-menu.scss +13 -0
  37. package/components/matcha-modal.scss +58 -84
  38. package/components/matcha-nav.scss +361 -230
  39. package/components/matcha-notification.scss +413 -197
  40. package/components/matcha-option.scss +79 -23
  41. package/components/matcha-paginator.scss +689 -235
  42. package/components/matcha-panel.scss +42 -26
  43. package/components/matcha-profile-card.scss +50 -50
  44. package/components/matcha-progress-bar.scss +257 -153
  45. package/components/matcha-radio.scss +244 -452
  46. package/components/matcha-scrollbox-shadow.scss +122 -122
  47. package/components/matcha-select.scss +3 -3
  48. package/components/matcha-skeleton.scss +18 -0
  49. package/components/matcha-slide-toggle.scss +47 -2
  50. package/components/matcha-slider.scss +172 -75
  51. package/components/matcha-snack-bar.scss +114 -121
  52. package/components/matcha-spinner.scss +76 -57
  53. package/components/matcha-status-pill.scss +82 -0
  54. package/components/matcha-stepper.scss +377 -177
  55. package/components/matcha-table.scss +569 -785
  56. package/components/matcha-tabs.scss +624 -469
  57. package/components/matcha-text-editor.scss +98 -144
  58. package/components/matcha-toolbar.scss +359 -206
  59. package/components/matcha-tooltip.scss +156 -62
  60. package/components/matcha-tree-view.scss +189 -0
  61. package/components/matcha-uploader.scss +240 -62
  62. package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
  63. package/fonts/manrope/manrope-latin.woff2 +0 -0
  64. package/layout/matcha-page-layout.scss +776 -0
  65. package/main.scss +232 -261
  66. package/package.json +1 -1
  67. package/tokens/_animations-tokens.scss +37 -37
  68. package/tokens/_breakpoints-tokens.scss +35 -26
  69. package/tokens/_color-tokens.scss +1152 -1152
  70. package/tokens/_css-custom-properties.scss +650 -568
  71. package/tokens/_spacing-tokens.scss +94 -94
  72. package/vendors/angular-editor.scss +56 -56
  73. package/vendors/angular-material-fixes.scss +297 -297
  74. package/vendors/charts.scss +92 -92
  75. package/vendors/ng5-slider.scss +56 -56
  76. package/vendors/ngx-material-timepicker.scss +50 -50
  77. package/fonts/CircularStd-Black.eot +0 -0
  78. package/fonts/CircularStd-Black.svg +0 -3426
  79. package/fonts/CircularStd-Black.ttf +0 -0
  80. package/fonts/CircularStd-Black.woff +0 -0
  81. package/fonts/CircularStd-Black.woff2 +0 -0
  82. package/fonts/CircularStd-Bold.eot +0 -0
  83. package/fonts/CircularStd-Bold.otf +0 -0
  84. package/fonts/CircularStd-Bold.svg +0 -13532
  85. package/fonts/CircularStd-Bold.ttf +0 -0
  86. package/fonts/CircularStd-Bold.woff +0 -0
  87. package/fonts/CircularStd-Bold.woff2 +0 -0
  88. package/fonts/CircularStd-Medium.eot +0 -0
  89. package/fonts/CircularStd-Medium.otf +0 -0
  90. package/fonts/CircularStd-Medium.svg +0 -13511
  91. package/fonts/CircularStd-Medium.ttf +0 -0
  92. package/fonts/CircularStd-Medium.woff +0 -0
  93. package/fonts/CircularStd-Medium.woff2 +0 -0
  94. package/fonts/CircularStd-Regular.eot +0 -0
  95. package/fonts/CircularStd-Regular.otf +0 -0
  96. package/fonts/CircularStd-Regular.svg +0 -2378
  97. package/fonts/CircularStd-Regular.ttf +0 -0
  98. package/fonts/CircularStd-Regular.woff +0 -0
  99. package/fonts/CircularStd-Regular.woff2 +0 -0
@@ -1,405 +1,405 @@
1
- // Saturation Levels
2
- $saturationLevels: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, A100, A200, A400, A700;
3
-
4
- // Hues Palette Colors
5
- $index: 0;
6
-
7
- // -------------------------------------------------------------------------------------------------------------------
8
- // @ Text color levels generator
9
- // -------------------------------------------------------------------------------------------------------------------
10
- @mixin _generate-text-color-levels($classes, $contrast) {
11
- @if ($contrast =="dark") {
12
- #{$classes} {
13
-
14
- &.secondary-text,
15
- .secondary-text {
16
- color: rgba(0, 0, 0, 0.54) !important;
17
- }
18
-
19
- &.hint-text,
20
- .hint-text,
21
- &.disabled-text,
22
- .disabled-text {
23
- color: rgba(0, 0, 0, 0.38) !important;
24
- }
25
-
26
- &.divider,
27
- .divider {
28
- color: rgba(0, 0, 0, 0.12) !important;
29
- }
30
- }
31
- }
32
-
33
- @else {
34
- #{$classes} {
35
-
36
- &.secondary-text,
37
- .secondary-text {
38
- color: rgba(255, 255, 255, 0.7) !important;
39
- }
40
-
41
- &.hint-text,
42
- .hint-text,
43
- &.disabled-text,
44
- .disabled-text {
45
- color: rgba(255, 255, 255, 0.5) !important;
46
- }
47
-
48
- &.divider,
49
- .divider {
50
- color: rgba(255, 255, 255, 0.12) !important;
51
- }
52
- }
53
- }
54
- }
55
-
56
- // -------------------------------------------------------------------------------------------------------------------
57
- // @ Static color classes generator
58
- // -------------------------------------------------------------------------------------------------------------------
59
- @mixin _generate-static-color-classes($colorName, $color, $contrastColor, $saturation) {
60
- $colorSelector: unquote(".#{$colorName}#{$saturation}");
61
-
62
- #{$colorSelector} {
63
- background-color: $color !important;
64
- color: $contrastColor !important;
65
-
66
- &[disabled] {
67
- background-color: rgba($color, 0.12) !important;
68
- color: rgba($contrastColor, 0.26) !important;
69
- }
70
- }
71
-
72
- #{$colorSelector}-bg {
73
- background-color: $color !important;
74
- }
75
-
76
- #{$colorSelector}-fg {
77
- color: $color !important;
78
- }
79
-
80
- @if ($saturation =="-500") {
81
- $colorSelectorDefault: unquote(".#{$colorName}");
82
-
83
- #{$colorSelectorDefault}-bg {
84
- background-color: $color !important;
85
- }
86
-
87
- #{$colorSelectorDefault}-fg {
88
- color: $color !important;
89
- }
90
- }
91
- }
92
-
93
- @mixin colors-classes-static($theme) {
94
- $palettes: getAllPalettes($theme);
95
- $light-contrasting-classes: (
96
- );
97
- $dark-contrasting-classes: (
98
- );
99
-
100
- @each $paletteName, $palette in $palettes {
101
- // $contrasts: map-get($red, "contrast");
102
- // $contrasts = all contrast colors of $red palette
103
- $contrasts: map-get($palette, "contrast");
104
-
105
- @each $saturation in $saturationLevels {
106
- // $color: map-get($red, 500)
107
- // $contrast: map-get($contrasts, 500); 500 contrast color of $red palette
108
- $color: map-get($palette, $saturation);
109
- $contrast: map-get($contrasts, $saturation);
110
-
111
- @if ($color !=null and $contrast !=null) {
112
- @include _generate-static-color-classes($paletteName, $color, $contrast, "-#{$saturation}");
113
-
114
- // If the contrast color is dark
115
- @if (rgba(black, 1)==rgba($contrast, 1)) {
116
- $dark-contrasting-classes: append($dark-contrasting-classes,
117
- unquote(".#{$paletteName}-#{$saturation}"),
118
- "comma"
119
- );
120
- }
121
-
122
- // if the contrast color is light
123
- @else {
124
- $light-contrasting-classes: append($light-contrasting-classes,
125
- unquote(".#{$paletteName}-#{$saturation}"),
126
- "comma"
127
- );
128
- }
129
- }
130
- }
131
- }
132
-
133
- // Generate contrasting colors
134
- @include _generate-text-color-levels($dark-contrasting-classes, "dark");
135
- @include _generate-text-color-levels($light-contrasting-classes, "light");
136
- }
137
-
138
- // -------------------------------------------------------------------------------------------------------------------
139
- // @ Dynamic color classes generator
140
- // -------------------------------------------------------------------------------------------------------------------
141
- @mixin colors-classes-dynamic($theme) {
142
- $primary: map-get($theme, primary);
143
- $accent: map-get($theme, accent);
144
- $danger: map-get($theme, danger);
145
- $success: map-get($theme, success);
146
- $warn: map-get($theme, warn);
147
- $info: map-get($theme, info);
148
- $background: map-get($theme, background);
149
- $foreground: map-get($theme, foreground);
150
-
151
- $color-functions: (
152
- red: getRed,
153
- pink: getPink,
154
- purple: getPurple,
155
- deep-purple: getDeepPurple,
156
- indigo: getIndigo,
157
- blue: getBlue,
158
- light-blue: getLightBlue,
159
- cyan: getCyan,
160
- teal: getTeal,
161
- green: getGreen,
162
- light-green: getLightGreen,
163
- lime: getLime,
164
- yellow: getYellow,
165
- amber: getAmber,
166
- orange: getOrange,
167
- deep-orange: getDeepOrange,
168
- brown: getBrown,
169
- grey: getGrey,
170
- blue-grey: getBlueGrey,
171
- primary: getPrimary,
172
- accent: getAccent,
173
- danger: getDanger,
174
- warn: getWarn,
175
- success: getSuccess,
176
- info: getInfo,
177
- disabled: getDisabled,
178
- );
179
-
180
- @include colors-classes-static($theme);
181
-
182
- .color-unset {
183
- color: map-get($foreground, foreground);
184
-
185
- .ripple {
186
- background: map-get($foreground, foreground);
187
- }
188
- }
189
-
190
- @each $colorName, $colorFn in $color-functions {
191
- // When a DS token exists for this semantic color (accent, primary, danger, etc.),
192
- // utility classes consume var(--matcha-color-*) so Figma changes propagate at runtime.
193
- // Palette colors (red, blue, green, etc.) keep their static values.
194
- $is-semantic: index((primary, accent, danger, warn, success, info, disabled), $colorName) != null;
195
-
196
- .background-#{$colorName}-alpha {
197
- @if $is-semantic {
198
- background: var(--matcha-color-#{$colorName}-alpha, #{call(#{$colorFn}Alpha, $theme)});
199
- } @else {
200
- background: call(#{$colorFn}Alpha, $theme);
201
- }
202
- }
203
-
204
- .#{$colorName} .ripple {
205
- background: call(#{$colorFn}Alpha, $theme)
206
- }
207
-
208
- .background-#{$colorName} {
209
- @if $is-semantic {
210
- background: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
211
- } @else {
212
- background: call(#{$colorFn}, $theme);
213
- }
214
- }
215
-
216
- .border-color-#{$colorName} {
217
- @if $is-semantic {
218
- border-color: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
219
- } @else {
220
- border-color: call(#{$colorFn}, $theme);
221
- }
222
- }
223
-
224
- .color-#{$colorName} {
225
- @if $is-semantic {
226
- color: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)}) !important;
227
- } @else {
228
- color: call(#{$colorFn}, $theme) !important;
229
- }
230
- }
231
-
232
- .fill-#{$colorName} {
233
- @if $is-semantic {
234
- fill: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
235
- } @else {
236
- fill: call(#{$colorFn}, $theme);
237
- }
238
- }
239
-
240
- .stroke-#{$colorName} {
241
- @if $is-semantic {
242
- stroke: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
243
- } @else {
244
- stroke: call(#{$colorFn}, $theme);
245
- }
246
- }
247
-
248
- .color-#{$colorName}-alpha {
249
- color: call(#{$colorFn}Alpha, $theme) !important
250
- }
251
-
252
- .#{$colorName}-alpha {
253
- background: call(#{$colorFn}Alpha, $theme);
254
- color: call(#{$colorFn}, $theme);
255
- }
256
-
257
- .#{$colorName} {
258
- @if $is-semantic {
259
- background: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
260
- color: var(--matcha-color-#{$colorName}-contrast, #{call(#{$colorFn}Contrast, $theme)});
261
- } @else {
262
- background: call(#{$colorFn}, $theme);
263
- color: call(#{$colorFn}Contrast, $theme);
264
- }
265
- }
266
- }
267
-
268
- .background-basic-alpha {
269
- background: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)});
270
- }
271
-
272
- .basic .ripple {
273
- background: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)});
274
- }
275
-
276
- .background-basic {
277
- background: var(--matcha-color-surface, #{getSurface($theme)});
278
- }
279
-
280
- .border-color-basic {
281
- border-color: var(--matcha-color-fg, #{getForeground($theme)});
282
- }
283
-
284
- .color-basic {
285
- color: var(--matcha-color-fg, #{getForeground($theme)}) !important;
286
- }
287
-
288
- .fill-basic {
289
- fill: var(--matcha-color-surface, #{getSurface($theme)});
290
- }
291
-
292
- .stroke-basic {
293
- stroke: var(--matcha-color-fg, #{getForeground($theme)});
294
- }
295
-
296
- .color-basic-alpha {
297
- color: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)}) !important;
298
- }
299
-
300
- .basic-alpha {
301
- background: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)});
302
- color: var(--matcha-color-fg, #{getForeground($theme)});
303
- }
304
-
305
- .basic {
306
- background: var(--matcha-color-surface, #{getSurface($theme)});
307
- color: var(--matcha-color-fg, #{getForeground($theme)});
308
- }
309
-
310
- // Semantic surface & foreground aliases (used throughout templates)
311
- .background-fg { background: var(--matcha-color-fg, #{getForeground($theme)}); }
312
- .background-bg { background: var(--matcha-color-surface-bg, #{getBackground($theme)}); }
313
- .background-bg-alpha { background: var(--matcha-color-surface-bg-alpha, #{getBackgroundAlpha($theme)}); }
314
- .background-surface { background: var(--matcha-color-surface, #{getSurface($theme)}); }
315
- .background-surface-alpha { background: var(--matcha-color-surface-card-alpha, #{getSurfaceAlpha($theme)}); }
316
- .background-hint { background: var(--matcha-color-hint, #{getGrey($theme)}); }
317
- .color-fg { color: var(--matcha-color-fg, #{getForeground($theme)}) !important; }
318
- .color-hint { color: var(--matcha-color-hint, #{getGrey($theme)}) !important; }
319
- .color-label { color: var(--matcha-color-text-label, #{getBlueGrey($theme)}) !important; }
320
- .color-placeholder { color: var(--matcha-color-text-placeholder, #{getBlueGrey($theme)}) !important; }
321
-
322
- .color-unset {
323
- color: unset;
324
- }
325
-
326
- .background-transparent {
327
- background: transparent;
328
- }
329
-
330
- $attributes: (
331
- color,
332
- border-color,
333
- background,
334
- fill,
335
- stroke
336
- );
337
-
338
- @each $attribute in $attributes {
339
- @if ($attribute !="color") {
340
- .#{$attribute}-bg {
341
- #{$attribute}: getBackground($theme) !important;
342
- }
343
-
344
- .#{$attribute}-bg-alpha {
345
- #{$attribute}: getBackgroundAlpha($theme) !important;
346
- }
347
-
348
- .#{$attribute}-bg-inverse {
349
- #{$attribute}: getBackgroundInverse($theme) !important;
350
- }
351
-
352
- .#{$attribute}-bg-alpha-inverse {
353
- #{$attribute}: getBackgroundAlphaInverse($theme) !important;
354
- }
355
-
356
- .#{$attribute}-surface-inverse {
357
- #{$attribute}: getSurfaceInverse($theme) !important;
358
- }
359
-
360
- .#{$attribute}-surface-alpha-inverse {
361
- #{$attribute}: getSurfaceAlphaInverse($theme) !important;
362
- }
363
- }
364
-
365
- .#{$attribute}-fg,
366
- .#{$attribute}-base,
367
- .#{$attribute}-text {
368
- #{$attribute}: getForeground($theme) !important;
369
- }
370
-
371
- .#{$attribute}-fg-inverse,
372
- .#{$attribute}-base-inverse,
373
- .#{$attribute}-text-inverse {
374
- #{$attribute}: getForegroundInverse($theme) !important;
375
- }
376
-
377
- .#{$attribute}-surface {
378
- #{$attribute}: getSurface($theme) !important;
379
- }
380
-
381
- .#{$attribute}-surface-alpha {
382
- #{$attribute}: getSurfaceAlpha($theme) !important;
383
- }
384
-
385
- .#{$attribute}-placeholder {
386
- #{$attribute}: getGrey($theme) !important;
387
-
388
- &-alpha {
389
- background: rgba(getGrey($theme), 0.2) !important;
390
- }
391
- }
392
-
393
- .#{$attribute}-label {
394
- #{$attribute}: getBlueGrey($theme) !important;
395
- }
396
-
397
- .#{$attribute}-disabled {
398
- #{$attribute}: getDisabled($theme) !important;
399
- }
400
-
401
- .#{$attribute}-disabled-icon {
402
- #{$attribute}: getDisabledContrast($theme) !important;
403
- }
404
- }
1
+ // Saturation Levels
2
+ $saturationLevels: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, A100, A200, A400, A700;
3
+
4
+ // Hues Palette Colors
5
+ $index: 0;
6
+
7
+ // -------------------------------------------------------------------------------------------------------------------
8
+ // @ Text color levels generator
9
+ // -------------------------------------------------------------------------------------------------------------------
10
+ @mixin _generate-text-color-levels($classes, $contrast) {
11
+ @if ($contrast =="dark") {
12
+ #{$classes} {
13
+
14
+ &.secondary-text,
15
+ .secondary-text {
16
+ color: rgba(0, 0, 0, 0.54) !important;
17
+ }
18
+
19
+ &.hint-text,
20
+ .hint-text,
21
+ &.disabled-text,
22
+ .disabled-text {
23
+ color: rgba(0, 0, 0, 0.38) !important;
24
+ }
25
+
26
+ &.divider,
27
+ .divider {
28
+ color: rgba(0, 0, 0, 0.12) !important;
29
+ }
30
+ }
31
+ }
32
+
33
+ @else {
34
+ #{$classes} {
35
+
36
+ &.secondary-text,
37
+ .secondary-text {
38
+ color: rgba(255, 255, 255, 0.7) !important;
39
+ }
40
+
41
+ &.hint-text,
42
+ .hint-text,
43
+ &.disabled-text,
44
+ .disabled-text {
45
+ color: rgba(255, 255, 255, 0.5) !important;
46
+ }
47
+
48
+ &.divider,
49
+ .divider {
50
+ color: rgba(255, 255, 255, 0.12) !important;
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ // -------------------------------------------------------------------------------------------------------------------
57
+ // @ Static color classes generator
58
+ // -------------------------------------------------------------------------------------------------------------------
59
+ @mixin _generate-static-color-classes($colorName, $color, $contrastColor, $saturation) {
60
+ $colorSelector: unquote(".#{$colorName}#{$saturation}");
61
+
62
+ #{$colorSelector} {
63
+ background-color: $color !important;
64
+ color: $contrastColor !important;
65
+
66
+ &[disabled] {
67
+ background-color: rgba($color, 0.12) !important;
68
+ color: rgba($contrastColor, 0.26) !important;
69
+ }
70
+ }
71
+
72
+ #{$colorSelector}-bg {
73
+ background-color: $color !important;
74
+ }
75
+
76
+ #{$colorSelector}-fg {
77
+ color: $color !important;
78
+ }
79
+
80
+ @if ($saturation =="-500") {
81
+ $colorSelectorDefault: unquote(".#{$colorName}");
82
+
83
+ #{$colorSelectorDefault}-bg {
84
+ background-color: $color !important;
85
+ }
86
+
87
+ #{$colorSelectorDefault}-fg {
88
+ color: $color !important;
89
+ }
90
+ }
91
+ }
92
+
93
+ @mixin colors-classes-static($theme) {
94
+ $palettes: getAllPalettes($theme);
95
+ $light-contrasting-classes: (
96
+ );
97
+ $dark-contrasting-classes: (
98
+ );
99
+
100
+ @each $paletteName, $palette in $palettes {
101
+ // $contrasts: map-get($red, "contrast");
102
+ // $contrasts = all contrast colors of $red palette
103
+ $contrasts: map-get($palette, "contrast");
104
+
105
+ @each $saturation in $saturationLevels {
106
+ // $color: map-get($red, 500)
107
+ // $contrast: map-get($contrasts, 500); 500 contrast color of $red palette
108
+ $color: map-get($palette, $saturation);
109
+ $contrast: map-get($contrasts, $saturation);
110
+
111
+ @if ($color !=null and $contrast !=null) {
112
+ @include _generate-static-color-classes($paletteName, $color, $contrast, "-#{$saturation}");
113
+
114
+ // If the contrast color is dark
115
+ @if (rgba(black, 1)==rgba($contrast, 1)) {
116
+ $dark-contrasting-classes: append($dark-contrasting-classes,
117
+ unquote(".#{$paletteName}-#{$saturation}"),
118
+ "comma"
119
+ );
120
+ }
121
+
122
+ // if the contrast color is light
123
+ @else {
124
+ $light-contrasting-classes: append($light-contrasting-classes,
125
+ unquote(".#{$paletteName}-#{$saturation}"),
126
+ "comma"
127
+ );
128
+ }
129
+ }
130
+ }
131
+ }
132
+
133
+ // Generate contrasting colors
134
+ @include _generate-text-color-levels($dark-contrasting-classes, "dark");
135
+ @include _generate-text-color-levels($light-contrasting-classes, "light");
136
+ }
137
+
138
+ // -------------------------------------------------------------------------------------------------------------------
139
+ // @ Dynamic color classes generator
140
+ // -------------------------------------------------------------------------------------------------------------------
141
+ @mixin colors-classes-dynamic($theme) {
142
+ $primary: map-get($theme, primary);
143
+ $accent: map-get($theme, accent);
144
+ $danger: map-get($theme, danger);
145
+ $success: map-get($theme, success);
146
+ $warn: map-get($theme, warn);
147
+ $info: map-get($theme, info);
148
+ $background: map-get($theme, background);
149
+ $foreground: map-get($theme, foreground);
150
+
151
+ $color-functions: (
152
+ red: getRed,
153
+ pink: getPink,
154
+ purple: getPurple,
155
+ deep-purple: getDeepPurple,
156
+ indigo: getIndigo,
157
+ blue: getBlue,
158
+ light-blue: getLightBlue,
159
+ cyan: getCyan,
160
+ teal: getTeal,
161
+ green: getGreen,
162
+ light-green: getLightGreen,
163
+ lime: getLime,
164
+ yellow: getYellow,
165
+ amber: getAmber,
166
+ orange: getOrange,
167
+ deep-orange: getDeepOrange,
168
+ brown: getBrown,
169
+ grey: getGrey,
170
+ blue-grey: getBlueGrey,
171
+ primary: getPrimary,
172
+ accent: getAccent,
173
+ danger: getDanger,
174
+ warn: getWarn,
175
+ success: getSuccess,
176
+ info: getInfo,
177
+ disabled: getDisabled,
178
+ );
179
+
180
+ @include colors-classes-static($theme);
181
+
182
+ .color-unset {
183
+ color: map-get($foreground, foreground);
184
+
185
+ .ripple {
186
+ background: map-get($foreground, foreground);
187
+ }
188
+ }
189
+
190
+ @each $colorName, $colorFn in $color-functions {
191
+ // When a DS token exists for this semantic color (accent, primary, danger, etc.),
192
+ // utility classes consume var(--matcha-color-*) so Figma changes propagate at runtime.
193
+ // Palette colors (red, blue, green, etc.) keep their static values.
194
+ $is-semantic: index((primary, accent, danger, warn, success, info, disabled), $colorName) != null;
195
+
196
+ .background-#{$colorName}-alpha {
197
+ @if $is-semantic {
198
+ background: var(--matcha-color-#{$colorName}-alpha, #{call(#{$colorFn}Alpha, $theme)});
199
+ } @else {
200
+ background: call(#{$colorFn}Alpha, $theme);
201
+ }
202
+ }
203
+
204
+ .#{$colorName} .ripple {
205
+ background: call(#{$colorFn}Alpha, $theme)
206
+ }
207
+
208
+ .background-#{$colorName} {
209
+ @if $is-semantic {
210
+ background: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
211
+ } @else {
212
+ background: call(#{$colorFn}, $theme);
213
+ }
214
+ }
215
+
216
+ .border-color-#{$colorName} {
217
+ @if $is-semantic {
218
+ border-color: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
219
+ } @else {
220
+ border-color: call(#{$colorFn}, $theme);
221
+ }
222
+ }
223
+
224
+ .color-#{$colorName} {
225
+ @if $is-semantic {
226
+ color: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)}) !important;
227
+ } @else {
228
+ color: call(#{$colorFn}, $theme) !important;
229
+ }
230
+ }
231
+
232
+ .fill-#{$colorName} {
233
+ @if $is-semantic {
234
+ fill: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
235
+ } @else {
236
+ fill: call(#{$colorFn}, $theme);
237
+ }
238
+ }
239
+
240
+ .stroke-#{$colorName} {
241
+ @if $is-semantic {
242
+ stroke: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
243
+ } @else {
244
+ stroke: call(#{$colorFn}, $theme);
245
+ }
246
+ }
247
+
248
+ .color-#{$colorName}-alpha {
249
+ color: call(#{$colorFn}Alpha, $theme) !important
250
+ }
251
+
252
+ .#{$colorName}-alpha {
253
+ background: call(#{$colorFn}Alpha, $theme);
254
+ color: call(#{$colorFn}, $theme);
255
+ }
256
+
257
+ .#{$colorName} {
258
+ @if $is-semantic {
259
+ background: var(--matcha-color-#{$colorName}, #{call(#{$colorFn}, $theme)});
260
+ color: var(--matcha-color-#{$colorName}-contrast, #{call(#{$colorFn}Contrast, $theme)});
261
+ } @else {
262
+ background: call(#{$colorFn}, $theme);
263
+ color: call(#{$colorFn}Contrast, $theme);
264
+ }
265
+ }
266
+ }
267
+
268
+ .background-basic-alpha {
269
+ background: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)});
270
+ }
271
+
272
+ .basic .ripple {
273
+ background: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)});
274
+ }
275
+
276
+ .background-basic {
277
+ background: var(--matcha-color-surface, #{getSurface($theme)});
278
+ }
279
+
280
+ .border-color-basic {
281
+ border-color: var(--matcha-color-fg, #{getForeground($theme)});
282
+ }
283
+
284
+ .color-basic {
285
+ color: var(--matcha-color-fg, #{getForeground($theme)}) !important;
286
+ }
287
+
288
+ .fill-basic {
289
+ fill: var(--matcha-color-surface, #{getSurface($theme)});
290
+ }
291
+
292
+ .stroke-basic {
293
+ stroke: var(--matcha-color-fg, #{getForeground($theme)});
294
+ }
295
+
296
+ .color-basic-alpha {
297
+ color: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)}) !important;
298
+ }
299
+
300
+ .basic-alpha {
301
+ background: var(--matcha-color-fg-alpha, #{getForegroundAlpha($theme)});
302
+ color: var(--matcha-color-fg, #{getForeground($theme)});
303
+ }
304
+
305
+ .basic {
306
+ background: var(--matcha-color-surface, #{getSurface($theme)});
307
+ color: var(--matcha-color-fg, #{getForeground($theme)});
308
+ }
309
+
310
+ // Semantic surface & foreground aliases (used throughout templates)
311
+ .background-fg { background: var(--matcha-color-fg, #{getForeground($theme)}); }
312
+ .background-bg { background: var(--matcha-color-surface-bg, #{getBackground($theme)}); }
313
+ .background-bg-alpha { background: var(--matcha-color-surface-bg-alpha, #{getBackgroundAlpha($theme)}); }
314
+ .background-surface { background: var(--matcha-color-surface, #{getSurface($theme)}); }
315
+ .background-surface-alpha { background: var(--matcha-color-surface-card-alpha, #{getSurfaceAlpha($theme)}); }
316
+ .background-hint { background: var(--matcha-color-hint, #{getGrey($theme)}); }
317
+ .color-fg { color: var(--matcha-color-fg, #{getForeground($theme)}) !important; }
318
+ .color-hint { color: var(--matcha-color-hint, #{getGrey($theme)}) !important; }
319
+ .color-label { color: var(--matcha-color-text-label, #{getBlueGrey($theme)}) !important; }
320
+ .color-placeholder { color: var(--matcha-color-text-placeholder, #{getBlueGrey($theme)}) !important; }
321
+
322
+ .color-unset {
323
+ color: unset;
324
+ }
325
+
326
+ .background-transparent {
327
+ background: transparent;
328
+ }
329
+
330
+ $attributes: (
331
+ color,
332
+ border-color,
333
+ background,
334
+ fill,
335
+ stroke
336
+ );
337
+
338
+ @each $attribute in $attributes {
339
+ @if ($attribute !="color") {
340
+ .#{$attribute}-bg {
341
+ #{$attribute}: getBackground($theme) !important;
342
+ }
343
+
344
+ .#{$attribute}-bg-alpha {
345
+ #{$attribute}: getBackgroundAlpha($theme) !important;
346
+ }
347
+
348
+ .#{$attribute}-bg-inverse {
349
+ #{$attribute}: getBackgroundInverse($theme) !important;
350
+ }
351
+
352
+ .#{$attribute}-bg-alpha-inverse {
353
+ #{$attribute}: getBackgroundAlphaInverse($theme) !important;
354
+ }
355
+
356
+ .#{$attribute}-surface-inverse {
357
+ #{$attribute}: getSurfaceInverse($theme) !important;
358
+ }
359
+
360
+ .#{$attribute}-surface-alpha-inverse {
361
+ #{$attribute}: getSurfaceAlphaInverse($theme) !important;
362
+ }
363
+ }
364
+
365
+ .#{$attribute}-fg,
366
+ .#{$attribute}-base,
367
+ .#{$attribute}-text {
368
+ #{$attribute}: getForeground($theme) !important;
369
+ }
370
+
371
+ .#{$attribute}-fg-inverse,
372
+ .#{$attribute}-base-inverse,
373
+ .#{$attribute}-text-inverse {
374
+ #{$attribute}: getForegroundInverse($theme) !important;
375
+ }
376
+
377
+ .#{$attribute}-surface {
378
+ #{$attribute}: getSurface($theme) !important;
379
+ }
380
+
381
+ .#{$attribute}-surface-alpha {
382
+ #{$attribute}: getSurfaceAlpha($theme) !important;
383
+ }
384
+
385
+ .#{$attribute}-placeholder {
386
+ #{$attribute}: getGrey($theme) !important;
387
+
388
+ &-alpha {
389
+ background: rgba(getGrey($theme), 0.2) !important;
390
+ }
391
+ }
392
+
393
+ .#{$attribute}-label {
394
+ #{$attribute}: getBlueGrey($theme) !important;
395
+ }
396
+
397
+ .#{$attribute}-disabled {
398
+ #{$attribute}: getDisabled($theme) !important;
399
+ }
400
+
401
+ .#{$attribute}-disabled-icon {
402
+ #{$attribute}: getDisabledContrast($theme) !important;
403
+ }
404
+ }
405
405
  }