Diff of /web/docs/docs.css [000000] .. [8c4ad8]

Switch to unified view

a b/web/docs/docs.css
1
/* Documentation Page Styles */
2
3
/* Layout */
4
.docs-layout {
5
    display: flex;
6
    min-height: calc(100vh - 70px);
7
    margin-top: 70px;
8
}
9
10
/* Sidebar */
11
.docs-sidebar {
12
    width: 300px;
13
    background: var(--dark-blue);
14
    border-right: 1px solid rgba(255, 255, 255, 0.1);
15
    position: fixed;
16
    top: 70px;
17
    left: 0;
18
    bottom: 0;
19
    overflow-y: auto;
20
    z-index: 100;
21
    transition: transform var(--transition-normal);
22
}
23
24
.sidebar-header {
25
    padding: var(--space-lg);
26
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
27
    display: flex;
28
    justify-content: space-between;
29
    align-items: center;
30
}
31
32
.sidebar-header h2 {
33
    margin: 0;
34
    font-size: 1.3rem;
35
    color: var(--white);
36
}
37
38
.mobile-close {
39
    display: none;
40
    background: none;
41
    border: none;
42
    color: rgba(255, 255, 255, 0.7);
43
    font-size: 1.2rem;
44
    cursor: pointer;
45
    transition: color var(--transition-fast);
46
}
47
48
.mobile-close:hover {
49
    color: var(--white);
50
}
51
52
.sidebar-search {
53
    padding: var(--space-md) var(--space-lg);
54
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
55
}
56
57
.search-input-wrapper {
58
    position: relative;
59
}
60
61
.search-input-wrapper i {
62
    position: absolute;
63
    left: var(--space-md);
64
    top: 50%;
65
    transform: translateY(-50%);
66
    color: rgba(255, 255, 255, 0.5);
67
    pointer-events: none;
68
}
69
70
.search-input-wrapper input {
71
    width: 100%;
72
    padding: var(--space-sm) var(--space-sm) var(--space-sm) var(--space-xl);
73
    background: rgba(255, 255, 255, 0.1);
74
    border: 1px solid rgba(255, 255, 255, 0.15);
75
    border-radius: var(--radius-md);
76
    color: var(--white);
77
    font-size: 0.9rem;
78
    transition: all var(--transition-fast);
79
}
80
81
.search-input-wrapper input:focus {
82
    outline: none;
83
    border-color: var(--blue);
84
    background: rgba(255, 255, 255, 0.15);
85
}
86
87
.sidebar-nav {
88
    padding: var(--space-md) 0;
89
}
90
91
.nav-section {
92
    margin-bottom: var(--space-lg);
93
    padding: 0 var(--space-lg);
94
}
95
96
.nav-section h3 {
97
    font-size: 0.9rem;
98
    text-transform: uppercase;
99
    letter-spacing: 1px;
100
    color: rgba(255, 255, 255, 0.5);
101
    margin: 0 0 var(--space-sm) 0;
102
}
103
104
.nav-section ul {
105
    list-style: none;
106
    padding: 0;
107
    margin: 0;
108
}
109
110
.nav-section li {
111
    margin-bottom: 2px;
112
}
113
114
.nav-section a {
115
    display: block;
116
    padding: var(--space-xs) 0;
117
    color: rgba(255, 255, 255, 0.7);
118
    text-decoration: none;
119
    font-size: 0.95rem;
120
    transition: all var(--transition-fast);
121
    border-radius: var(--radius-sm);
122
}
123
124
.nav-section a:hover {
125
    color: var(--white);
126
    transform: translateX(2px);
127
}
128
129
.nav-section a.active {
130
    color: var(--blue);
131
    font-weight: 500;
132
}
133
134
/* Content */
135
.docs-content {
136
    flex: 1;
137
    margin-left: 300px;
138
    position: relative;
139
}
140
141
.docs-container {
142
    max-width: 900px;
143
    margin: 0 auto;
144
    padding: var(--space-xl) var(--space-xxl) var(--space-xxl);
145
}
146
147
.docs-mobile-header {
148
    display: none;
149
    position: sticky;
150
    top: 70px;
151
    padding: var(--space-md) var(--space-lg);
152
    background: var(--dark-blue);
153
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
154
    z-index: 90;
155
}
156
157
.docs-mobile-header h2 {
158
    margin: 0;
159
    font-size: 1.3rem;
160
    color: var(--white);
161
}
162
163
.sidebar-toggle {
164
    display: none;
165
    background: none;
166
    border: none;
167
    color: rgba(255, 255, 255, 0.7);
168
    font-size: 1.2rem;
169
    cursor: pointer;
170
    transition: color var(--transition-fast);
171
    margin-right: var(--space-md);
172
}
173
174
.sidebar-toggle:hover {
175
    color: var(--white);
176
}
177
178
/* Doc Sections */
179
.doc-section {
180
    margin-bottom: var(--space-xxl);
181
    scroll-margin-top: 100px;
182
}
183
184
.doc-section:last-child {
185
    margin-bottom: 0;
186
}
187
188
.doc-section h1 {
189
    font-size: 2.5rem;
190
    margin-bottom: var(--space-lg);
191
    color: var(--white);
192
}
193
194
.doc-section h2 {
195
    font-size: 1.8rem;
196
    margin: var(--space-xl) 0 var(--space-md);
197
    color: var(--white);
198
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
199
    padding-bottom: var(--space-sm);
200
}
201
202
.doc-section h3 {
203
    font-size: 1.3rem;
204
    margin: var(--space-lg) 0 var(--space-sm);
205
    color: var(--white);
206
}
207
208
.doc-section p {
209
    margin-bottom: var(--space-md);
210
    color: rgba(255, 255, 255, 0.8);
211
    font-size: 1rem;
212
    line-height: 1.7;
213
}
214
215
.doc-section p.lead {
216
    font-size: 1.1rem;
217
    color: rgba(255, 255, 255, 0.9);
218
}
219
220
.doc-section ul, 
221
.doc-section ol {
222
    margin-bottom: var(--space-md);
223
    color: rgba(255, 255, 255, 0.8);
224
    padding-left: var(--space-xl);
225
}
226
227
.doc-section li {
228
    margin-bottom: var(--space-xs);
229
}
230
231
.doc-section a {
232
    color: var(--blue);
233
    text-decoration: none;
234
    transition: color var(--transition-fast);
235
}
236
237
.doc-section a:hover {
238
    text-decoration: underline;
239
    color: var(--light-blue);
240
}
241
242
.doc-section code {
243
    font-family: var(--font-mono);
244
    background: rgba(0, 0, 0, 0.2);
245
    padding: 2px 5px;
246
    border-radius: var(--radius-sm);
247
    font-size: 0.9em;
248
    color: var(--white);
249
}
250
251
/* Info Boxes */
252
.info-box {
253
    background: rgba(0, 0, 0, 0.2);
254
    border-radius: var(--radius-md);
255
    padding: var(--space-lg);
256
    margin: var(--space-lg) 0;
257
    border-left: 4px solid var(--blue);
258
}
259
260
.info-box h3 {
261
    margin-top: 0;
262
    font-size: 1.1rem;
263
    color: var(--white);
264
}
265
266
.info-box p:last-child,
267
.info-box ul:last-child {
268
    margin-bottom: 0;
269
}
270
271
.info-box.warning {
272
    border-left-color: var(--warning);
273
}
274
275
.info-box.warning h3 {
276
    color: var(--warning);
277
}
278
279
.info-box.error {
280
    border-left-color: var(--error);
281
}
282
283
.info-box.error h3 {
284
    color: var(--error);
285
}
286
287
.info-box.tip {
288
    border-left-color: var(--success);
289
}
290
291
.info-box.tip h3 {
292
    color: var(--success);
293
}
294
295
/* Code Blocks */
296
.code-block {
297
    margin: var(--space-md) 0;
298
    background: rgba(0, 0, 0, 0.2);
299
    border-radius: var(--radius-md);
300
    overflow: hidden;
301
}
302
303
.code-header {
304
    display: flex;
305
    justify-content: space-between;
306
    align-items: center;
307
    background: rgba(0, 0, 0, 0.3);
308
    padding: var(--space-sm) var(--space-md);
309
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
310
}
311
312
.code-label {
313
    font-size: 0.9rem;
314
    color: rgba(255, 255, 255, 0.7);
315
}
316
317
.copy-button {
318
    background: rgba(255, 255, 255, 0.1);
319
    border: none;
320
    color: rgba(255, 255, 255, 0.7);
321
    padding: 4px 10px;
322
    border-radius: var(--radius-sm);
323
    font-size: 0.8rem;
324
    cursor: pointer;
325
    transition: all var(--transition-fast);
326
}
327
328
.copy-button:hover {
329
    background: rgba(255, 255, 255, 0.2);
330
    color: var(--white);
331
}
332
333
.code-block pre {
334
    margin: 0;
335
    padding: var(--space-md);
336
    overflow-x: auto;
337
}
338
339
.code-block code {
340
    background: transparent;
341
    padding: 0;
342
    font-family: var(--font-mono);
343
    font-size: 0.9rem;
344
    line-height: 1.6;
345
    color: rgba(255, 255, 255, 0.9);
346
    display: block;
347
}
348
349
/* Tabs */
350
.tabs {
351
    margin: var(--space-md) 0;
352
    background: rgba(0, 0, 0, 0.2);
353
    border-radius: var(--radius-md);
354
    overflow: hidden;
355
}
356
357
.tab-header {
358
    display: flex;
359
    background: rgba(0, 0, 0, 0.3);
360
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
361
}
362
363
.tab-button {
364
    padding: var(--space-sm) var(--space-md);
365
    background: transparent;
366
    border: none;
367
    border-bottom: 2px solid transparent;
368
    color: rgba(255, 255, 255, 0.7);
369
    cursor: pointer;
370
    transition: all var(--transition-fast);
371
}
372
373
.tab-button:hover {
374
    color: var(--white);
375
}
376
377
.tab-button.active {
378
    color: var(--blue);
379
    border-bottom-color: var(--blue);
380
    background: rgba(0, 164, 239, 0.1);
381
}
382
383
.tab-content {
384
    display: none;
385
    padding: var(--space-md);
386
}
387
388
.tab-content.active {
389
    display: block;
390
}
391
392
/* Steps */
393
.steps {
394
    margin: var(--space-lg) 0;
395
}
396
397
.step {
398
    display: flex;
399
    margin-bottom: var(--space-lg);
400
    gap: var(--space-md);
401
}
402
403
.step-number {
404
    flex-shrink: 0;
405
    width: 34px;
406
    height: 34px;
407
    background: linear-gradient(135deg, var(--magenta), var(--blue));
408
    border-radius: 50%;
409
    display: flex;
410
    align-items: center;
411
    justify-content: center;
412
    font-weight: 600;
413
    font-size: 1.1rem;
414
    color: var(--white);
415
    margin-top: 5px;
416
}
417
418
.step-content {
419
    flex: 1;
420
}
421
422
.step-content h3 {
423
    margin-top: 0;
424
    font-size: 1.2rem;
425
    margin-bottom: var(--space-sm);
426
}
427
428
.step-content p {
429
    margin-bottom: var(--space-sm);
430
}
431
432
.step-content p:last-child {
433
    margin-bottom: 0;
434
}
435
436
/* API Endpoints */
437
.api-endpoint {
438
    margin-bottom: var(--space-lg);
439
    background: rgba(0, 0, 0, 0.2);
440
    border-radius: var(--radius-md);
441
    overflow: hidden;
442
}
443
444
.endpoint-method {
445
    display: inline-block;
446
    padding: var(--space-xs) var(--space-sm);
447
    font-weight: 600;
448
    color: var(--white);
449
    border-radius: var(--radius-sm);
450
    font-size: 0.9rem;
451
    margin-right: var(--space-sm);
452
}
453
454
.endpoint-method.get {
455
    background: var(--success);
456
}
457
458
.endpoint-method.post {
459
    background: var(--blue);
460
}
461
462
.endpoint-method.put {
463
    background: var(--warning);
464
}
465
466
.endpoint-method.delete {
467
    background: var(--error);
468
}
469
470
.endpoint-path {
471
    font-family: var(--font-mono);
472
    font-size: 1rem;
473
    margin-bottom: var(--space-sm);
474
    color: var(--white);
475
    padding: var(--space-md);
476
    background: rgba(0, 0, 0, 0.3);
477
    display: flex;
478
    align-items: center;
479
}
480
481
.endpoint-description {
482
    padding: var(--space-md);
483
}
484
485
.endpoint-description p {
486
    margin-top: 0;
487
}
488
489
.endpoint-description h4 {
490
    font-size: 1.1rem;
491
    margin: var(--space-md) 0 var(--space-xs);
492
    color: var(--white);
493
}
494
495
/* FAQ Section */
496
.faq-item {
497
    margin-bottom: var(--space-md);
498
    border: 1px solid rgba(255, 255, 255, 0.1);
499
    border-radius: var(--radius-md);
500
    overflow: hidden;
501
}
502
503
.faq-question {
504
    padding: var(--space-md);
505
    background: rgba(0, 0, 0, 0.2);
506
    cursor: pointer;
507
    display: flex;
508
    justify-content: space-between;
509
    align-items: center;
510
}
511
512
.faq-question h3 {
513
    margin: 0;
514
    font-size: 1.1rem;
515
    color: var(--white);
516
}
517
518
.faq-question i {
519
    color: rgba(255, 255, 255, 0.7);
520
    transition: transform var(--transition-fast);
521
}
522
523
.faq-item.active .faq-question i {
524
    transform: rotate(180deg);
525
}
526
527
.faq-answer {
528
    padding: 0 var(--space-md);
529
    max-height: 0;
530
    overflow: hidden;
531
    transition: all var(--transition-normal);
532
}
533
534
.faq-item.active .faq-answer {
535
    padding: var(--space-md);
536
    max-height: 1000px;
537
}
538
539
/* Community Resources */
540
.community-resources {
541
    display: grid;
542
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
543
    gap: var(--space-lg);
544
    margin: var(--space-lg) 0;
545
}
546
547
.resource-card {
548
    background: rgba(255, 255, 255, 0.05);
549
    border-radius: var(--radius-md);
550
    padding: var(--space-lg);
551
    text-align: center;
552
    border: 1px solid rgba(255, 255, 255, 0.1);
553
    transition: all var(--transition-normal);
554
}
555
556
.resource-card:hover {
557
    transform: translateY(-5px);
558
    background: rgba(255, 255, 255, 0.08);
559
    box-shadow: var(--shadow-md);
560
    border-color: rgba(255, 255, 255, 0.15);
561
}
562
563
.resource-card i {
564
    font-size: 2rem;
565
    margin-bottom: var(--space-md);
566
    color: var(--blue);
567
}
568
569
.resource-card h3 {
570
    margin-top: 0;
571
    margin-bottom: var(--space-sm);
572
    font-size: 1.2rem;
573
}
574
575
.resource-card p {
576
    margin-bottom: var(--space-md);
577
    color: rgba(255, 255, 255, 0.7);
578
}
579
580
/* Responsive Design */
581
@media screen and (max-width: 1024px) {
582
    .docs-container {
583
        padding: var(--space-xl) var(--space-lg);
584
    }
585
    
586
    .community-resources {
587
        grid-template-columns: 1fr;
588
    }
589
}
590
591
@media screen and (max-width: 768px) {
592
    .docs-sidebar {
593
        transform: translateX(-100%);
594
        width: 280px;
595
    }
596
    
597
    .docs-sidebar.active {
598
        transform: translateX(0);
599
    }
600
    
601
    .docs-content {
602
        margin-left: 0;
603
    }
604
    
605
    .docs-mobile-header {
606
        display: flex;
607
        align-items: center;
608
    }
609
    
610
    .sidebar-toggle {
611
        display: block;
612
    }
613
    
614
    .mobile-close {
615
        display: block;
616
    }
617
    
618
    .api-endpoint {
619
        overflow-x: auto;
620
    }
621
    
622
    .step {
623
        flex-direction: column;
624
        gap: var(--space-sm);
625
    }
626
    
627
    .step-number {
628
        margin-bottom: var(--space-xs);
629
    }
630
}
631
632
@media screen and (max-width: 480px) {
633
    .docs-container {
634
        padding: var(--space-lg) var(--space-md);
635
    }
636
    
637
    .doc-section h1 {
638
        font-size: 2rem;
639
    }
640
    
641
    .doc-section h2 {
642
        font-size: 1.5rem;
643
    }
644
    
645
    .doc-section h3 {
646
        font-size: 1.2rem;
647
    }
648
    
649
    .tab-header {
650
        flex-wrap: wrap;
651
    }
652
    
653
    .tab-button {
654
        flex: 1;
655
        min-width: 100px;
656
        text-align: center;
657
    }
658
}