@eaera-com/eaera-widgets-v2 0.1.80 → 0.1.82

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 (29) hide show
  1. package/dist/components/base/EaeraCollapse.d.ts +7 -1
  2. package/dist/components/base/EaeraCollapse.mjs +1 -1
  3. package/dist/components/chunks/EaeraCollapse-DWofxWoM.mjs +1 -0
  4. package/dist/components/index.mjs +1 -1
  5. package/dist/design-system/components/_collapse.scss +31 -1
  6. package/dist/design-system/themes/aurora/layers/_layer1-palettes.scss +0 -29
  7. package/dist/design-system/themes/aurora/layers/_layer3-tokens.scss +3 -0
  8. package/dist/design-system/themes/core/layers/_layer1-palettes.scss +0 -29
  9. package/dist/design-system/themes/core/layers/_layer3-tokens.scss +3 -0
  10. package/dist/design-system/themes/netr/bridges/_element-plus-bridge.scss +58 -0
  11. package/dist/design-system/themes/netr/elevation/_elevation-tokens.scss +67 -0
  12. package/dist/design-system/themes/netr/elevation/_elevation-utils.scss +94 -0
  13. package/dist/design-system/themes/netr/index.scss +133 -0
  14. package/dist/design-system/themes/netr/layers/_layer1-palettes.scss +318 -0
  15. package/dist/design-system/themes/netr/layers/_layer2-alias.scss +250 -0
  16. package/dist/design-system/themes/netr/layers/_layer3-tokens.scss +242 -0
  17. package/dist/design-system/themes/netr/themes/_dark-mode.scss +177 -0
  18. package/dist/design-system/themes/netr/tokens/_border-radius.scss +28 -0
  19. package/dist/design-system/themes/netr/tokens/_control-height.scss +18 -0
  20. package/dist/design-system/themes/netr/tokens/_screen-size.scss +10 -0
  21. package/dist/design-system/themes/netr/tokens/_spacing.scss +29 -0
  22. package/dist/design-system/themes/netr/typography/_typography-primitives.scss +11 -0
  23. package/dist/design-system/themes/netr/typography/_typography-semantic.scss +5 -0
  24. package/dist/design-system/themes/netr/typography/_typography-tokens.scss +185 -0
  25. package/dist/design-system/themes/netr/typography/_typography-utils.scss +375 -0
  26. package/dist/eaera-widgets-v2.es.js +46 -41
  27. package/dist/eaera-widgets-v2.umd.cjs +1 -1
  28. package/package.json +1 -1
  29. package/dist/components/chunks/EaeraCollapse-LNaBdM2I.mjs +0 -1
@@ -0,0 +1,177 @@
1
+ // ============================================================================
2
+ // DARK MODE TOKEN OVERRIDES
3
+ // ============================================================================
4
+ // Source: Figma UI Kit Core — Color Guidance — Dark Component Tokens
5
+ // File: https://www.figma.com/design/HSOs8VcK5CKL8s15AqD42x/UI-KIT-CORE
6
+ // Nodes:
7
+ // action — 40424:8223
8
+ // surface — 40424:8245
9
+ // text — 40424:8258
10
+ // icon — 40424:8271
11
+ // border — 40424:8283
12
+ //
13
+ // Applied when:
14
+ // - html.dark (global preference)
15
+ // - [data-theme="dark"] (attribute-based)
16
+ // - .dark (class-based — used by showcase toggle)
17
+ // ============================================================================
18
+
19
+ html.dark,
20
+ [data-theme='dark'],
21
+ .dark {
22
+ // ─────────────────────────────────────────────────────────────────────────
23
+ // ACTION
24
+ // ─────────────────────────────────────────────────────────────────────────
25
+ // Primary action — unchanged between light/dark
26
+ --er-action-primary-default: var(--er-primary-600); // primary/600 (same as light)
27
+ --er-action-primary-hover: var(--er-primary-700); // primary/700 (same as light)
28
+ --er-action-primary-pressed: var(--er-primary-800); // primary/800 (same as light)
29
+
30
+ // Primary subtle — raised alpha steps for dark backgrounds
31
+ --er-action-primary-subtle: var(--er-primary-alpha-300); // primary alpha/300
32
+ --er-action-primary-subtle-hover: var(--er-primary-alpha-400); // primary alpha/400
33
+ --er-action-primary-subtle-pressed: var(--er-primary-alpha-500); // primary alpha/500
34
+
35
+ // Neutral action — inverted from dark to light
36
+ --er-action-neutral-default: var(
37
+ --er-neutral-white
38
+ ); // neutral/white = #FFFFFF (light: neutral/950)
39
+ --er-action-neutral-hover: var(--er-neutral-100); // neutral/100 = #F4F4F5 (light: neutral/600)
40
+ --er-action-neutral-pressed: var(--er-neutral-300); // neutral/300 = #D4D4D8 (light: neutral/800)
41
+
42
+ // Neutral subtle — black base + elevation (white alpha) overlays
43
+ --er-action-neutral-subtle-default: var(
44
+ --er-neutral-black
45
+ ); // neutral/black = #000000 (light: neutral/white)
46
+ --er-action-neutral-subtle-hover: var(
47
+ --er-elevation-50
48
+ ); // elevation/50 = #F8F9FB @ 3.92% (light: neutral alpha/50)
49
+ --er-action-neutral-subtle-pressed: var(
50
+ --er-elevation-100
51
+ ); // elevation/100 = #F8F9FB @ 7.84% (light: neutral alpha/100)
52
+
53
+ // Danger action
54
+ --er-action-danger-default: var(--er-danger-600); // danger/600 (same as light)
55
+ --er-action-danger-hover: var(--er-danger-700); // danger/700 (same as light)
56
+ --er-action-danger-pressed: var(--er-danger-800); // danger/800 (same as light)
57
+
58
+ // Danger subtle — raised alpha steps for dark backgrounds
59
+ --er-action-danger-subtle-default: var(--er-danger-alpha-300); // danger alpha/300
60
+ --er-action-danger-subtle-hover: var(--er-danger-alpha-400); // danger alpha/400
61
+ --er-action-danger-subtle-pressed: var(--er-danger-alpha-500); // danger alpha/500
62
+
63
+ // Success action — shifted to -600/-700/-800 in dark mode for better contrast (mirrors danger)
64
+ --er-action-success-default: var(--er-success-600); // success/600 = #059669 (light: success/500)
65
+ --er-action-success-hover: var(--er-success-700); // success/700 = #047857 (light: success/600)
66
+ --er-action-success-pressed: var(--er-success-800); // success/800 = #065F46 (light: success/700)
67
+
68
+ // Success subtle — unchanged (alpha-based, works on dark)
69
+ --er-action-success-subtle-default: var(--er-success-alpha-50); // success alpha/50 @ 3.92%
70
+ --er-action-success-subtle-hover: var(--er-success-alpha-100); // success alpha/100 @ 7.84%
71
+ --er-action-success-subtle-pressed: var(--er-success-alpha-200); // success alpha/200 @ 12.16%
72
+
73
+ // ─────────────────────────────────────────────────────────────────────────
74
+ // SURFACE
75
+ // ─────────────────────────────────────────────────────────────────────────
76
+ --er-surface-page: var(--er-neutral-950); // surface/page = neutral/950 = #09090B
77
+ --er-surface-container: var(--er-neutral-900); // surface/container = neutral/900 = #18181B
78
+ --er-surface-elevated: var(--er-neutral-800); // surface/elevated = neutral/800 = #27272A
79
+ --er-surface-subtle: var(--er-neutral-800); // surface/subtle = neutral/800 = #27272A
80
+ --er-surface-muted: var(--er-neutral-700); // surface/muted = neutral/700 = #3F3F46
81
+ --er-surface-track: var(--er-elevation-100); // surface/track = elevation/50 (unchanged)
82
+ --er-surface-inverse: var(--er-neutral-50); // surface/inverse = neutral/50 = #FAFAFA
83
+
84
+ // Subtle surfaces — unchanged (alpha-based, work on dark)
85
+ --er-surface-neutral-subtle: var(--er-elevation-100); // surface/neutral-subtle = elevation/100 = #F8F9FB @ 7.84%
86
+ --er-surface-brand-subtle: var(--er-primary-alpha-100); // primary alpha/100 (unchanged)
87
+ --er-surface-success-subtle: var(--er-success-alpha-100); // success alpha/100 (unchanged)
88
+ --er-surface-warning-subtle: var(--er-warning-alpha-100); // warning alpha/100 (unchanged)
89
+ --er-surface-danger-subtle: var(--er-danger-alpha-100); // danger alpha/100 (unchanged)
90
+ --er-surface-information-subtle: var(--er-information-alpha-100); // information alpha/100 (unchanged)
91
+
92
+ // Fixed white — never changes between light/dark
93
+ --er-surface-fixed-white: var(--er-neutral-white); // always #FFFFFF
94
+
95
+ // Overlay / loading mask — dark translucent overlay so `.el-loading-mask`
96
+ // (v-loading / ElLoading) no longer washes out to white in dark mode.
97
+ // Maps to neutral/950 = #09090B at 90% (matches light-mode opacity).
98
+ --el-mask-color: rgba(9, 9, 11, 0.9);
99
+
100
+ // ─────────────────────────────────────────────────────────────────────────
101
+ // TEXT
102
+ // ─────────────────────────────────────────────────────────────────────────
103
+ --er-text-primary: var(--er-elevation-950); // text/primary = elevation/950 = #F8F9FB @ 96.08%
104
+ --er-text-secondary: var(--er-elevation-800); // text/secondary = elevation/800 @ 72.16%
105
+ --er-text-tertiary: var(--er-elevation-600); // text/tertiary = elevation/600 @ 40%
106
+ --er-text-muted: var(--er-elevation-600); // text/muted = elevation/600 @ 40%
107
+ --er-text-inverse: var(--er-neutral-900); // text/inverse = neutral/900 = #18181B
108
+ --er-text-brand: var(--er-primary-default); // primary/default = #F97316 (unchanged)
109
+ --er-text-on-action: var(--er-neutral-50); // neutral/50 = #FAFAFA (unchanged)
110
+ --er-text-success: var(--er-success-default); // success/default = #10B981 (unchanged)
111
+ --er-text-warning: var(--er-warning-default); // warning/default = #F59E0B (unchanged)
112
+ --er-text-danger: var(--er-danger-default); // danger/default = #EF4444 (unchanged)
113
+ --er-text-information: var(--er-information-default); // information/default = #0EA5E9 (unchanged)
114
+
115
+ // ─────────────────────────────────────────────────────────────────────────
116
+ // ICON
117
+ // ─────────────────────────────────────────────────────────────────────────
118
+ --er-icon-primary: var(--er-elevation-950); // icon/primary = elevation/950
119
+ --er-icon-secondary: var(--er-elevation-800); // icon/secondary = elevation/800
120
+ --er-icon-tertiary: var(--er-elevation-700); // icon/tertiary = elevation/700 @ 56.08%
121
+ --er-icon-muted: var(--er-elevation-600); // icon/muted = elevation/600 @ 40%
122
+ --er-icon-inverse: var(--er-neutral-900); // icon/inverse = neutral/900 = #18181B
123
+ --er-icon-brand: var(--er-primary-default); // primary/default = #F97316 (unchanged)
124
+ --er-icon-on-action: var(--er-neutral-50); // neutral/50 = #FAFAFA (unchanged)
125
+ --er-icon-success: var(--er-success-default); // success/default = #10B981 (unchanged)
126
+ --er-icon-warning: var(--er-warning-default); // warning/default = #F59E0B (unchanged)
127
+ --er-icon-danger: var(--er-danger-default); // danger/default = #EF4444 (unchanged)
128
+ --er-icon-information: var(--er-information-default); // information/default = #0EA5E9 (unchanged)
129
+
130
+ // ─────────────────────────────────────────────────────────────────────────
131
+ // BORDER
132
+ // ─────────────────────────────────────────────────────────────────────────
133
+ --er-border-default: var(--er-elevation-200); // border/default = elevation/200 = #F8F9FB @ 12.16%
134
+ --er-border-subtle: var(--er-elevation-100); // border/subtle = elevation/100 @ 7.84%
135
+ --er-border-strong: var(--er-elevation-400); // border/strong = elevation/400 @ 23.92%
136
+ --er-border-on-action: var(--er-neutral-50); // neutral/50 = #FAFAFA (unchanged)
137
+
138
+ // Semantic borders — unchanged (alpha-based or solid brand hues)
139
+ --er-border-brand: var(--er-primary-default); // primary/default = #F97316 (unchanged)
140
+ --er-border-brand-subtle: var(--er-primary-alpha-300); // primary alpha/300 @ 20% (unchanged)
141
+
142
+ --er-border-success: var(--er-success-default); // success/default = #10B981 (unchanged)
143
+ --er-border-success-subtle: var(--er-success-alpha-300); // success alpha/300 @ 20% (unchanged)
144
+
145
+ --er-border-warning: var(--er-warning-default); // warning/default = #F59E0B (unchanged)
146
+ --er-border-warning-subtle: var(--er-warning-alpha-300); // warning alpha/300 @ 20% (unchanged)
147
+
148
+ --er-border-danger: var(--er-danger-default); // danger/default = #EF4444 (unchanged)
149
+ --er-border-danger-subtle: var(--er-danger-alpha-300); // danger alpha/300 @ 20% (unchanged)
150
+
151
+ --er-border-information: var(--er-information-default); // information/default = #0EA5E9 (unchanged)
152
+ --er-border-information-subtle: var(--er-information-alpha-300); // information alpha/300 @ 20% (unchanged)
153
+
154
+ // ─────────────────────────────────────────────────────────────────────────
155
+ // SHADOW
156
+ // ─────────────────────────────────────────────────────────────────────────
157
+ // Ambient shadows (black with varying opacity)
158
+ --er-shadow-ambient-01: rgba(0, 0, 0, 0.16); // 16% (light: 4%)
159
+ --er-shadow-ambient-02: rgba(0, 0, 0, 0.2); // 20% (light: 6%)
160
+ --er-shadow-ambient-03: rgba(0, 0, 0, 0.24); // 24% (light: 8%)
161
+ --er-shadow-ambient-04: rgba(0, 0, 0, 0.28); // 28% (light: 10%)
162
+ --er-shadow-ambient-05: rgba(0, 0, 0, 0.32); // 32% (light: 12%)
163
+
164
+ // Highlight shadows (white with varying opacity)
165
+ --er-shadow-highlight-01: rgba(255, 255, 255, 0.03); // 3% (light: 0%)
166
+ --er-shadow-highlight-02: rgba(255, 255, 255, 0.05); // 5% (light: 0%)
167
+ --er-shadow-highlight-03: rgba(255, 255, 255, 0.07); // 7% (light: 0%)
168
+
169
+ // ─────────────────────────────────────────────────────────────────────────
170
+ // COMPONENT-SPECIFIC TOKENS
171
+ // ─────────────────────────────────────────────────────────────────────────
172
+ // Segmented control (Figma: component/segmented/*)
173
+ --er-component-segmented-item-hover: var(
174
+ --er-action-neutral-subtle-hover
175
+ ); // same as light
176
+ --er-component-segmented-item-active: var(--er-surface-muted); // surface/muted
177
+ }
@@ -0,0 +1,28 @@
1
+ // ============================================================================
2
+ // BORDER RADIUS TOKENS
3
+ // ============================================================================
4
+ // Source: Figma UI Kit Production - Shape - Corner radius scale
5
+ // Node: 36930:106
6
+ // Version: 1.0.0
7
+ // ============================================================================
8
+
9
+ :root {
10
+ // ─────────────────────────────────────────────────────────────────────────
11
+ // CORNER RADIUS SCALE (13 values from Figma)
12
+ // Figma variables: shape/corner/* → SCSS: --er-shape-corner-*
13
+ // ─────────────────────────────────────────────────────────────────────────
14
+
15
+ --er-shape-corner-0: 0; // Figma: shape/corner/0 - core 0
16
+ --er-shape-corner-25: 2px; // Figma: shape/corner/25 - core 2
17
+ --er-shape-corner-50: 4px; // Figma: shape/corner/50 - core 4
18
+ --er-shape-corner-75: 6px; // Figma: shape/corner/75 - core 6
19
+ --er-shape-corner-100: 8px; // Figma: shape/corner/100 - core 8
20
+ --er-shape-corner-150: 12px; // Figma: shape/corner/150 - core 12
21
+ --er-shape-corner-200: 16px; // Figma: shape/corner/200 - core 16
22
+ --er-shape-corner-250: 20px; // Figma: shape/corner/250 - core 20
23
+ --er-shape-corner-300: 24px; // Figma: shape/corner/300 - core 24
24
+ --er-shape-corner-350: 28px; // Figma: shape/corner/350 - core 28
25
+ --er-shape-corner-400: 32px; // Figma: shape/corner/400 - core 32
26
+ --er-shape-corner-450: 48px; // Figma: shape/corner/450 - core 48
27
+ --er-shape-corner-full: 1000px; // Figma: shape/corner/full - core 1000, pill/stadium shape (CSS clamps to height/2)
28
+ }
@@ -0,0 +1,18 @@
1
+ // ============================================================================
2
+ // CONTROL / COMPONENT HEIGHT TOKENS
3
+ // ============================================================================
4
+ // Source: Figma UI Kit Production - Control height scale
5
+ // Values alias the shape/spacing/* scale
6
+ // Version: 1.1.0
7
+ // ============================================================================
8
+
9
+ :root {
10
+ --er-control-height-xxs: var(--er-shape-spacing-200); // 16px - Figma: xxs → shape/spacing/200
11
+ --er-control-height-xs: var(--er-shape-spacing-250); // 20px - Figma: xs → shape/spacing/250
12
+ --er-control-height-sm: var(--er-shape-spacing-300); // 24px - Figma: sm → shape/spacing/300
13
+ --er-control-height-md: var(--er-shape-spacing-400); // 32px - Figma: md → shape/spacing/400
14
+ --er-control-height-lg: var(--er-shape-spacing-500); // 40px - Figma: lg → shape/spacing/500
15
+ --er-control-height-xl: var(--er-shape-spacing-600); // 48px - Figma: xl → shape/spacing/600
16
+ --er-control-height-2xl: var(--er-shape-spacing-800); // 64px - Figma: 2xl → shape/spacing/800
17
+ --er-control-height-3xl: var(--er-shape-spacing-900); // 72px - Figma: 3xl → shape/spacing/900
18
+ }
@@ -0,0 +1,10 @@
1
+ :root {
2
+ // ─────────────────────────────────────────────────────────────────────────
3
+ // SHAPE / SPACING SCALE (13 values from Figma)
4
+ // Figma variables: shape/spacing/* → CSS: --er-shape-spacing-*
5
+ // ─────────────────────────────────────────────────────────────────────────
6
+
7
+ --er-screen-desktop: 1376px;
8
+ --er-screen-tablet: 744px;
9
+ --er-screen-lg: 393px;
10
+ }
@@ -0,0 +1,29 @@
1
+ // ============================================================================
2
+ // SPACING TOKENS (Shape / Spacing)
3
+ // ============================================================================
4
+ // Source: Figma UI Kit Production - Shape - Spacing scale
5
+ // Node: (from design tokens) — values follow Figma spacing scale
6
+ // Version: 1.0.0
7
+ // ============================================================================
8
+
9
+ :root {
10
+ // ─────────────────────────────────────────────────────────────────────────
11
+ // SHAPE / SPACING SCALE (14 values from Figma)
12
+ // Figma variables: shape/spacing/* → CSS: --er-shape-spacing-*
13
+ // ─────────────────────────────────────────────────────────────────────────
14
+
15
+ --er-shape-spacing-50: 4px; // Figma: shape/spacing/50 - core 4
16
+ --er-shape-spacing-75: 6px; // Figma: shape/spacing/75 - core 6
17
+ --er-shape-spacing-100: 8px; // Figma: shape/spacing/100 - core 8
18
+ --er-shape-spacing-150: 12px; // Figma: shape/spacing/150 - core 12
19
+ --er-shape-spacing-200: 16px; // Figma: shape/spacing/200 - core 16
20
+ --er-shape-spacing-250: 20px; // Figma: shape/spacing/250 - core 20
21
+ --er-shape-spacing-300: 24px; // Figma: shape/spacing/300 - core 24
22
+ --er-shape-spacing-400: 32px; // Figma: shape/spacing/400 - core 32
23
+ --er-shape-spacing-450: 36px; // Figma: shape/spacing/450 - core 36
24
+ --er-shape-spacing-500: 40px; // Figma: shape/spacing/500 - core 40
25
+ --er-shape-spacing-600: 48px; // Figma: shape/spacing/600 - core 48
26
+ --er-shape-spacing-700: 56px; // Figma: shape/spacing/700 - core 56
27
+ --er-shape-spacing-800: 64px; // Figma: shape/spacing/800 - core 64
28
+ --er-shape-spacing-900: 72px; // Figma: shape/spacing/900 - core 72
29
+ }
@@ -0,0 +1,11 @@
1
+ :root {
2
+ // typography-primitives.scss
3
+ --er-font-brand: 'Geist';
4
+ --er-font-plain: 'Geist';
5
+
6
+ --er-font-weight-400: 500;
7
+ --er-font-weight-500: 500;
8
+ --er-font-weight-600: 600;
9
+ --er-font-weight-700: 700;
10
+ --er-font-weight-800: 800;
11
+ }
@@ -0,0 +1,5 @@
1
+ :root{
2
+ --er-wg-regular: 400;
3
+ --er-wg-semi: 500;
4
+ --er-wg-bold: 600;
5
+ }
@@ -0,0 +1,185 @@
1
+ // NOTE: Google Fonts (Geist) are loaded via <link> tags in nuxt.config.ts app.head
2
+ // (preconnect + stylesheet) instead of a render-blocking CSS @import.
3
+
4
+ // ============================================================================
5
+ // TYPOGRAPHY TOKENS
6
+ // ============================================================================
7
+ // Typography system for clear, scalable, and consistent interfaces
8
+ // Source: Figma UI Kit Production - Typography v1.0.0
9
+ // File: https://www.figma.com/design/I9lA8XsNx4Tmn9d0dysJ2A/UI-KIT---PRODUCT
10
+ // Frame: Typography (36924:101)
11
+ //
12
+ // Font: Geist
13
+ // Naming: typo/{category}-{size}/{property}
14
+ // Categories: dis (Display), head (Headline), title (Title), label (Label), body (Body)
15
+ // Sizes: lg (Large), md (Medium), sm (Small)
16
+ // Properties: font, sz, line-hg, wg, tracking
17
+ // IMPORTANT: Variable names MUST match Figma exactly:
18
+ // - font (NOT family)
19
+ // - sz (NOT size)
20
+ // - line-hg (NOT line-height)
21
+ // - wg (NOT weight)
22
+ // - tracking (NOT letter-spacing)
23
+ // ============================================================================
24
+
25
+ :root {
26
+ // ─────────────────────────────────────────────────────────────────────────
27
+ // DISPLAY (Largest text: Hero sections, marketing pages)
28
+ // Frame 36924:291 onwards
29
+ // ─────────────────────────────────────────────────────────────────────────
30
+
31
+ // Display Large - 57/64 Regular (Frame 36924:292)
32
+ // typo/dis-lg/{property}
33
+ --er-typo-dis-lg-font: var(--er-font-brand);
34
+ --er-typo-dis-lg-sz: 57px;
35
+ --er-typo-dis-lg-line-hg: 64px;
36
+ --er-typo-dis-lg-wg: var(--er-wg-regular); // Regular
37
+ --er-typo-dis-lg-wg-em: var(--er-wg-semi); // Semi
38
+ --er-typo-dis-lg-tracking: -0.25px;
39
+
40
+ // Display Medium - 45/52 Regular (Frame 36924:299)
41
+ // typo/dis-md/{property}
42
+ --er-typo-dis-md-font: var(--er-font-brand);
43
+ --er-typo-dis-md-sz: 45px;
44
+ --er-typo-dis-md-line-hg: 52px;
45
+ --er-typo-dis-md-wg: var(--er-wg-regular); // Regular
46
+ --er-typo-dis-md-wg-em: var(--er-wg-semi); // Semi
47
+ --er-typo-dis-md-tracking: 0;
48
+
49
+ // Display Small - 36/44 Regular (Frame 36924:306)
50
+ // typo/dis-sm/{property}
51
+ --er-typo-dis-sm-font: var(--er-font-brand);
52
+ --er-typo-dis-sm-sz: 36px;
53
+ --er-typo-dis-sm-line-hg: 44px;
54
+ --er-typo-dis-sm-wg: var(--er-wg-regular); // Regular
55
+ --er-typo-dis-sm-wg-em: var(--er-wg-semi); // Semi
56
+ --er-typo-dis-sm-tracking: 0;
57
+
58
+ // ─────────────────────────────────────────────────────────────────────────
59
+ // HEADLINE (Page titles, section headers)
60
+ // Frame 36924:313 onwards
61
+ // ─────────────────────────────────────────────────────────────────────────
62
+
63
+ // Headline Large - 32/40 Regular (Frame 36924:313)
64
+ // typo/head-lg/{property}
65
+ --er-typo-head-lg-font: var(--er-font-brand);
66
+ --er-typo-head-lg-sz: 32px;
67
+ --er-typo-head-lg-line-hg: 40px;
68
+ --er-typo-head-lg-wg: var(--er-wg-regular); // Regular
69
+ --er-typo-head-lg-wg-em: var(--er-wg-semi); // Semi
70
+ --er-typo-head-lg-tracking: 0;
71
+
72
+ // Headline Medium - 28/36 Regular (Frame 36924:320)
73
+ // typo/head-md/{property}
74
+ --er-typo-head-md-font: var(--er-font-brand);
75
+ --er-typo-head-md-sz: 28px;
76
+ --er-typo-head-md-line-hg: 36px;
77
+ --er-typo-head-md-wg: var(--er-wg-regular); // Regular
78
+ --er-typo-head-md-wg-em: var(--er-wg-semi); // Semi
79
+ --er-typo-head-md-tracking: 0;
80
+
81
+ // Headline Small - 24/32 Regular (Frame 36924:327)
82
+ // typo/head-sm/{property}
83
+ --er-typo-head-sm-font: var(--er-font-brand);
84
+ --er-typo-head-sm-sz: 24px;
85
+ --er-typo-head-sm-line-hg: 32px;
86
+ --er-typo-head-sm-wg: var(--er-wg-regular); // Regular
87
+ --er-typo-head-sm-wg-em: var(--er-wg-semi); // Semi
88
+ --er-typo-head-sm-tracking: 0;
89
+
90
+ // ─────────────────────────────────────────────────────────────────────────
91
+ // TITLE (Card titles, dialog headers, component headings)
92
+ // Frame 36924:334 onwards
93
+ // ─────────────────────────────────────────────────────────────────────────
94
+
95
+ // Title Large - 20/28 Regular (Frame 36924:334)
96
+ // typo/title-lg/{property}
97
+ --er-typo-title-lg-font: var(--er-font-brand);
98
+ --er-typo-title-lg-sz: 20px;
99
+ --er-typo-title-lg-line-hg: 28px;
100
+ --er-typo-title-lg-wg: var(--er-wg-semi); // Semi
101
+ --er-typo-title-lg-wg-em: var(--er-wg-bold); // Bold
102
+ --er-typo-title-lg-tracking: 0;
103
+
104
+ // Title Medium - 16/24 Medium (Frame 36924:341)
105
+ // typo/title-md/{property}
106
+ --er-typo-title-md-font: var(--er-font-brand);
107
+ --er-typo-title-md-sz: 16px;
108
+ --er-typo-title-md-line-hg: 24px;
109
+ --er-typo-title-md-wg: var(--er-wg-semi); // Medium
110
+ --er-typo-title-md-wg-em: var(--er-wg-bold); // Semi Bold
111
+ --er-typo-title-md-tracking: 0.15px;
112
+
113
+ // Title Small - 14/20 Medium (Frame 36924:348)
114
+ // typo/title-sm/{property}
115
+ --er-typo-title-sm-font: var(--er-font-brand);
116
+ --er-typo-title-sm-sz: 14px;
117
+ --er-typo-title-sm-line-hg: 20px;
118
+ --er-typo-title-sm-wg: var(--er-wg-semi); // Medium
119
+ --er-typo-title-sm-wg-em: var(--er-wg-bold); // Semi Bold
120
+ --er-typo-title-sm-tracking: 0.1px;
121
+
122
+ // ─────────────────────────────────────────────────────────────────────────
123
+ // LABEL (Form labels, button text, badges, chips)
124
+ // Frame 36924:355 onwards
125
+ // ─────────────────────────────────────────────────────────────────────────
126
+
127
+ // Label Large - 14/20 Medium (Frame 36924:355)
128
+ // typo/label-lg/{property}
129
+ --er-typo-label-lg-font: var(--er-font-brand);
130
+ --er-typo-label-lg-sz: 14px;
131
+ --er-typo-label-lg-line-hg: 20px;
132
+ --er-typo-label-lg-wg: var(--er-wg-semi); // Medium
133
+ --er-typo-label-lg-wg-em: var(--er-wg-bold); // Semi Bold
134
+ --er-typo-label-lg-tracking: 0.1px;
135
+
136
+ // Label Medium - 12/16 Medium (Frame 36924:362)
137
+ // typo/label-md/{property}
138
+ --er-typo-label-md-font: var(--er-font-brand);
139
+ --er-typo-label-md-sz: 12px;
140
+ --er-typo-label-md-line-hg: 16px;
141
+ --er-typo-label-md-wg: var(--er-wg-semi); // Semi Bold
142
+ --er-typo-label-md-wg-em: var(--er-wg-bold); // Bold
143
+ --er-typo-label-md-tracking: 0.5px;
144
+
145
+ // Label Small - 11/16 Medium (Frame 36924:369)
146
+ // typo/label-sm/{property}
147
+ --er-typo-label-sm-font: var(--er-font-brand);
148
+ --er-typo-label-sm-sz: 11px;
149
+ --er-typo-label-sm-line-hg: 16px;
150
+ --er-typo-label-sm-wg: var(--er-wg-semi); // Medium
151
+ --er-typo-label-sm-wg-em: var(--er-wg-bold); // Semi Bold
152
+ --er-typo-label-sm-tracking: 0.5px;
153
+
154
+ // ─────────────────────────────────────────────────────────────────────────
155
+ // BODY (Paragraphs, descriptions, table content)
156
+ // Frame 36924:376 onwards
157
+ // ─────────────────────────────────────────────────────────────────────────
158
+
159
+ // Body Large - 16/24 Regular (Frame 36924:376)
160
+ // typo/body-lg/{property}
161
+ --er-typo-body-lg-font: var(--er-font-brand);
162
+ --er-typo-body-lg-sz: 16px;
163
+ --er-typo-body-lg-line-hg: 24px;
164
+ --er-typo-body-lg-wg: var(--er-wg-regular); // Regular
165
+ --er-typo-body-lg-wg-em: var(--er-wg-semi); // Semi
166
+ --er-typo-body-lg-tracking: 0.5px;
167
+
168
+ // Body Medium - 14/20 Regular (Frame 36924:383)
169
+ // typo/body-md/{property}
170
+ --er-typo-body-md-font: var(--er-font-brand);
171
+ --er-typo-body-md-sz: 14px;
172
+ --er-typo-body-md-line-hg: 20px;
173
+ --er-typo-body-md-wg: var(--er-wg-regular); // Regular
174
+ --er-typo-body-md-wg-em: var(--er-wg-semi); // Semi
175
+ --er-typo-body-md-tracking: 0.25px;
176
+
177
+ // Body Small - 12/16 Regular (Frame 36924:390)
178
+ // typo/body-sm/{property}
179
+ --er-typo-body-sm-font: var(--er-font-brand);
180
+ --er-typo-body-sm-sz: 12px;
181
+ --er-typo-body-sm-line-hg: 16px;
182
+ --er-typo-body-sm-wg: var(--er-wg-regular); // Regular
183
+ --er-typo-body-sm-wg-em: var(--er-wg-semi); // Semi
184
+ --er-typo-body-sm-tracking: 0.4px;
185
+ }