Ikyy commited on
Commit
2ef9c3a
·
verified ·
1 Parent(s): 41acd80

Create App.css

Browse files
Files changed (1) hide show
  1. frontend/src/App.css +369 -0
frontend/src/App.css ADDED
@@ -0,0 +1,369 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* frontend/src/App.css */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ body {
9
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
10
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
11
+ min-height: 100vh;
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ padding: 20px;
16
+ }
17
+
18
+ .container {
19
+ width: 100%;
20
+ max-width: 600px;
21
+ margin: 0 auto;
22
+ }
23
+
24
+ .card {
25
+ background: white;
26
+ border-radius: 20px;
27
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
28
+ padding: 40px;
29
+ animation: slideUp 0.5s ease;
30
+ }
31
+
32
+ @keyframes slideUp {
33
+ from {
34
+ opacity: 0;
35
+ transform: translateY(30px);
36
+ }
37
+ to {
38
+ opacity: 1;
39
+ transform: translateY(0);
40
+ }
41
+ }
42
+
43
+ .header {
44
+ text-align: center;
45
+ margin-bottom: 30px;
46
+ }
47
+
48
+ .header h1 {
49
+ color: #333;
50
+ font-size: 2rem;
51
+ margin-bottom: 10px;
52
+ }
53
+
54
+ .header p {
55
+ color: #666;
56
+ font-size: 1rem;
57
+ }
58
+
59
+ .form {
60
+ margin-bottom: 20px;
61
+ }
62
+
63
+ .input-group {
64
+ margin-bottom: 20px;
65
+ }
66
+
67
+ .input-group label {
68
+ display: block;
69
+ color: #333;
70
+ font-weight: 600;
71
+ margin-bottom: 8px;
72
+ font-size: 0.95rem;
73
+ }
74
+
75
+ .input {
76
+ width: 100%;
77
+ padding: 12px 16px;
78
+ border: 2px solid #e1e8ed;
79
+ border-radius: 10px;
80
+ font-size: 1rem;
81
+ transition: all 0.3s ease;
82
+ font-family: monospace;
83
+ }
84
+
85
+ .input:focus {
86
+ outline: none;
87
+ border-color: #667eea;
88
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
89
+ }
90
+
91
+ .input:disabled {
92
+ background: #f5f5f5;
93
+ cursor: not-allowed;
94
+ }
95
+
96
+ .input-group small {
97
+ display: block;
98
+ color: #999;
99
+ font-size: 0.85rem;
100
+ margin-top: 5px;
101
+ }
102
+
103
+ .button {
104
+ width: 100%;
105
+ padding: 14px 24px;
106
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
107
+ color: white;
108
+ border: none;
109
+ border-radius: 10px;
110
+ font-size: 1rem;
111
+ font-weight: 600;
112
+ cursor: pointer;
113
+ transition: all 0.3s ease;
114
+ box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
115
+ }
116
+
117
+ .button:hover:not(:disabled) {
118
+ transform: translateY(-2px);
119
+ box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5);
120
+ }
121
+
122
+ .button:active:not(:disabled) {
123
+ transform: translateY(0);
124
+ }
125
+
126
+ .button:disabled {
127
+ opacity: 0.6;
128
+ cursor: not-allowed;
129
+ }
130
+
131
+ .button.loading {
132
+ position: relative;
133
+ color: transparent;
134
+ }
135
+
136
+ .button.loading::after {
137
+ content: '';
138
+ position: absolute;
139
+ width: 20px;
140
+ height: 20px;
141
+ top: 50%;
142
+ left: 50%;
143
+ margin-left: -10px;
144
+ margin-top: -10px;
145
+ border: 3px solid white;
146
+ border-radius: 50%;
147
+ border-top-color: transparent;
148
+ animation: spin 0.8s linear infinite;
149
+ }
150
+
151
+ @keyframes spin {
152
+ to { transform: rotate(360deg); }
153
+ }
154
+
155
+ .pairing-code {
156
+ background: #f8f9fa;
157
+ border-radius: 12px;
158
+ padding: 20px;
159
+ margin-bottom: 20px;
160
+ animation: fadeIn 0.5s ease;
161
+ }
162
+
163
+ @keyframes fadeIn {
164
+ from { opacity: 0; }
165
+ to { opacity: 1; }
166
+ }
167
+
168
+ .pairing-code h3 {
169
+ color: #333;
170
+ margin-bottom: 15px;
171
+ font-size: 1.1rem;
172
+ }
173
+
174
+ .code-display {
175
+ display: flex;
176
+ align-items: center;
177
+ gap: 10px;
178
+ margin-bottom: 15px;
179
+ }
180
+
181
+ .code {
182
+ flex: 1;
183
+ background: white;
184
+ padding: 15px 20px;
185
+ border-radius: 8px;
186
+ font-family: 'Courier New', monospace;
187
+ font-size: 1.8rem;
188
+ font-weight: bold;
189
+ color: #667eea;
190
+ text-align: center;
191
+ letter-spacing: 3px;
192
+ border: 2px dashed #667eea;
193
+ }
194
+
195
+ .copy-btn {
196
+ background: #667eea;
197
+ color: white;
198
+ border: none;
199
+ border-radius: 8px;
200
+ padding: 12px 16px;
201
+ font-size: 1.2rem;
202
+ cursor: pointer;
203
+ transition: all 0.3s ease;
204
+ }
205
+
206
+ .copy-btn:hover {
207
+ background: #5568d3;
208
+ transform: scale(1.1);
209
+ }
210
+
211
+ .instructions {
212
+ background: white;
213
+ padding: 15px;
214
+ border-radius: 8px;
215
+ border-left: 4px solid #667eea;
216
+ }
217
+
218
+ .instructions p {
219
+ color: #333;
220
+ font-weight: 600;
221
+ margin-bottom: 10px;
222
+ }
223
+
224
+ .instructions ol {
225
+ margin-left: 20px;
226
+ color: #666;
227
+ }
228
+
229
+ .instructions li {
230
+ margin-bottom: 8px;
231
+ line-height: 1.5;
232
+ }
233
+
234
+ .status {
235
+ padding: 12px 16px;
236
+ border-radius: 8px;
237
+ margin-bottom: 20px;
238
+ font-weight: 500;
239
+ animation: fadeIn 0.3s ease;
240
+ }
241
+
242
+ .status.success {
243
+ background: #d4edda;
244
+ color: #155724;
245
+ border: 1px solid #c3e6cb;
246
+ }
247
+
248
+ .status.error {
249
+ background: #f8d7da;
250
+ color: #721c24;
251
+ border: 1px solid #f5c6cb;
252
+ }
253
+
254
+ .logs {
255
+ background: #f8f9fa;
256
+ border-radius: 12px;
257
+ padding: 20px;
258
+ margin-top: 20px;
259
+ }
260
+
261
+ .logs h3 {
262
+ color: #333;
263
+ margin-bottom: 15px;
264
+ font-size: 1.1rem;
265
+ }
266
+
267
+ .log-container {
268
+ max-height: 300px;
269
+ overflow-y: auto;
270
+ background: white;
271
+ border-radius: 8px;
272
+ padding: 10px;
273
+ }
274
+
275
+ .log-entry {
276
+ padding: 8px 12px;
277
+ margin-bottom: 5px;
278
+ border-radius: 6px;
279
+ font-size: 0.9rem;
280
+ display: flex;
281
+ gap: 10px;
282
+ animation: slideIn 0.3s ease;
283
+ }
284
+
285
+ @keyframes slideIn {
286
+ from {
287
+ opacity: 0;
288
+ transform: translateX(-10px);
289
+ }
290
+ to {
291
+ opacity: 1;
292
+ transform: translateX(0);
293
+ }
294
+ }
295
+
296
+ .log-entry.info {
297
+ background: #e7f3ff;
298
+ border-left: 3px solid #2196f3;
299
+ }
300
+
301
+ .log-entry.success {
302
+ background: #e8f5e9;
303
+ border-left: 3px solid #4caf50;
304
+ }
305
+
306
+ .log-entry.error {
307
+ background: #ffebee;
308
+ border-left: 3px solid #f44336;
309
+ }
310
+
311
+ .log-time {
312
+ color: #999;
313
+ font-size: 0.85rem;
314
+ font-family: monospace;
315
+ min-width: 80px;
316
+ }
317
+
318
+ .log-message {
319
+ color: #333;
320
+ flex: 1;
321
+ }
322
+
323
+ .footer {
324
+ text-align: center;
325
+ margin-top: 30px;
326
+ padding-top: 20px;
327
+ border-top: 1px solid #e1e8ed;
328
+ }
329
+
330
+ .footer p {
331
+ color: #999;
332
+ font-size: 0.85rem;
333
+ margin-bottom: 5px;
334
+ }
335
+
336
+ /* Scrollbar styling */
337
+ .log-container::-webkit-scrollbar {
338
+ width: 8px;
339
+ }
340
+
341
+ .log-container::-webkit-scrollbar-track {
342
+ background: #f1f1f1;
343
+ border-radius: 4px;
344
+ }
345
+
346
+ .log-container::-webkit-scrollbar-thumb {
347
+ background: #667eea;
348
+ border-radius: 4px;
349
+ }
350
+
351
+ .log-container::-webkit-scrollbar-thumb:hover {
352
+ background: #5568d3;
353
+ }
354
+
355
+ /* Responsive */
356
+ @media (max-width: 640px) {
357
+ .card {
358
+ padding: 25px;
359
+ }
360
+
361
+ .header h1 {
362
+ font-size: 1.5rem;
363
+ }
364
+
365
+ .code {
366
+ font-size: 1.4rem;
367
+ letter-spacing: 2px;
368
+ }
369
+ }