portosaurus 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of portosaurus might be problematic. Click here for more details.

Files changed (64) hide show
  1. package/.vscode/snippets.code-snippets +79 -0
  2. package/AGENTS.md +37 -0
  3. package/GG/config.js +233 -0
  4. package/GG/package.json +14 -0
  5. package/GG/static/.nojekyll +0 -0
  6. package/GG/static/docusaurus-snippet.css +3 -0
  7. package/GG/static/img/icon-bg.png +0 -0
  8. package/GG/static/img/icon-old.png +0 -0
  9. package/GG/static/img/icon.png +0 -0
  10. package/GG/static/img/project-blank.png +0 -0
  11. package/GG/static/img/social-card.jpeg +0 -0
  12. package/LICENSE +674 -0
  13. package/README.md +57 -0
  14. package/bin/portosaurus.js +136 -0
  15. package/package.json +36 -0
  16. package/src/config/iconMappings.js +329 -0
  17. package/src/config/metaTags.js +240 -0
  18. package/src/config/prism.js +179 -0
  19. package/src/config/sidebar.js +20 -0
  20. package/src/configLoader.js +99 -0
  21. package/src/index.js +79 -0
  22. package/src/pages/index.js +98 -0
  23. package/src/pages/notes.js +88 -0
  24. package/src/pages/tasks.js +251 -0
  25. package/src/theme/components/AboutSection/index.js +67 -0
  26. package/src/theme/components/AboutSection/styles.module.css +492 -0
  27. package/src/theme/components/ContactSection/index.js +87 -0
  28. package/src/theme/components/ContactSection/styles.module.css +327 -0
  29. package/src/theme/components/ExperienceSection/index.js +25 -0
  30. package/src/theme/components/ExperienceSection/styles.module.css +180 -0
  31. package/src/theme/components/HeroSection/index.js +63 -0
  32. package/src/theme/components/HeroSection/styles.module.css +471 -0
  33. package/src/theme/components/NoteIndex/index.js +119 -0
  34. package/src/theme/components/NoteIndex/styles.module.css +143 -0
  35. package/src/theme/components/ProjectsSection/index.js +529 -0
  36. package/src/theme/components/ProjectsSection/styles.module.css +830 -0
  37. package/src/theme/components/ScrollToTop/index.js +98 -0
  38. package/src/theme/components/ScrollToTop/styles.module.css +96 -0
  39. package/src/theme/components/SocialLinks/index.js +129 -0
  40. package/src/theme/components/SocialLinks/styles.module.css +55 -0
  41. package/src/theme/components/Tooltip/index.js +30 -0
  42. package/src/theme/components/Tooltip/styles.module.css +92 -0
  43. package/src/theme/css/bootstrap.css +6 -0
  44. package/src/theme/css/catppuccin.css +632 -0
  45. package/src/theme/css/custom.css +186 -0
  46. package/src/theme/css/tasks.css +868 -0
  47. package/src/theme/staticLink/.nojekyll +0 -0
  48. package/src/theme/staticLink/docusaurus-snippet.css +3 -0
  49. package/src/theme/staticLink/img/icon-bg.png +0 -0
  50. package/src/theme/staticLink/img/icon-old.png +0 -0
  51. package/src/theme/staticLink/img/icon.png +0 -0
  52. package/src/theme/staticLink/img/project-blank.png +0 -0
  53. package/src/theme/staticLink/img/social-card.jpeg +0 -0
  54. package/src/utils/HashNavigation.js +250 -0
  55. package/src/utils/appVersion.js +27 -0
  56. package/src/utils/cssUtils.js +99 -0
  57. package/src/utils/filterEnabledItems.js +21 -0
  58. package/src/utils/generateFavicon.js +256 -0
  59. package/src/utils/generateRobotsTxt.js +97 -0
  60. package/src/utils/iconExtractor.js +159 -0
  61. package/src/utils/imageDownloader.js +88 -0
  62. package/src/utils/imageProcessor.js +134 -0
  63. package/src/utils/linkShortner.js +0 -0
  64. package/src/utils/updateTitle.js +107 -0
@@ -0,0 +1,868 @@
1
+ /*
2
+ __ ___ _ ____ _
3
+ \ \ / (_) |__ ___ / ___|___ __| | ___
4
+ \ \ / /| | '_ \ / _ \ | | / _ \ / _` |/ _ \
5
+ \ V / | | |_) | __/ | |__| (_) | (_| | __/
6
+ \_/ |_|_.__/ \___| \____\___/ \__,_|\___|
7
+
8
+ This Page is completely Vibe coded. No code except small tweaks is written by me.
9
+ */
10
+
11
+
12
+ /* Tasks page container */
13
+ .tasks-container {
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: center;
17
+ padding: 0 1rem;
18
+ margin-bottom: 2rem;
19
+ min-height: calc(100vh - 60px);
20
+ justify-content: center;
21
+ }
22
+
23
+ .tasks-content {
24
+ width: 100%;
25
+ max-width: 1000px;
26
+ display: flex;
27
+ flex-direction: column;
28
+ justify-content: center;
29
+ }
30
+
31
+ /* Header section with title and description */
32
+ .tasks-header {
33
+ text-align: center;
34
+ margin-top: 1.5rem;
35
+ }
36
+
37
+ .tasks-heading {
38
+ margin-bottom: 0.1rem;
39
+ color: var(--ifm-color-primary);
40
+ }
41
+
42
+ /* Tasks disabled notice */
43
+ .tasks-disabled-notice {
44
+ display: flex;
45
+ flex-direction: column;
46
+ align-items: center;
47
+ justify-content: center;
48
+ background-color: var(--ifm-background-surface-color);
49
+ border-radius: var(--ifm-card-border-radius);
50
+ padding: 3rem 2rem;
51
+ box-shadow: var(--ifm-global-shadow-lw);
52
+ margin: 0 auto;
53
+ text-align: center;
54
+ max-width: 600px;
55
+ animation: fadeIn 0.5s ease;
56
+ }
57
+
58
+ .disabled-icon {
59
+ font-size: 3.5rem;
60
+ margin-bottom: 1rem;
61
+ color: var(--ifm-color-warning);
62
+ }
63
+
64
+ .disabled-title {
65
+ font-size: 1.8rem;
66
+ margin-bottom: 1rem;
67
+ color: var(--ifm-heading-color);
68
+ }
69
+
70
+ .disabled-message {
71
+ font-size: 1.1rem;
72
+ margin-bottom: 1.5rem;
73
+ color: var(--ifm-font-color-base);
74
+ }
75
+
76
+ .disabled-help {
77
+ font-size: 0.9rem;
78
+ color: var(--ifm-font-color-pri);
79
+ padding: 0.5rem 1rem;
80
+ border-radius: 4px;
81
+ border: 1px solid var(--ifm-color-emphasis-300);
82
+ }
83
+
84
+ .disabled-help code {
85
+ background-color: var(--ifm-color-emphasis-500);
86
+ padding: 2px 4px;
87
+ border-radius: 3px;
88
+ color: var(--ifm-color-primary)
89
+ }
90
+
91
+ /* Tasks intro and footer sections */
92
+ .tasks-intro, .tasks-footer {
93
+ padding: 1rem;
94
+ margin: 1.5rem 0;
95
+ border-radius: var(--ifm-card-border-radius);
96
+ background-color: var(--ifm-background-surface-color);
97
+ box-shadow: var(--ifm-global-shadow-lw);
98
+ }
99
+
100
+ .tasks-intro {
101
+ border-left: 4px solid var(--ifm-color-info);
102
+ }
103
+
104
+ .tasks-footer {
105
+ border-left: 4px solid var(--ifm-color-warning);
106
+ }
107
+
108
+ .tasks-icon {
109
+ margin-right: 0.75rem;
110
+ font-size: 1.25rem;
111
+ }
112
+
113
+ /* Tasks text elements */
114
+ .tasks-description {
115
+ color: var(--ifm-color-primary);
116
+ margin: 0.25rem 0 1.5rem;
117
+ font-size: 1.1rem;
118
+ }
119
+
120
+ .tasks-note {
121
+ font-style: italic;
122
+ color: var(--ifm-color-warning-darkest);
123
+ margin: 1.5rem 0;
124
+ padding: 0.5rem 0;
125
+ font-size: 1rem;
126
+ line-height: 1.5;
127
+ }
128
+
129
+ /* Add centered text class */
130
+ .centered-text {
131
+ text-align: center;
132
+ }
133
+
134
+ /* Tab System - Improved Styling */
135
+ .task-tabs-container {
136
+ margin-bottom: 2.5rem;
137
+ border-radius: var(--ifm-card-border-radius);
138
+ box-shadow: var(--ifm-global-shadow-lw);
139
+ overflow: hidden;
140
+ }
141
+
142
+ .task-tabs {
143
+ display: grid;
144
+ grid-template-columns: repeat(4, 1fr);
145
+ background-color: var(--ifm-background-surface-color);
146
+ border-bottom: 1px solid var(--ifm-color-emphasis-300);
147
+ }
148
+
149
+ .task-tab {
150
+ padding: 1rem;
151
+ cursor: pointer;
152
+ background: transparent;
153
+ border: none;
154
+ color: var(--ifm-font-color-base);
155
+ border-bottom: 3px solid transparent;
156
+ margin: 0;
157
+ transition: all 0.2s ease;
158
+ display: flex;
159
+ align-items: center;
160
+ justify-content: center;
161
+ font-family: var(--ifm-font-family-base);
162
+ font-size: 1rem;
163
+ position: relative;
164
+ height: 100%;
165
+ }
166
+
167
+ .task-tab:focus {
168
+ outline: none;
169
+ }
170
+
171
+ .task-tab:hover {
172
+ background-color: var(--ifm-hover-overlay);
173
+ color: var(--ifm-color-primary);
174
+ }
175
+
176
+ .task-tab-active {
177
+ border-bottom: 3px solid var(--ifm-color-primary);
178
+ font-weight: 600;
179
+ color: var(--ifm-color-primary);
180
+ background-color: var(--ifm-color-gray-600);
181
+ }
182
+
183
+ .task-tab-icon {
184
+ font-size: 1.25rem;
185
+ margin-right: 0.5rem;
186
+ display: flex;
187
+ align-items: center;
188
+ justify-content: center;
189
+ }
190
+
191
+ .task-tab-label {
192
+ margin-right: 0.5rem;
193
+ white-space: nowrap;
194
+ }
195
+
196
+ /* Update task count badges to be smaller */
197
+ .task-tab-count {
198
+ background-color: var(--ifm-color-emphasis-200);
199
+ color: var(--ifm-color-emphasis-700);
200
+ border-radius: 50%;
201
+ padding: 0;
202
+ font-size: 0.65rem;
203
+ min-width: 1.1rem;
204
+ min-height: 1.1rem;
205
+ width: 1.1rem;
206
+ height: 1.1rem;
207
+ display: inline-flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ text-align: center;
211
+ font-weight: 600;
212
+ line-height: 1;
213
+ margin-left: 0.2rem;
214
+ }
215
+
216
+ .task-tab-active .task-tab-count {
217
+ background-color: var(--ifm-color-primary);
218
+ color: var(--ifm-background-color);
219
+ }
220
+
221
+ .task-tab-content {
222
+ padding: 0;
223
+ background-color: transparent;
224
+ animation: fadeIn 0.3s ease;
225
+ min-height: 300px;
226
+ }
227
+
228
+ @keyframes fadeIn {
229
+ from { opacity: 0.7; transform: translateY(5px); }
230
+ to { opacity: 1; transform: translateY(0); }
231
+ }
232
+
233
+ /* Media queries for responsive tabs */
234
+ @media (max-width: 768px) {
235
+ .task-tabs {
236
+ grid-template-columns: repeat(2, 1fr);
237
+ }
238
+
239
+ .task-tab {
240
+ padding: 0.75rem 0.5rem;
241
+ font-size: 0.9rem;
242
+ }
243
+
244
+ .task-tab-icon {
245
+ font-size: 1rem;
246
+ margin-right: 0.3rem;
247
+ }
248
+
249
+ .task-tab-count {
250
+ min-width: 1rem;
251
+ min-height: 1rem;
252
+ width: 1rem;
253
+ height: 1rem;
254
+ font-size: 0.6rem;
255
+ }
256
+
257
+ .task-tab-content {
258
+ padding: 1rem;
259
+ }
260
+
261
+ .tasks-disabled-notice {
262
+ padding: 2rem 1rem;
263
+ }
264
+
265
+ .disabled-icon {
266
+ font-size: 2.8rem;
267
+ }
268
+
269
+ .disabled-title {
270
+ font-size: 1.6rem;
271
+ }
272
+
273
+ .disabled-message {
274
+ font-size: 1rem;
275
+ margin-bottom: 1.2rem;
276
+ }
277
+ }
278
+
279
+ @media (max-width: 480px) {
280
+ .task-tabs {
281
+ grid-template-columns: repeat(1, 1fr);
282
+ }
283
+
284
+ .task-tab {
285
+ flex-direction: row;
286
+ justify-content: flex-start;
287
+ text-align: left;
288
+ padding: 0.75rem 1rem;
289
+ }
290
+
291
+ .task-tab-icon {
292
+ margin-right: 0.5rem;
293
+ margin-bottom: 0;
294
+ }
295
+
296
+ .task-tab-label {
297
+ margin-right: 0.5rem;
298
+ margin-bottom: 0;
299
+ flex: 1;
300
+ }
301
+
302
+ .tasks-disabled-notice {
303
+ padding: 1.5rem 1rem;
304
+ margin: 1rem auto;
305
+ }
306
+
307
+ .disabled-icon {
308
+ font-size: 2.5rem;
309
+ margin-bottom: 0.75rem;
310
+ }
311
+
312
+ .disabled-title {
313
+ font-size: 1.4rem;
314
+ margin-bottom: 0.75rem;
315
+ }
316
+
317
+ .disabled-message {
318
+ font-size: 0.95rem;
319
+ margin-bottom: 1rem;
320
+ }
321
+
322
+ .disabled-help {
323
+ font-size: 0.8rem;
324
+ padding: 0.4rem 0.8rem;
325
+ }
326
+ }
327
+
328
+ /* Stats section */
329
+ .stats-container {
330
+ display: grid;
331
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
332
+ gap: 1rem;
333
+ margin-bottom: 2rem;
334
+ }
335
+
336
+ .stat-box {
337
+ background-color: var(--ifm-background-surface-color);
338
+ border-radius: var(--ifm-card-border-radius);
339
+ padding: 1.25rem 1rem;
340
+ box-shadow: var(--ifm-global-shadow-lw);
341
+ text-align: center;
342
+ transition: transform 0.2s ease;
343
+ }
344
+
345
+ .stat-box:hover {
346
+ transform: translateY(-2px);
347
+ }
348
+
349
+ .stat-label {
350
+ font-size: 0.875rem;
351
+ color: var(--ifm-color-primary);
352
+ font-weight: 600;
353
+ margin-bottom: 0.75rem;
354
+ text-transform: uppercase;
355
+ letter-spacing: 0.5px;
356
+ }
357
+
358
+ .stat-value {
359
+ font-size: 2.25rem;
360
+ font-weight: bold;
361
+ color: var(--ifm-font-color-base);
362
+ line-height: 1;
363
+ display: flex;
364
+ flex-direction: column;
365
+ align-items: center;
366
+ }
367
+
368
+ .stat-value-completed {
369
+ color: var(--ifm-color-success);
370
+ }
371
+
372
+ .stat-value-active {
373
+ color: var(--ifm-color-primary);
374
+ }
375
+
376
+ .stat-value-pending {
377
+ color: var(--ifm-color-warning);
378
+ }
379
+
380
+ .progress-bar-container {
381
+ width: 100%;
382
+ background-color: var(--ifm-color-emphasis-200);
383
+ border-radius: 0.25rem;
384
+ height: 0.5rem;
385
+ margin-top: 0.5rem;
386
+ }
387
+
388
+ .progress-bar {
389
+ height: 100%;
390
+ border-radius: 0.25rem;
391
+ background-color: var(--ifm-color-primary);
392
+ }
393
+
394
+ /* Task tables */
395
+ .task-section {
396
+ margin-bottom: 2rem;
397
+ }
398
+
399
+ .task-table-container {
400
+ overflow-x: auto;
401
+ margin-bottom: 1rem;
402
+ }
403
+
404
+ .task-table-container table {
405
+ width: 100%;
406
+ border-collapse: collapse;
407
+ }
408
+
409
+ .task-table-container th {
410
+ text-align: left;
411
+ padding: 0.75rem;
412
+ border-bottom: 2px solid var(--ifm-color-emphasis-300);
413
+ white-space: nowrap;
414
+ }
415
+
416
+ .task-table-container td {
417
+ padding: 0.75rem;
418
+ border-bottom: 1px solid var(--ifm-color-emphasis-200);
419
+ }
420
+
421
+ .task-table-container tr:last-child td {
422
+ border-bottom: none;
423
+ }
424
+
425
+ .task-table-container tr:nth-child(even) {
426
+ background-color: var(--ifm-color-emphasis-100);
427
+ }
428
+
429
+
430
+ /* Responsive table adjustments */
431
+ @media (max-width: 768px) {
432
+
433
+ .task-table-container th,
434
+ .task-table-container td {
435
+ padding: 0.5rem;
436
+ }
437
+
438
+ .task-table-container table {
439
+ font-size: 0.9rem;
440
+ }
441
+ }
442
+
443
+ /* Task tables */
444
+ .task-completed {
445
+ text-decoration: line-through;
446
+ opacity: 0.7;
447
+ }
448
+
449
+ .task-description {
450
+ font-size: 0.8rem;
451
+ opacity: 0.8;
452
+ }
453
+
454
+ /* Badges */
455
+ .badge {
456
+ display: inline-flex;
457
+ align-items: center;
458
+ padding: 0.35rem 0.8rem;
459
+ font-size: 0.8rem;
460
+ font-weight: 600;
461
+ border-radius: 1rem;
462
+ text-transform: capitalize;
463
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
464
+ line-height: 1.2;
465
+ white-space: nowrap;
466
+ letter-spacing: 0.02em;
467
+ }
468
+
469
+ .badge-status-completed {
470
+ background-color: var(--ifm-color-success);
471
+ color: var(--ifm-color-emphasis-700);
472
+ }
473
+
474
+ .badge-status-active {
475
+ background-color: var(--ifm-color-primary-darker);
476
+ color: var(--ifm-color-emphasis-700);
477
+ }
478
+
479
+ .badge-status-pending {
480
+ background-color: var(--ifm-color-emphasis-200);
481
+ color: #fff;
482
+ }
483
+
484
+ /* Priority badges - improved contrast */
485
+ .badge-priority-high {
486
+ background-color: var(--ifm-color-danger);
487
+ color: #fff;
488
+ }
489
+
490
+ .badge-priority-medium {
491
+ background-color: var(--ifm-color-danger-darker);
492
+ color: var(--ifm-background-color);
493
+ font-weight: 700;
494
+ }
495
+
496
+ .badge-priority-low {
497
+ background-color: var(--ifm-color-success-darker);
498
+ color:var(--ifm-color-emphasis-700) ;
499
+ }
500
+
501
+ /* Icon styling */
502
+ .badge-icon {
503
+ margin-right: 0.4rem;
504
+ font-size: 0.85rem;
505
+ vertical-align: -0.125em;
506
+ }
507
+
508
+ .spin {
509
+ animation: spin 2s linear infinite;
510
+ }
511
+
512
+ @keyframes spin {
513
+ from {
514
+ transform: rotate(0deg);
515
+ }
516
+ to {
517
+ transform: rotate(360deg);
518
+ }
519
+ }
520
+
521
+ /* Task List Cards */
522
+ .task-list {
523
+ display: grid;
524
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
525
+ gap: 1rem;
526
+ }
527
+
528
+ .task-card {
529
+ background-color: var(--ifm-card-background-color);
530
+ border-radius: var(--ifm-card-border-radius);
531
+ box-shadow: var(--ifm-global-shadow-lw);
532
+ overflow: hidden;
533
+ transition: all 0.2s ease;
534
+ border-left: 4px solid var(--ifm-color-primary);
535
+ }
536
+
537
+ .task-card:hover {
538
+ transform: translateY(-2px);
539
+ box-shadow: var(--ifm-global-shadow-md);
540
+ }
541
+
542
+ .task-card-completed {
543
+ opacity: 0.8;
544
+ border-left-color: var(--ifm-color-success);
545
+ }
546
+
547
+ .task-card-header {
548
+ display: flex;
549
+ justify-content: space-between;
550
+ padding: 0.75rem 1rem;
551
+ background-color: var(--ifm-background-surface-color);
552
+ border-bottom: 1px solid var(--ifm-color-emphasis-200);
553
+ }
554
+
555
+ .task-card-content {
556
+ padding: 1rem;
557
+ }
558
+
559
+ .task-card-title {
560
+ font-size: 1rem;
561
+ margin: 0 0 0.5rem 0;
562
+ color: var(--ifm-font-color-base);
563
+ }
564
+
565
+ .task-card-completed .task-card-title {
566
+ text-decoration: line-through;
567
+ }
568
+
569
+ .task-card-description {
570
+ font-size: 0.875rem;
571
+ margin: 0;
572
+ color: var(--ifm-color-emphasis-700);
573
+ }
574
+
575
+ .task-card-completed .task-card-description {
576
+ opacity: 0.7;
577
+ }
578
+
579
+ .task-empty-state {
580
+ display: flex;
581
+ flex-direction: column;
582
+ align-items: center;
583
+ justify-content: center;
584
+ padding: 3rem 1rem;
585
+ text-align: center;
586
+ color: var(--ifm-font-color-base);
587
+ }
588
+
589
+ .task-empty-icon {
590
+ font-size: 3rem;
591
+ margin-bottom: 1rem;
592
+ opacity: 0.3;
593
+ }
594
+
595
+ /* Make badges more compact for the header */
596
+ .task-card-header .badge {
597
+ padding: 0.15rem 0.5rem;
598
+ font-size: 0.7rem;
599
+ }
600
+
601
+ /* Responsive adjustments */
602
+ @media (max-width: 768px) {
603
+ .task-list {
604
+ grid-template-columns: 1fr;
605
+ }
606
+ }
607
+
608
+ /* Task List - Table Style with unified appearance */
609
+ .task-list-table {
610
+ background-color: var(--ifm-background-surface-color);
611
+ border-radius: var(--ifm-card-border-radius);
612
+ box-shadow: var(--ifm-global-shadow-lw);
613
+ overflow: hidden;
614
+ width: 100%;
615
+ margin-top: -1px;
616
+ border-top-left-radius: 0;
617
+ border-top-right-radius: 0;
618
+ }
619
+
620
+ /* Redesigned task list header - matching width with rows, darker background */
621
+ .task-list-header {
622
+ display: grid;
623
+ grid-template-columns: 120px 1fr 120px;
624
+ background-color: var(--ifm-color-gray-600);
625
+ border-bottom: 2px solid var(--ifm-color-primary);
626
+ font-weight: 700;
627
+ color: var(--ifm-color-primary);
628
+ font-size: 0.9rem;
629
+ text-transform: uppercase;
630
+ letter-spacing: 0.5px;
631
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
632
+ position: relative;
633
+ z-index: 1;
634
+ }
635
+
636
+ /* More consistent header cells */
637
+ .task-list-header .task-cell {
638
+ padding: 0.75rem 0.5rem;
639
+ align-items: center;
640
+ justify-content: center;
641
+ text-align: center;
642
+ }
643
+
644
+ .task-list-header .task-cell-status {
645
+ color: var(--ifm-color-primary);
646
+ border-right: 1px solid var(--ifm-color-emphasis-200);
647
+ }
648
+
649
+ .task-list-header .task-cell-title {
650
+ text-align: left;
651
+ justify-content: flex-start;
652
+ padding-left: 1rem;
653
+ }
654
+
655
+ .task-list-header .task-cell-priority {
656
+ color: var(--ifm-color-primary);
657
+ border-left: 1px solid var(--ifm-color-emphasis-200);
658
+ }
659
+
660
+ /* More consistent header cells */
661
+ .task-list-header .task-cell {
662
+ padding: 0.75rem 0.5rem;
663
+ align-items: center;
664
+ justify-content: center;
665
+ text-align: center;
666
+ }
667
+
668
+ .task-list-header .task-cell-status {
669
+ color: var(--ifm-color-primary);
670
+ border-right: 1px solid var(--ifm-color-emphasis-200);
671
+ }
672
+
673
+ .task-list-header .task-cell-title {
674
+ text-align: left;
675
+ justify-content: flex-start;
676
+ padding-left: 1rem;
677
+ }
678
+
679
+ .task-list-header .task-cell-priority {
680
+ color: var(--ifm-color-primary);
681
+ border-left: 1px solid var(--ifm-color-emphasis-200);
682
+ }
683
+
684
+ /* Consistent row styling */
685
+ .task-row {
686
+ display: grid;
687
+ grid-template-columns: 120px 1fr 120px;
688
+ border-bottom: 1px solid var(--ifm-color-emphasis-200);
689
+ transition: all 0.15s ease;
690
+ background-color: var(--ifm-background-surface-color);
691
+ }
692
+
693
+ .task-row-striped {
694
+ background-color: var(--ifm-color-emphasis-50);
695
+ }
696
+
697
+ .task-row:last-child {
698
+ border-bottom: none;
699
+ }
700
+
701
+ .task-row:hover {
702
+ background-color: var(--ifm-hover-overlay);
703
+ }
704
+
705
+ /* Title styling based on task status */
706
+ .task-row .task-title {
707
+ font-weight: 600;
708
+ margin-bottom: 0.25rem;
709
+ color: var(--ifm-color-emphasis-900);
710
+ font-size: 1.1rem;
711
+ }
712
+
713
+ .task-row:has(.badge-status-active) .task-title {
714
+ color: var(--ifm-color-primary);
715
+ }
716
+
717
+ .task-row-completed .task-title {
718
+ text-decoration: line-through;
719
+ color: var(--ifm-color-success);
720
+ opacity: 0.8;
721
+ }
722
+
723
+ .task-row:has(.badge-status-pending) .task-title {
724
+ color: var(--ifm-font-color-base);
725
+ }
726
+
727
+ /* Description styling with improved visibility */
728
+ .task-description {
729
+ font-size: 0.8rem;
730
+ color: var(--ifm-font-color-base);
731
+ margin-top: 0.35rem;
732
+ line-height: 1.4;
733
+ opacity: 0.85;
734
+ }
735
+
736
+ .task-row-completed .task-description {
737
+ text-decoration: line-through;
738
+ opacity: 0.7;
739
+ }
740
+
741
+ /* Consistent cell styling */
742
+ .task-cell {
743
+ padding: 0.75rem 0.5rem;
744
+ display: flex;
745
+ align-items: center;
746
+ }
747
+
748
+ .task-cell-title {
749
+ flex-direction: column;
750
+ align-items: flex-start;
751
+ justify-content: center;
752
+ padding-left: 1rem;
753
+ padding-right: 0.5rem;
754
+ border-left: 1px solid var(--ifm-color-emphasis-200);
755
+ border-right: 1px solid var(--ifm-color-emphasis-200);
756
+ }
757
+
758
+ .task-cell-status, .task-cell-priority {
759
+ display: flex;
760
+ align-items: center;
761
+ justify-content: center;
762
+ }
763
+
764
+ /* Media queries for responsive layout */
765
+ @media (max-width: 768px) {
766
+ .task-tabs {
767
+ grid-template-columns: repeat(2, 1fr);
768
+ }
769
+
770
+ .task-tab {
771
+ padding: 0.75rem 0.5rem;
772
+ font-size: 0.9rem;
773
+ }
774
+
775
+ .task-tab-icon {
776
+ font-size: 1rem;
777
+ margin-right: 0.3rem;
778
+ }
779
+
780
+ .task-tab-count {
781
+ min-width: 1rem;
782
+ min-height: 1rem;
783
+ width: 1rem;
784
+ height: 1rem;
785
+ font-size: 0.6rem;
786
+ }
787
+
788
+ .task-tab-content {
789
+ padding: 1rem;
790
+ }
791
+
792
+ .task-list-header {
793
+ grid-template-columns: 100px 1fr 100px;
794
+ }
795
+
796
+ .task-row {
797
+ grid-template-columns: 100px 1fr 100px;
798
+ }
799
+
800
+ .task-empty-state {
801
+ padding: 2rem 1rem;
802
+ }
803
+
804
+ .tasks-container {
805
+ padding: 0 0.5rem;
806
+ }
807
+ }
808
+
809
+ @media (max-width: 576px) {
810
+ .task-list-header {
811
+ grid-template-columns: 80px 1fr 80px;
812
+ font-size: 0.7rem;
813
+ }
814
+
815
+ .task-row {
816
+ grid-template-columns: 80px 1fr 80px;
817
+ }
818
+
819
+ .task-cell-status, .task-cell-priority {
820
+ padding: 0.5rem 0.25rem;
821
+ }
822
+
823
+ .badge {
824
+ padding: 0.25rem 0.5rem;
825
+ font-size: 0.7rem;
826
+ }
827
+
828
+ .badge-icon {
829
+ margin-right: 0.2rem;
830
+ font-size: 0.7rem;
831
+ }
832
+
833
+ .task-title {
834
+ font-size: 1rem;
835
+ }
836
+
837
+ .task-description {
838
+ font-size: 0.75rem;
839
+ }
840
+ }
841
+
842
+ @media (max-width: 480px) {
843
+ .task-tabs {
844
+ grid-template-columns: repeat(2, 1fr);
845
+ }
846
+
847
+ .task-tab {
848
+ padding: 0.5rem;
849
+ font-size: 0.8rem;
850
+ }
851
+
852
+ .task-tab-icon {
853
+ margin-right: 0.3rem;
854
+ }
855
+
856
+ .task-tab-label {
857
+ margin-right: 0.3rem;
858
+ }
859
+
860
+ .task-tab-count {
861
+ font-size: 0.55rem;
862
+ }
863
+
864
+ .stats-container {
865
+ grid-template-columns: 1fr 1fr;
866
+ gap: 0.75rem;
867
+ }
868
+ }