1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
use tailwind;
use *;
// ---------------------------------------------------------------------------
// Corner radii
// ---------------------------------------------------------------------------
pub const CORNER_RADIUS: Val = Px;
pub const CORNER_RADIUS_LG: Val = Px;
// ---------------------------------------------------------------------------
// Accent / primary
// ---------------------------------------------------------------------------
pub const PRIMARY_COLOR: Srgba = BLUE_500;
/// Accent blue used for selections, active tabs, and highlights (#206EC8).
pub const ACCENT_BLUE: Color = srgb;
// ---------------------------------------------------------------------------
// Backgrounds (from Figma CSS, updated palette, slightly bluer tones)
// ---------------------------------------------------------------------------
/// Root window / frame background (#1F1F24)
pub const WINDOW_BG: Color = srgb;
/// Panel body / content background (#2A2A2E)
pub const PANEL_BG: Color = srgb;
/// Panel header / tab bar background (#1F1F24)
pub const PANEL_HEADER_BG: Color = srgb;
/// Toolbar background (#2A2A2E)
pub const TOOLBAR_BG: Color = srgb;
/// Text input background (#36373B)
pub const INPUT_BG: Color = srgb;
/// Context menu / dropdown background (#2A2A2E with near-opaque alpha)
pub const MENU_BG: Color = srgba;
/// Status bar background (#2A2A2E)
pub const STATUS_BAR_BG: Color = srgb;
/// Inactive toolbar button background (#2A2A2E)
pub const TOOLBAR_BUTTON_BG: Color = srgb;
/// General background color (for widgets)
pub const BACKGROUND_COLOR: Srgba = ZINC_800;
// ---------------------------------------------------------------------------
// Component card backgrounds (inspector)
// ---------------------------------------------------------------------------
/// Component card body (#2A2A2E)
pub const COMPONENT_CARD_BG: Color = srgb;
/// Component card header bar (#36373B)
pub const COMPONENT_CARD_HEADER_BG: Color = srgb;
/// Component card border (#414142)
pub const COMPONENT_CARD_BORDER: Color = srgb;
// ---------------------------------------------------------------------------
// Panel / tab styling
// ---------------------------------------------------------------------------
/// Panel header border (#303030)
pub const PANEL_BORDER: Color = srgb;
/// Active tab background (#2A2A2E)
pub const TAB_ACTIVE_BG: Color = srgb;
/// Active tab top border accent (#206EC8)
pub const TAB_ACTIVE_BORDER: Color = srgb;
/// Inactive tab text (#A8A8A8)
pub const TAB_INACTIVE_TEXT: Color = srgb;
// ---------------------------------------------------------------------------
// Viewport-specific backgrounds
// ---------------------------------------------------------------------------
/// Viewport tab bar (#1F1F24)
pub const VIEWPORT_TAB_BG: Color = srgb;
/// Viewport control bar (#2A2A2E)
pub const VIEWPORT_CONTROL_BG: Color = srgb;
// ---------------------------------------------------------------------------
// Elevated / input surfaces
// ---------------------------------------------------------------------------
/// Elevated background for inputs and interactive elements (#36373B)
pub const ELEVATED_BG: Color = srgb;
/// Axis label container background, lighter than input (#46474C)
pub const AXIS_LABEL_BG: Color = srgb;
/// Active toolbar button background (#505050)
pub const TOOLBAR_ACTIVE_BG: Color = srgb;
// ---------------------------------------------------------------------------
// Borders
// ---------------------------------------------------------------------------
/// Subtle border / separator (#414142)
pub const BORDER_SUBTLE: Color = srgb;
/// Strong / emphasized border (#525252)
pub const BORDER_STRONG: Color = Srgba;
/// Standard border color (for widgets)
pub const BORDER_COLOR: Srgba = ZINC_700;
// ---------------------------------------------------------------------------
// Interaction states
// ---------------------------------------------------------------------------
/// Hovered row / item background (white 8% alpha)
pub const HOVER_BG: Color = srgba;
/// Selected item background
pub const SELECTED_BG: Color = srgba;
/// Selected item border (#206EC8)
pub const SELECTED_BORDER: Color = srgb;
/// Active / pressed background
pub const ACTIVE_BG: Color = Srgba;
/// Drag-drop target highlight
pub const DROP_TARGET_BG: Color = Srgba;
/// Drag-drop target border accent
pub const DROP_TARGET_BORDER: Color = Srgba;
/// Root container drag-drop overlay
pub const CONTAINER_DROP_TARGET_BG: Color = Srgba;
/// Tree connection line color
pub const CONNECTION_LINE: Color = srgba;
/// Disabled text color
pub const TEXT_DISABLED: Color = srgba;
// ---------------------------------------------------------------------------
// Dialog / modal
// ---------------------------------------------------------------------------
/// Dialog backdrop overlay color (40% black)
pub const DIALOG_BACKDROP: Color = srgba;
/// Default dialog width
pub const DIALOG_WIDTH: f32 = 400.0;
/// Default dialog max height
pub const DIALOG_MAX_HEIGHT: f32 = 500.0;
// ---------------------------------------------------------------------------
// Shadow colors
// ---------------------------------------------------------------------------
/// Component card / element shadow (#000000 88%)
pub const SHADOW_COLOR: Color = srgba;
/// Light shadow for elevated inputs (#000000 5%)
pub const SHADOW_COLOR_LIGHT: Color = srgba;
// ---------------------------------------------------------------------------
// Entity category colors (hierarchy icons)
// ---------------------------------------------------------------------------
/// Camera entity dot color (blue)
pub const CATEGORY_CAMERA: Color = srgba;
/// Light entity dot color (yellow)
pub const CATEGORY_LIGHT: Color = srgba;
/// Mesh entity dot color (orange/brown)
pub const CATEGORY_MESH: Color = srgba;
/// Scene root dot color (cyan)
pub const CATEGORY_SCENE: Color = srgba;
/// Generic entity dot color (green)
pub const CATEGORY_ENTITY: Color = srgba;
// ---------------------------------------------------------------------------
// Text colors
// ---------------------------------------------------------------------------
/// Primary text (#ECECEC)
pub const TEXT_PRIMARY: Color = srgb;
/// Secondary / dimmed text (#A8A8A8)
pub const TEXT_SECONDARY: Color = srgb;
/// Tertiary text: breadcrumbs, field values (#C8C8C8)
pub const TEXT_TERTIARY: Color = srgb;
/// Accent / link text
pub const TEXT_ACCENT: Color = Srgba;
/// Accent hover, lighter blue
pub const TEXT_ACCENT_HOVER: Color = Srgba;
/// Body text color (widget standard)
pub const TEXT_BODY_COLOR: Srgba = ZINC_200;
/// Display text color (bright)
pub const TEXT_DISPLAY_COLOR: Srgba = ZINC_50;
/// Muted text color
pub const TEXT_MUTED_COLOR: Srgba = ZINC_400;
// ---------------------------------------------------------------------------
// Type-specific field label colors
// ---------------------------------------------------------------------------
/// Numeric (f32/f64/int) field label, green tint
pub const TYPE_NUMERIC: Color = srgb;
/// Boolean field label, blue tint
pub const TYPE_BOOL: Color = srgb;
/// String field label, orange tint
pub const TYPE_STRING: Color = srgb;
/// Entity reference field label, white
pub const TYPE_ENTITY: Color = Srgba;
/// Enum field label, purple tint
pub const TYPE_ENUM: Color = srgb;
// ---------------------------------------------------------------------------
// XYZ axis colors (from updated Figma CSS)
// ---------------------------------------------------------------------------
/// X axis color, red (#AB4051)
pub const AXIS_X_COLOR: Color = srgb;
/// Y axis color, green (#5D8D0A)
pub const AXIS_Y_COLOR: Color = srgb;
/// Z axis color, blue (#2160A3)
pub const AXIS_Z_COLOR: Color = srgb;
/// W axis color, neutral grey (#808080)
pub const AXIS_W_COLOR: Color = srgb;
// ---------------------------------------------------------------------------
// File browser icon colors
// ---------------------------------------------------------------------------
/// Directory icon, warm yellow
pub const DIR_ICON_COLOR: Color = srgb;
/// Generic file icon, grey
pub const FILE_ICON_COLOR: Color = Srgba;
// ---------------------------------------------------------------------------
// Typography
// ---------------------------------------------------------------------------
pub const TEXT_SIZE_SM: f32 = 11.0;
pub const TEXT_SIZE: f32 = 13.0;
pub const TEXT_SIZE_LG: f32 = 13.0;
pub const TEXT_SIZE_XL: f32 = 18.0;
// Keep old names as aliases for existing code
pub const FONT_SM: f32 = TEXT_SIZE_SM;
pub const FONT_MD: f32 = TEXT_SIZE;
pub const FONT_LG: f32 = TEXT_SIZE_LG;
// ---------------------------------------------------------------------------
// Icon sizes (Lucide frame sizes)
// ---------------------------------------------------------------------------
/// Small icon size, standard Lucide icons (15px frame)
pub const ICON_SM: f32 = 15.0;
/// Medium icon size, sidebar icons (17px)
pub const ICON_MD: f32 = 17.0;
/// Large icon size (24px)
pub const ICON_LG: f32 = 24.0;
// ---------------------------------------------------------------------------
// Spacing
// ---------------------------------------------------------------------------
pub const SPACING_XS: f32 = 2.0;
pub const SPACING_SM: f32 = 4.0;
pub const SPACING_MD: f32 = 8.0;
pub const SPACING_LG: f32 = 12.0;
// ---------------------------------------------------------------------------
// Layout dimensions
// ---------------------------------------------------------------------------
pub const ROW_HEIGHT: f32 = 24.0;
pub const HEADER_HEIGHT: f32 = 28.0;
pub const STATUS_BAR_HEIGHT: f32 = 22.0;
pub const MENU_BAR_HEIGHT: f32 = 28.0;
pub const INPUT_HEIGHT: f32 = 28.0;
/// Panel tab bar height (Figma: 30px)
pub const PANEL_TAB_HEIGHT: f32 = 30.0;
/// Gap between panels in the layout (Figma: 4px)
pub const PANEL_GAP: f32 = 4.0;
/// Component card corner radius (Figma: 5px)
pub const COMPONENT_CARD_RADIUS: f32 = 5.0;
/// Breadcrumb bar height
pub const BREADCRUMB_HEIGHT: f32 = 34.0;
/// Asset browser sidebar width
pub const SIDEBAR_WIDTH: f32 = 30.0;
/// Search input default width
pub const SEARCH_INPUT_WIDTH: f32 = 200.0;
// ---------------------------------------------------------------------------
// Border radii (numeric)
// ---------------------------------------------------------------------------
pub const BORDER_RADIUS_SM: f32 = 3.0;
pub const BORDER_RADIUS_MD: f32 = 4.0;
pub const BORDER_RADIUS_LG: f32 = 5.0;