@inchurch/matcha-theme 20.276.0 → 20.278.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 (70) hide show
  1. package/abstracts/_functions.scss +0 -26
  2. package/abstracts/_theme-api.scss +230 -0
  3. package/base/_reset.scss +5 -1
  4. package/components/app-page-header.scss +16 -17
  5. package/components/matcha-accordion.scss +5 -6
  6. package/components/matcha-audio-player.scss +1 -2
  7. package/components/matcha-autocomplete.scss +10 -11
  8. package/components/matcha-avatar.scss +3 -3
  9. package/components/matcha-badge.scss +11 -11
  10. package/components/matcha-breadcrumb.scss +6 -7
  11. package/components/matcha-button-toggle.scss +2 -2
  12. package/components/matcha-buttons.scss +34 -34
  13. package/components/matcha-calendar.scss +31 -35
  14. package/components/matcha-cards.scss +31 -32
  15. package/components/matcha-chart-card.scss +5 -12
  16. package/components/matcha-checkbox.scss +13 -13
  17. package/components/matcha-chip.scss +2 -2
  18. package/components/matcha-color-pick.scss +1 -2
  19. package/components/matcha-command-palette.scss +17 -18
  20. package/components/matcha-crop.scss +0 -1
  21. package/components/matcha-date.scss +3 -3
  22. package/components/matcha-draggable.scss +4 -5
  23. package/components/matcha-drawer.scss +18 -28
  24. package/components/matcha-drop-list.scss +51 -52
  25. package/components/matcha-emoji.scss +2 -2
  26. package/components/{matcha-uploader.scss → matcha-file-uploader.scss} +193 -116
  27. package/components/matcha-footer.scss +3 -4
  28. package/components/matcha-form-field.scss +3 -3
  29. package/components/matcha-form-section.scss +5 -6
  30. package/components/matcha-header.scss +3 -4
  31. package/components/matcha-hint-text.scss +4 -4
  32. package/components/matcha-horizontal-tree.scss +15 -16
  33. package/components/matcha-icon.scss +27 -27
  34. package/components/matcha-image.scss +2 -3
  35. package/components/matcha-list.scss +11 -12
  36. package/components/matcha-menu.scss +2 -2
  37. package/components/matcha-modal.scss +5 -6
  38. package/components/matcha-nav.scss +16 -16
  39. package/components/matcha-notification.scss +3 -4
  40. package/components/matcha-option.scss +19 -0
  41. package/components/matcha-page-builder.scss +16 -16
  42. package/components/matcha-paginator.scss +6 -7
  43. package/components/matcha-panel.scss +4 -5
  44. package/components/matcha-profile-card.scss +3 -3
  45. package/components/matcha-progress-bar.scss +1 -1
  46. package/components/matcha-radio.scss +6 -6
  47. package/components/matcha-scrollbar.scss +1 -2
  48. package/components/matcha-scrollbox-shadow.scss +35 -37
  49. package/components/matcha-section.scss +5 -9
  50. package/components/matcha-select-multiple.scss +56 -0
  51. package/components/matcha-select.scss +7 -7
  52. package/components/matcha-skeleton.scss +6 -7
  53. package/components/matcha-slide-toggle.scss +33 -299
  54. package/components/matcha-slider.scss +5 -5
  55. package/components/matcha-snack-bar.scss +17 -18
  56. package/components/matcha-spin.scss +12 -103
  57. package/components/matcha-spinner.scss +1 -1
  58. package/components/matcha-stepper.scss +15 -16
  59. package/components/matcha-table.scss +14 -15
  60. package/components/matcha-tabs.scss +22 -24
  61. package/components/matcha-text-editor.scss +78 -78
  62. package/components/matcha-time.scss +2 -2
  63. package/components/matcha-toolbar.scss +1 -1
  64. package/components/matcha-tooltip.scss +14 -12
  65. package/main.scss +7 -2
  66. package/package.json +1 -1
  67. package/tokens/_color-tokens.scss +0 -3
  68. package/tokens/_css-custom-properties.scss +233 -179
  69. package/tokens/_primitives.scss +82 -0
  70. package/tokens/_semantic-aliases.scss +120 -0
@@ -177,7 +177,7 @@ matcha-radio:has(.matcha-radio-hint) .matcha-radio-text {
177
177
  }
178
178
 
179
179
  .matcha-radio-input {
180
- border-color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
180
+ border-color: var(--matcha-color-text-label);
181
181
 
182
182
  &:checked {
183
183
  border-color: var(--matcha-color-accent);
@@ -193,7 +193,7 @@ matcha-radio:has(.matcha-radio-hint) .matcha-radio-text {
193
193
  &[color="primary"] {
194
194
  .matcha-radio-touch { color: var(--matcha-color-primary); }
195
195
  .matcha-radio-input {
196
- border-color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
196
+ border-color: var(--matcha-color-text-label);
197
197
  &:checked {
198
198
  border-color: var(--matcha-color-primary);
199
199
  &::after { background-color: var(--matcha-color-primary); }
@@ -205,7 +205,7 @@ matcha-radio:has(.matcha-radio-hint) .matcha-radio-text {
205
205
  &[color="success"] {
206
206
  .matcha-radio-touch { color: var(--matcha-color-success); }
207
207
  .matcha-radio-input {
208
- border-color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
208
+ border-color: var(--matcha-color-text-label);
209
209
  &:checked {
210
210
  border-color: var(--matcha-color-success);
211
211
  &::after { background-color: var(--matcha-color-success); }
@@ -217,7 +217,7 @@ matcha-radio:has(.matcha-radio-hint) .matcha-radio-text {
217
217
  &[color="warn"] {
218
218
  .matcha-radio-touch { color: var(--matcha-color-warn); }
219
219
  .matcha-radio-input {
220
- border-color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
220
+ border-color: var(--matcha-color-text-label);
221
221
  &:checked {
222
222
  border-color: var(--matcha-color-warn);
223
223
  &::after { background-color: var(--matcha-color-warn); }
@@ -229,7 +229,7 @@ matcha-radio:has(.matcha-radio-hint) .matcha-radio-text {
229
229
  &[color="danger"] {
230
230
  .matcha-radio-touch { color: var(--matcha-color-danger); }
231
231
  .matcha-radio-input {
232
- border-color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
232
+ border-color: var(--matcha-color-text-label);
233
233
  &:checked {
234
234
  border-color: var(--matcha-color-danger);
235
235
  &::after { background-color: var(--matcha-color-danger); }
@@ -241,7 +241,7 @@ matcha-radio:has(.matcha-radio-hint) .matcha-radio-text {
241
241
  &[color="info"] {
242
242
  .matcha-radio-touch { color: var(--matcha-color-info); }
243
243
  .matcha-radio-input {
244
- border-color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
244
+ border-color: var(--matcha-color-text-label);
245
245
  &:checked {
246
246
  border-color: var(--matcha-color-info);
247
247
  &::after { background-color: var(--matcha-color-info); }
@@ -1,7 +1,6 @@
1
1
  @use "sass:map";
2
2
 
3
3
  @mixin matcha-scrollbar-theme($theme) {
4
- $is-dark: map.get($theme, is-dark);
5
4
 
6
5
  :not(.is-mobile) {
7
6
  ::-webkit-scrollbar {
@@ -11,7 +10,7 @@
11
10
  }
12
11
 
13
12
  ::-webkit-scrollbar:hover {
14
- background-color: var(--matcha-color-surface-hover, #{getBackgroundAlpha($theme)});
13
+ background-color: var(--matcha-color-surface-hover);
15
14
  }
16
15
 
17
16
  ::-webkit-scrollbar-thumb {
@@ -1,5 +1,4 @@
1
1
  @mixin matcha-scrollbox-shadow($theme) {
2
- $is-dark: map-get($theme, is-dark);
3
2
 
4
3
  // Drop shadow inside of area when scrolled vertically
5
4
  .scrollbox,
@@ -9,14 +8,14 @@
9
8
  overflow: overlay;
10
9
  background:
11
10
  /* Shadow covers */
12
- linear-gradient(getSurface($theme) 30%, rgba(255, 255, 255, 0)),
13
- linear-gradient(rgba(255, 255, 255, 0), getSurface($theme) 70%) 0 100%,
11
+ linear-gradient(var(--matcha-color-surface) 30%, rgba(255, 255, 255, 0)),
12
+ linear-gradient(rgba(255, 255, 255, 0), var(--matcha-color-surface) 70%) 0 100%,
14
13
  /* Shadows */
15
14
  linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 50%),
16
15
  linear-gradient(0deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 50%) 0 100%;
17
16
 
18
17
  background-repeat: no-repeat;
19
- background-color: getSurface($theme);
18
+ background-color: var(--matcha-color-surface);
20
19
  background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;
21
20
 
22
21
  /* Opera doesn't support this in the shorthand */
@@ -27,10 +26,9 @@
27
26
  .scrollbox-horizontal,
28
27
  .scrollbox-h,
29
28
  .scrollbox-x {
30
- $fg: if(getForeground($theme), getForeground($theme), #212121);
31
- box-shadow: 0px -16px 0px 0px inset getSurface($theme), 20px 0 16px -24px inset rgba($fg, 0.15),
32
- -20px 0 16px -24px inset rgba($fg, 0.15), 0px 2px 2px 0px rgba($fg, 0.035), 0px 2px 2px 0px rgba($fg, 0.035),
33
- 0px 2px 2px 0px rgba($fg, 0.035);
29
+ box-shadow: 0px -16px 0px 0px inset var(--matcha-color-surface), 20px 0 16px -24px inset color-mix(in srgb, var(--matcha-color-fg) 15%, transparent),
30
+ -20px 0 16px -24px inset color-mix(in srgb, var(--matcha-color-fg) 15%, transparent), 0px 2px 2px 0px color-mix(in srgb, var(--matcha-color-fg) 3.5%, transparent), 0px 2px 2px 0px color-mix(in srgb, var(--matcha-color-fg) 3.5%, transparent),
31
+ 0px 2px 2px 0px color-mix(in srgb, var(--matcha-color-fg) 3.5%, transparent);
34
32
  overflow: auto;
35
33
  background: linear-gradient(90deg,
36
34
  rgba(0, 0, 0, 0.1),
@@ -54,68 +52,68 @@
54
52
  .scrollbox-horizontal-content,
55
53
  .scrollbox-h-content,
56
54
  .scrollbox-x-content {
57
- background: getSurface($theme);
55
+ background: var(--matcha-color-surface);
58
56
  background: linear-gradient(90deg,
59
- getSurface($theme) 10px,
60
- getSurface($theme),
57
+ var(--matcha-color-surface) 10px,
58
+ var(--matcha-color-surface),
61
59
  rgba(255, 255, 255, 0) calc(0% + 10px),
62
60
  rgba(255, 255, 255, 0) calc(100% - 10px),
63
- getSurface($theme) 10px,
64
- getSurface($theme));
61
+ var(--matcha-color-surface) 10px,
62
+ var(--matcha-color-surface));
65
63
  background: -moz-linear-gradient(90deg,
66
- getSurface($theme) 10px,
67
- getSurface($theme),
64
+ var(--matcha-color-surface) 10px,
65
+ var(--matcha-color-surface),
68
66
  rgba(255, 255, 255, 0) calc(0% + 10px),
69
67
  rgba(255, 255, 255, 0) calc(100% - 10px),
70
- getSurface($theme) 10px,
71
- getSurface($theme));
68
+ var(--matcha-color-surface) 10px,
69
+ var(--matcha-color-surface));
72
70
  background: -webkit-linear-gradient(0deg,
73
- getSurface($theme) 10px,
74
- getSurface($theme),
71
+ var(--matcha-color-surface) 10px,
72
+ var(--matcha-color-surface),
75
73
  rgba(255, 255, 255, 0) calc(0% + 10px),
76
74
  rgba(255, 255, 255, 0) calc(100% - 10px),
77
- getSurface($theme) 10px,
78
- getSurface($theme));
75
+ var(--matcha-color-surface) 10px,
76
+ var(--matcha-color-surface));
79
77
  }
80
78
 
81
79
  .scrollbox-horizontal-content-background,
82
80
  .scrollbox-h-content-background,
83
81
  .scrollbox-x-content-background {
84
- background: getBackground($theme);
82
+ background: var(--matcha-color-bg);
85
83
  background: linear-gradient(90deg,
86
- getBackground($theme) 10px,
87
- getBackground($theme),
84
+ var(--matcha-color-bg) 10px,
85
+ var(--matcha-color-bg),
88
86
  rgba(255, 255, 255, 0) calc(0% + 10px),
89
87
  rgba(255, 255, 255, 0) calc(100% - 10px),
90
- getBackground($theme) 10px,
91
- getBackground($theme));
88
+ var(--matcha-color-bg) 10px,
89
+ var(--matcha-color-bg));
92
90
  background: -moz-linear-gradient(90deg,
93
- getBackground($theme) 10px,
94
- getBackground($theme),
91
+ var(--matcha-color-bg) 10px,
92
+ var(--matcha-color-bg),
95
93
  rgba(255, 255, 255, 0) calc(0% + 10px),
96
94
  rgba(255, 255, 255, 0) calc(100% - 10px),
97
- getBackground($theme) 10px,
98
- getBackground($theme));
95
+ var(--matcha-color-bg) 10px,
96
+ var(--matcha-color-bg));
99
97
  background: -webkit-linear-gradient(0deg,
100
- getBackground($theme) 10px,
101
- getBackground($theme),
98
+ var(--matcha-color-bg) 10px,
99
+ var(--matcha-color-bg),
102
100
  rgba(255, 255, 255, 0) calc(0% + 10px),
103
101
  rgba(255, 255, 255, 0) calc(100% - 10px),
104
- getBackground($theme) 10px,
105
- getBackground($theme));
102
+ var(--matcha-color-bg) 10px,
103
+ var(--matcha-color-bg));
106
104
  }
107
105
 
108
106
  .scrollbox-background {
109
107
  overflow: overlay;
110
108
  background:
111
109
  /* Shadow covers */
112
- linear-gradient(getBackground($theme) 30%, rgba(255, 255, 255, 0)),
113
- linear-gradient(rgba(255, 255, 255, 0), getBackground($theme) 70%) 0 100%,
110
+ linear-gradient(var(--matcha-color-bg) 30%, rgba(255, 255, 255, 0)),
111
+ linear-gradient(rgba(255, 255, 255, 0), var(--matcha-color-bg) 70%) 0 100%,
114
112
  /* Shadows */
115
113
  linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 50%),
116
114
  linear-gradient(0deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 50%) 0 100%;
117
115
  background-repeat: no-repeat;
118
- background-color: getBackground($theme);
116
+ background-color: var(--matcha-color-bg);
119
117
  background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;
120
118
  /* Opera doesn't support this in the shorthand */
121
119
  background-attachment: local, local, scroll, scroll;
@@ -8,22 +8,18 @@
8
8
  // =============================================================================
9
9
 
10
10
  @mixin matcha-section-theme($theme) {
11
- $is-dark: map.get($theme, is-dark);
12
-
13
11
  .matcha-section {
14
- background: var(--matcha-color-surface, #{getSurface($theme)});
15
-
16
- @if $is-dark {
17
- border: var(--matcha-border-hairline, 1px) solid rgba(#212121, 0.06); // ok: structural
18
- }
12
+ background: var(--matcha-color-surface);
13
+ // Borda só-no-dark vira valor por modo (light = 0/transparent, sem mudar layout).
14
+ border: var(--matcha-section-border);
19
15
  }
20
16
 
21
17
  .matcha-section__subtitle {
22
- color: var(--matcha-color-fg, #{getForeground($theme)});
18
+ color: var(--matcha-color-fg);
23
19
  }
24
20
 
25
21
  .matcha-section__description {
26
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
22
+ color: var(--matcha-color-text-label);
27
23
  }
28
24
  }
29
25
 
@@ -0,0 +1,56 @@
1
+ @mixin matcha-select-multiple-theme($theme) {
2
+ $foreground: map-get($theme, foreground);
3
+
4
+ // O matcha-select-multiple reusa as classes .matcha-select-* do matcha-select
5
+ // (.matcha-select-container, .matcha-select-trigger, .matcha-select-value, etc.),
6
+ // então herda toda a aparência do trigger. Aqui replicamos apenas as regras
7
+ // ligadas ao seletor de elemento, que são específicas por tag.
8
+ matcha-select-multiple {
9
+ width: 100%;
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: space-between;
13
+ }
14
+
15
+ // Campo de busca dentro do painel (fixo no topo enquanto rola as opções)
16
+ .matcha-select-multiple-search {
17
+ position: sticky;
18
+ top: 0;
19
+ z-index: 1;
20
+ display: flex;
21
+ align-items: center;
22
+ gap: 8px;
23
+ padding: 8px 12px;
24
+ background: var(--matcha-color-surface);
25
+ border-bottom: 1px solid var(--matcha-color-bg);
26
+
27
+ .matcha-select-multiple-search-input {
28
+ flex: 1;
29
+ border: 0;
30
+ outline: none;
31
+ background: transparent;
32
+ color: map-get($foreground, text);
33
+ font-size: 14px;
34
+ line-height: 20px;
35
+
36
+ &::placeholder {
37
+ color: var(--matcha-color-text-muted);
38
+ }
39
+ }
40
+ }
41
+
42
+ // Seção fixa das opções selecionadas (topo do painel, independente da busca)
43
+ .matcha-select-multiple-selected {
44
+ background: var(--matcha-color-surface);
45
+ border-bottom: 1px solid var(--matcha-color-bg);
46
+
47
+ .matcha-select-multiple-selected-header {
48
+ padding: 8px 12px 4px;
49
+ font-size: 11px;
50
+ font-weight: 600;
51
+ text-transform: uppercase;
52
+ letter-spacing: 0.04em;
53
+ color: var(--matcha-color-text-muted);
54
+ }
55
+ }
56
+ }
@@ -68,7 +68,7 @@
68
68
  box-sizing: border-box;
69
69
 
70
70
  &:focus-visible:not([disabled]) {
71
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
71
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
72
72
  outline-offset: var(--matcha-state-focus-ring-offset, 2px);
73
73
  }
74
74
  }
@@ -79,10 +79,10 @@
79
79
  overflow: hidden;
80
80
  text-overflow: ellipsis;
81
81
  white-space: nowrap;
82
- color: var(--matcha-color-fg, #{getForeground($theme)});
82
+ color: var(--matcha-color-fg);
83
83
 
84
84
  &.matcha-select-placeholder {
85
- color: var(--matcha-color-text-placeholder, #{getGrey($theme)});
85
+ color: var(--matcha-color-text-placeholder);
86
86
  }
87
87
  }
88
88
 
@@ -95,7 +95,7 @@
95
95
  margin: 0;
96
96
  border: 0;
97
97
  background: transparent;
98
- color: var(--matcha-color-fg, #{getForeground($theme)});
98
+ color: var(--matcha-color-fg);
99
99
  font: inherit;
100
100
  font-family: var(--matcha-font-family);
101
101
  outline: none;
@@ -103,11 +103,11 @@
103
103
  cursor: text;
104
104
 
105
105
  &::placeholder {
106
- color: var(--matcha-color-text-placeholder, #{getGrey($theme)});
106
+ color: var(--matcha-color-text-placeholder);
107
107
  }
108
108
 
109
109
  &:disabled {
110
- color: var(--matcha-color-disabled-fg, #{getDisabledContrast($theme)});
110
+ color: var(--matcha-color-disabled-fg);
111
111
  cursor: not-allowed;
112
112
  background: transparent;
113
113
  }
@@ -255,7 +255,7 @@
255
255
  }
256
256
 
257
257
  .matcha-select-value {
258
- color: var(--matcha-color-disabled-fg, #{getDisabledContrast($theme)});
258
+ color: var(--matcha-color-disabled-fg);
259
259
  }
260
260
 
261
261
  .matcha-select-arrow {
@@ -99,26 +99,25 @@
99
99
  // ── Theme mixin ─────────────────────────────────────────────────────────────
100
100
 
101
101
  @mixin matcha-skeleton-theme($theme) {
102
- $is-dark: map.get($theme, is-dark);
103
102
 
104
103
  .matcha-skeleton-line,
105
104
  .matcha-skeleton-card__avatar,
106
105
  .matcha-skeleton-card__image,
107
106
  .matcha-skeleton-table__header,
108
107
  .matcha-skeleton-table__cell-avatar {
109
- background: var(--matcha-color-surface-card-alpha, #{getSurfaceAlpha($theme)});
108
+ background: var(--matcha-color-surface-card-alpha);
110
109
  }
111
110
 
112
111
  .matcha-skeleton-table__row--alt {
113
- background: var(--matcha-color-surface-bg-alpha, #{getBackgroundAlpha($theme)});
112
+ background: var(--matcha-color-surface-bg-alpha);
114
113
  }
115
114
 
116
115
  .skeleton-animated-background {
117
116
  background: linear-gradient(
118
117
  to right,
119
- var(--matcha-color-disabled-bg, #{getDisabled($theme)}),
120
- #{if($is-dark, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.5))},
121
- var(--matcha-color-disabled-bg, #{getDisabled($theme)})
118
+ var(--matcha-color-disabled-bg),
119
+ var(--matcha-skeleton-shimmer),
120
+ var(--matcha-color-disabled-bg)
122
121
  );
123
122
  background-size: 200% 100%;
124
123
  animation: matcha-skeleton-shimmer 1s linear infinite;
@@ -132,7 +131,7 @@
132
131
  @media (prefers-reduced-motion: reduce) {
133
132
  .skeleton-animated-background {
134
133
  animation: none;
135
- background: var(--matcha-color-disabled-bg, #{getDisabled($theme)});
134
+ background: var(--matcha-color-disabled-bg);
136
135
  }
137
136
  }
138
137
  }