@eaera-com/eaera-widgets-v2 0.1.63 → 0.1.64

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 (97) hide show
  1. package/dist/design-system/components/_alert.scss +150 -0
  2. package/dist/design-system/components/_auto-complete.scss +165 -0
  3. package/dist/design-system/components/_avatar-group.scss +25 -0
  4. package/dist/design-system/components/_avatar.scss +40 -0
  5. package/dist/design-system/components/_badge.scss +80 -0
  6. package/dist/design-system/components/_breadcrumb.scss +91 -0
  7. package/dist/design-system/components/_button.scss +378 -0
  8. package/dist/design-system/components/_card.scss +27 -0
  9. package/dist/design-system/components/_carousel.scss +104 -0
  10. package/dist/design-system/components/_cascader.scss +705 -0
  11. package/dist/design-system/components/_checkbox-list.scss +18 -0
  12. package/dist/design-system/components/_checkbox.scss +117 -0
  13. package/dist/design-system/components/_collapse.scss +84 -0
  14. package/dist/design-system/components/_color-picker.scss +195 -0
  15. package/dist/design-system/components/_country-flag.scss +56 -0
  16. package/dist/design-system/components/_currency-icon.scss +19 -0
  17. package/dist/design-system/components/_date-picker.scss +748 -0
  18. package/dist/design-system/components/_dialog.scss +101 -0
  19. package/dist/design-system/components/_divider.scss +7 -0
  20. package/dist/design-system/components/_drawer.scss +41 -0
  21. package/dist/design-system/components/_dropdown.scss +69 -0
  22. package/dist/design-system/components/_empty.scss +101 -0
  23. package/dist/design-system/components/_form.scss +151 -0
  24. package/dist/design-system/components/_growth-balance-profit-widget.scss +95 -0
  25. package/dist/design-system/components/_input-code.scss +116 -0
  26. package/dist/design-system/components/_input-number.scss +233 -0
  27. package/dist/design-system/components/_input-tag.scss +212 -0
  28. package/dist/design-system/components/_input.scss +239 -0
  29. package/dist/design-system/components/_link.scss +64 -0
  30. package/dist/design-system/components/_loading.scss +89 -0
  31. package/dist/design-system/components/_menu.scss +578 -0
  32. package/dist/design-system/components/_message-box.scss +78 -0
  33. package/dist/design-system/components/_message.scss +187 -0
  34. package/dist/design-system/components/_monthly-gain-widget.scss +114 -0
  35. package/dist/design-system/components/_pagination.scss +356 -0
  36. package/dist/design-system/components/_pl-calendar-widget.scss +171 -0
  37. package/dist/design-system/components/_popconfirm.scss +57 -0
  38. package/dist/design-system/components/_popper.scss +267 -0
  39. package/dist/design-system/components/_progress.scss +153 -0
  40. package/dist/design-system/components/_radio.scss +68 -0
  41. package/dist/design-system/components/_segmented.scss +215 -0
  42. package/dist/design-system/components/_select-country.scss +182 -0
  43. package/dist/design-system/components/_select.scss +235 -0
  44. package/dist/design-system/components/_skeleton.scss +146 -0
  45. package/dist/design-system/components/_slider.scss +142 -0
  46. package/dist/design-system/components/_spinner.scss +73 -0
  47. package/dist/design-system/components/_steps.scss +292 -0
  48. package/dist/design-system/components/_switch.scss +89 -0
  49. package/dist/design-system/components/_switcher.scss +110 -0
  50. package/dist/design-system/components/_table.scss +580 -0
  51. package/dist/design-system/components/_tabs.scss +260 -0
  52. package/dist/design-system/components/_tag.scss +208 -0
  53. package/dist/design-system/components/_time-picker.scss +255 -0
  54. package/dist/design-system/components/_time-select.scss +167 -0
  55. package/dist/design-system/components/_timeline.scss +99 -0
  56. package/dist/design-system/components/_tooltip.scss +19 -0
  57. package/dist/design-system/components/_topbar-menu.scss +67 -0
  58. package/dist/design-system/components/_trade-volume-widget.scss +114 -0
  59. package/dist/design-system/components/_transfer.scss +241 -0
  60. package/dist/design-system/components/_tree-select.scss +198 -0
  61. package/dist/design-system/components/_tree.scss +108 -0
  62. package/dist/design-system/components/_upload.scss +226 -0
  63. package/dist/design-system/themes/aurora/bridges/_element-plus-bridge.scss +58 -0
  64. package/dist/design-system/themes/aurora/elevation/_elevation-tokens.scss +67 -0
  65. package/dist/design-system/themes/aurora/elevation/_elevation-utils.scss +94 -0
  66. package/dist/design-system/themes/aurora/index.scss +133 -0
  67. package/dist/design-system/themes/aurora/layers/_layer1-palettes.scss +289 -0
  68. package/dist/design-system/themes/aurora/layers/_layer2-alias.scss +250 -0
  69. package/dist/design-system/themes/aurora/layers/_layer3-tokens.scss +242 -0
  70. package/dist/design-system/themes/aurora/themes/_dark-mode.scss +177 -0
  71. package/dist/design-system/themes/aurora/themes/projects/base.scss +11 -0
  72. package/dist/design-system/themes/aurora/tokens/_border-radius.scss +28 -0
  73. package/dist/design-system/themes/aurora/tokens/_control-height.scss +18 -0
  74. package/dist/design-system/themes/aurora/tokens/_screen-size.scss +10 -0
  75. package/dist/design-system/themes/aurora/tokens/_spacing.scss +29 -0
  76. package/dist/design-system/themes/aurora/typography/_typography-primitives.scss +11 -0
  77. package/dist/design-system/themes/aurora/typography/_typography-semantic.scss +5 -0
  78. package/dist/design-system/themes/aurora/typography/_typography-tokens.scss +185 -0
  79. package/dist/design-system/themes/aurora/typography/_typography-utils.scss +375 -0
  80. package/dist/design-system/themes/core/bridges/_element-plus-bridge.scss +82 -0
  81. package/dist/design-system/themes/core/elevation/_elevation-tokens.scss +67 -0
  82. package/dist/design-system/themes/core/elevation/_elevation-utils.scss +94 -0
  83. package/dist/design-system/themes/core/index.scss +130 -0
  84. package/dist/design-system/themes/core/layers/_layer1-palettes.scss +289 -0
  85. package/dist/design-system/themes/core/layers/_layer2-alias.scss +242 -0
  86. package/dist/design-system/themes/core/layers/_layer3-tokens.scss +220 -0
  87. package/dist/design-system/themes/core/themes/_dark-mode.scss +165 -0
  88. package/dist/design-system/themes/core/themes/projects/base.scss +11 -0
  89. package/dist/design-system/themes/core/tokens/_border-radius.scss +28 -0
  90. package/dist/design-system/themes/core/tokens/_control-height.scss +18 -0
  91. package/dist/design-system/themes/core/tokens/_screen-size.scss +10 -0
  92. package/dist/design-system/themes/core/tokens/_spacing.scss +29 -0
  93. package/dist/design-system/themes/core/typography/_typography-primitives.scss +11 -0
  94. package/dist/design-system/themes/core/typography/_typography-semantic.scss +5 -0
  95. package/dist/design-system/themes/core/typography/_typography-tokens.scss +185 -0
  96. package/dist/design-system/themes/core/typography/_typography-utils.scss +375 -0
  97. package/package.json +4 -3
@@ -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
+ }
@@ -0,0 +1,375 @@
1
+ // ============================================================================
2
+ // TYPOGRAPHY UTILITIES
3
+ // ============================================================================
4
+ // Helper mixins and classes for applying typography tokens
5
+ // Usage:
6
+ // @use '../typography/typography-utils' as typo;
7
+ // .my-element { @include typo.display-lg; }
8
+ // Or use CSS classes directly: <h1 class="typo-dis-lg">
9
+ //
10
+ // IMPORTANT: Uses Figma naming convention:
11
+ // - font (NOT family)
12
+ // - sz (NOT size)
13
+ // - line-hg (NOT line-height)
14
+ // - wg (NOT weight)
15
+ // - tracking (NOT letter-spacing)
16
+ // ============================================================================
17
+
18
+ // ─────────────────────────────────────────────────────────────────────────
19
+ // MIXINS - Use in SCSS
20
+ // ─────────────────────────────────────────────────────────────────────────
21
+
22
+ // Display styles
23
+ @mixin display-lg {
24
+ font-family: var(--er-typo-dis-lg-font);
25
+ font-size: var(--er-typo-dis-lg-sz);
26
+ line-height: var(--er-typo-dis-lg-line-hg);
27
+ font-weight: var(--er-typo-dis-lg-wg);
28
+ letter-spacing: var(--er-typo-dis-lg-tracking);
29
+ }
30
+
31
+ @mixin display-lg-em {
32
+ font-family: var(--er-typo-dis-lg-font);
33
+ font-size: var(--er-typo-dis-lg-sz);
34
+ line-height: var(--er-typo-dis-lg-line-hg);
35
+ font-weight: var(--er-typo-dis-lg-wg-em);
36
+ letter-spacing: var(--er-typo-dis-lg-tracking);
37
+ }
38
+
39
+ @mixin display-md {
40
+ font-family: var(--er-typo-dis-md-font);
41
+ font-size: var(--er-typo-dis-md-sz);
42
+ line-height: var(--er-typo-dis-md-line-hg);
43
+ font-weight: var(--er-typo-dis-md-wg);
44
+ letter-spacing: var(--er-typo-dis-md-tracking);
45
+ }
46
+
47
+ @mixin display-md-em {
48
+ font-family: var(--er-typo-dis-md-font);
49
+ font-size: var(--er-typo-dis-md-sz);
50
+ line-height: var(--er-typo-dis-md-line-hg);
51
+ font-weight: var(--er-typo-dis-md-wg-em);
52
+ letter-spacing: var(--er-typo-dis-md-tracking);
53
+ }
54
+
55
+ @mixin display-sm {
56
+ font-family: var(--er-typo-dis-sm-font);
57
+ font-size: var(--er-typo-dis-sm-sz);
58
+ line-height: var(--er-typo-dis-sm-line-hg);
59
+ font-weight: var(--er-typo-dis-sm-wg);
60
+ letter-spacing: var(--er-typo-dis-sm-tracking);
61
+ }
62
+
63
+ @mixin display-sm-em {
64
+ font-family: var(--er-typo-dis-sm-font);
65
+ font-size: var(--er-typo-dis-sm-sz);
66
+ line-height: var(--er-typo-dis-sm-line-hg);
67
+ font-weight: var(--er-typo-dis-sm-wg-em);
68
+ letter-spacing: var(--er-typo-dis-sm-tracking);
69
+ }
70
+
71
+ // Headline styles
72
+ @mixin headline-lg {
73
+ font-family: var(--er-typo-head-lg-font);
74
+ font-size: var(--er-typo-head-lg-sz);
75
+ line-height: var(--er-typo-head-lg-line-hg);
76
+ font-weight: var(--er-typo-head-lg-wg);
77
+ letter-spacing: var(--er-typo-head-lg-tracking);
78
+ }
79
+
80
+ @mixin headline-lg-em {
81
+ font-family: var(--er-typo-head-lg-font);
82
+ font-size: var(--er-typo-head-lg-sz);
83
+ line-height: var(--er-typo-head-lg-line-hg);
84
+ font-weight: var(--er-typo-head-lg-wg-em);
85
+ letter-spacing: var(--er-typo-head-lg-tracking);
86
+ }
87
+
88
+ @mixin headline-md {
89
+ font-family: var(--er-typo-head-md-font);
90
+ font-size: var(--er-typo-head-md-sz);
91
+ line-height: var(--er-typo-head-md-line-hg);
92
+ font-weight: var(--er-typo-head-md-wg);
93
+ letter-spacing: var(--er-typo-head-md-tracking);
94
+ }
95
+
96
+ @mixin headline-md-em {
97
+ font-family: var(--er-typo-head-md-font);
98
+ font-size: var(--er-typo-head-md-sz);
99
+ line-height: var(--er-typo-head-md-line-hg);
100
+ font-weight: var(--er-typo-head-md-wg-em);
101
+ letter-spacing: var(--er-typo-head-md-tracking);
102
+ }
103
+
104
+ @mixin headline-sm {
105
+ font-family: var(--er-typo-head-sm-font);
106
+ font-size: var(--er-typo-head-sm-sz);
107
+ line-height: var(--er-typo-head-sm-line-hg);
108
+ font-weight: var(--er-typo-head-sm-wg);
109
+ letter-spacing: var(--er-typo-head-sm-tracking);
110
+ }
111
+
112
+ @mixin headline-sm-em {
113
+ font-family: var(--er-typo-head-sm-font);
114
+ font-size: var(--er-typo-head-sm-sz);
115
+ line-height: var(--er-typo-head-sm-line-hg);
116
+ font-weight: var(--er-typo-head-sm-wg-em);
117
+ letter-spacing: var(--er-typo-head-sm-tracking);
118
+ }
119
+
120
+ // Title styles
121
+ @mixin title-lg {
122
+ font-family: var(--er-typo-title-lg-font);
123
+ font-size: var(--er-typo-title-lg-sz);
124
+ line-height: var(--er-typo-title-lg-line-hg);
125
+ font-weight: var(--er-typo-title-lg-wg);
126
+ letter-spacing: var(--er-typo-title-lg-tracking);
127
+ }
128
+
129
+ @mixin title-lg-em {
130
+ font-family: var(--er-typo-title-lg-font);
131
+ font-size: var(--er-typo-title-lg-sz);
132
+ font-weight: var(--er-typo-title-lg-wg-em);
133
+ line-height: var(--er-typo-title-lg-line-hg);
134
+ letter-spacing: var(--er-typo-title-lg-tracking);
135
+ }
136
+
137
+ @mixin title-md {
138
+ font-family: var(--er-typo-title-md-font);
139
+ font-size: var(--er-typo-title-md-sz);
140
+ line-height: var(--er-typo-title-md-line-hg);
141
+ font-weight: var(--er-typo-title-md-wg);
142
+ letter-spacing: var(--er-typo-title-md-tracking);
143
+ }
144
+
145
+ @mixin title-md-em {
146
+ font-family: var(--er-typo-title-md-font);
147
+ font-size: var(--er-typo-title-md-sz);
148
+ line-height: var(--er-typo-title-md-line-hg);
149
+ font-weight: var(--er-typo-title-md-wg-em);
150
+ letter-spacing: var(--er-typo-title-md-tracking);
151
+ }
152
+
153
+ @mixin title-sm {
154
+ font-family: var(--er-typo-title-sm-font);
155
+ font-size: var(--er-typo-title-sm-sz);
156
+ line-height: var(--er-typo-title-sm-line-hg);
157
+ font-weight: var(--er-typo-title-sm-wg);
158
+ letter-spacing: var(--er-typo-title-sm-tracking);
159
+ }
160
+
161
+ @mixin title-sm-em {
162
+ font-family: var(--er-typo-title-sm-font);
163
+ font-size: var(--er-typo-title-sm-sz);
164
+ line-height: var(--er-typo-title-sm-line-hg);
165
+ font-weight: var(--er-typo-title-sm-wg-em);
166
+ letter-spacing: var(--er-typo-title-sm-tracking);
167
+ }
168
+
169
+ // Label styles
170
+ @mixin label-lg {
171
+ font-family: var(--er-typo-label-lg-font);
172
+ font-size: var(--er-typo-label-lg-sz);
173
+ line-height: var(--er-typo-label-lg-line-hg);
174
+ font-weight: var(--er-typo-label-lg-wg);
175
+ letter-spacing: var(--er-typo-label-lg-tracking);
176
+ }
177
+
178
+ @mixin label-lg-em {
179
+ font-family: var(--er-typo-label-lg-font);
180
+ font-size: var(--er-typo-label-lg-sz);
181
+ line-height: var(--er-typo-label-lg-line-hg);
182
+ font-weight: var(--er-typo-label-lg-wg-em);
183
+ letter-spacing: var(--er-typo-label-lg-tracking);
184
+ }
185
+
186
+ @mixin label-md {
187
+ font-family: var(--er-typo-label-md-font);
188
+ font-size: var(--er-typo-label-md-sz);
189
+ line-height: var(--er-typo-label-md-line-hg);
190
+ font-weight: var(--er-typo-label-md-wg);
191
+ letter-spacing: var(--er-typo-label-md-tracking);
192
+ }
193
+
194
+ @mixin label-md-em {
195
+ font-family: var(--er-typo-label-md-font);
196
+ font-size: var(--er-typo-label-md-sz);
197
+ line-height: var(--er-typo-label-md-line-hg);
198
+ font-weight: var(--er-typo-label-md-wg-em);
199
+ letter-spacing: var(--er-typo-label-md-tracking);
200
+ }
201
+
202
+ @mixin label-sm {
203
+ font-family: var(--er-typo-label-sm-font);
204
+ font-size: var(--er-typo-label-sm-sz);
205
+ line-height: var(--er-typo-label-sm-line-hg);
206
+ font-weight: var(--er-typo-label-sm-wg);
207
+ letter-spacing: var(--er-typo-label-sm-tracking);
208
+ }
209
+
210
+ @mixin label-sm-em {
211
+ font-family: var(--er-typo-label-sm-font);
212
+ font-size: var(--er-typo-label-sm-sz);
213
+ line-height: var(--er-typo-label-sm-line-hg);
214
+ font-weight: var(--er-typo-label-sm-wg-em);
215
+ letter-spacing: var(--er-typo-label-sm-tracking);
216
+ }
217
+
218
+ // Body styles
219
+ @mixin body-lg {
220
+ font-family: var(--er-typo-body-lg-font);
221
+ font-size: var(--er-typo-body-lg-sz);
222
+ line-height: var(--er-typo-body-lg-line-hg);
223
+ font-weight: var(--er-typo-body-lg-wg);
224
+ letter-spacing: var(--er-typo-body-lg-tracking);
225
+ font-variant-numeric: lining-nums tabular-nums;
226
+ }
227
+
228
+ @mixin body-lg-em {
229
+ font-family: var(--er-typo-body-lg-font);
230
+ font-size: var(--er-typo-body-lg-sz);
231
+ line-height: var(--er-typo-body-lg-line-hg);
232
+ font-weight: var(--er-typo-body-lg-wg-em);
233
+ letter-spacing: var(--er-typo-body-lg-tracking);
234
+ font-variant-numeric: lining-nums tabular-nums;
235
+ }
236
+
237
+ @mixin body-md {
238
+ font-family: var(--er-typo-body-md-font);
239
+ font-size: var(--er-typo-body-md-sz);
240
+ line-height: var(--er-typo-body-md-line-hg);
241
+ font-weight: var(--er-typo-body-md-wg);
242
+ letter-spacing: var(--er-typo-body-md-tracking);
243
+ font-variant-numeric: lining-nums tabular-nums;
244
+ }
245
+
246
+ @mixin body-md-em {
247
+ font-family: var(--er-typo-body-md-font);
248
+ font-size: var(--er-typo-body-md-sz);
249
+ line-height: var(--er-typo-body-md-line-hg);
250
+ font-weight: var(--er-typo-body-md-wg-em);
251
+ letter-spacing: var(--er-typo-body-md-tracking);
252
+ font-variant-numeric: lining-nums tabular-nums;
253
+ }
254
+
255
+ @mixin body-sm {
256
+ font-family: var(--er-typo-body-sm-font);
257
+ font-size: var(--er-typo-body-sm-sz);
258
+ line-height: var(--er-typo-body-sm-line-hg);
259
+ font-weight: var(--er-typo-body-sm-wg);
260
+ letter-spacing: var(--er-typo-body-sm-tracking);
261
+ font-variant-numeric: lining-nums tabular-nums;
262
+ }
263
+
264
+ @mixin body-sm-em {
265
+ font-family: var(--er-typo-body-sm-font);
266
+ font-size: var(--er-typo-body-sm-sz);
267
+ line-height: var(--er-typo-body-sm-line-hg);
268
+ font-weight: var(--er-typo-body-sm-wg-em);
269
+ letter-spacing: var(--er-typo-body-sm-tracking);
270
+ font-variant-numeric: lining-nums tabular-nums;
271
+ }
272
+
273
+ // ─────────────────────────────────────────────────────────────────────────
274
+ // UTILITY CLASSES - Use in HTML
275
+ // ─────────────────────────────────────────────────────────────────────────
276
+
277
+ // Display classes
278
+ .typo-dis-lg {
279
+ @include display-lg;
280
+ }
281
+ .typo-dis-lg-em {
282
+ @include display-lg-em;
283
+ }
284
+ .typo-dis-md {
285
+ @include display-md;
286
+ }
287
+ .typo-dis-md-em {
288
+ @include display-md-em;
289
+ }
290
+ .typo-dis-sm {
291
+ @include display-sm;
292
+ }
293
+ .typo-dis-sm-em {
294
+ @include display-sm-em;
295
+ }
296
+
297
+ // Headline classes
298
+ .typo-head-lg {
299
+ @include headline-lg;
300
+ }
301
+ .typo-head-lg-em {
302
+ @include headline-lg-em;
303
+ }
304
+ .typo-head-md {
305
+ @include headline-md;
306
+ }
307
+ .typo-head-md-em {
308
+ @include headline-md-em;
309
+ }
310
+ .typo-head-sm {
311
+ @include headline-sm;
312
+ }
313
+ .typo-head-sm-em {
314
+ @include headline-sm-em;
315
+ }
316
+
317
+ // Title classes
318
+ .typo-title-lg {
319
+ @include title-lg;
320
+ }
321
+ .typo-title-lg-em {
322
+ @include title-lg-em;
323
+ }
324
+ .typo-title-md {
325
+ @include title-md;
326
+ }
327
+ .typo-title-md-em {
328
+ @include title-md-em;
329
+ }
330
+ .typo-title-sm {
331
+ @include title-sm;
332
+ }
333
+ .typo-title-sm-em {
334
+ @include title-sm-em;
335
+ }
336
+
337
+ // Label classes
338
+ .typo-label-lg {
339
+ @include label-lg;
340
+ }
341
+ .typo-label-lg-em {
342
+ @include label-lg-em;
343
+ }
344
+ .typo-label-md {
345
+ @include label-md;
346
+ }
347
+ .typo-label-md-em {
348
+ @include label-md-em;
349
+ }
350
+ .typo-label-sm {
351
+ @include label-sm;
352
+ }
353
+ .typo-label-sm-em {
354
+ @include label-sm-em;
355
+ }
356
+
357
+ // Body classes
358
+ .typo-body-lg {
359
+ @include body-lg;
360
+ }
361
+ .typo-body-lg-em {
362
+ @include body-lg-em;
363
+ }
364
+ .typo-body-md {
365
+ @include body-md;
366
+ }
367
+ .typo-body-md-em {
368
+ @include body-md-em;
369
+ }
370
+ .typo-body-sm {
371
+ @include body-sm;
372
+ }
373
+ .typo-body-sm-em {
374
+ @include body-sm-em;
375
+ }