@inchurch/matcha-theme 21.4.0 → 22.1.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 +236 -236
- package/abstracts/_elevation.scss +108 -108
- package/abstracts/_functions.scss +321 -321
- package/abstracts/_media-breakpoint.scss +26 -26
- package/abstracts/_theme-api.scss +219 -219
- package/abstracts/_typography.scss +128 -128
- package/base/_reset.scss +446 -445
- package/components/app-page-header.scss +260 -260
- package/components/matcha-accordion.scss +293 -293
- package/components/matcha-audio-player.scss +31 -31
- package/components/matcha-autocomplete.scss +145 -145
- package/components/matcha-avatar.scss +440 -301
- package/components/matcha-badge.scss +120 -120
- package/components/matcha-breadcrumb.scss +231 -231
- package/components/matcha-button-toggle.scss +383 -384
- package/components/matcha-buttons.scss +913 -913
- package/components/matcha-calendar.scss +218 -218
- package/components/matcha-cards.scss +230 -230
- package/components/matcha-chart-card.scss +53 -53
- package/components/matcha-checkbox.scss +255 -255
- package/components/matcha-chip.scss +292 -292
- package/components/matcha-color-pick.scss +34 -34
- package/components/matcha-command-palette.scss +316 -316
- package/components/matcha-contact.scss +35 -0
- package/components/matcha-crop.scss +406 -406
- package/components/matcha-date.scss +81 -81
- package/components/matcha-divider.scss +100 -100
- package/components/matcha-draggable.scss +23 -23
- package/components/matcha-drawer.scss +376 -376
- package/components/matcha-drop-image.scss +14 -14
- package/components/matcha-drop-list.scss +430 -430
- package/components/matcha-emoji.scss +69 -69
- package/components/matcha-empty-state.scss +230 -230
- package/components/matcha-file-uploader.scss +471 -471
- package/components/matcha-flag.scss +103 -103
- package/components/matcha-footer.scss +91 -91
- package/components/matcha-form-field.scss +606 -606
- package/components/matcha-form-section.scss +100 -100
- package/components/matcha-header.scss +135 -135
- package/components/matcha-highlight.scss +164 -164
- package/components/matcha-hint-text.scss +90 -90
- package/components/matcha-horizontal-tree.scss +316 -316
- package/components/matcha-icon.scss +98 -98
- package/components/matcha-image.scss +61 -61
- package/components/matcha-list.scss +211 -211
- package/components/matcha-menu.scss +99 -99
- package/components/matcha-modal.scss +210 -210
- package/components/matcha-nav.scss +581 -581
- package/components/matcha-notification.scss +413 -413
- package/components/matcha-option.scss +170 -170
- package/components/matcha-page-builder.scss +4196 -4196
- package/components/matcha-paginator.scss +689 -689
- package/components/matcha-panel.scss +194 -194
- package/components/matcha-profile-card.scss +50 -50
- package/components/matcha-progress-bar.scss +313 -313
- package/components/matcha-radio.scss +320 -320
- package/components/matcha-ripple.scss +7 -7
- package/components/matcha-scrollbar.scss +33 -33
- package/components/matcha-scrollbox-shadow.scss +120 -120
- package/components/matcha-section.scss +102 -102
- package/components/matcha-select-multiple.scss +56 -56
- package/components/matcha-select.scss +667 -667
- package/components/matcha-skeleton.scss +155 -155
- package/components/matcha-slide-toggle.scss +369 -369
- package/components/matcha-slider.scss +285 -285
- package/components/matcha-snack-bar.scss +259 -259
- package/components/matcha-spin.scss +164 -164
- package/components/matcha-spinner.scss +97 -97
- package/components/matcha-status-pill.scss +38 -18
- package/components/matcha-stepper.scss +376 -376
- package/components/matcha-table-cell.scss +49 -41
- package/components/matcha-table.scss +579 -579
- package/components/matcha-tabs.scss +600 -600
- package/components/matcha-text-editor.scss +105 -105
- package/components/matcha-time.scss +33 -33
- package/components/matcha-timepicker.scss +13 -13
- package/components/matcha-toolbar.scss +359 -359
- package/components/matcha-tooltip.scss +224 -224
- package/components/matcha-tree-view.scss +257 -257
- package/layout/matcha-page-layout.scss +778 -778
- package/main.scss +331 -329
- package/package.json +1 -1
- package/tokens/_animations-tokens.scss +37 -37
- package/tokens/_breakpoints-tokens.scss +35 -35
- package/tokens/_color-tokens.scss +274 -274
- package/tokens/_elevation-tokens.scss +33 -33
- package/tokens/_emit-tokens.scss +324 -324
- package/tokens/_material-palette.scss +1149 -1149
- package/tokens/_primitives.scss +98 -98
- package/tokens/_semantic-aliases.scss +120 -120
- package/tokens/_spacing-tokens.scss +94 -94
- package/tokens/_static-tokens.scss +137 -137
- package/tokens/_typography-tokens.scss +65 -65
- package/vendors/charts.scss +90 -90
package/tokens/_emit-tokens.scss
CHANGED
|
@@ -1,324 +1,324 @@
|
|
|
1
|
-
@use "elevation-tokens" as *;
|
|
2
|
-
@use "static-tokens" as *;
|
|
3
|
-
@use "color-tokens" as *;
|
|
4
|
-
@use "semantic-aliases" as *;
|
|
5
|
-
@use "material-palette" as *;
|
|
6
|
-
@use "../abstracts/theme-api" as *;
|
|
7
|
-
// =============================================================================
|
|
8
|
-
// MATCHA — EMISSÃO DOS TOKENS DO TEMA (CSS custom properties)
|
|
9
|
-
// =============================================================================
|
|
10
|
-
// Lógica de emissão À MÃO (NÃO é gerado). Monta as --matcha-* de um tema.
|
|
11
|
-
// Os DADOS vêm de arquivos próprios, Figma-sourced:
|
|
12
|
-
// - cor: _color-tokens.scss ($matcha-color-tokens — synced via sync-tokens)
|
|
13
|
-
// - primitivas: _primitives.scss (gerado · --matcha-prim-*)
|
|
14
|
-
// - aliases: _semantic-aliases.scss (gerado · papel → primitiva)
|
|
15
|
-
// - não-cor: migrarão p/ _static-tokens.scss (gerado de global.json — A2)
|
|
16
|
-
// O mixin matcha-css-custom-properties($theme) (API PÚBLICA — nome preservado) emite
|
|
17
|
-
// cor (via matcha-emit-color-properties) + estáticos + mode-dependent + aliases.
|
|
18
|
-
// IMPORT ORDER: main.scss importa _color-tokens ANTES deste arquivo.
|
|
19
|
-
// =============================================================================
|
|
20
|
-
@use "sass:map";
|
|
21
|
-
|
|
22
|
-
// matcha-emit-color-properties() foi MOVIDO para abstracts/_theme-api.scss (quebra o
|
|
23
|
-
// ciclo @use emit-tokens↔theme-api). Aqui fica disponível via `@use theme-api` (topo).
|
|
24
|
-
|
|
25
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
26
|
-
// 4. MIXIN CANÔNICO — assinatura preservada (retrocompat).
|
|
27
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
28
|
-
@mixin matcha-css-custom-properties($is-dark: false) {
|
|
29
|
-
// API nova: recebe SÓ o modo (is-dark). As cores vêm das synced tokens do Figma
|
|
30
|
-
// ($matcha-colors-light/dark), não de um mapa $theme construído por light-theme().
|
|
31
|
-
|
|
32
|
-
// ── Cores semânticas (ver $matcha-color-tokens acima) ────────────────────
|
|
33
|
-
// Aliases sólidos → var(--matcha-prim-*); derivados/alphas/cross-semantic → hex literal.
|
|
34
|
-
@include matcha-emit-color-properties(
|
|
35
|
-
if($is-dark, $matcha-colors-dark, $matcha-colors-light),
|
|
36
|
-
if($is-dark, $matcha-prim-aliases-dark, $matcha-prim-aliases-light)
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
// ── Cores de PALETA como tokens (base mode-flipped) ───────────────────────
|
|
40
|
-
// Alimentam as utility classes .color-red/.background-grey/.{name} etc. via var(),
|
|
41
|
-
// substituindo o caminho compile-time getRed($theme)/Material. Value-preserving:
|
|
42
|
-
// mesmo valor que getRed/getRedAlpha/getRedContrast (shade 500 light / 100 dark).
|
|
43
|
-
// Mantém as classes funcionando (painel intacto) e theme-agnósticas no ponto de uso.
|
|
44
|
-
$-palette-shade: if($is-dark, 100, 500);
|
|
45
|
-
@each $-name, $-pal in (
|
|
46
|
-
"red": $red, "pink": $pink, "purple": $purple, "deep-purple": $deep-purple, "indigo": $indigo,
|
|
47
|
-
"blue": $blue, "light-blue": $light-blue, "cyan": $cyan, "teal": $teal, "green": $green,
|
|
48
|
-
"light-green": $light-green, "lime": $lime, "yellow": $yellow, "amber": $amber, "orange": $orange,
|
|
49
|
-
"deep-orange": $deep-orange, "brown": $brown, "grey": $grey, "blue-grey": $blue-grey
|
|
50
|
-
) {
|
|
51
|
-
$-c: map.get($-pal, $-palette-shade);
|
|
52
|
-
$-cc: map.get(map.get($-pal, 'contrast'), $-palette-shade);
|
|
53
|
-
--matcha-color-#{$-name}: #{$-c};
|
|
54
|
-
--matcha-color-#{$-name}-alpha: #{rgba($-c, 0.1)};
|
|
55
|
-
--matcha-color-#{$-name}-contrast: #{$-cc};
|
|
56
|
-
--matcha-color-#{$-name}-contrast-alpha: #{rgba($-cc, 0.1)};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// ── Feedback namespace (matcha/color/feedback/* canon DSV3) ───────────────
|
|
60
|
-
// Aliases semânticos pros tokens base — namespace dedicado pra status/banners/
|
|
61
|
-
// table row variants. Naming match Figma DSV3 (flat: feedback/info, sem suffix).
|
|
62
|
-
--matcha-color-feedback-info: var(--matcha-color-info);
|
|
63
|
-
--matcha-color-feedback-success: var(--matcha-color-success);
|
|
64
|
-
--matcha-color-feedback-warn: var(--matcha-color-warn);
|
|
65
|
-
--matcha-color-feedback-danger: var(--matcha-color-danger);
|
|
66
|
-
|
|
67
|
-
// Variantes alpha pra row backgrounds, badges filled-alpha, etc.
|
|
68
|
-
--matcha-color-feedback-info-alpha: var(--matcha-color-info-alpha);
|
|
69
|
-
--matcha-color-feedback-success-alpha: var(--matcha-color-success-alpha);
|
|
70
|
-
--matcha-color-feedback-warn-alpha: var(--matcha-color-warn-alpha);
|
|
71
|
-
--matcha-color-feedback-danger-alpha: var(--matcha-color-danger-alpha);
|
|
72
|
-
|
|
73
|
-
// Surface hover (bg tinted pra hover em row de table)
|
|
74
|
-
--matcha-color-feedback-info-surface-hover: var(--matcha-color-info-surface-hover);
|
|
75
|
-
--matcha-color-feedback-success-surface-hover: var(--matcha-color-success-surface-hover);
|
|
76
|
-
--matcha-color-feedback-warn-surface-hover: var(--matcha-color-warn-surface-hover);
|
|
77
|
-
--matcha-color-feedback-danger-surface-hover: var(--matcha-color-danger-surface-hover);
|
|
78
|
-
|
|
79
|
-
// ── Spacing (14 tokens — matches matcha/space/* exato) ────────────────────
|
|
80
|
-
// ── Tokens não-cor (gerados do Figma) — ver _static-tokens.scss (A2) ──
|
|
81
|
-
@include matcha-static-tokens();
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// ── Border radius (8 tokens — matches matcha/radius/* exato) ─────────────
|
|
85
|
-
// Alias legado pra usos em páginas de doc (refatorar depois pra usar radius-2xl)
|
|
86
|
-
--matcha-radius-card: var(--matcha-radius-2xl);
|
|
87
|
-
|
|
88
|
-
// ── Border width (4 tokens — matches matcha/border/* exato) ──────────────
|
|
89
|
-
|
|
90
|
-
// ── Font family (1 token) ────────────────────────────────────────────────
|
|
91
|
-
|
|
92
|
-
// ── Font size (13 tokens — matches matcha/font/size/* from Figma) ─────────
|
|
93
|
-
|
|
94
|
-
// ── Font weight (8 tokens — matches matcha/font/weight/* exato) ──────────
|
|
95
|
-
// Canônico Figma: extralight (200), light (300), normal (400), medium (500),
|
|
96
|
-
// semi-bold (600), bold (700), extrabold (800), black (900)
|
|
97
|
-
// Código mantém regular/semibold por retrocompat + aliases Figma-exatos
|
|
98
|
-
--matcha-weight-regular: 400;
|
|
99
|
-
--matcha-weight-semibold: 600;
|
|
100
|
-
|
|
101
|
-
// ── Typography — 15 canonical text styles (1:1 com matcha/text/* Figma) ──
|
|
102
|
-
// 13 styles publicados + `display` e `p-tiny` (recriados no Figma 2026-06-03).
|
|
103
|
-
--matcha-text-display-hero: 36px; // matcha/text/Stat Card (EB 36/40/-1.2)
|
|
104
|
-
--matcha-text-display: 32px; // matcha/text/display (Bold 32/40/-0.3)
|
|
105
|
-
--matcha-text-headline: 24px; // matcha/text/headline (Bold 24/32/-0.3)
|
|
106
|
-
--matcha-text-title-lg: 20px; // matcha/text/title-large (SemiBold 20/28)
|
|
107
|
-
--matcha-text-title-md: 18px; // matcha/text/title-medium (SemiBold 18/24)
|
|
108
|
-
--matcha-text-title-sm: 16px; // matcha/text/title-small (SemiBold 16/22)
|
|
109
|
-
--matcha-text-title-xs: 14px; // matcha/text/title-tiny (ExtraBold 14/20)
|
|
110
|
-
--matcha-text-body-lg: 16px; // matcha/text/p-large (Regular 16/24)
|
|
111
|
-
--matcha-text-body-md: 14px; // matcha/text/p-medium (Regular 14/20)
|
|
112
|
-
--matcha-text-body-sm: 12px; // matcha/text/p-small (Regular 12/16)
|
|
113
|
-
--matcha-text-p-tiny: 11px; // matcha/text/p-tiny (Regular 11/14/0.3)
|
|
114
|
-
--matcha-text-label-lg: 16px; // matcha/text/label-large (Medium 16/22)
|
|
115
|
-
--matcha-text-label-md: 14px; // matcha/text/label-medium (Medium 14/20)
|
|
116
|
-
--matcha-text-label-sm: 12px; // matcha/text/label-small (Medium 12/16)
|
|
117
|
-
--matcha-text-overline: 10px; // matcha/text/Uppercase (SemiBold 10/14/1)
|
|
118
|
-
|
|
119
|
-
// Shorthand aliases (usados massivamente em components/*.scss)
|
|
120
|
-
--matcha-text-xs: var(--matcha-text-p-tiny); // 11px — legendas, metadados
|
|
121
|
-
--matcha-text-sm: var(--matcha-text-body-sm); // 12px — texto auxiliar
|
|
122
|
-
--matcha-text-md: var(--matcha-text-body-md); // 14px — corpo padrão
|
|
123
|
-
--matcha-text-lg: var(--matcha-text-body-lg); // 16px — texto de destaque
|
|
124
|
-
--matcha-text-xl: var(--matcha-text-title-md); // 18px — títulos de grupo
|
|
125
|
-
|
|
126
|
-
// ── Line heights — canônico (matches Figma text styles) ──────────────────
|
|
127
|
-
--matcha-leading-display-hero: 40px; // Stat Card
|
|
128
|
-
--matcha-leading-display: 40px;
|
|
129
|
-
--matcha-leading-headline: 32px;
|
|
130
|
-
--matcha-leading-title-lg: 28px;
|
|
131
|
-
--matcha-leading-title-md: 24px;
|
|
132
|
-
--matcha-leading-title-sm: 22px;
|
|
133
|
-
--matcha-leading-title-xs: 20px; // title-tiny
|
|
134
|
-
--matcha-leading-body-lg: 24px;
|
|
135
|
-
--matcha-leading-body-md: 20px;
|
|
136
|
-
--matcha-leading-body-sm: 16px;
|
|
137
|
-
--matcha-leading-p-tiny: 14px;
|
|
138
|
-
--matcha-leading-label-lg: 22px;
|
|
139
|
-
--matcha-leading-label-md: 20px;
|
|
140
|
-
--matcha-leading-label-sm: 16px;
|
|
141
|
-
--matcha-leading-overline: 14px; // Uppercase
|
|
142
|
-
|
|
143
|
-
// ── Tracking (letter-spacing) — só styles com valor não-zero ─────────────
|
|
144
|
-
--matcha-tracking-display-hero: -1.2px; // Stat Card
|
|
145
|
-
--matcha-tracking-display: -0.3px;
|
|
146
|
-
--matcha-tracking-headline: -0.3px;
|
|
147
|
-
--matcha-tracking-overline: 1px; // Uppercase
|
|
148
|
-
--matcha-tracking-p-tiny: 0.3px;
|
|
149
|
-
|
|
150
|
-
// Shorthand aliases para line-heights (acompanham --matcha-text-*)
|
|
151
|
-
--matcha-leading-xs: var(--matcha-leading-p-tiny); // 14px
|
|
152
|
-
--matcha-leading-sm: var(--matcha-leading-body-sm); // 16px
|
|
153
|
-
--matcha-leading-md: var(--matcha-leading-body-md); // 20px
|
|
154
|
-
--matcha-leading-lg: var(--matcha-leading-body-lg); // 24px
|
|
155
|
-
--matcha-leading-xl: var(--matcha-leading-title-md); // 24px
|
|
156
|
-
|
|
157
|
-
// ── Line height primitives (4 tokens — matches matcha/line-height/*) ─────
|
|
158
|
-
|
|
159
|
-
// ── Letter spacing (primitives + semantic aliases) ───────────────────────
|
|
160
|
-
// Semantic aliases alinhados com Figma text styles
|
|
161
|
-
--matcha-letter-spacing-button: 0.2px; // matcha/text/button-*
|
|
162
|
-
--matcha-letter-spacing-caption: 0.3px; // matcha/text/caption + link-sm
|
|
163
|
-
|
|
164
|
-
// ── Elevation (4 shadow tokens) ──────────────────────────────────────────
|
|
165
|
-
--matcha-shadow-1: #{if($is-dark, $shadow-1-dark, $shadow-1-light)};
|
|
166
|
-
--matcha-shadow-2: #{if($is-dark, $shadow-2-dark, $shadow-2-light)};
|
|
167
|
-
--matcha-shadow-3: #{if($is-dark, $shadow-3-dark, $shadow-3-light)};
|
|
168
|
-
--matcha-shadow-4: #{if($is-dark, $shadow-4-dark, $shadow-4-light)};
|
|
169
|
-
|
|
170
|
-
// ── Vars estruturais de componente (mode-dependentes, ex-@if $is-dark) ───
|
|
171
|
-
// Bordas que só existiam no dark + shimmer do skeleton. No light viram no-op
|
|
172
|
-
// (0/transparent) pra não alterar layout. O $is-dark aqui é o seletor de modo
|
|
173
|
-
// legítimo da emissão (mesmo papel dos shadows acima) — não é o $is-dark
|
|
174
|
-
// espalhado nos componentes, que foi eliminado na migração runtime-theming.
|
|
175
|
-
--matcha-skeleton-shimmer: #{if($is-dark, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.5))};
|
|
176
|
-
--matcha-chart-card-border: #{if($is-dark, 1px solid rgba(#212121, 0.06), 0 solid transparent)};
|
|
177
|
-
--matcha-section-border: #{if($is-dark, 1px solid rgba(#212121, 0.06), 0 solid transparent)};
|
|
178
|
-
--matcha-calendar-border: #{if($is-dark, 1px solid var(--matcha-color-surface-border), 0 solid transparent)};
|
|
179
|
-
--matcha-drawer-border: #{if($is-dark, 1px solid var(--matcha-color-surface-border), 0 solid transparent)};
|
|
180
|
-
// .text-boxed (tarja de texto) — alpha sobre branco no dark / sobre preto no light.
|
|
181
|
-
--matcha-color-text-boxed-bg: #{if($is-dark, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.12))};
|
|
182
|
-
--matcha-color-text-boxed-fg: #{if($is-dark, rgba(255, 255, 255, 0.54), rgba(0, 0, 0, 0.54))};
|
|
183
|
-
|
|
184
|
-
// ── Animation (4 tokens — matches matcha/duration/* from Figma) ──────────
|
|
185
|
-
|
|
186
|
-
// ── Easing (4 tokens — matches matcha/easing/* from Figma) ───────────────
|
|
187
|
-
|
|
188
|
-
// ── Opacity (7 tokens — matches matcha/opacity/* from Figma) ─────────────
|
|
189
|
-
--matcha-opacity-overlay-soft: 0.40;
|
|
190
|
-
// Específico do matcha/option (Figma DSV3 14237:113) — diferente do disabled global (0.38)
|
|
191
|
-
--matcha-opacity-option-disabled: 0.5;
|
|
192
|
-
|
|
193
|
-
// ── State layers (matches matcha/state-layer/* from Figma) ────────────────
|
|
194
|
-
// Aliases legados (usados nos componentes atuais)
|
|
195
|
-
--matcha-state-hover: var(--matcha-state-layer-hover);
|
|
196
|
-
--matcha-state-active: var(--matcha-state-layer-pressed);
|
|
197
|
-
--matcha-state-focus-ring-width: 2px;
|
|
198
|
-
--matcha-state-focus-ring-offset: 2px;
|
|
199
|
-
|
|
200
|
-
// ── Scrim / Overlay (Figma matcha/overlay Type=Modal / Type=Drawer) ──────
|
|
201
|
-
--matcha-scrim-modal: rgba(0, 0, 0, 0.5);
|
|
202
|
-
--matcha-scrim-modal-blur: 6px;
|
|
203
|
-
--matcha-scrim-drawer: rgba(0, 0, 0, 0.3);
|
|
204
|
-
--matcha-scrim-drawer-blur: 4px;
|
|
205
|
-
|
|
206
|
-
// ── Icon sizes (4 tokens — matches matcha/icon/size/* exato) ─────────────
|
|
207
|
-
|
|
208
|
-
// ── Avatar sizes (1:1 com Figma matcha/avatar — Type=Photo, Size variants)
|
|
209
|
-
--matcha-avatar-xs: 24px;
|
|
210
|
-
--matcha-avatar-sm: 32px;
|
|
211
|
-
--matcha-avatar-md: 40px;
|
|
212
|
-
--matcha-avatar-lg: 56px;
|
|
213
|
-
--matcha-avatar-xl: 80px;
|
|
214
|
-
--matcha-avatar-2xl: 96px;
|
|
215
|
-
// Status indicator — 1:1 com Figma (Status ellipse em cada Size variant)
|
|
216
|
-
--matcha-avatar-status-xs: 6px;
|
|
217
|
-
--matcha-avatar-status-sm: 8px;
|
|
218
|
-
--matcha-avatar-status-md: 10px;
|
|
219
|
-
--matcha-avatar-status-lg: 12px;
|
|
220
|
-
--matcha-avatar-status-xl: 14px;
|
|
221
|
-
--matcha-avatar-status-2xl: 16px;
|
|
222
|
-
|
|
223
|
-
// ── Z-index (8 tokens — matches matcha/z-index/* from Figma) ─────────────
|
|
224
|
-
// Panel flutuante (matcha-panel) — acima de modal pra suportar select/menu
|
|
225
|
-
// dentro de modal. Renderizado via portal-to-body fora de stacking contexts.
|
|
226
|
-
--matcha-z-popover-floating: 10001;
|
|
227
|
-
|
|
228
|
-
// ── Grid (22 tokens — 1:1 com matcha/grid/* do Figma) ────────────────────
|
|
229
|
-
// Frames (breakpoints)
|
|
230
|
-
// Chrome
|
|
231
|
-
--matcha-grid-header-height-mobile: 48px;
|
|
232
|
-
// Gutters (espaço entre colunas)
|
|
233
|
-
// Column widths (largura INDIVIDUAL de coluna) — Figma verdadeiro
|
|
234
|
-
// Content widths (área útil total) — Figma verdadeiro
|
|
235
|
-
|
|
236
|
-
// Public-facing column widths (site institucional/landing — breakpoint-aware)
|
|
237
|
-
|
|
238
|
-
// Horizontal offsets (distância da borda do frame ao primeiro col da grid)
|
|
239
|
-
|
|
240
|
-
// ── Breakpoints (6 tokens — Tailwind-aligned, expostos como CSS vars) ────
|
|
241
|
-
// Pra container queries, JS-side responsive logic (`matchMedia`) e media
|
|
242
|
-
// queries inline (`@media (min-width: var(...))` em CSS moderno). Valores
|
|
243
|
-
// alinhados ao padrão Tailwind/Chakra — familiares e cobrem todos os tiers
|
|
244
|
-
// (mobile pequeno até desktop wide). 1:1 com Figma `matcha/bp/*`.
|
|
245
|
-
//
|
|
246
|
-
// NOTA: SCSS `@mixin breakpoint(...)` em `_breakpoints-tokens.scss` usa
|
|
247
|
-
// valores Angular Material legacy (600/1024/1440/1920) — DESALINHADO destes.
|
|
248
|
-
// Em refactors novos, prefira CSS custom prop `var(--matcha-bp-md)` em vez
|
|
249
|
-
// do mixin SCSS.
|
|
250
|
-
|
|
251
|
-
// ═════════════════════════════════════════════════════════════════════════
|
|
252
|
-
// 16. NAMING-PARITY ALIASES
|
|
253
|
-
// Aliases que espelham o nome exato das variables do Figma, garantindo que
|
|
254
|
-
// dev possa referenciar o token pelo nome que vê no Figma.
|
|
255
|
-
// ═════════════════════════════════════════════════════════════════════════
|
|
256
|
-
|
|
257
|
-
// Figma: matcha/color/surface/background → ↔ --matcha-color-surface-bg
|
|
258
|
-
--matcha-color-surface-background: var(--matcha-color-surface-bg);
|
|
259
|
-
--matcha-color-surface-background-alpha: var(--matcha-color-surface-bg-alpha);
|
|
260
|
-
--matcha-color-surface-background-inverse: var(--matcha-color-surface-bg-inverse);
|
|
261
|
-
|
|
262
|
-
// Figma: matcha/color/neutral/default → ↔ --matcha-color-neutral
|
|
263
|
-
--matcha-color-neutral-default: var(--matcha-color-neutral);
|
|
264
|
-
|
|
265
|
-
// Figma: matcha/color/interaction/focus-ring → ↔ --matcha-color-focus-ring
|
|
266
|
-
--matcha-color-interaction-focus-ring: var(--matcha-color-focus-ring);
|
|
267
|
-
|
|
268
|
-
// Figma: matcha/z-index/{base,dropdown,…} → ↔ --matcha-z-{base,dropdown,…}
|
|
269
|
-
--matcha-z-index-base: var(--matcha-z-base);
|
|
270
|
-
--matcha-z-index-dropdown: var(--matcha-z-dropdown);
|
|
271
|
-
--matcha-z-index-sticky: var(--matcha-z-sticky);
|
|
272
|
-
--matcha-z-index-popover: var(--matcha-z-popover);
|
|
273
|
-
--matcha-z-index-tooltip: var(--matcha-z-tooltip);
|
|
274
|
-
--matcha-z-index-modal-bg: var(--matcha-z-modal-bg);
|
|
275
|
-
--matcha-z-index-modal: var(--matcha-z-modal);
|
|
276
|
-
--matcha-z-index-overlay: var(--matcha-z-overlay);
|
|
277
|
-
--matcha-z-index-popover-floating: var(--matcha-z-popover-floating);
|
|
278
|
-
|
|
279
|
-
// Figma: matcha/font/weight/semi-bold → ↔ --matcha-weight-semibold
|
|
280
|
-
--matcha-font-weight-extralight: var(--matcha-weight-extralight);
|
|
281
|
-
--matcha-font-weight-light: var(--matcha-weight-light);
|
|
282
|
-
--matcha-font-weight-semi-bold: var(--matcha-weight-semibold);
|
|
283
|
-
--matcha-font-weight-regular: var(--matcha-weight-regular);
|
|
284
|
-
--matcha-font-weight-medium: var(--matcha-weight-medium);
|
|
285
|
-
--matcha-font-weight-bold: var(--matcha-weight-bold);
|
|
286
|
-
--matcha-font-weight-extrabold: var(--matcha-weight-extrabold);
|
|
287
|
-
--matcha-font-weight-black: var(--matcha-weight-black);
|
|
288
|
-
|
|
289
|
-
// ═════════════════════════════════════════════════════════════════════════
|
|
290
|
-
// 17. GRADIENTS
|
|
291
|
-
// Gradients tonais semânticos. Compostos por 2 stops (alpha → surface-card)
|
|
292
|
-
// pra dar fade lateral em banners. Mantém compat com Figma — lá cada stop
|
|
293
|
-
// é uma variable separada (gradients não são tipo nativo de variable).
|
|
294
|
-
// Centralizar aqui evita repetir o linear-gradient em cada componente.
|
|
295
|
-
// ═════════════════════════════════════════════════════════════════════════
|
|
296
|
-
|
|
297
|
-
// Figma DSV3 (matcha/banner 19080:308): tone="info" mapeia pra primary-alpha
|
|
298
|
-
// (#64b5f6 azul), não info-alpha (cyan/turquesa) — alinhamento visual com border + eyebrow.
|
|
299
|
-
--matcha-gradient-banner-info: linear-gradient(
|
|
300
|
-
90deg,
|
|
301
|
-
var(--matcha-color-primary-alpha) 0%,
|
|
302
|
-
var(--matcha-color-surface-card) 100%
|
|
303
|
-
);
|
|
304
|
-
--matcha-gradient-banner-success: linear-gradient(
|
|
305
|
-
90deg,
|
|
306
|
-
var(--matcha-color-success-alpha) 0%,
|
|
307
|
-
var(--matcha-color-surface-card) 100%
|
|
308
|
-
);
|
|
309
|
-
--matcha-gradient-banner-warning: linear-gradient(
|
|
310
|
-
90deg,
|
|
311
|
-
var(--matcha-color-warn-alpha) 0%,
|
|
312
|
-
var(--matcha-color-surface-card) 100%
|
|
313
|
-
);
|
|
314
|
-
--matcha-gradient-banner-accent: linear-gradient(
|
|
315
|
-
90deg,
|
|
316
|
-
var(--matcha-color-accent-alpha) 0%,
|
|
317
|
-
var(--matcha-color-surface-card) 100%
|
|
318
|
-
);
|
|
319
|
-
--matcha-gradient-banner-danger: linear-gradient(
|
|
320
|
-
90deg,
|
|
321
|
-
var(--matcha-color-danger-alpha) 0%,
|
|
322
|
-
var(--matcha-color-surface-card) 100%
|
|
323
|
-
);
|
|
324
|
-
}
|
|
1
|
+
@use "elevation-tokens" as *;
|
|
2
|
+
@use "static-tokens" as *;
|
|
3
|
+
@use "color-tokens" as *;
|
|
4
|
+
@use "semantic-aliases" as *;
|
|
5
|
+
@use "material-palette" as *;
|
|
6
|
+
@use "../abstracts/theme-api" as *;
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// MATCHA — EMISSÃO DOS TOKENS DO TEMA (CSS custom properties)
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Lógica de emissão À MÃO (NÃO é gerado). Monta as --matcha-* de um tema.
|
|
11
|
+
// Os DADOS vêm de arquivos próprios, Figma-sourced:
|
|
12
|
+
// - cor: _color-tokens.scss ($matcha-color-tokens — synced via sync-tokens)
|
|
13
|
+
// - primitivas: _primitives.scss (gerado · --matcha-prim-*)
|
|
14
|
+
// - aliases: _semantic-aliases.scss (gerado · papel → primitiva)
|
|
15
|
+
// - não-cor: migrarão p/ _static-tokens.scss (gerado de global.json — A2)
|
|
16
|
+
// O mixin matcha-css-custom-properties($theme) (API PÚBLICA — nome preservado) emite
|
|
17
|
+
// cor (via matcha-emit-color-properties) + estáticos + mode-dependent + aliases.
|
|
18
|
+
// IMPORT ORDER: main.scss importa _color-tokens ANTES deste arquivo.
|
|
19
|
+
// =============================================================================
|
|
20
|
+
@use "sass:map";
|
|
21
|
+
|
|
22
|
+
// matcha-emit-color-properties() foi MOVIDO para abstracts/_theme-api.scss (quebra o
|
|
23
|
+
// ciclo @use emit-tokens↔theme-api). Aqui fica disponível via `@use theme-api` (topo).
|
|
24
|
+
|
|
25
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
26
|
+
// 4. MIXIN CANÔNICO — assinatura preservada (retrocompat).
|
|
27
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
28
|
+
@mixin matcha-css-custom-properties($is-dark: false) {
|
|
29
|
+
// API nova: recebe SÓ o modo (is-dark). As cores vêm das synced tokens do Figma
|
|
30
|
+
// ($matcha-colors-light/dark), não de um mapa $theme construído por light-theme().
|
|
31
|
+
|
|
32
|
+
// ── Cores semânticas (ver $matcha-color-tokens acima) ────────────────────
|
|
33
|
+
// Aliases sólidos → var(--matcha-prim-*); derivados/alphas/cross-semantic → hex literal.
|
|
34
|
+
@include matcha-emit-color-properties(
|
|
35
|
+
if($is-dark, $matcha-colors-dark, $matcha-colors-light),
|
|
36
|
+
if($is-dark, $matcha-prim-aliases-dark, $matcha-prim-aliases-light)
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
// ── Cores de PALETA como tokens (base mode-flipped) ───────────────────────
|
|
40
|
+
// Alimentam as utility classes .color-red/.background-grey/.{name} etc. via var(),
|
|
41
|
+
// substituindo o caminho compile-time getRed($theme)/Material. Value-preserving:
|
|
42
|
+
// mesmo valor que getRed/getRedAlpha/getRedContrast (shade 500 light / 100 dark).
|
|
43
|
+
// Mantém as classes funcionando (painel intacto) e theme-agnósticas no ponto de uso.
|
|
44
|
+
$-palette-shade: if($is-dark, 100, 500);
|
|
45
|
+
@each $-name, $-pal in (
|
|
46
|
+
"red": $red, "pink": $pink, "purple": $purple, "deep-purple": $deep-purple, "indigo": $indigo,
|
|
47
|
+
"blue": $blue, "light-blue": $light-blue, "cyan": $cyan, "teal": $teal, "green": $green,
|
|
48
|
+
"light-green": $light-green, "lime": $lime, "yellow": $yellow, "amber": $amber, "orange": $orange,
|
|
49
|
+
"deep-orange": $deep-orange, "brown": $brown, "grey": $grey, "blue-grey": $blue-grey
|
|
50
|
+
) {
|
|
51
|
+
$-c: map.get($-pal, $-palette-shade);
|
|
52
|
+
$-cc: map.get(map.get($-pal, 'contrast'), $-palette-shade);
|
|
53
|
+
--matcha-color-#{$-name}: #{$-c};
|
|
54
|
+
--matcha-color-#{$-name}-alpha: #{rgba($-c, 0.1)};
|
|
55
|
+
--matcha-color-#{$-name}-contrast: #{$-cc};
|
|
56
|
+
--matcha-color-#{$-name}-contrast-alpha: #{rgba($-cc, 0.1)};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// ── Feedback namespace (matcha/color/feedback/* canon DSV3) ───────────────
|
|
60
|
+
// Aliases semânticos pros tokens base — namespace dedicado pra status/banners/
|
|
61
|
+
// table row variants. Naming match Figma DSV3 (flat: feedback/info, sem suffix).
|
|
62
|
+
--matcha-color-feedback-info: var(--matcha-color-info);
|
|
63
|
+
--matcha-color-feedback-success: var(--matcha-color-success);
|
|
64
|
+
--matcha-color-feedback-warn: var(--matcha-color-warn);
|
|
65
|
+
--matcha-color-feedback-danger: var(--matcha-color-danger);
|
|
66
|
+
|
|
67
|
+
// Variantes alpha pra row backgrounds, badges filled-alpha, etc.
|
|
68
|
+
--matcha-color-feedback-info-alpha: var(--matcha-color-info-alpha);
|
|
69
|
+
--matcha-color-feedback-success-alpha: var(--matcha-color-success-alpha);
|
|
70
|
+
--matcha-color-feedback-warn-alpha: var(--matcha-color-warn-alpha);
|
|
71
|
+
--matcha-color-feedback-danger-alpha: var(--matcha-color-danger-alpha);
|
|
72
|
+
|
|
73
|
+
// Surface hover (bg tinted pra hover em row de table)
|
|
74
|
+
--matcha-color-feedback-info-surface-hover: var(--matcha-color-info-surface-hover);
|
|
75
|
+
--matcha-color-feedback-success-surface-hover: var(--matcha-color-success-surface-hover);
|
|
76
|
+
--matcha-color-feedback-warn-surface-hover: var(--matcha-color-warn-surface-hover);
|
|
77
|
+
--matcha-color-feedback-danger-surface-hover: var(--matcha-color-danger-surface-hover);
|
|
78
|
+
|
|
79
|
+
// ── Spacing (14 tokens — matches matcha/space/* exato) ────────────────────
|
|
80
|
+
// ── Tokens não-cor (gerados do Figma) — ver _static-tokens.scss (A2) ──
|
|
81
|
+
@include matcha-static-tokens();
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
// ── Border radius (8 tokens — matches matcha/radius/* exato) ─────────────
|
|
85
|
+
// Alias legado pra usos em páginas de doc (refatorar depois pra usar radius-2xl)
|
|
86
|
+
--matcha-radius-card: var(--matcha-radius-2xl);
|
|
87
|
+
|
|
88
|
+
// ── Border width (4 tokens — matches matcha/border/* exato) ──────────────
|
|
89
|
+
|
|
90
|
+
// ── Font family (1 token) ────────────────────────────────────────────────
|
|
91
|
+
|
|
92
|
+
// ── Font size (13 tokens — matches matcha/font/size/* from Figma) ─────────
|
|
93
|
+
|
|
94
|
+
// ── Font weight (8 tokens — matches matcha/font/weight/* exato) ──────────
|
|
95
|
+
// Canônico Figma: extralight (200), light (300), normal (400), medium (500),
|
|
96
|
+
// semi-bold (600), bold (700), extrabold (800), black (900)
|
|
97
|
+
// Código mantém regular/semibold por retrocompat + aliases Figma-exatos
|
|
98
|
+
--matcha-weight-regular: 400;
|
|
99
|
+
--matcha-weight-semibold: 600;
|
|
100
|
+
|
|
101
|
+
// ── Typography — 15 canonical text styles (1:1 com matcha/text/* Figma) ──
|
|
102
|
+
// 13 styles publicados + `display` e `p-tiny` (recriados no Figma 2026-06-03).
|
|
103
|
+
--matcha-text-display-hero: 36px; // matcha/text/Stat Card (EB 36/40/-1.2)
|
|
104
|
+
--matcha-text-display: 32px; // matcha/text/display (Bold 32/40/-0.3)
|
|
105
|
+
--matcha-text-headline: 24px; // matcha/text/headline (Bold 24/32/-0.3)
|
|
106
|
+
--matcha-text-title-lg: 20px; // matcha/text/title-large (SemiBold 20/28)
|
|
107
|
+
--matcha-text-title-md: 18px; // matcha/text/title-medium (SemiBold 18/24)
|
|
108
|
+
--matcha-text-title-sm: 16px; // matcha/text/title-small (SemiBold 16/22)
|
|
109
|
+
--matcha-text-title-xs: 14px; // matcha/text/title-tiny (ExtraBold 14/20)
|
|
110
|
+
--matcha-text-body-lg: 16px; // matcha/text/p-large (Regular 16/24)
|
|
111
|
+
--matcha-text-body-md: 14px; // matcha/text/p-medium (Regular 14/20)
|
|
112
|
+
--matcha-text-body-sm: 12px; // matcha/text/p-small (Regular 12/16)
|
|
113
|
+
--matcha-text-p-tiny: 11px; // matcha/text/p-tiny (Regular 11/14/0.3)
|
|
114
|
+
--matcha-text-label-lg: 16px; // matcha/text/label-large (Medium 16/22)
|
|
115
|
+
--matcha-text-label-md: 14px; // matcha/text/label-medium (Medium 14/20)
|
|
116
|
+
--matcha-text-label-sm: 12px; // matcha/text/label-small (Medium 12/16)
|
|
117
|
+
--matcha-text-overline: 10px; // matcha/text/Uppercase (SemiBold 10/14/1)
|
|
118
|
+
|
|
119
|
+
// Shorthand aliases (usados massivamente em components/*.scss)
|
|
120
|
+
--matcha-text-xs: var(--matcha-text-p-tiny); // 11px — legendas, metadados
|
|
121
|
+
--matcha-text-sm: var(--matcha-text-body-sm); // 12px — texto auxiliar
|
|
122
|
+
--matcha-text-md: var(--matcha-text-body-md); // 14px — corpo padrão
|
|
123
|
+
--matcha-text-lg: var(--matcha-text-body-lg); // 16px — texto de destaque
|
|
124
|
+
--matcha-text-xl: var(--matcha-text-title-md); // 18px — títulos de grupo
|
|
125
|
+
|
|
126
|
+
// ── Line heights — canônico (matches Figma text styles) ──────────────────
|
|
127
|
+
--matcha-leading-display-hero: 40px; // Stat Card
|
|
128
|
+
--matcha-leading-display: 40px;
|
|
129
|
+
--matcha-leading-headline: 32px;
|
|
130
|
+
--matcha-leading-title-lg: 28px;
|
|
131
|
+
--matcha-leading-title-md: 24px;
|
|
132
|
+
--matcha-leading-title-sm: 22px;
|
|
133
|
+
--matcha-leading-title-xs: 20px; // title-tiny
|
|
134
|
+
--matcha-leading-body-lg: 24px;
|
|
135
|
+
--matcha-leading-body-md: 20px;
|
|
136
|
+
--matcha-leading-body-sm: 16px;
|
|
137
|
+
--matcha-leading-p-tiny: 14px;
|
|
138
|
+
--matcha-leading-label-lg: 22px;
|
|
139
|
+
--matcha-leading-label-md: 20px;
|
|
140
|
+
--matcha-leading-label-sm: 16px;
|
|
141
|
+
--matcha-leading-overline: 14px; // Uppercase
|
|
142
|
+
|
|
143
|
+
// ── Tracking (letter-spacing) — só styles com valor não-zero ─────────────
|
|
144
|
+
--matcha-tracking-display-hero: -1.2px; // Stat Card
|
|
145
|
+
--matcha-tracking-display: -0.3px;
|
|
146
|
+
--matcha-tracking-headline: -0.3px;
|
|
147
|
+
--matcha-tracking-overline: 1px; // Uppercase
|
|
148
|
+
--matcha-tracking-p-tiny: 0.3px;
|
|
149
|
+
|
|
150
|
+
// Shorthand aliases para line-heights (acompanham --matcha-text-*)
|
|
151
|
+
--matcha-leading-xs: var(--matcha-leading-p-tiny); // 14px
|
|
152
|
+
--matcha-leading-sm: var(--matcha-leading-body-sm); // 16px
|
|
153
|
+
--matcha-leading-md: var(--matcha-leading-body-md); // 20px
|
|
154
|
+
--matcha-leading-lg: var(--matcha-leading-body-lg); // 24px
|
|
155
|
+
--matcha-leading-xl: var(--matcha-leading-title-md); // 24px
|
|
156
|
+
|
|
157
|
+
// ── Line height primitives (4 tokens — matches matcha/line-height/*) ─────
|
|
158
|
+
|
|
159
|
+
// ── Letter spacing (primitives + semantic aliases) ───────────────────────
|
|
160
|
+
// Semantic aliases alinhados com Figma text styles
|
|
161
|
+
--matcha-letter-spacing-button: 0.2px; // matcha/text/button-*
|
|
162
|
+
--matcha-letter-spacing-caption: 0.3px; // matcha/text/caption + link-sm
|
|
163
|
+
|
|
164
|
+
// ── Elevation (4 shadow tokens) ──────────────────────────────────────────
|
|
165
|
+
--matcha-shadow-1: #{if($is-dark, $shadow-1-dark, $shadow-1-light)};
|
|
166
|
+
--matcha-shadow-2: #{if($is-dark, $shadow-2-dark, $shadow-2-light)};
|
|
167
|
+
--matcha-shadow-3: #{if($is-dark, $shadow-3-dark, $shadow-3-light)};
|
|
168
|
+
--matcha-shadow-4: #{if($is-dark, $shadow-4-dark, $shadow-4-light)};
|
|
169
|
+
|
|
170
|
+
// ── Vars estruturais de componente (mode-dependentes, ex-@if $is-dark) ───
|
|
171
|
+
// Bordas que só existiam no dark + shimmer do skeleton. No light viram no-op
|
|
172
|
+
// (0/transparent) pra não alterar layout. O $is-dark aqui é o seletor de modo
|
|
173
|
+
// legítimo da emissão (mesmo papel dos shadows acima) — não é o $is-dark
|
|
174
|
+
// espalhado nos componentes, que foi eliminado na migração runtime-theming.
|
|
175
|
+
--matcha-skeleton-shimmer: #{if($is-dark, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.5))};
|
|
176
|
+
--matcha-chart-card-border: #{if($is-dark, 1px solid rgba(#212121, 0.06), 0 solid transparent)};
|
|
177
|
+
--matcha-section-border: #{if($is-dark, 1px solid rgba(#212121, 0.06), 0 solid transparent)};
|
|
178
|
+
--matcha-calendar-border: #{if($is-dark, 1px solid var(--matcha-color-surface-border), 0 solid transparent)};
|
|
179
|
+
--matcha-drawer-border: #{if($is-dark, 1px solid var(--matcha-color-surface-border), 0 solid transparent)};
|
|
180
|
+
// .text-boxed (tarja de texto) — alpha sobre branco no dark / sobre preto no light.
|
|
181
|
+
--matcha-color-text-boxed-bg: #{if($is-dark, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.12))};
|
|
182
|
+
--matcha-color-text-boxed-fg: #{if($is-dark, rgba(255, 255, 255, 0.54), rgba(0, 0, 0, 0.54))};
|
|
183
|
+
|
|
184
|
+
// ── Animation (4 tokens — matches matcha/duration/* from Figma) ──────────
|
|
185
|
+
|
|
186
|
+
// ── Easing (4 tokens — matches matcha/easing/* from Figma) ───────────────
|
|
187
|
+
|
|
188
|
+
// ── Opacity (7 tokens — matches matcha/opacity/* from Figma) ─────────────
|
|
189
|
+
--matcha-opacity-overlay-soft: 0.40;
|
|
190
|
+
// Específico do matcha/option (Figma DSV3 14237:113) — diferente do disabled global (0.38)
|
|
191
|
+
--matcha-opacity-option-disabled: 0.5;
|
|
192
|
+
|
|
193
|
+
// ── State layers (matches matcha/state-layer/* from Figma) ────────────────
|
|
194
|
+
// Aliases legados (usados nos componentes atuais)
|
|
195
|
+
--matcha-state-hover: var(--matcha-state-layer-hover);
|
|
196
|
+
--matcha-state-active: var(--matcha-state-layer-pressed);
|
|
197
|
+
--matcha-state-focus-ring-width: 2px;
|
|
198
|
+
--matcha-state-focus-ring-offset: 2px;
|
|
199
|
+
|
|
200
|
+
// ── Scrim / Overlay (Figma matcha/overlay Type=Modal / Type=Drawer) ──────
|
|
201
|
+
--matcha-scrim-modal: rgba(0, 0, 0, 0.5);
|
|
202
|
+
--matcha-scrim-modal-blur: 6px;
|
|
203
|
+
--matcha-scrim-drawer: rgba(0, 0, 0, 0.3);
|
|
204
|
+
--matcha-scrim-drawer-blur: 4px;
|
|
205
|
+
|
|
206
|
+
// ── Icon sizes (4 tokens — matches matcha/icon/size/* exato) ─────────────
|
|
207
|
+
|
|
208
|
+
// ── Avatar sizes (1:1 com Figma matcha/avatar — Type=Photo, Size variants)
|
|
209
|
+
--matcha-avatar-xs: 24px;
|
|
210
|
+
--matcha-avatar-sm: 32px;
|
|
211
|
+
--matcha-avatar-md: 40px;
|
|
212
|
+
--matcha-avatar-lg: 56px;
|
|
213
|
+
--matcha-avatar-xl: 80px;
|
|
214
|
+
--matcha-avatar-2xl: 96px;
|
|
215
|
+
// Status indicator — 1:1 com Figma (Status ellipse em cada Size variant)
|
|
216
|
+
--matcha-avatar-status-xs: 6px;
|
|
217
|
+
--matcha-avatar-status-sm: 8px;
|
|
218
|
+
--matcha-avatar-status-md: 10px;
|
|
219
|
+
--matcha-avatar-status-lg: 12px;
|
|
220
|
+
--matcha-avatar-status-xl: 14px;
|
|
221
|
+
--matcha-avatar-status-2xl: 16px;
|
|
222
|
+
|
|
223
|
+
// ── Z-index (8 tokens — matches matcha/z-index/* from Figma) ─────────────
|
|
224
|
+
// Panel flutuante (matcha-panel) — acima de modal pra suportar select/menu
|
|
225
|
+
// dentro de modal. Renderizado via portal-to-body fora de stacking contexts.
|
|
226
|
+
--matcha-z-popover-floating: 10001;
|
|
227
|
+
|
|
228
|
+
// ── Grid (22 tokens — 1:1 com matcha/grid/* do Figma) ────────────────────
|
|
229
|
+
// Frames (breakpoints)
|
|
230
|
+
// Chrome
|
|
231
|
+
--matcha-grid-header-height-mobile: 48px;
|
|
232
|
+
// Gutters (espaço entre colunas)
|
|
233
|
+
// Column widths (largura INDIVIDUAL de coluna) — Figma verdadeiro
|
|
234
|
+
// Content widths (área útil total) — Figma verdadeiro
|
|
235
|
+
|
|
236
|
+
// Public-facing column widths (site institucional/landing — breakpoint-aware)
|
|
237
|
+
|
|
238
|
+
// Horizontal offsets (distância da borda do frame ao primeiro col da grid)
|
|
239
|
+
|
|
240
|
+
// ── Breakpoints (6 tokens — Tailwind-aligned, expostos como CSS vars) ────
|
|
241
|
+
// Pra container queries, JS-side responsive logic (`matchMedia`) e media
|
|
242
|
+
// queries inline (`@media (min-width: var(...))` em CSS moderno). Valores
|
|
243
|
+
// alinhados ao padrão Tailwind/Chakra — familiares e cobrem todos os tiers
|
|
244
|
+
// (mobile pequeno até desktop wide). 1:1 com Figma `matcha/bp/*`.
|
|
245
|
+
//
|
|
246
|
+
// NOTA: SCSS `@mixin breakpoint(...)` em `_breakpoints-tokens.scss` usa
|
|
247
|
+
// valores Angular Material legacy (600/1024/1440/1920) — DESALINHADO destes.
|
|
248
|
+
// Em refactors novos, prefira CSS custom prop `var(--matcha-bp-md)` em vez
|
|
249
|
+
// do mixin SCSS.
|
|
250
|
+
|
|
251
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
252
|
+
// 16. NAMING-PARITY ALIASES
|
|
253
|
+
// Aliases que espelham o nome exato das variables do Figma, garantindo que
|
|
254
|
+
// dev possa referenciar o token pelo nome que vê no Figma.
|
|
255
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
256
|
+
|
|
257
|
+
// Figma: matcha/color/surface/background → ↔ --matcha-color-surface-bg
|
|
258
|
+
--matcha-color-surface-background: var(--matcha-color-surface-bg);
|
|
259
|
+
--matcha-color-surface-background-alpha: var(--matcha-color-surface-bg-alpha);
|
|
260
|
+
--matcha-color-surface-background-inverse: var(--matcha-color-surface-bg-inverse);
|
|
261
|
+
|
|
262
|
+
// Figma: matcha/color/neutral/default → ↔ --matcha-color-neutral
|
|
263
|
+
--matcha-color-neutral-default: var(--matcha-color-neutral);
|
|
264
|
+
|
|
265
|
+
// Figma: matcha/color/interaction/focus-ring → ↔ --matcha-color-focus-ring
|
|
266
|
+
--matcha-color-interaction-focus-ring: var(--matcha-color-focus-ring);
|
|
267
|
+
|
|
268
|
+
// Figma: matcha/z-index/{base,dropdown,…} → ↔ --matcha-z-{base,dropdown,…}
|
|
269
|
+
--matcha-z-index-base: var(--matcha-z-base);
|
|
270
|
+
--matcha-z-index-dropdown: var(--matcha-z-dropdown);
|
|
271
|
+
--matcha-z-index-sticky: var(--matcha-z-sticky);
|
|
272
|
+
--matcha-z-index-popover: var(--matcha-z-popover);
|
|
273
|
+
--matcha-z-index-tooltip: var(--matcha-z-tooltip);
|
|
274
|
+
--matcha-z-index-modal-bg: var(--matcha-z-modal-bg);
|
|
275
|
+
--matcha-z-index-modal: var(--matcha-z-modal);
|
|
276
|
+
--matcha-z-index-overlay: var(--matcha-z-overlay);
|
|
277
|
+
--matcha-z-index-popover-floating: var(--matcha-z-popover-floating);
|
|
278
|
+
|
|
279
|
+
// Figma: matcha/font/weight/semi-bold → ↔ --matcha-weight-semibold
|
|
280
|
+
--matcha-font-weight-extralight: var(--matcha-weight-extralight);
|
|
281
|
+
--matcha-font-weight-light: var(--matcha-weight-light);
|
|
282
|
+
--matcha-font-weight-semi-bold: var(--matcha-weight-semibold);
|
|
283
|
+
--matcha-font-weight-regular: var(--matcha-weight-regular);
|
|
284
|
+
--matcha-font-weight-medium: var(--matcha-weight-medium);
|
|
285
|
+
--matcha-font-weight-bold: var(--matcha-weight-bold);
|
|
286
|
+
--matcha-font-weight-extrabold: var(--matcha-weight-extrabold);
|
|
287
|
+
--matcha-font-weight-black: var(--matcha-weight-black);
|
|
288
|
+
|
|
289
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
290
|
+
// 17. GRADIENTS
|
|
291
|
+
// Gradients tonais semânticos. Compostos por 2 stops (alpha → surface-card)
|
|
292
|
+
// pra dar fade lateral em banners. Mantém compat com Figma — lá cada stop
|
|
293
|
+
// é uma variable separada (gradients não são tipo nativo de variable).
|
|
294
|
+
// Centralizar aqui evita repetir o linear-gradient em cada componente.
|
|
295
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
296
|
+
|
|
297
|
+
// Figma DSV3 (matcha/banner 19080:308): tone="info" mapeia pra primary-alpha
|
|
298
|
+
// (#64b5f6 azul), não info-alpha (cyan/turquesa) — alinhamento visual com border + eyebrow.
|
|
299
|
+
--matcha-gradient-banner-info: linear-gradient(
|
|
300
|
+
90deg,
|
|
301
|
+
var(--matcha-color-primary-alpha) 0%,
|
|
302
|
+
var(--matcha-color-surface-card) 100%
|
|
303
|
+
);
|
|
304
|
+
--matcha-gradient-banner-success: linear-gradient(
|
|
305
|
+
90deg,
|
|
306
|
+
var(--matcha-color-success-alpha) 0%,
|
|
307
|
+
var(--matcha-color-surface-card) 100%
|
|
308
|
+
);
|
|
309
|
+
--matcha-gradient-banner-warning: linear-gradient(
|
|
310
|
+
90deg,
|
|
311
|
+
var(--matcha-color-warn-alpha) 0%,
|
|
312
|
+
var(--matcha-color-surface-card) 100%
|
|
313
|
+
);
|
|
314
|
+
--matcha-gradient-banner-accent: linear-gradient(
|
|
315
|
+
90deg,
|
|
316
|
+
var(--matcha-color-accent-alpha) 0%,
|
|
317
|
+
var(--matcha-color-surface-card) 100%
|
|
318
|
+
);
|
|
319
|
+
--matcha-gradient-banner-danger: linear-gradient(
|
|
320
|
+
90deg,
|
|
321
|
+
var(--matcha-color-danger-alpha) 0%,
|
|
322
|
+
var(--matcha-color-surface-card) 100%
|
|
323
|
+
);
|
|
324
|
+
}
|