@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.
- package/dist/design-system/components/_alert.scss +150 -0
- package/dist/design-system/components/_auto-complete.scss +165 -0
- package/dist/design-system/components/_avatar-group.scss +25 -0
- package/dist/design-system/components/_avatar.scss +40 -0
- package/dist/design-system/components/_badge.scss +80 -0
- package/dist/design-system/components/_breadcrumb.scss +91 -0
- package/dist/design-system/components/_button.scss +378 -0
- package/dist/design-system/components/_card.scss +27 -0
- package/dist/design-system/components/_carousel.scss +104 -0
- package/dist/design-system/components/_cascader.scss +705 -0
- package/dist/design-system/components/_checkbox-list.scss +18 -0
- package/dist/design-system/components/_checkbox.scss +117 -0
- package/dist/design-system/components/_collapse.scss +84 -0
- package/dist/design-system/components/_color-picker.scss +195 -0
- package/dist/design-system/components/_country-flag.scss +56 -0
- package/dist/design-system/components/_currency-icon.scss +19 -0
- package/dist/design-system/components/_date-picker.scss +748 -0
- package/dist/design-system/components/_dialog.scss +101 -0
- package/dist/design-system/components/_divider.scss +7 -0
- package/dist/design-system/components/_drawer.scss +41 -0
- package/dist/design-system/components/_dropdown.scss +69 -0
- package/dist/design-system/components/_empty.scss +101 -0
- package/dist/design-system/components/_form.scss +151 -0
- package/dist/design-system/components/_growth-balance-profit-widget.scss +95 -0
- package/dist/design-system/components/_input-code.scss +116 -0
- package/dist/design-system/components/_input-number.scss +233 -0
- package/dist/design-system/components/_input-tag.scss +212 -0
- package/dist/design-system/components/_input.scss +239 -0
- package/dist/design-system/components/_link.scss +64 -0
- package/dist/design-system/components/_loading.scss +89 -0
- package/dist/design-system/components/_menu.scss +578 -0
- package/dist/design-system/components/_message-box.scss +78 -0
- package/dist/design-system/components/_message.scss +187 -0
- package/dist/design-system/components/_monthly-gain-widget.scss +114 -0
- package/dist/design-system/components/_pagination.scss +356 -0
- package/dist/design-system/components/_pl-calendar-widget.scss +171 -0
- package/dist/design-system/components/_popconfirm.scss +57 -0
- package/dist/design-system/components/_popper.scss +267 -0
- package/dist/design-system/components/_progress.scss +153 -0
- package/dist/design-system/components/_radio.scss +68 -0
- package/dist/design-system/components/_segmented.scss +215 -0
- package/dist/design-system/components/_select-country.scss +182 -0
- package/dist/design-system/components/_select.scss +235 -0
- package/dist/design-system/components/_skeleton.scss +146 -0
- package/dist/design-system/components/_slider.scss +142 -0
- package/dist/design-system/components/_spinner.scss +73 -0
- package/dist/design-system/components/_steps.scss +292 -0
- package/dist/design-system/components/_switch.scss +89 -0
- package/dist/design-system/components/_switcher.scss +110 -0
- package/dist/design-system/components/_table.scss +580 -0
- package/dist/design-system/components/_tabs.scss +260 -0
- package/dist/design-system/components/_tag.scss +208 -0
- package/dist/design-system/components/_time-picker.scss +255 -0
- package/dist/design-system/components/_time-select.scss +167 -0
- package/dist/design-system/components/_timeline.scss +99 -0
- package/dist/design-system/components/_tooltip.scss +19 -0
- package/dist/design-system/components/_topbar-menu.scss +67 -0
- package/dist/design-system/components/_trade-volume-widget.scss +114 -0
- package/dist/design-system/components/_transfer.scss +241 -0
- package/dist/design-system/components/_tree-select.scss +198 -0
- package/dist/design-system/components/_tree.scss +108 -0
- package/dist/design-system/components/_upload.scss +226 -0
- package/dist/design-system/themes/aurora/bridges/_element-plus-bridge.scss +58 -0
- package/dist/design-system/themes/aurora/elevation/_elevation-tokens.scss +67 -0
- package/dist/design-system/themes/aurora/elevation/_elevation-utils.scss +94 -0
- package/dist/design-system/themes/aurora/index.scss +133 -0
- package/dist/design-system/themes/aurora/layers/_layer1-palettes.scss +289 -0
- package/dist/design-system/themes/aurora/layers/_layer2-alias.scss +250 -0
- package/dist/design-system/themes/aurora/layers/_layer3-tokens.scss +242 -0
- package/dist/design-system/themes/aurora/themes/_dark-mode.scss +177 -0
- package/dist/design-system/themes/aurora/themes/projects/base.scss +11 -0
- package/dist/design-system/themes/aurora/tokens/_border-radius.scss +28 -0
- package/dist/design-system/themes/aurora/tokens/_control-height.scss +18 -0
- package/dist/design-system/themes/aurora/tokens/_screen-size.scss +10 -0
- package/dist/design-system/themes/aurora/tokens/_spacing.scss +29 -0
- package/dist/design-system/themes/aurora/typography/_typography-primitives.scss +11 -0
- package/dist/design-system/themes/aurora/typography/_typography-semantic.scss +5 -0
- package/dist/design-system/themes/aurora/typography/_typography-tokens.scss +185 -0
- package/dist/design-system/themes/aurora/typography/_typography-utils.scss +375 -0
- package/dist/design-system/themes/core/bridges/_element-plus-bridge.scss +82 -0
- package/dist/design-system/themes/core/elevation/_elevation-tokens.scss +67 -0
- package/dist/design-system/themes/core/elevation/_elevation-utils.scss +94 -0
- package/dist/design-system/themes/core/index.scss +130 -0
- package/dist/design-system/themes/core/layers/_layer1-palettes.scss +289 -0
- package/dist/design-system/themes/core/layers/_layer2-alias.scss +242 -0
- package/dist/design-system/themes/core/layers/_layer3-tokens.scss +220 -0
- package/dist/design-system/themes/core/themes/_dark-mode.scss +165 -0
- package/dist/design-system/themes/core/themes/projects/base.scss +11 -0
- package/dist/design-system/themes/core/tokens/_border-radius.scss +28 -0
- package/dist/design-system/themes/core/tokens/_control-height.scss +18 -0
- package/dist/design-system/themes/core/tokens/_screen-size.scss +10 -0
- package/dist/design-system/themes/core/tokens/_spacing.scss +29 -0
- package/dist/design-system/themes/core/typography/_typography-primitives.scss +11 -0
- package/dist/design-system/themes/core/typography/_typography-semantic.scss +5 -0
- package/dist/design-system/themes/core/typography/_typography-tokens.scss +185 -0
- package/dist/design-system/themes/core/typography/_typography-utils.scss +375 -0
- package/package.json +4 -3
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// LAYER 3: COMPONENT TOKENS
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Usage-specific tokens mapped from Layer 2 aliases
|
|
5
|
+
// Source: Figma UI Kit Core - Color Guidance - Component Tokens
|
|
6
|
+
// File: https://www.figma.com/design/HSOs8VcK5CKL8s15AqD42x/UI-KIT-CORE
|
|
7
|
+
// Node: Color Guidance - Component Tokens (36925:1463)
|
|
8
|
+
//
|
|
9
|
+
// IMPORTANT: Only tokens defined in Figma are included here
|
|
10
|
+
// ============================================================================
|
|
11
|
+
|
|
12
|
+
:root {
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
14
|
+
// ACTION (Buttons, interactive elements)
|
|
15
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
16
|
+
|
|
17
|
+
// Action tokens — Primary (Figma: action/primary-*)
|
|
18
|
+
--er-action-primary-default: var(
|
|
19
|
+
--er-primary-600
|
|
20
|
+
); // Figma: action/primary-default = primary/600
|
|
21
|
+
--er-action-primary-hover: var(
|
|
22
|
+
--er-primary-700
|
|
23
|
+
); // Figma: action/primary-hover = primary/700
|
|
24
|
+
--er-action-primary-pressed: var(
|
|
25
|
+
--er-primary-800
|
|
26
|
+
); // Figma: action/primary-pressed = primary/800
|
|
27
|
+
--er-action-primary-subtle: var(
|
|
28
|
+
--er-primary-alpha-100
|
|
29
|
+
); // Figma: action/primary-subtle = primary alpha/100
|
|
30
|
+
--er-action-primary-subtle-hover: var(
|
|
31
|
+
--er-primary-alpha-200
|
|
32
|
+
); // Figma: action/primary-subtle-hover = primary alpha/200
|
|
33
|
+
--er-action-primary-subtle-pressed: var(
|
|
34
|
+
--er-primary-alpha-300
|
|
35
|
+
); // Figma: action/primary-subtle-pressed = primary alpha/300
|
|
36
|
+
|
|
37
|
+
// Action tokens — Neutral (Figma: action/neutral-*)
|
|
38
|
+
--er-action-neutral-default: var(
|
|
39
|
+
--er-neutral-950
|
|
40
|
+
); // Figma: action/neutral-default = neutral/950 = #09090B
|
|
41
|
+
--er-action-neutral-hover: var(
|
|
42
|
+
--er-neutral-600
|
|
43
|
+
); // Figma: action/neutral-hover = neutral/600 = #52525B
|
|
44
|
+
--er-action-neutral-pressed: var(
|
|
45
|
+
--er-neutral-800
|
|
46
|
+
); // Figma: action/neutral-pressed = neutral/800 = #27272A
|
|
47
|
+
--er-action-neutral-subtle-default: var(
|
|
48
|
+
--er-neutral-white
|
|
49
|
+
); // Figma: action/neutral-subtle-default = neutral/white = #FFFFFF
|
|
50
|
+
--er-action-neutral-subtle-hover: var(
|
|
51
|
+
--er-neutral-alpha-50
|
|
52
|
+
); // Figma: action/neutral-subtle-hover = neutral alpha/50 = #11161C @ 3.92%
|
|
53
|
+
--er-action-neutral-subtle-pressed: var(
|
|
54
|
+
--er-neutral-alpha-100
|
|
55
|
+
); // Figma: action/neutral-subtle-pressed = neutral alpha/100 = #11161C @ 7.84%
|
|
56
|
+
|
|
57
|
+
// Action tokens — Danger (Figma: action/danger-*)
|
|
58
|
+
--er-action-danger-default: var(
|
|
59
|
+
--er-danger-600
|
|
60
|
+
); // Figma: action/danger-default = danger/600
|
|
61
|
+
--er-action-danger-hover: var(
|
|
62
|
+
--er-danger-700
|
|
63
|
+
); // Figma: action/danger-hover = danger/700
|
|
64
|
+
--er-action-danger-pressed: var(
|
|
65
|
+
--er-danger-800
|
|
66
|
+
); // Figma: action/danger-pressed = danger/800
|
|
67
|
+
--er-action-danger-subtle-default: var(
|
|
68
|
+
--er-danger-alpha-100
|
|
69
|
+
); // Figma: action/danger-subtle-default = danger alpha/100
|
|
70
|
+
--er-action-danger-subtle-hover: var(
|
|
71
|
+
--er-danger-alpha-200
|
|
72
|
+
); // Figma: action/danger-subtle-hover = danger alpha/200
|
|
73
|
+
--er-action-danger-subtle-pressed: var(
|
|
74
|
+
--er-danger-alpha-300
|
|
75
|
+
); // Figma: action/danger-subtle-pressed = danger alpha/300
|
|
76
|
+
|
|
77
|
+
// Action tokens — Success (local extension — not in Figma UI Kit, mirrors danger)
|
|
78
|
+
--er-action-success-default: var(
|
|
79
|
+
--er-success-default
|
|
80
|
+
); // action/success-default = success/default = #10B981
|
|
81
|
+
--er-action-success-hover: var(
|
|
82
|
+
--er-success-600
|
|
83
|
+
); // action/success-hover = success/600 = #059669
|
|
84
|
+
--er-action-success-pressed: var(
|
|
85
|
+
--er-success-700
|
|
86
|
+
); // action/success-pressed = success/700 = #047857
|
|
87
|
+
--er-action-success-subtle-default: var(
|
|
88
|
+
--er-success-alpha-50
|
|
89
|
+
); // action/success-subtle-default = success alpha/50 = #10B981 @ 3.92%
|
|
90
|
+
--er-action-success-subtle-hover: var(
|
|
91
|
+
--er-success-alpha-100
|
|
92
|
+
); // action/success-subtle-hover = success alpha/100 = #10B981 @ 7.84%
|
|
93
|
+
--er-action-success-subtle-pressed: var(
|
|
94
|
+
--er-success-alpha-200
|
|
95
|
+
); // action/success-subtle-pressed = success alpha/200 = #10B981 @ 12.16%
|
|
96
|
+
|
|
97
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
98
|
+
// SURFACE (Backgrounds, cards, panels)
|
|
99
|
+
// Frame 36984:1625 - Surface section
|
|
100
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
101
|
+
--er-surface-page: var(
|
|
102
|
+
--er-neutral-white
|
|
103
|
+
); // Figma: surface/page = neutral/white = #FFFFFF (main app canvas)
|
|
104
|
+
--er-surface-container: var(
|
|
105
|
+
--er-neutral-white
|
|
106
|
+
); // Figma: surface/container = neutral/white = #FFFFFF (cards, panels)
|
|
107
|
+
--er-surface-elevated: var(
|
|
108
|
+
--er-neutral-white
|
|
109
|
+
); // Figma: surface/elevated = neutral/white = #FFFFFF (modals, dropdowns, tooltips)
|
|
110
|
+
--er-surface-subtle: var(
|
|
111
|
+
--er-neutral-50
|
|
112
|
+
); // Figma: surface/subtle = neutral/50 = #FAFAFA (alternating rows, quiet sections)
|
|
113
|
+
--er-surface-muted: var(
|
|
114
|
+
--er-neutral-100
|
|
115
|
+
); // Figma: surface/muted = neutral/100 = #F4F4F5 (default/neutral tag bg)
|
|
116
|
+
--er-surface-track: var(
|
|
117
|
+
--er-neutral-100
|
|
118
|
+
); // Figma: surface/track = elevation/50 = #F8F9FB @ 3.92%
|
|
119
|
+
--er-surface-inverse: var(
|
|
120
|
+
--er-neutral-900
|
|
121
|
+
); // Figma: surface/inverse = neutral/900 = #18181B (dark headers, inverted sections)
|
|
122
|
+
--er-surface-neutral-subtle: var(
|
|
123
|
+
--er-neutral-alpha-100
|
|
124
|
+
); // Figma: surface/neutral-subtle = neutral alpha/100 = #11161C @ 7.84%
|
|
125
|
+
--er-surface-brand-subtle: var(
|
|
126
|
+
--er-primary-alpha-100
|
|
127
|
+
); // Figma: surface/brand-subtle = primary alpha/100 = #3B82F6 @ 7.84%
|
|
128
|
+
--er-surface-success-subtle: var(
|
|
129
|
+
--er-success-alpha-100
|
|
130
|
+
); // Figma: surface/success-subtle = success alpha/100 = #10B981 @ 7.84%
|
|
131
|
+
--er-surface-warning-subtle: var(
|
|
132
|
+
--er-warning-alpha-100
|
|
133
|
+
); // Figma: surface/warning-subtle = warning alpha/100 = #F59E0B @ 7.84%
|
|
134
|
+
--er-surface-danger-subtle: var(
|
|
135
|
+
--er-danger-alpha-100
|
|
136
|
+
); // Figma: surface/danger-subtle = danger alpha/100 = #EF4444 @ 7.84%
|
|
137
|
+
--er-surface-information-subtle: var(
|
|
138
|
+
--er-information-alpha-100
|
|
139
|
+
); // Figma: surface/information-subtle = information alpha/100 = #0EA5E9 @ 7.84%
|
|
140
|
+
--er-surface-fixed-white: var(
|
|
141
|
+
--er-neutral-white
|
|
142
|
+
); // Figma: surface/fixed-white = neutral/white = #FFFFFF
|
|
143
|
+
|
|
144
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
145
|
+
// TEXT (Typography, labels, content)
|
|
146
|
+
// Frame 36984:1701 - Text section
|
|
147
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
148
|
+
--er-text-primary: var(
|
|
149
|
+
--er-neutral-alpha-950
|
|
150
|
+
); // Figma: text/primary = neutral alpha/950 = #11161C @ 96.08%
|
|
151
|
+
--er-text-secondary: var(
|
|
152
|
+
--er-neutral-alpha-800
|
|
153
|
+
); // Figma: text/secondary = neutral alpha/800 = #11161C @ 72.16%
|
|
154
|
+
--er-text-tertiary: var(
|
|
155
|
+
--er-neutral-alpha-700
|
|
156
|
+
); // Figma: text/tertiary = neutral alpha/700 = #11161C @ 56.08%
|
|
157
|
+
--er-text-muted: var(
|
|
158
|
+
--er-neutral-alpha-600
|
|
159
|
+
); // Figma: text/muted = neutral alpha/600 = #11161C @ 40%
|
|
160
|
+
--er-text-inverse: var(--er-neutral-50); // Figma: text/inverse = neutral/50 = #FAFAFA
|
|
161
|
+
--er-text-brand: var(--er-primary-600); // Figma: text/brand = primary/600
|
|
162
|
+
--er-text-on-action: var(--er-neutral-50); // Figma: text/on-action = neutral/50 = #FAFAFA
|
|
163
|
+
--er-text-success: var(--er-success-700); // Figma: text/success = success/700
|
|
164
|
+
--er-text-warning: var(--er-warning-700); // Figma: text/warning = warning/700
|
|
165
|
+
--er-text-danger: var(--er-danger-700); // Figma: text/danger = danger/700
|
|
166
|
+
--er-text-information: var(
|
|
167
|
+
--er-information-700
|
|
168
|
+
); // Figma: text/information = information/700
|
|
169
|
+
|
|
170
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
171
|
+
// ICON (Icons, decorative elements)
|
|
172
|
+
// Frame 36984:1770 - Icon section in Figma Component Tokens
|
|
173
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
174
|
+
--er-icon-primary: var(
|
|
175
|
+
--er-neutral-alpha-950
|
|
176
|
+
); // Figma: icon/primary = neutral alpha/950 = #11161C @ 96.08%
|
|
177
|
+
--er-icon-secondary: var(
|
|
178
|
+
--er-neutral-alpha-800
|
|
179
|
+
); // Figma: icon/secondary = neutral alpha/800 = #11161C @ 72.16%
|
|
180
|
+
--er-icon-tertiary: var(
|
|
181
|
+
--er-neutral-alpha-700
|
|
182
|
+
); // Figma: icon/tertiary = neutral alpha/700 = #11161C @ 56.08%
|
|
183
|
+
--er-icon-muted: var(
|
|
184
|
+
--er-neutral-alpha-600
|
|
185
|
+
); // Figma: icon/muted = neutral alpha/600 = #11161C @ 40%
|
|
186
|
+
--er-icon-inverse: var(--er-neutral-50); // Figma: icon/inverse = neutral/50 = #FAFAFA
|
|
187
|
+
--er-icon-brand: var(--er-primary-600); // Figma: icon/brand = primary/600
|
|
188
|
+
--er-icon-on-action: var(--er-neutral-50); // Figma: icon/on-action = neutral/50 = #FAFAFA
|
|
189
|
+
--er-icon-success: var(--er-success-700); // Figma: icon/success = success/700
|
|
190
|
+
--er-icon-warning: var(--er-warning-700); // Figma: icon/warning = warning/700
|
|
191
|
+
--er-icon-danger: var(--er-danger-700); // Figma: icon/danger = danger/700
|
|
192
|
+
--er-icon-information: var(
|
|
193
|
+
--er-information-700
|
|
194
|
+
); // Figma: icon/information = information/700
|
|
195
|
+
|
|
196
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
197
|
+
// BORDER (Borders, outlines, dividers)
|
|
198
|
+
// Frame 36984:1817 - Border section in Figma Component Tokens
|
|
199
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
200
|
+
--er-border-default: var(
|
|
201
|
+
--er-neutral-alpha-200
|
|
202
|
+
); // Figma: border/default = neutral alpha/200 = #11161C @ 12.16%
|
|
203
|
+
--er-border-subtle: var(
|
|
204
|
+
--er-neutral-alpha-100
|
|
205
|
+
); // Figma: border/subtle = neutral alpha/100 = #11161C @ 7.84%
|
|
206
|
+
--er-border-strong: var(
|
|
207
|
+
--er-neutral-alpha-400
|
|
208
|
+
); // Figma: border/strong = neutral alpha/400 = #11161C @ 23.92%
|
|
209
|
+
--er-border-on-action: var(--er-neutral-50); // Figma: border/on-action = neutral/50 = #FAFAFA
|
|
210
|
+
--er-border-brand: var(--er-primary-default); // Figma: border/brand = primary/default = #3B82F6
|
|
211
|
+
--er-border-brand-subtle: var(
|
|
212
|
+
--er-primary-alpha-300
|
|
213
|
+
); // Figma: border/brand-subtle = primary alpha/300 = #3B82F6 @ 20%
|
|
214
|
+
--er-border-success: var(--er-success-default); // Figma: border/success = success/default = #10B981
|
|
215
|
+
--er-border-success-subtle: var(
|
|
216
|
+
--er-success-alpha-300
|
|
217
|
+
); // Figma: border/success-subtle = success alpha/300 = #10B981 @ 20%
|
|
218
|
+
--er-border-warning: var(--er-warning-default); // Figma: border/warning = warning/default = #F59E0B
|
|
219
|
+
--er-border-warning-subtle: var(
|
|
220
|
+
--er-warning-alpha-300
|
|
221
|
+
); // Figma: border/warning-subtle = warning alpha/300 = #F59E0B @ 20%
|
|
222
|
+
--er-border-danger: var(--er-danger-default); // Figma: border/danger = danger/default = #EF4444
|
|
223
|
+
--er-border-danger-subtle: var(
|
|
224
|
+
--er-danger-alpha-300
|
|
225
|
+
); // Figma: border/danger-subtle = danger alpha/300 = #EF4444 @ 20%
|
|
226
|
+
--er-border-information: var(
|
|
227
|
+
--er-information-default
|
|
228
|
+
); // Figma: border/information = information/default = #0EA5E9
|
|
229
|
+
--er-border-information-subtle: var(
|
|
230
|
+
--er-information-alpha-300
|
|
231
|
+
); // Figma: border/information-subtle = information alpha/300 = #0EA5E9 @ 20%
|
|
232
|
+
|
|
233
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
234
|
+
// COMPONENT-SPECIFIC TOKENS
|
|
235
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
236
|
+
// Segmented control (Figma: component/segmented/*)
|
|
237
|
+
--er-component-segmented-item-hover: var(--er-action-neutral-subtle-hover);
|
|
238
|
+
--er-component-segmented-item-active: var(
|
|
239
|
+
--er-action-neutral-subtle-default
|
|
240
|
+
); // segmented item active = action/neutral-subtle-default
|
|
241
|
+
--er-surface-overlay: rgb(0, 0, 0, 0.5);
|
|
242
|
+
}
|
|
@@ -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 = #3B82F6 (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 = #3B82F6 (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 = #3B82F6 (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,11 @@
|
|
|
1
|
+
// BASE PROJECT THEME
|
|
2
|
+
// Default theme - uses blue as primary
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
// Override Layer 2 aliases if needed
|
|
6
|
+
// Default: primary = blue (already set in _layer2-alias.scss)
|
|
7
|
+
|
|
8
|
+
// Can customize specific tokens here
|
|
9
|
+
// Example:
|
|
10
|
+
// --er-primary-500: var(--er-blue-600); // Darker blue
|
|
11
|
+
}
|
|
@@ -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
|
+
}
|