1
1
: root {
2
+ /* Colors */
2
3
--bg-color : # ffffff ;
3
4
--text-color : # 333333 ;
4
5
--card-bg : # f0f0f0 ;
5
6
--btn-bg : # e0e0e0 ;
6
7
--btn-text : # 333333 ;
7
8
--nav-bg : # f8f8f8 ;
8
9
--nav-text : # 333333 ;
10
+
11
+ /* Button colors */
9
12
--download-btn : # 007bff ;
10
13
--download-btn-hover : # 0056b3 ;
11
14
--run-btn : # 28a745 ;
18
21
--downloading-btn-hover : # cc8400 ;
19
22
--stopping-btn : # ff6b6b ;
20
23
--stopping-btn-hover : # ff4f4f ;
24
+
25
+ /* Modal colors */
21
26
--modal-bg : # f0f0f0 ;
22
27
--modal-text : # 333 ;
23
28
--download-item-bg : # fff ;
24
29
--download-item-text : # 555 ;
25
30
--progress-bar-bg : # e0e0e0 ;
26
31
--progress-bar-fill : # 4caf50 ;
32
+
27
33
/* Base sizing */
28
34
--base-font-size : 0.95rem ;
29
35
--base-spacing : 0.5rem ;
36
+
30
37
/* Fixed window dimensions */
31
38
--window-width : 450px ;
32
39
--window-height : 550px ;
33
40
}
34
41
35
- /* Rest of the dark theme variables remain unchanged */
42
+ /* Dark theme variables */
36
43
.dark {
37
44
--bg-color : # 333333 ;
38
45
--text-color : # ffffff ;
59
66
--progress-bar-fill : # 4caf50 ;
60
67
}
61
68
69
+ /* Base styles */
62
70
body {
63
71
background-color : var (--bg-color );
64
72
color : var (--text-color );
@@ -71,6 +79,12 @@ body {
71
79
font-size : var (--base-font-size );
72
80
}
73
81
82
+ code {
83
+ font-family : source-code-pro, Menlo, Monaco, Consolas, 'Courier New' ,
84
+ monospace;
85
+ }
86
+
87
+ /* App container */
74
88
.App {
75
89
text-align : center;
76
90
background-color : var (--bg-color );
@@ -91,293 +105,3 @@ body {
91
105
.App-header {
92
106
margin-bottom : var (--base-spacing );
93
107
}
94
-
95
- .card-container {
96
- width : 100% ;
97
- max-width : var (--window-width );
98
- padding : 0 var (--base-spacing );
99
- }
100
-
101
- .card {
102
- background-color : var (--card-bg );
103
- border-radius : 4px ;
104
- padding : 0 ;
105
- margin-bottom : var (--base-spacing );
106
- display : flex;
107
- flex-direction : column;
108
- color : var (--text-color );
109
- box-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.1 );
110
- }
111
-
112
- .dark .card {
113
- box-shadow : 0 2px 4px rgba (0 , 0 , 0 , 0.3 );
114
- }
115
-
116
- .dark .card : hover {
117
- box-shadow : 0 4px 8px rgba (0 , 0 , 0 , 0.4 );
118
- }
119
-
120
- .card-header {
121
- padding : var (--base-spacing );
122
- border-bottom : 1px solid rgba (0 , 0 , 0 , 0.1 );
123
- text-align : left;
124
- }
125
-
126
- .card-header h2 {
127
- margin : 0 ;
128
- font-size : 1.1rem ;
129
- font-weight : 600 ;
130
- }
131
-
132
- .card-content {
133
- padding : var (--base-spacing );
134
- flex-grow : 1 ;
135
- text-align : left;
136
- background-color : # f5f5f5 ;
137
- }
138
-
139
- .card-content p {
140
- margin : 0 ;
141
- font-size : var (--base-font-size );
142
- line-height : 1.4 ;
143
- color : var (--text-color );
144
- }
145
-
146
- .dark .card-content {
147
- background-color : # 2a2a2a ;
148
- }
149
-
150
- .card-actions {
151
- padding : var (--base-spacing );
152
- display : flex;
153
- align-items : center;
154
- justify-content : space-between;
155
- border-top : 1px solid rgba (0 , 0 , 0 , 0.1 );
156
- }
157
-
158
- .btn {
159
- min-width : 70px ;
160
- margin : 0 ;
161
- padding : 0.4rem 0.75rem ;
162
- border : none;
163
- border-radius : 4px ;
164
- cursor : pointer;
165
- font-weight : 600 ;
166
- font-size : var (--base-font-size );
167
- font-family : -apple-system, BlinkMacSystemFont, 'Segoe UI' , 'Roboto' , 'Oxygen' ,
168
- 'Ubuntu' , 'Cantarell' , 'Fira Sans' , 'Droid Sans' , 'Helvetica Neue' ,
169
- sans-serif;
170
- text-align : center;
171
- color : white;
172
- transition : background-color 0.2s ease, opacity 0.2s ease, width 0.2s ease;
173
- white-space : nowrap;
174
- }
175
-
176
- /* Fixed width for most states */
177
- .btn .download ,
178
- .btn .run ,
179
- .btn .running ,
180
- .btn .stop ,
181
- .btn .stopping {
182
- width : 85px ;
183
- overflow : hidden;
184
- text-overflow : ellipsis;
185
- }
186
-
187
- /* Allow width to grow for downloading/extracting states */
188
- .btn .downloading ,
189
- .btn .extracting {
190
- width : auto;
191
- }
192
-
193
- .btn : disabled {
194
- cursor : wait;
195
- opacity : 0.8 ;
196
- }
197
-
198
- .settings-icon-button {
199
- background : none;
200
- border : none;
201
- padding : calc (var (--base-spacing ) * 0.5 );
202
- cursor : pointer;
203
- border-radius : 50% ;
204
- display : flex;
205
- align-items : center;
206
- justify-content : center;
207
- color : var (--text-color );
208
- opacity : 0.7 ;
209
- transition : all 0.2s ease;
210
- }
211
-
212
- .settings-icon-button : hover {
213
- opacity : 1 ;
214
- background-color : rgba (0 , 0 , 0 , 0.1 );
215
- }
216
-
217
- .dark .settings-icon-button : hover {
218
- background-color : rgba (255 , 255 , 255 , 0.1 );
219
- }
220
-
221
- .dark .card-header ,
222
- .dark .card-actions {
223
- border-color : rgba (255 , 255 , 255 , 0.1 );
224
- }
225
-
226
- .download { background-color : var (--download-btn ); }
227
- .download : hover { background-color : var (--download-btn-hover ); }
228
- .run { background-color : var (--run-btn ); }
229
- .run : hover { background-color : var (--run-btn-hover ); }
230
- .downloading , .extracting { background-color : var (--downloading-btn ); }
231
- .downloading : hover , .extracting : hover { background-color : var (--downloading-btn-hover ); }
232
- .running { background-color : var (--running-btn ); }
233
- .running : hover { background-color : var (--running-btn-hover ); }
234
- .stop { background-color : var (--stop-btn ); }
235
- .stop : hover { background-color : var (--stop-btn-hover ); }
236
- .stopping { background-color : var (--stopping-btn ); }
237
- .stopping : hover { background-color : var (--stopping-btn-hover ); }
238
- .settings { background-color : var (--btn-bg ); color : var (--btn-text ); }
239
-
240
- .Nodes , .Wallet , .Tools , .Settings , .Other {
241
- width : 100% ;
242
- padding : var (--base-spacing );
243
- box-sizing : border-box;
244
- }
245
-
246
- /* Chain List Layout */
247
- .chain-list {
248
- width : 100% ;
249
- max-width : var (--window-width );
250
- margin : 0 auto;
251
- box-sizing : border-box;
252
- padding : 0 var (--base-spacing );
253
- }
254
-
255
- .chain-heading-row {
256
- display : flex;
257
- justify-content : space-between;
258
- align-items : center;
259
- margin-bottom : var (--base-spacing );
260
- }
261
-
262
- .chain-heading {
263
- font-size : calc (var (--base-font-size ) * 1.3 );
264
- font-weight : bold;
265
- text-align : left;
266
- margin : 0 ;
267
- padding : calc (var (--base-spacing ) * 0.75 ) 0 ;
268
- }
269
-
270
- /* L1 Chain Layout */
271
- .l1-chains {
272
- display : flex;
273
- flex-direction : column;
274
- gap : var (--base-spacing );
275
- margin : 0 ;
276
- padding : 0 ;
277
- width : 100% ;
278
- }
279
-
280
- .l1-chains > .card {
281
- width : 100% ;
282
- margin : 0 ;
283
- box-sizing : border-box;
284
- }
285
-
286
- /* L2 Chain Layout */
287
- .l2-chains {
288
- display : flex;
289
- flex-direction : column;
290
- gap : var (--base-spacing );
291
- margin : 0 ;
292
- padding : 0 ;
293
- width : 100% ;
294
- }
295
-
296
- .l2-chains > div {
297
- width : 100% ;
298
- margin : 0 ;
299
- box-sizing : border-box;
300
- }
301
-
302
- .l2-chains > .card {
303
- width : 100% ;
304
- margin : 0 ;
305
- box-sizing : border-box;
306
- }
307
-
308
- /* Quick Start/Stop Button */
309
- .quick-start-stop-btn {
310
- padding : calc (var (--base-spacing ) * 0.75 ) var (--base-spacing );
311
- transition : background-color 0.2s ease !important ;
312
- font-size : var (--base-font-size );
313
- min-width : 110px ;
314
- }
315
-
316
- .quick-start-stop-btn : not (: disabled ): hover {
317
- background-color : var (--stop-btn-hover ) !important ;
318
- }
319
-
320
- .quick-start-stop-btn [data-state = "start" ]: not (: disabled ): hover {
321
- background-color : var (--run-btn-hover ) !important ;
322
- }
323
-
324
- .quick-start-stop-btn [data-state = "download" ]: not (: disabled ): hover {
325
- background-color : var (--download-btn-hover ) !important ;
326
- }
327
-
328
- /* Shimmering effect for download button */
329
- .btn-shimmer {
330
- --border-width : 1px ;
331
- --border-radius : 4px ;
332
- position : relative;
333
- border : var (--border-width ) solid transparent;
334
- isolation : isolate;
335
- }
336
-
337
- .btn-shimmer ::before {
338
- content : "" ;
339
- position : absolute;
340
- inset : calc (var (--border-width ) * -1 );
341
- z-index : -1 ;
342
- border : inherit;
343
- border-radius : inherit;
344
- background : linear-gradient (90deg ,
345
- var (--current-color , var (--download-btn )) 0% ,
346
- rgba (255 , 255 , 255 , 0.9 ) 25% ,
347
- var (--current-color , var (--download-btn )) 50% ,
348
- var (--current-color , var (--download-btn )) 100%
349
- );
350
- background-size : 200% 100% ;
351
- -webkit-mask :
352
- linear-gradient (# fff 0 0 ) content-box,
353
- linear-gradient (# fff 0 0 );
354
- mask :
355
- linear-gradient (# fff 0 0 ) content-box,
356
- linear-gradient (# fff 0 0 );
357
- -webkit-mask-composite : xor;
358
- mask-composite : exclude;
359
- animation : shine 1s linear infinite;
360
- }
361
-
362
- @keyframes shine {
363
- to {
364
- background-position : -200% 0 ;
365
- }
366
- }
367
-
368
- .btn-shimmer : disabled ::before {
369
- animation : none;
370
- }
371
-
372
- .btn-shimmer [data-state = "download" ] {
373
- --current-color : var (--download-btn );
374
- }
375
-
376
- .btn-shimmer [data-state = "start" ] {
377
- --current-color : var (--run-btn );
378
- }
379
-
380
- code {
381
- font-family : source-code-pro, Menlo, Monaco, Consolas, 'Courier New' ,
382
- monospace;
383
- }
0 commit comments