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