Docfile commited on
Commit
fcc0d7f
·
verified ·
1 Parent(s): 37c2be9

Create static/css/style.css

Browse files
Files changed (1) hide show
  1. app/static/css/style.css +585 -0
app/static/css/style.css ADDED
@@ -0,0 +1,585 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Style pour la page des matières */
2
+ .page-title {
3
+ text-align: center;
4
+ margin: 2rem 0 3rem;
5
+ font-size: 2.5rem;
6
+ color: #2c3e50;
7
+ position: relative;
8
+ }
9
+
10
+ .page-title::after {
11
+ content: '';
12
+ position: absolute;
13
+ bottom: -10px;
14
+ left: 50%;
15
+ transform: translateX(-50%);
16
+ width: 60px;
17
+ height: 3px;
18
+ background: #3498db;
19
+ border-radius: 2px;
20
+ }
21
+
22
+ .subjects-grid {
23
+ display: grid;
24
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
25
+ gap: 1.5rem;
26
+ padding: 1rem;
27
+ }
28
+
29
+ .subject-card {
30
+ background: white;
31
+ border-radius: 12px;
32
+ overflow: hidden;
33
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
34
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
35
+ position: relative;
36
+ }
37
+
38
+ .subject-card:hover {
39
+ transform: translateY(-5px);
40
+ box-shadow: 0 8px 15px rgba(52, 152, 219, 0.2);
41
+ }
42
+
43
+ .subject-link {
44
+ display: flex;
45
+ justify-content: space-between;
46
+ align-items: center;
47
+ padding: 1.5rem;
48
+ text-decoration: none;
49
+ color: inherit;
50
+ position: relative;
51
+ z-index: 1;
52
+ }
53
+
54
+ .subject-link::after {
55
+ content: '';
56
+ position: absolute;
57
+ top: 0;
58
+ left: 0;
59
+ width: 100%;
60
+ height: 100%;
61
+ background: linear-gradient(135deg, #46a1dd 0%, #2980b9 100%);
62
+ opacity: 0;
63
+ transition: opacity 0.3s ease;
64
+ z-index: -1;
65
+ }
66
+
67
+ .subject-link:hover {
68
+ color: white;
69
+ }
70
+
71
+ .subject-link:hover::after {
72
+ opacity: 1;
73
+ }
74
+
75
+ .subject-name {
76
+ font-size: 1.2rem;
77
+ font-weight: 600;
78
+ transition: color 0.3s ease;
79
+ }
80
+
81
+ .subject-arrow {
82
+ font-size: 1.5rem;
83
+ opacity: 0;
84
+ transform: translateX(-10px);
85
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
86
+ }
87
+
88
+ .subject-link:hover .subject-arrow {
89
+ opacity: 1;
90
+ transform: translateX(0);
91
+ }
92
+
93
+ .no-subjects {
94
+ text-align: center;
95
+ color: #95a5a6;
96
+ font-size: 1.2rem;
97
+ padding: 2rem;
98
+ grid-column: 1 / -1;
99
+ }
100
+
101
+ /* Animation d'apparition */
102
+ @keyframes cardEntrance {
103
+ from {
104
+ opacity: 0;
105
+ transform: translateY(20px);
106
+ }
107
+ to {
108
+ opacity: 1;
109
+ transform: translateY(0);
110
+ }
111
+ }
112
+
113
+ .subject-card {
114
+ animation: cardEntrance 0.6s ease forwards;
115
+ animation-delay: calc(var(--index) * 0.1s);
116
+ }
117
+
118
+ @media (max-width: 768px) {
119
+ .subjects-grid {
120
+ grid-template-columns: 1fr;
121
+ }
122
+
123
+ .subject-link {
124
+ padding: 1rem;
125
+ }
126
+ }
127
+
128
+
129
+ /* Page matière */
130
+ .subject-container {
131
+ max-width: 1200px;
132
+ margin: 2rem auto;
133
+ padding: 0 1rem;
134
+ }
135
+
136
+ .subject-header {
137
+ text-align: center;
138
+ margin-bottom: 3rem;
139
+ position: relative;
140
+ }
141
+
142
+ .subject-title {
143
+ font-size: 2.5rem;
144
+ color: #2c3e50;
145
+ margin-bottom: 1rem;
146
+ position: relative;
147
+ display: inline-block;
148
+ }
149
+
150
+ .subject-header-decoration {
151
+ height: 4px;
152
+ width: 80px;
153
+ background: #3498db;
154
+ margin: 0 auto;
155
+ border-radius: 2px;
156
+ position: relative;
157
+ animation: headerLine 1s ease-out;
158
+ }
159
+
160
+ .subcategories-section {
161
+ background: white;
162
+ padding: 2rem;
163
+ border-radius: 12px;
164
+ box-shadow: 0 4px 20px rgba(0,0,0,0.05);
165
+ }
166
+
167
+ .section-title {
168
+ color: #4a5568;
169
+ font-size: 1.5rem;
170
+ margin-bottom: 2rem;
171
+ padding-bottom: 0.5rem;
172
+ border-bottom: 2px solid #e2e8f0;
173
+ }
174
+
175
+ .subcategories-grid {
176
+ display: grid;
177
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
178
+ gap: 1.5rem;
179
+ }
180
+
181
+ .subcategory-card {
182
+ background: white;
183
+ border-radius: 8px;
184
+ padding: 1.5rem;
185
+ text-decoration: none;
186
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
187
+ border: 1px solid #e2e8f0;
188
+ position: relative;
189
+ overflow: hidden;
190
+ }
191
+
192
+ .subcategory-card:hover {
193
+ transform: translateY(-3px);
194
+ box-shadow: 0 10px 15px rgba(52, 152, 219, 0.15);
195
+ border-color: #3498db;
196
+ }
197
+
198
+ .subcategory-content {
199
+ display: flex;
200
+ justify-content: space-between;
201
+ align-items: center;
202
+ }
203
+
204
+ .subcategory-name {
205
+ color: #2c3e50;
206
+ font-weight: 500;
207
+ font-size: 1.1rem;
208
+ transition: color 0.3s ease;
209
+ }
210
+
211
+ .arrow-icon {
212
+ width: 24px;
213
+ height: 24px;
214
+ opacity: 0;
215
+ transform: translateX(-10px);
216
+ transition: all 0.3s ease;
217
+ color: #3498db;
218
+ }
219
+
220
+ .subcategory-card:hover .arrow-icon {
221
+ opacity: 1;
222
+ transform: translateX(0);
223
+ }
224
+
225
+ .no-subcategories {
226
+ text-align: center;
227
+ padding: 3rem;
228
+ grid-column: 1 / -1;
229
+ }
230
+
231
+ .empty-icon {
232
+ width: 60px;
233
+ height: 60px;
234
+ margin-bottom: 1rem;
235
+ color: #cbd5e0;
236
+ }
237
+
238
+ .no-subcategories p {
239
+ color: #a0aec0;
240
+ font-size: 1.1rem;
241
+ }
242
+
243
+ /* Animations */
244
+ @keyframes headerLine {
245
+ from { width: 0; opacity: 0; }
246
+ to { width: 80px; opacity: 1; }
247
+ }
248
+
249
+ @media (max-width: 768px) {
250
+ .subject-container {
251
+ padding: 0;
252
+ }
253
+
254
+ .subcategories-section {
255
+ padding: 1.5rem;
256
+ }
257
+
258
+ .subject-title {
259
+ font-size: 2rem;
260
+ }
261
+ }
262
+
263
+
264
+ /*sous catégorie*/
265
+ /* Page textes */
266
+ .content-container {
267
+ max-width: 1200px;
268
+ margin: 2rem auto;
269
+ padding: 0 1.5rem;
270
+ }
271
+
272
+ .header-section {
273
+ text-align: center;
274
+ margin-bottom: 3rem;
275
+ }
276
+
277
+ .main-title {
278
+ font-size: 2.3rem;
279
+ color: #2c3e50;
280
+ margin-bottom: 0.5rem;
281
+ }
282
+
283
+ .title-underline {
284
+ width: 60px;
285
+ height: 3px;
286
+ background: linear-gradient(135deg, #46a1dd 0%, #2980b9 100%);
287
+ margin: 0 auto;
288
+ border-radius: 2px;
289
+ }
290
+
291
+ .texts-section {
292
+ background: #fff;
293
+ padding: 2rem;
294
+ border-radius: 12px;
295
+ box-shadow: 0 4px 20px rgba(0,0,0,0.05);
296
+ }
297
+
298
+ .section-subtitle {
299
+ color: #4a5568;
300
+ font-size: 1.4rem;
301
+ margin-bottom: 2rem;
302
+ padding-bottom: 0.75rem;
303
+ border-bottom: 2px solid #edf2f7;
304
+ }
305
+
306
+ .texts-grid {
307
+ display: grid;
308
+ gap: 1.2rem;
309
+ }
310
+
311
+ .text-card {
312
+ display: flex;
313
+ justify-content: space-between;
314
+ align-items: center;
315
+ padding: 1.5rem;
316
+ background: #fff;
317
+ border-radius: 8px;
318
+ border: 1px solid #e2e8f0;
319
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
320
+ text-decoration: none;
321
+ position: relative;
322
+ }
323
+
324
+ .text-card:hover {
325
+ transform: translateY(-3px);
326
+ box-shadow: 0 5px 15px rgba(52, 152, 219, 0.15);
327
+ border-color: #3498db;
328
+ }
329
+
330
+ .text-title {
331
+ color: #2c3e50;
332
+ font-size: 1.1rem;
333
+ margin-bottom: 0.5rem;
334
+ }
335
+
336
+ .text-meta {
337
+ display: flex;
338
+ gap: 1rem;
339
+ font-size: 0.9rem;
340
+ color: #718096;
341
+ }
342
+
343
+ .meta-item i {
344
+ margin-right: 0.4rem;
345
+ color: #3498db;
346
+ }
347
+
348
+ .card-arrow {
349
+ color: #3498db;
350
+ opacity: 0;
351
+ }
352
+
353
+ /* le texte, cours*/
354
+
355
+ /* Page texte */
356
+ .text-container {
357
+ max-width: 800px;
358
+ margin: 2rem auto;
359
+ padding: 0 1.5rem;
360
+ }
361
+
362
+ .text-header {
363
+ text-align: center;
364
+ margin-bottom: 3rem;
365
+ }
366
+
367
+ .text-title {
368
+ font-size: 2.4rem;
369
+ color: #2c3e50;
370
+ margin-bottom: 1rem;
371
+ line-height: 1.3;
372
+ background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
373
+ -webkit-background-clip: text;
374
+ background-clip: text;
375
+ -webkit-text-fill-color: transparent;
376
+ display: inline-block;
377
+ }
378
+
379
+ .text-meta {
380
+ display: flex;
381
+ gap: 1.5rem;
382
+ justify-content: center;
383
+ color: #718096;
384
+ font-size: 0.95rem;
385
+ }
386
+
387
+ .meta-item i {
388
+ margin-right: 0.5rem;
389
+ color: #3498db;
390
+ }
391
+
392
+ .texte-contenu {
393
+ content: '';
394
+ position: absolute;
395
+ top: 0;
396
+ left: 0;
397
+ width: 100%;
398
+ height: 100%;
399
+ background: linear-gradient(135deg, #46a1dd 0%, #2980b9 100%);
400
+ opacity: 0;
401
+ transition: opacity 0.3s ease;
402
+ z-index: -1;
403
+ box-shadow: 0 4px 20px rgba(0,0,0,0.05);
404
+ animation: fadeIn 0.6s ease-out;
405
+ }
406
+
407
+ /* Styles de contenu riche */
408
+ .texte-contenu h2,
409
+ .texte-contenu h3 {
410
+ color: #2c3e50;
411
+ margin: 2rem 0 1rem;
412
+ }
413
+
414
+ .texte-contenu h2 {
415
+ font-size: 1.6rem;
416
+ border-bottom: 2px solid #e2e8f0;
417
+ padding-bottom: 0.5rem;
418
+ }
419
+
420
+ .texte-contenu h3 {
421
+ font-size: 1.4rem;
422
+ }
423
+
424
+ .texte-contenu p {
425
+ margin-bottom: 1.5rem;
426
+ }
427
+
428
+ .texte-contenu img {
429
+ max-width: 100%;
430
+ height: auto;
431
+ border-radius: 8px;
432
+ margin: 1.5rem 0;
433
+ box-shadow: 0 4px 6px rgba(0,0,0,0.1);
434
+ }
435
+
436
+ .texte-contenu ul,
437
+ .texte-contenu ol {
438
+ margin: 1.5rem 0;
439
+ padding-left: 2rem;
440
+ }
441
+
442
+ .texte-contenu li {
443
+ margin-bottom: 0.8rem;
444
+ }
445
+
446
+ .texte-contenu blockquote {
447
+ border-left: 4px solid #3498db;
448
+ margin: 1.5rem 0;
449
+ padding: 1rem 1.5rem;
450
+ background: #f8f9fa;
451
+ border-radius: 0 6px 6px 0;
452
+ }
453
+
454
+ /* additif */
455
+
456
+ /* Header */
457
+ .main-navbar {
458
+ background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
459
+ box-shadow: 0 2px 15px rgba(0, 0, 0, 0.08);
460
+ padding: 0.8rem 1rem;
461
+ position: relative;
462
+ z-index: 1000;
463
+ }
464
+
465
+ .navbar-brand {
466
+ font-weight: 700;
467
+ color: #2c3e50 !important;
468
+ font-size: 1.4rem;
469
+ display: flex;
470
+ align-items: center;
471
+ transition: transform 0.3s ease;
472
+ }
473
+
474
+ .navbar-brand:hover {
475
+ transform: translateX(5px);
476
+ }
477
+
478
+ .navbar-brand::after {
479
+ content: "";
480
+ display: inline-block;
481
+ width: 2px;
482
+ height: 24px;
483
+ background: #3498db;
484
+ margin-left: 1rem;
485
+ transform: skew(-15deg);
486
+ }
487
+
488
+ .nav-link {
489
+ color: #4a5568 !important;
490
+ font-weight: 500;
491
+ padding: 0.5rem 1.2rem !important;
492
+ border-radius: 8px;
493
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
494
+ position: relative;
495
+ }
496
+
497
+ .nav-link:hover {
498
+ color: #3498db !important;
499
+ background: rgba(52, 152, 219, 0.08);
500
+ }
501
+
502
+ .nav-link.admin-link {
503
+ background: rgba(52, 152, 219, 0.1);
504
+ margin-left: 1rem;
505
+ }
506
+
507
+ .nav-link.admin-link:hover {
508
+ background: rgba(52, 152, 219, 0.2);
509
+ }
510
+
511
+ .nav-link.admin-link::before {
512
+ content: "\f023";
513
+ font-family: "Font Awesome 5 Free";
514
+ font-weight: 900;
515
+ margin-right: 0.5rem;
516
+ }
517
+
518
+ /* Footer */
519
+ .main-footer {
520
+ background: #2c3e50;
521
+ color: #ecf0f1;
522
+ padding: 1rem 0; /* Réduc pour pc */
523
+ margin-top: auto;
524
+ border-top: 3px solid #3498db;
525
+ }
526
+
527
+ .main-footer .social-links {
528
+ display: flex;
529
+ justify-content: center;
530
+ gap: 1.5rem;
531
+ margin: 1.5rem 0;
532
+ }
533
+
534
+ .main-footer .social-links a {
535
+ color: #bdc3c7;
536
+ font-size: 1.4rem;
537
+ transition: all 0.3s ease;
538
+ }
539
+
540
+ .main-footer .social-links a:hover {
541
+ color: #3498db;
542
+ transform: translateY(-3px);
543
+ }
544
+
545
+ .main-footer .copyright {
546
+ font-size: 0.9rem;
547
+ opacity: 0.8;
548
+ margin-top: 1rem;
549
+ }
550
+
551
+ /* Responsive */
552
+ @media (max-width: 768px) {
553
+ .main-footer {
554
+ padding: 0.75rem 0; /* Réduc pour mobile */
555
+ }
556
+ }
557
+
558
+ .nav-link {
559
+ padding: 0.5rem !important;
560
+ }
561
+
562
+ .main-footer {
563
+ padding: 1.5rem 0;
564
+ }
565
+ }
566
+ .copyright {
567
+ font-size: 0.9rem;
568
+ opacity: 0.8;
569
+ margin-top: 1rem;
570
+ text-align: center;
571
+ }
572
+
573
+ .text-meta {
574
+ display: flex;
575
+ gap: 1.5rem;
576
+ margin-top: 0.8rem;
577
+ }
578
+
579
+ .meta-item {
580
+ display: flex;
581
+ align-items: center;
582
+ gap: 0.5rem;
583
+ font-size: 0.9rem;
584
+ color: #6c757d;
585
+ }