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

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,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
+ }
@@ -0,0 +1,82 @@
1
+ // ============================================================================
2
+ // ELEMENT PLUS BRIDGE
3
+ // ============================================================================
4
+ // Maps EAERA Design System tokens (--er-*) to Element Plus CSS variables (--el-*)
5
+ // IMPORTANT: Only uses colors from Layer 3 Component Tokens
6
+ // ============================================================================
7
+
8
+ :root {
9
+ // ─────────────────────────────────────────────────────────────────────────
10
+ // GLOBAL COLORS (from Layer 3)
11
+ // ─────────────────────────────────────────────────────────────────────────
12
+ // Primary semantic colors
13
+ --el-color-primary: var(--er-action-primary-default); // #3B82F6 (primary-500)
14
+ --el-color-success: var(--er-text-success); // #10B981 (success-500)
15
+ --el-color-warning: var(--er-text-warning); // #F59E0B (warning-500)
16
+ --el-color-danger: var(--er-text-danger); // #EF4444 (danger-500)
17
+ --el-color-error: var(--er-text-danger); // #EF4444 (danger-500)
18
+ --el-color-info: var(--er-text-information); // #0EA5E9 (information-500)
19
+
20
+ // Background colors
21
+ --el-bg-color: var(--er-surface-page); // #FFFFFF (neutral-white)
22
+ --el-bg-color-page: var(--er-surface-page); // #FFFFFF (neutral-white)
23
+
24
+ // Fill colors — component canvas / quiet fills. EP defaults are fixed light
25
+ // values (#fff, #f5f7fa…); unmapped, every fill consumer (el-descriptions
26
+ // body & bordered labels, el-card, el-table body) stays white in dark mode.
27
+ // Mapped tokens flip under html.dark (surface/container = neutral-900) or
28
+ // are alpha-based, so both themes resolve.
29
+ --el-fill-color-blank: var(--er-surface-container); // el-descriptions body, el-card/table canvas
30
+ --el-fill-color: var(--er-surface-subtle); // hover fills
31
+ --el-fill-color-light: var(--er-surface-neutral-subtle); // el-descriptions bordered label bg
32
+ --el-fill-color-lighter: var(--er-surface-subtle);
33
+ --el-fill-color-extra-light: var(--er-surface-container);
34
+ --el-fill-color-dark: var(--er-surface-muted);
35
+ --el-fill-color-darker: var(--er-surface-muted);
36
+
37
+ // Border colors — same class of bug: EP ships fixed light greys
38
+ // (#dcdfe6…#ebeef5). Mapped er tokens are alpha-based (#11161C light /
39
+ // #F8F9FB dark at 8–24% opacity), visually equivalent in light mode and
40
+ // correct on dark surfaces.
41
+ --el-border-color: var(--er-border-default);
42
+ --el-border-color-light: var(--er-border-default);
43
+ --el-border-color-lighter: var(--er-border-subtle); // el-descriptions table borders
44
+ --el-border-color-extra-light: var(--er-border-subtle);
45
+ --el-border-color-dark: var(--er-border-strong);
46
+ --el-border-color-darker: var(--er-border-strong);
47
+
48
+ // Floating-panel background (dropdown menus, select poppers, popconfirm,
49
+ // tooltips). EP defaults this to #ffffff and it was never mapped, so every
50
+ // overlay panel washed out white in dark mode. surface/elevated resolves to
51
+ // #FFFFFF (light) / #18181B (dark).
52
+ --el-bg-color-overlay: var(--er-surface-elevated);
53
+
54
+ // Overlay / loading mask — white in light mode; overridden to neutral-950 in
55
+ // dark mode (themes/_dark-mode.scss). Fixes the white loading washout.
56
+ --el-mask-color: rgba(255, 255, 255, 0.9);
57
+
58
+ // Text colors — EP defaults these to light-mode values (#303133, #606266,
59
+ // #909399, #a8abb2). Without mapping, every overlay (dropdowns, selects,
60
+ // popconfirm) shows light grey/white text on the dark elevated surface.
61
+ --el-text-color-primary: var(--er-text-primary);
62
+ --el-text-color-regular: var(--er-text-secondary);
63
+ --el-text-color-secondary: var(--er-text-muted);
64
+ --el-text-color-placeholder: var(--er-text-muted);
65
+ --el-text-color-disabled: var(--er-text-muted);
66
+
67
+ // Disabled state
68
+ --el-disabled-bg-color: var(--er-surface-muted); // #A1A1AA (neutral-400)
69
+ --el-disabled-text-color: var(--er-text-muted); // #D4D4D8 (neutral-300)
70
+
71
+ // ─────────────────────────────────────────────────────────────────────────
72
+ // ELEVATION (from elevation tokens)
73
+ // ─────────────────────────────────────────────────────────────────────────
74
+ --el-box-shadow: var(--er-elevation-soft-down); // Default shadow
75
+ --el-box-shadow-light: var(--er-elevation-soft-down);
76
+ --el-box-shadow-dark: var(--er-elevation-strong-down);
77
+
78
+ // ─────────────────────────────────────────────────────────────────────────
79
+ // TYPOGRAPHY (font family only, from Layer 3)
80
+ // ─────────────────────────────────────────────────────────────────────────
81
+ --el-font-family: var(--er-font-brand);
82
+ }