1
+ /* General body styles */
1
2
body {
2
3
font-family : Arial, sans-serif;
3
4
background-color : # f4f4f4 ;
4
5
margin : 0 ;
5
6
padding : 0 ;
6
7
}
7
8
9
+ /* Main container alignment */
8
10
.container {
9
11
text-align : center;
10
12
padding : 20px ;
11
13
}
12
14
15
+ /* Layout for top control buttons */
13
16
.controls-container {
14
17
display : flex;
15
18
justify-content : center;
16
19
gap : 20px ;
17
20
margin-bottom : 20px ;
18
21
}
19
22
23
+ /* Styling for each set of control buttons */
20
24
.controls {
21
25
display : flex;
22
26
flex-direction : column;
23
27
align-items : center;
24
28
gap : 10px ;
25
29
}
26
30
31
+ /* Gradient animated heading */
27
32
.header h1 {
28
33
font-size : 48px ;
29
34
font-weight : bold;
@@ -41,11 +46,13 @@ body {
41
46
100% { background-position : 100% 50% ; }
42
47
}
43
48
49
+ /* Heart icon styling */
44
50
.heart {
45
51
color : # a855f7 ;
46
52
font-size : 1.2em ;
47
53
}
48
54
55
+ /* Button styling in controls */
49
56
.controls button {
50
57
padding : 15px 30px ;
51
58
margin : 10px ;
@@ -59,21 +66,25 @@ body {
59
66
width : 250px ;
60
67
}
61
68
69
+ /* Style for active buttons */
62
70
.controls button .running {
63
71
background : rgb (105 , 206 , 105 );
64
72
cursor : not-allowed;
65
73
}
66
74
75
+ /* Disabled button style */
67
76
.controls button : disabled : not (.running ) {
68
77
background : linear-gradient (to right, # ec4899, # a855f7, # 3b82f6 );
69
78
opacity : 1 ;
70
79
cursor : not-allowed;
71
80
}
72
81
82
+ /* Layout for app buttons section */
73
83
.app-buttons {
74
84
margin-top : 20px ;
75
85
}
76
86
87
+ /* Button rows with spacing */
77
88
.row {
78
89
display : flex;
79
90
justify-content : center;
82
93
gap : 15px ;
83
94
}
84
95
96
+ /* Individual app button styling */
85
97
.app-buttons button {
86
98
white-space : nowrap;
87
99
text-overflow : ellipsis;
@@ -99,17 +111,20 @@ body {
99
111
transition : all 0.3s ;
100
112
}
101
113
114
+ /* Running app button appearance */
102
115
.app-buttons button .running {
103
116
background-color : rgb (105 , 206 , 105 );
104
117
color : white;
105
118
cursor : not-allowed;
106
119
}
107
120
121
+ /* Disabled app button style */
108
122
.app-buttons button : disabled : not (.running ) {
109
123
opacity : 0.6 ;
110
124
cursor : not-allowed;
111
125
}
112
126
127
+ /* Generic popup box */
113
128
.popup {
114
129
position : fixed;
115
130
top : 50% ;
@@ -124,12 +139,14 @@ body {
124
139
max-width : 90% ;
125
140
}
126
141
142
+ /* Popup title */
127
143
.popup h3 {
128
144
margin-top : 0 ;
129
145
color : # a855f7 ;
130
146
text-align : center;
131
147
}
132
148
149
+ /* Popups initially hidden */
133
150
# csvConfirmationPopup ,
134
151
# npgDevicePopup {
135
152
animation : none; /* Disable fade-out */
@@ -138,29 +155,34 @@ body {
138
155
display : none;
139
156
}
140
157
158
+ /* Fade out other popups */
141
159
.popup : not (# csvConfirmationPopup ): not (# npgDevicePopup ) {
142
160
animation : fade-out 2s forwards;
143
161
}
144
162
163
+ /* Higher z-index for priority popups */
145
164
# csvConfirmationPopup ,
146
165
# npgDevicePopup {
147
166
z-index : 1001 ; /* Higher than other popups */
148
167
}
149
168
169
+ /* Popup content text */
150
170
.popup p {
151
171
font-size : 18px ;
152
172
margin-bottom : 20px ;
153
173
color : # 333 ;
154
174
text-align : center;
155
175
}
156
176
177
+ /* Container for popup buttons */
157
178
.popup-buttons {
158
179
display : flex;
159
180
justify-content : center;
160
181
gap : 15px ;
161
182
margin-top : 20px ;
162
183
}
163
184
185
+ /* Common popup button style */
164
186
.popup-button {
165
187
padding : 10px 25px ;
166
188
font-size : 16px ;
@@ -170,6 +192,7 @@ body {
170
192
transition : all 0.2s ;
171
193
}
172
194
195
+ /* Yes and No buttons */
173
196
.yes-button {
174
197
background : linear-gradient (to right, # 3b82f6, # a855f7 );
175
198
color : white;
@@ -180,6 +203,7 @@ body {
180
203
color : white;
181
204
}
182
205
206
+ /* Scrollable list of NPG devices */
183
207
# npgDeviceList {
184
208
max-height : 300px ;
185
209
overflow-y : auto;
@@ -189,6 +213,7 @@ body {
189
213
padding : 10px ;
190
214
}
191
215
216
+ /* Each device item style */
192
217
.npg-device-item {
193
218
padding : 12px ;
194
219
margin : 8px 0 ;
@@ -207,6 +232,7 @@ body {
207
232
color : white;
208
233
}
209
234
235
+ /* Status display in popup */
210
236
# npgPopupStatus {
211
237
margin : 10px 0 ;
212
238
min-height : 24px ;
@@ -216,6 +242,7 @@ body {
216
242
border-radius : 6px ;
217
243
}
218
244
245
+ /* Status color styles */
219
246
.scanning-status {
220
247
background : # dbeafe ;
221
248
color : # 1d4ed8 ;
@@ -231,13 +258,15 @@ body {
231
258
color : # b91c1c ;
232
259
}
233
260
261
+ /* Button row for NPG popup */
234
262
.npg-popup-buttons {
235
263
display : flex;
236
264
justify-content : flex-end;
237
265
gap : 10px ;
238
266
margin-top : 20px ;
239
267
}
240
268
269
+ /* NPG popup buttons */
241
270
.npg-popup-btn {
242
271
padding : 10px 20px ;
243
272
border : none;
@@ -291,69 +320,8 @@ body {
291
320
color : # a855f7 ;
292
321
text-align : center;
293
322
}
294
- # npgDeviceList {
295
- max-height : 300px ;
296
- overflow-y : auto;
297
- margin : 15px 0 ;
298
- border : 1px solid # eee ;
299
- border-radius : 8px ;
300
- padding : 10px ;
301
- }
302
- .npg-device-item {
303
- padding : 12px ;
304
- margin : 8px 0 ;
305
- background : # f8f9fa ;
306
- border-radius : 6px ;
307
- cursor : pointer;
308
- transition : all 0.2s ;
309
- }
310
- .npg-device-item : hover {
311
- background : # e9ecef ;
312
- }
313
- .npg-device-item .selected {
314
- background : # a855f7 ;
315
- color : white;
316
- }
317
- # npgPopupStatus {
318
- margin : 10px 0 ;
319
- min-height : 24px ;
320
- font-weight : bold;
321
- text-align : center;
322
- }
323
- .scanning-status {
324
- color : # 3b82f6 ;
325
- }
326
- .connected-status {
327
- color : # 10b981 ;
328
- }
329
- .error-status {
330
- color : # ef4444 ;
331
- }
332
- .npg-popup-buttons {
333
- display : flex;
334
- justify-content : flex-end;
335
- gap : 10px ;
336
- margin-top : 20px ;
337
- }
338
- .npg-popup-btn {
339
- padding : 8px 20px ;
340
- border : none;
341
- border-radius : 6px ;
342
- cursor : pointer;
343
- font-weight : 500 ;
344
- }
345
- .npg-connect-btn {
346
- background : # 10b981 ;
347
- color : white;
348
- }
349
- .npg-connect-btn : disabled {
350
- background : # a7f3d0 ;
351
- cursor : not-allowed;
352
- }
353
- .npg-cancel-btn {
354
- background : # f1f1f1 ;
355
- }
356
323
324
+ /* Bottom fixed text label */
357
325
.bottom-text {
358
326
position : fixed;
359
327
bottom : 1px ;
@@ -364,6 +332,7 @@ body {
364
332
color : # 666 ;
365
333
}
366
334
335
+ /* Animation for fading out popups */
367
336
@keyframes fade-out {
368
337
0% { opacity : 1 ; }
369
338
80% { opacity : 0.8 ; }
0 commit comments