@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.
- package/abstracts/_colors.scss +404 -404
- package/abstracts/_elevation.scss +102 -102
- package/abstracts/_functions.scss +1212 -1212
- package/abstracts/_media-breakpoint.scss +23 -23
- package/abstracts/_typography.scss +127 -127
- package/base/_reset.scss +438 -438
- package/components/app-page-header.scss +260 -0
- package/components/matcha-accordion.scss +294 -157
- package/components/matcha-avatar.scss +171 -31
- package/components/matcha-badge.scss +4 -4
- package/components/matcha-breadcrumb.scss +232 -126
- package/components/matcha-button-toggle.scss +44 -0
- package/components/matcha-buttons.scss +908 -784
- package/components/matcha-calendar.scss +70 -2
- package/components/matcha-cards.scss +28 -2
- package/components/matcha-checkbox.scss +191 -490
- package/components/matcha-chip.scss +297 -212
- package/components/matcha-command-palette.scss +291 -63
- package/components/matcha-crop.scss +407 -172
- package/components/matcha-date.scss +81 -81
- package/components/matcha-divider.scss +86 -31
- package/components/matcha-drawer.scss +201 -50
- package/components/matcha-drop-image.scss +14 -0
- package/components/matcha-drop-list.scss +42 -1
- package/components/matcha-empty-state.scss +195 -83
- package/components/matcha-flag.scss +93 -52
- package/components/matcha-footer.scss +68 -164
- package/components/matcha-form-field.scss +52 -0
- package/components/matcha-form-section.scss +101 -101
- package/components/matcha-header.scss +135 -325
- package/components/matcha-highlight.scss +65 -197
- package/components/matcha-hint-text.scss +21 -0
- package/components/matcha-horizontal-tree.scss +317 -317
- package/components/matcha-icon.scss +17 -25
- package/components/matcha-list.scss +5 -5
- package/components/matcha-menu.scss +13 -0
- package/components/matcha-modal.scss +58 -84
- package/components/matcha-nav.scss +361 -230
- package/components/matcha-notification.scss +413 -197
- package/components/matcha-option.scss +79 -23
- package/components/matcha-paginator.scss +689 -235
- package/components/matcha-panel.scss +42 -26
- package/components/matcha-profile-card.scss +50 -50
- package/components/matcha-progress-bar.scss +257 -153
- package/components/matcha-radio.scss +244 -452
- package/components/matcha-scrollbox-shadow.scss +122 -122
- package/components/matcha-select.scss +3 -3
- package/components/matcha-skeleton.scss +18 -0
- package/components/matcha-slide-toggle.scss +47 -2
- package/components/matcha-slider.scss +172 -75
- package/components/matcha-snack-bar.scss +114 -121
- package/components/matcha-spinner.scss +76 -57
- package/components/matcha-status-pill.scss +82 -0
- package/components/matcha-stepper.scss +377 -177
- package/components/matcha-table.scss +569 -785
- package/components/matcha-tabs.scss +624 -469
- package/components/matcha-text-editor.scss +98 -144
- package/components/matcha-toolbar.scss +359 -206
- package/components/matcha-tooltip.scss +156 -62
- package/components/matcha-tree-view.scss +189 -0
- package/components/matcha-uploader.scss +240 -62
- package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
- package/fonts/manrope/manrope-latin.woff2 +0 -0
- package/layout/matcha-page-layout.scss +776 -0
- package/main.scss +232 -261
- package/package.json +1 -1
- package/tokens/_animations-tokens.scss +37 -37
- package/tokens/_breakpoints-tokens.scss +35 -26
- package/tokens/_color-tokens.scss +1152 -1152
- package/tokens/_css-custom-properties.scss +650 -568
- package/tokens/_spacing-tokens.scss +94 -94
- package/vendors/angular-editor.scss +56 -56
- package/vendors/angular-material-fixes.scss +297 -297
- package/vendors/charts.scss +92 -92
- package/vendors/ng5-slider.scss +56 -56
- package/vendors/ngx-material-timepicker.scss +50 -50
- package/fonts/CircularStd-Black.eot +0 -0
- package/fonts/CircularStd-Black.svg +0 -3426
- package/fonts/CircularStd-Black.ttf +0 -0
- package/fonts/CircularStd-Black.woff +0 -0
- package/fonts/CircularStd-Black.woff2 +0 -0
- package/fonts/CircularStd-Bold.eot +0 -0
- package/fonts/CircularStd-Bold.otf +0 -0
- package/fonts/CircularStd-Bold.svg +0 -13532
- package/fonts/CircularStd-Bold.ttf +0 -0
- package/fonts/CircularStd-Bold.woff +0 -0
- package/fonts/CircularStd-Bold.woff2 +0 -0
- package/fonts/CircularStd-Medium.eot +0 -0
- package/fonts/CircularStd-Medium.otf +0 -0
- package/fonts/CircularStd-Medium.svg +0 -13511
- package/fonts/CircularStd-Medium.ttf +0 -0
- package/fonts/CircularStd-Medium.woff +0 -0
- package/fonts/CircularStd-Medium.woff2 +0 -0
- package/fonts/CircularStd-Regular.eot +0 -0
- package/fonts/CircularStd-Regular.otf +0 -0
- package/fonts/CircularStd-Regular.svg +0 -2378
- package/fonts/CircularStd-Regular.ttf +0 -0
- package/fonts/CircularStd-Regular.woff +0 -0
- package/fonts/CircularStd-Regular.woff2 +0 -0
|
@@ -16,24 +16,8 @@ $icon-size-md: 24px;
|
|
|
16
16
|
$icon-size-lg: 32px;
|
|
17
17
|
$icon-size-xl: 48px;
|
|
18
18
|
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
// para que o texto filho (ligature) renderize como glyph.
|
|
22
|
-
matcha-icon[library="symbols"] {
|
|
23
|
-
font-family: 'Material Symbols Rounded', sans-serif !important;
|
|
24
|
-
font-weight: normal;
|
|
25
|
-
font-style: normal;
|
|
26
|
-
letter-spacing: normal;
|
|
27
|
-
text-transform: none;
|
|
28
|
-
white-space: nowrap;
|
|
29
|
-
word-wrap: normal;
|
|
30
|
-
direction: ltr;
|
|
31
|
-
-webkit-font-smoothing: antialiased;
|
|
32
|
-
-moz-osx-font-smoothing: grayscale;
|
|
33
|
-
text-rendering: optimizeLegibility;
|
|
34
|
-
font-feature-settings: 'liga' !important;
|
|
35
|
-
overflow: hidden;
|
|
36
|
-
}
|
|
19
|
+
// matcha-icon[library="symbols"] — renderiza SVG inline via figma-icons.ts.
|
|
20
|
+
// Sem dependência de font externa. Apenas tamanho via [size="..."] tokens.
|
|
37
21
|
|
|
38
22
|
[class^="i-matcha-"],
|
|
39
23
|
[class*=" i-matcha-"],
|
|
@@ -85,18 +69,26 @@ matcha-icon[library="symbols"] {
|
|
|
85
69
|
}
|
|
86
70
|
|
|
87
71
|
// ── Theme mixin (color inheritance) ─────────────────────────────────────────
|
|
72
|
+
// Pattern CSS-var: `--matcha-icon-color` resolve a cor final.
|
|
73
|
+
// Cascateia naturalmente — qualquer parent pode override sem specificity battle.
|
|
74
|
+
//
|
|
75
|
+
// <!-- Override no consumer (sem [color] attr): -->
|
|
76
|
+
// .my-banner { --matcha-icon-color: var(--matcha-color-feedback-danger); }
|
|
77
|
+
//
|
|
78
|
+
// <!-- Override no proprio matcha-icon: -->
|
|
79
|
+
// <matcha-icon color="danger" /> // attr seta --matcha-icon-color via SCSS abaixo
|
|
88
80
|
@mixin matcha-icon-theme($theme) {
|
|
89
81
|
matcha-icon,
|
|
90
82
|
[class^="i-matcha-"],
|
|
91
83
|
[class*=" i-matcha-"] {
|
|
92
|
-
color: var(--matcha-color-icon-default, #{getBlueGrey($theme)});
|
|
84
|
+
color: var(--matcha-icon-color, var(--matcha-color-icon-default, #{getBlueGrey($theme)}));
|
|
93
85
|
|
|
94
|
-
&.color-fg, &[color="fg"] { color: var(--matcha-color-fg, #{getForeground($theme)}); }
|
|
95
|
-
&.color-accent, &[color="accent"] { color: var(--matcha-color-accent, #{getAccent($theme)}); }
|
|
96
|
-
&.color-primary, &[color="primary"] { color: var(--matcha-color-primary, #{getPrimary($theme)}); }
|
|
97
|
-
&.color-danger, &[color="danger"] { color: var(--matcha-color-danger, #{getDanger($theme)}); }
|
|
98
|
-
&.color-warn, &[color="warn"] { color: var(--matcha-color-warn, #{getWarn($theme)}); }
|
|
99
|
-
&.color-success, &[color="success"] { color: var(--matcha-color-success, #{getSuccess($theme)}); }
|
|
86
|
+
&.color-fg, &[color="fg"] { --matcha-icon-color: var(--matcha-color-fg, #{getForeground($theme)}); }
|
|
87
|
+
&.color-accent, &[color="accent"] { --matcha-icon-color: var(--matcha-color-accent, #{getAccent($theme)}); }
|
|
88
|
+
&.color-primary, &[color="primary"] { --matcha-icon-color: var(--matcha-color-primary, #{getPrimary($theme)}); }
|
|
89
|
+
&.color-danger, &[color="danger"] { --matcha-icon-color: var(--matcha-color-danger, #{getDanger($theme)}); }
|
|
90
|
+
&.color-warn, &[color="warn"] { --matcha-icon-color: var(--matcha-color-warn, #{getWarn($theme)}); }
|
|
91
|
+
&.color-success, &[color="success"] { --matcha-icon-color: var(--matcha-color-success, #{getSuccess($theme)}); }
|
|
100
92
|
|
|
101
93
|
&[disabled],
|
|
102
94
|
&.disabled {
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
border-radius: var(--matcha-radius-md, 4px);
|
|
68
68
|
cursor: pointer;
|
|
69
69
|
outline: none;
|
|
70
|
-
color: var(--matcha-color-fg, #{getForeground($theme)});
|
|
70
|
+
color: var(--matcha-list-item-text, var(--matcha-color-fg, #{getForeground($theme)}));
|
|
71
71
|
text-decoration: none;
|
|
72
72
|
transition: background-color 150ms;
|
|
73
73
|
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
font-size: var(--matcha-text-body-md, 14px);
|
|
132
132
|
font-weight: var(--matcha-weight-regular, 400);
|
|
133
133
|
line-height: var(--matcha-leading-body-md, 20px);
|
|
134
|
-
color: var(--matcha-color-fg, #{getForeground($theme)});
|
|
134
|
+
color: var(--matcha-list-item-text, var(--matcha-color-fg, #{getForeground($theme)}));
|
|
135
135
|
overflow: hidden;
|
|
136
136
|
text-overflow: ellipsis;
|
|
137
137
|
white-space: nowrap;
|
|
@@ -169,9 +169,9 @@
|
|
|
169
169
|
display: flex;
|
|
170
170
|
align-items: center;
|
|
171
171
|
padding: var(--matcha-space-200, 16px) var(--matcha-space-200, 16px) var(--matcha-space-075, 6px);
|
|
172
|
-
font-size: var(--matcha-text-
|
|
172
|
+
font-size: var(--matcha-text-p-tiny, 11px);
|
|
173
173
|
font-weight: var(--matcha-weight-medium, 500);
|
|
174
|
-
line-height: var(--matcha-leading-
|
|
174
|
+
line-height: var(--matcha-leading-p-tiny, 14px);
|
|
175
175
|
letter-spacing: var(--matcha-letter-spacing-wide, 0.5px);
|
|
176
176
|
text-transform: uppercase;
|
|
177
177
|
color: var(--matcha-color-hint, #{getGrey($theme)});
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
padding: var(--matcha-space-050, 4px) var(--matcha-space-200, 16px);
|
|
194
194
|
|
|
195
195
|
.matcha-list-item__label {
|
|
196
|
-
font-size: var(--matcha-text-
|
|
196
|
+
font-size: var(--matcha-text-label-sm, 13px);
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
}
|
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
// matcha-menu.scss — Dropdown context menu (modernized)
|
|
3
3
|
// =============================================================================
|
|
4
4
|
|
|
5
|
+
// matcha-menu é overlay-only: o host nunca deve ocupar espaço no fluxo.
|
|
6
|
+
// display:contents tira o host (e o matcha-panel interno) do layout sem
|
|
7
|
+
// afetar a popover — o overlay interno usa position:fixed/absolute. Sem isso,
|
|
8
|
+
// quando o menu é filho direto de um container flex/grid com `gap` (ex.:
|
|
9
|
+
// page-layout `.center.gap-outside` com gap 24px), o host vazio de altura ~0
|
|
10
|
+
// vira um flex item que consome `gap` dos DOIS lados → "phantom gap" duplo
|
|
11
|
+
// entre o elemento anterior e o seguinte. O matcha-toolbar já fazia isso
|
|
12
|
+
// scoped (`> matcha-menu`); aqui generaliza pra qualquer container.
|
|
13
|
+
matcha-menu,
|
|
14
|
+
matcha-menu > matcha-panel {
|
|
15
|
+
display: contents;
|
|
16
|
+
}
|
|
17
|
+
|
|
5
18
|
.matcha-menu-content {
|
|
6
19
|
button,
|
|
7
20
|
[matcha-button] {
|
|
@@ -69,26 +69,17 @@
|
|
|
69
69
|
to { opacity: 0; }
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
// Enter: scale 0.96 + translate -4 + fade (Material 3 emphasized motion).
|
|
73
|
+
// Mais sutil que 0.95/-8 — menos jumpy, mais "presença suave".
|
|
72
74
|
@keyframes matcha-modal-in {
|
|
73
|
-
from {
|
|
74
|
-
|
|
75
|
-
transform: scale(0.95) translateY(-8px);
|
|
76
|
-
}
|
|
77
|
-
to {
|
|
78
|
-
opacity: 1;
|
|
79
|
-
transform: scale(1) translateY(0);
|
|
80
|
-
}
|
|
75
|
+
from { opacity: 0; transform: scale(0.96) translateY(-4px); }
|
|
76
|
+
to { opacity: 1; transform: scale(1) translateY(0); }
|
|
81
77
|
}
|
|
82
78
|
|
|
79
|
+
// Exit: assimétrico — sai mais rápido que entra (180ms vs 200ms).
|
|
83
80
|
@keyframes matcha-modal-out {
|
|
84
|
-
from {
|
|
85
|
-
|
|
86
|
-
transform: scale(1) translateY(0);
|
|
87
|
-
}
|
|
88
|
-
to {
|
|
89
|
-
opacity: 0;
|
|
90
|
-
transform: scale(0.97) translateY(4px);
|
|
91
|
-
}
|
|
81
|
+
from { opacity: 1; transform: scale(1) translateY(0); }
|
|
82
|
+
to { opacity: 0; transform: scale(0.96) translateY(-4px); }
|
|
92
83
|
}
|
|
93
84
|
|
|
94
85
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -118,10 +109,10 @@
|
|
|
118
109
|
|
|
119
110
|
@include generate-matcha-modal-sizes-classes($helper-breakpoints);
|
|
120
111
|
|
|
121
|
-
// Exit animation
|
|
112
|
+
// Exit animation (added by service before destroy) — accelerated 180ms.
|
|
122
113
|
&.matcha-modal--closing {
|
|
123
114
|
.matcha-modal {
|
|
124
|
-
animation: matcha-modal-out
|
|
115
|
+
animation: matcha-modal-out 180ms var(--matcha-easing-accelerated, cubic-bezier(0.4, 0, 1, 1)) forwards;
|
|
125
116
|
}
|
|
126
117
|
}
|
|
127
118
|
}
|
|
@@ -142,93 +133,76 @@
|
|
|
142
133
|
}
|
|
143
134
|
}
|
|
144
135
|
|
|
145
|
-
// ── Modal card ──
|
|
136
|
+
// ── Modal card (Figma DSV3 1:1) ──
|
|
137
|
+
// bg surface/card · radius 16 · shadow 8r@4y + 32r@12y · sem border.
|
|
146
138
|
.matcha-modal {
|
|
147
139
|
position: relative;
|
|
148
140
|
z-index: 999;
|
|
149
141
|
display: flex;
|
|
150
142
|
flex-direction: column;
|
|
143
|
+
// Perf: contain layout/paint pra browser não recalcular reflow da page atrás.
|
|
144
|
+
contain: layout paint;
|
|
151
145
|
border-radius: var(--matcha-radius-xl, 16px);
|
|
152
|
-
|
|
146
|
+
// Floating overlay sobre scrim — usa surface-card-strong (pure white
|
|
147
|
+
// no light, lifted dark) pra máximo destaque. Cards inline usam o card
|
|
148
|
+
// soft default (#f8faf8) mas modal precisa pop.
|
|
149
|
+
background-color: var(--matcha-color-surface-card-strong, var(--matcha-color-surface-card, #{getSurface($theme)}));
|
|
153
150
|
color: var(--matcha-color-fg, #{getForeground($theme)});
|
|
154
151
|
overflow: hidden;
|
|
155
|
-
animation: matcha-modal-in var(--matcha-duration-
|
|
156
|
-
|
|
157
|
-
// Shadow level 3 (modals, drawers)
|
|
158
|
-
box-shadow: var(--matcha-shadow-3, #{if($is-dark, $shadow-3-dark, $shadow-3-light)});
|
|
152
|
+
animation: matcha-modal-in var(--matcha-duration-fast, 200ms) var(--matcha-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));
|
|
159
153
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
154
|
+
// Figma DSV3 1:1: 0 4px 8px rgba(0,0,0,0.06), 0 12px 32px rgba(0,0,0,0.12)
|
|
155
|
+
box-shadow:
|
|
156
|
+
0 4px 8px rgba(0, 0, 0, 0.06),
|
|
157
|
+
0 12px 32px rgba(0, 0, 0, 0.12);
|
|
163
158
|
}
|
|
164
159
|
|
|
165
|
-
// ──
|
|
166
|
-
.matcha-modal
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
gap: var(--matcha-space-150, 12px);
|
|
171
|
-
padding: var(--matcha-space-200, 16px) var(--matcha-space-300, 24px);
|
|
172
|
-
flex-shrink: 0;
|
|
173
|
-
|
|
174
|
-
// Figma matcha/modal title: 20/800/28 (title-xl ExtraBold)
|
|
175
|
-
.matcha-modal-header__title {
|
|
176
|
-
flex: 1;
|
|
177
|
-
font-size: var(--matcha-text-title-xl, 20px);
|
|
178
|
-
font-weight: var(--matcha-weight-extrabold, 800);
|
|
179
|
-
line-height: var(--matcha-leading-title-xl, 28px);
|
|
180
|
-
color: var(--matcha-color-fg, #{getForeground($theme)});
|
|
181
|
-
}
|
|
160
|
+
// ── Section coloring (layout vive nos component SCSS — single source of truth) ──
|
|
161
|
+
// Theme só pinta: bg dos slots herda surface-card-strong do parent .matcha-modal,
|
|
162
|
+
// texto pega text-primary, dividers usam surface-border.
|
|
163
|
+
.matcha-modal-header__title {
|
|
164
|
+
color: var(--matcha-color-text-primary, #{getForeground($theme)});
|
|
182
165
|
}
|
|
183
166
|
|
|
184
|
-
// ── Content ──
|
|
185
167
|
.matcha-modal-content {
|
|
186
|
-
|
|
187
|
-
overflow-y: auto;
|
|
188
|
-
overflow-x: hidden;
|
|
189
|
-
padding: var(--matcha-space-300, 24px);
|
|
190
|
-
max-height: calc(100vh - 300px);
|
|
191
|
-
color: var(--matcha-color-fg, #{getForeground($theme)});
|
|
192
|
-
|
|
193
|
-
// Smooth content resize
|
|
194
|
-
transition: max-height var(--matcha-duration-normal, 200ms) ease;
|
|
168
|
+
color: var(--matcha-color-text-primary, #{getForeground($theme)});
|
|
195
169
|
}
|
|
196
170
|
|
|
197
|
-
// ──
|
|
198
|
-
.matcha-modal-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
justify-content: flex-end;
|
|
202
|
-
gap: var(--matcha-space-150, 12px);
|
|
203
|
-
padding: var(--matcha-space-200, 16px) var(--matcha-space-300, 24px);
|
|
204
|
-
flex-shrink: 0;
|
|
205
|
-
|
|
206
|
-
// Mobile: stack buttons vertically
|
|
207
|
-
@media (max-width: 575px) {
|
|
208
|
-
flex-direction: column-reverse;
|
|
209
|
-
|
|
210
|
-
.matcha-button {
|
|
211
|
-
width: 100%;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
171
|
+
// ── Focus ring on modal ──
|
|
172
|
+
.matcha-modal:focus-visible {
|
|
173
|
+
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
|
|
174
|
+
outline-offset: var(--matcha-state-focus-ring-offset, 2px);
|
|
214
175
|
}
|
|
176
|
+
}
|
|
215
177
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
178
|
+
// ── Forced colors (Windows High Contrast) ──
|
|
179
|
+
// rgba/border hairline pode sumir; CanvasText/Canvas são system tokens visíveis.
|
|
180
|
+
@media (forced-colors: active) {
|
|
181
|
+
.matcha-modal {
|
|
182
|
+
border: 1px solid CanvasText;
|
|
183
|
+
background-color: Canvas !important;
|
|
220
184
|
}
|
|
185
|
+
.matcha-modal-backdrop {
|
|
186
|
+
background: rgba(0, 0, 0, 0.7) !important;
|
|
187
|
+
backdrop-filter: none !important;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
221
190
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
191
|
+
// ── Reduced transparency (acessibilidade visual) ──
|
|
192
|
+
// Usuários com dificuldade de ler texto sobre blur preferem solid bg.
|
|
193
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
194
|
+
.matcha-modal-backdrop {
|
|
195
|
+
background: rgba(0, 0, 0, 0.85) !important;
|
|
196
|
+
backdrop-filter: none !important;
|
|
227
197
|
}
|
|
198
|
+
}
|
|
228
199
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
200
|
+
// ── Print ──
|
|
201
|
+
// Convenção DSV3: chrome flutuante (modal/drawer/tooltip) some em impressão.
|
|
202
|
+
@media print {
|
|
203
|
+
.matcha-overlay-container,
|
|
204
|
+
.matcha-modal-backdrop,
|
|
205
|
+
matcha-modal {
|
|
206
|
+
display: none !important;
|
|
233
207
|
}
|
|
234
208
|
}
|