tech-debt-visualizer 0.2.15 → 0.2.16

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.
@@ -74,17 +74,10 @@ body.dashboard-page::before {
74
74
  radial-gradient(circle at 20% 30%, rgba(255, 107, 53, 0.08) 0%, transparent 40%),
75
75
  radial-gradient(circle at 80% 70%, rgba(77, 56, 235, 0.06) 0%, transparent 40%),
76
76
  radial-gradient(circle at 50% 50%, rgba(6, 255, 165, 0.04) 0%, transparent 50%);
77
- animation: bgFloat 20s ease-in-out infinite;
78
77
  z-index: 0;
79
78
  pointer-events: none;
80
79
  }
81
80
 
82
- @keyframes bgFloat {
83
- 0%, 100% { transform: translate(0, 0) rotate(0deg); }
84
- 33% { transform: translate(30px, -30px) rotate(5deg); }
85
- 66% { transform: translate(-20px, 20px) rotate(-5deg); }
86
- }
87
-
88
81
  body.dashboard-page {
89
82
  padding-bottom: 0;
90
83
  height: 100vh;
@@ -188,9 +181,9 @@ body.dashboard-page {
188
181
  .dashboard-main {
189
182
  flex: 1;
190
183
  min-height: 0;
191
- max-width: 1400px;
184
+ max-width: 100%;
192
185
  margin: 0 auto;
193
- padding: 1.5rem 2.5rem;
186
+ padding: 0.5rem 0.75rem;
194
187
  width: 100%;
195
188
  overflow: hidden;
196
189
  display: flex;
@@ -205,7 +198,7 @@ body.dashboard-page {
205
198
  display: grid;
206
199
  grid-template-columns: 1fr 1fr;
207
200
  grid-template-rows: auto 1fr;
208
- gap: 2rem;
201
+ gap: 0.5rem;
209
202
  align-items: stretch;
210
203
  }
211
204
 
@@ -237,24 +230,27 @@ body.dashboard-page {
237
230
  }
238
231
 
239
232
  @media (max-width: 900px) {
240
- body.dashboard-page { height: auto; overflow: auto; }
233
+ body.dashboard-page { height: auto; overflow: auto; min-height: 100vh; }
234
+ .dashboard-main { padding: 0.5rem 0.75rem; min-height: 0; }
241
235
  .dashboard-grid-2x2 {
242
236
  grid-template-columns: 1fr;
243
237
  grid-template-rows: auto auto auto auto;
244
238
  height: auto;
245
- gap: 1.25rem;
239
+ gap: 0.5rem;
246
240
  }
247
- .dashboard-cell-heatmap .panel-body-heatmap { min-height: 240px; }
248
- .dashboard-cell-list .panel-body { min-height: 240px; }
249
- .panel-score-pop .score-num { font-size: 3.5rem; }
250
- .panel-score-pop .score-of { font-size: 1.5rem; }
241
+ .dashboard-cell-heatmap .panel-body-heatmap { min-height: 160px; }
242
+ .dashboard-cell-list .panel-body { min-height: 160px; }
243
+ .panel-score-pop .score-num { font-size: 2rem; }
244
+ .panel-score-pop .score-of { font-size: 0.9rem; }
251
245
  }
252
246
 
253
247
  @media (max-width: 560px) {
254
248
  .dashboard-header { padding: 0.5rem 0.75rem; }
255
- .dashboard-main { padding: 0.75rem 1rem; }
256
- .dashboard-grid-2x2 { gap: 1rem; }
257
- #treemap { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); }
249
+ .dashboard-main { padding: 0.4rem 0.5rem; }
250
+ .dashboard-grid-2x2 { gap: 0.4rem; }
251
+ #treemap { grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 0.3rem; }
252
+ .treemap-cell { padding: 0.25rem; }
253
+ .treemap-cell-name { font-size: 0.55rem; }
258
254
  }
259
255
 
260
256
  /* ——— Footer (hidden when empty; button moved to header) ——— */
@@ -442,7 +438,7 @@ body.dashboard-page {
442
438
  display: block;
443
439
  }
444
440
 
445
- /* ——— Panels: card look with hover and top accent ——— */
441
+ /* ——— Panels: card look (no hover animation on main four) ——— */
446
442
  .panel {
447
443
  background: var(--bg-secondary);
448
444
  border: 1px solid var(--border-subtle);
@@ -450,35 +446,10 @@ body.dashboard-page {
450
446
  box-shadow: var(--shadow);
451
447
  overflow: hidden;
452
448
  position: relative;
453
- transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.4s ease, box-shadow 0.4s ease;
454
- }
455
-
456
- .panel::before {
457
- content: "";
458
- position: absolute;
459
- top: 0;
460
- left: 0;
461
- right: 0;
462
- height: 3px;
463
- background: linear-gradient(90deg, var(--accent-orange), var(--accent-yellow));
464
- transform: scaleX(0);
465
- transform-origin: left;
466
- transition: transform 0.6s ease;
467
- z-index: 1;
468
- }
469
-
470
- .panel:hover {
471
- transform: translateY(-5px);
472
- border-color: rgba(255, 107, 53, 0.25);
473
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 107, 53, 0.15);
474
- }
475
-
476
- .panel:hover::before {
477
- transform: scaleX(1);
478
449
  }
479
450
 
480
451
  .panel-header {
481
- padding: 1rem 1.25rem;
452
+ padding: 0.5rem 0.75rem;
482
453
  border-bottom: 1px solid var(--border-subtle);
483
454
  background: rgba(0, 0, 0, 0.08);
484
455
  flex-shrink: 0;
@@ -487,9 +458,9 @@ body.dashboard-page {
487
458
  .panel-title {
488
459
  color: var(--text-muted);
489
460
  font-family: "Syne", sans-serif;
490
- font-size: 0.95rem;
461
+ font-size: 0.8rem;
491
462
  font-weight: 700;
492
- letter-spacing: 3px;
463
+ letter-spacing: 2px;
493
464
  text-transform: uppercase;
494
465
  }
495
466
 
@@ -509,7 +480,7 @@ body.dashboard-page {
509
480
  }
510
481
 
511
482
  .panel-body {
512
- padding: 1.25rem 1.5rem;
483
+ padding: 0.65rem 0.85rem;
513
484
  }
514
485
 
515
486
  .panel-body-center {
@@ -528,14 +499,14 @@ body.dashboard-page {
528
499
 
529
500
  .panel-score .panel-body-score {
530
501
  text-align: center;
531
- padding: 1rem 0.85rem;
502
+ padding: 0.5rem 0.65rem;
532
503
  }
533
504
 
534
505
  .score-numeric {
535
506
  display: flex;
536
507
  align-items: baseline;
537
508
  justify-content: center;
538
- gap: 0.25rem;
509
+ gap: 0.4rem; /* space between number and "of 5" */
539
510
  margin-bottom: 0.5rem;
540
511
  }
541
512
 
@@ -596,35 +567,35 @@ body.dashboard-page {
596
567
  }
597
568
 
598
569
  .panel-score-pop .panel-body-score {
599
- padding: 2rem 1.5rem;
570
+ padding: 0.6rem 0.75rem;
600
571
  position: relative;
601
572
  }
602
573
 
603
574
  .panel-score-pop .panel-header .panel-title {
604
- font-size: 0.9rem;
605
- letter-spacing: 4px;
575
+ font-size: 0.7rem;
576
+ letter-spacing: 2px;
606
577
  color: var(--text-muted);
607
578
  margin-bottom: 0;
608
579
  }
609
580
 
610
581
  .panel-score-pop .score-numeric {
611
- margin-bottom: 0.75rem;
582
+ margin-bottom: 0.25rem;
612
583
  }
613
584
 
614
585
  .panel-score-pop .score-num {
615
586
  font-family: "Syne", sans-serif;
616
- font-size: 5rem;
587
+ font-size: 2.5rem;
617
588
  font-weight: 800;
618
589
  line-height: 1;
619
590
  background: linear-gradient(180deg, var(--accent-orange) 0%, var(--accent-red) 100%);
620
591
  -webkit-background-clip: text;
621
592
  -webkit-text-fill-color: transparent;
622
593
  background-clip: text;
623
- filter: drop-shadow(0 0 30px rgba(255, 107, 53, 0.4));
594
+ filter: drop-shadow(0 0 16px rgba(255, 107, 53, 0.3));
624
595
  }
625
596
 
626
597
  .panel-score-pop .score-of {
627
- font-size: 2rem;
598
+ font-size: 1rem;
628
599
  font-weight: 700;
629
600
  color: var(--text-muted);
630
601
  }
@@ -632,32 +603,32 @@ body.dashboard-page {
632
603
  .panel-score-pop .score-label {
633
604
  display: inline-block;
634
605
  background: linear-gradient(135deg, var(--accent-orange), var(--accent-red));
635
- padding: 0.5rem 1.25rem;
606
+ padding: 0.25rem 0.65rem;
636
607
  border-radius: 50px;
637
608
  font-family: "Syne", sans-serif;
638
- font-size: 1rem;
609
+ font-size: 0.7rem;
639
610
  font-weight: 700;
640
- letter-spacing: 1px;
611
+ letter-spacing: 0.5px;
641
612
  text-transform: uppercase;
642
- box-shadow: 0 8px 24px rgba(255, 107, 53, 0.35);
643
- margin-bottom: 0.5rem;
613
+ box-shadow: 0 4px 12px rgba(255, 107, 53, 0.3);
614
+ margin-bottom: 0.2rem;
644
615
  -webkit-text-fill-color: initial;
645
616
  color: #fff;
646
617
  }
647
618
 
648
619
  .panel-score-pop .score-desc {
649
- font-size: 1rem;
620
+ font-size: 0.75rem;
650
621
  color: var(--text-muted);
651
622
  font-style: italic;
652
- margin-bottom: 0.75rem;
623
+ margin-bottom: 0.25rem;
653
624
  }
654
625
 
655
626
  .panel-score-pop .score-stats {
656
627
  display: flex;
657
628
  justify-content: center;
658
- gap: 1.5rem;
629
+ gap: 0.5rem;
659
630
  flex-wrap: wrap;
660
- font-size: 0.85rem;
631
+ font-size: 0.65rem;
661
632
  color: var(--text-dim);
662
633
  }
663
634
 
@@ -705,26 +676,26 @@ body.dashboard-page {
705
676
  .priority-inline {
706
677
  display: grid;
707
678
  grid-template-columns: 1fr 1fr;
708
- gap: 1.5rem;
709
- margin-top: 1.25rem;
710
- padding-top: 1.25rem;
679
+ gap: 0.5rem;
680
+ margin-top: 0.5rem;
681
+ padding-top: 0.5rem;
711
682
  border-top: 1px solid var(--border-subtle);
712
683
  }
713
684
 
714
685
  .priority-inline-col {
715
686
  background: rgba(255, 255, 255, 0.02);
716
- border-radius: 16px;
717
- padding: 1.25rem;
687
+ border-radius: 10px;
688
+ padding: 0.5rem 0.65rem;
718
689
  border: 1px solid rgba(255, 255, 255, 0.05);
719
690
  }
720
691
 
721
692
  .priority-inline h4 {
722
- margin: 0 0 0.75rem;
693
+ margin: 0 0 0.25rem;
723
694
  font-family: "Syne", sans-serif;
724
- font-size: 0.85rem;
695
+ font-size: 0.65rem;
725
696
  font-weight: 700;
726
697
  text-transform: uppercase;
727
- letter-spacing: 2px;
698
+ letter-spacing: 1px;
728
699
  color: var(--accent-orange);
729
700
  }
730
701
 
@@ -735,11 +706,11 @@ body.dashboard-page {
735
706
  }
736
707
 
737
708
  .priority-inline .priority-list li {
738
- padding: 0.5rem 0;
739
- padding-left: 1.25rem;
709
+ padding: 0.2rem 0;
710
+ padding-left: 0.85rem;
740
711
  position: relative;
741
712
  color: var(--text-muted);
742
- font-size: 0.9rem;
713
+ font-size: 0.7rem;
743
714
  border-bottom: none;
744
715
  }
745
716
 
@@ -790,8 +761,8 @@ body.dashboard-page {
790
761
  }
791
762
 
792
763
  .panel-body-heatmap {
793
- padding: 1rem;
794
- padding-top: 0.5rem;
764
+ padding: 0.4rem 0.65rem;
765
+ padding-top: 0.25rem;
795
766
  }
796
767
 
797
768
  .panel-body-heatmap #treemap {
@@ -815,13 +786,13 @@ body.dashboard-page {
815
786
  margin: 0;
816
787
  }
817
788
 
818
- /* ——— Treemap: file-item style (reference) ——— */
789
+ /* ——— Treemap: file-item style (reference), keep hover animation ——— */
819
790
  #treemap {
820
791
  display: grid;
821
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
822
- gap: 0.75rem;
823
- min-height: 120px;
824
- padding: 0.25rem 0;
792
+ grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
793
+ gap: 0.4rem;
794
+ min-height: 80px;
795
+ padding: 0.15rem 0;
825
796
  }
826
797
 
827
798
  .treemap-cell {
@@ -833,9 +804,9 @@ body.dashboard-page {
833
804
  justify-content: center;
834
805
  gap: 0;
835
806
  cursor: pointer;
836
- padding: 0.75rem;
837
- border: 2px solid transparent;
838
- border-radius: 16px;
807
+ padding: 0.35rem;
808
+ border: 1px solid transparent;
809
+ border-radius: 10px;
839
810
  transition: transform 0.3s ease, border-color 0.3s ease;
840
811
  }
841
812
 
@@ -844,8 +815,8 @@ body.dashboard-page {
844
815
  }
845
816
 
846
817
  .treemap-cell-name {
847
- font-size: 0.75rem;
848
- line-height: 1.35;
818
+ font-size: 0.6rem;
819
+ line-height: 1.25;
849
820
  color: inherit;
850
821
  text-align: center;
851
822
  max-width: 100%;
@@ -911,38 +882,38 @@ body.dashboard-page {
911
882
  margin: 0;
912
883
  display: flex;
913
884
  flex-direction: column;
914
- gap: 1rem;
885
+ gap: 0.4rem;
915
886
  }
916
887
 
917
888
  .debt-list li {
918
889
  border-bottom: none;
919
- padding: 1.25rem;
890
+ padding: 0.5rem 0.65rem;
920
891
  cursor: pointer;
921
892
  transition: background 0.3s ease, border-left-width 0.3s ease;
922
893
  background: rgba(255, 255, 255, 0.02);
923
- border-radius: 16px;
924
- border-left: 4px solid var(--accent-orange);
894
+ border-radius: 10px;
895
+ border-left: 3px solid var(--accent-orange);
925
896
  }
926
897
 
927
898
  .debt-list li:last-child { border-bottom: none; }
928
899
  .debt-list li:hover {
929
900
  background: rgba(255, 255, 255, 0.04);
930
- border-left-width: 6px;
901
+ border-left-width: 4px;
931
902
  }
932
903
 
933
904
  .debt-list .title {
934
905
  font-family: "Syne", sans-serif;
935
- font-size: 1.05rem;
906
+ font-size: 0.8rem;
936
907
  font-weight: 700;
937
908
  color: var(--text);
938
- margin-bottom: 0.35rem;
909
+ margin-bottom: 0.15rem;
939
910
  }
940
- .debt-list .meta { font-size: 0.8rem; color: var(--text-dim); display: block; margin-top: 0.25rem; font-family: "Space Mono", ui-monospace, monospace; }
911
+ .debt-list .meta { font-size: 0.65rem; color: var(--text-dim); display: block; margin-top: 0.1rem; font-family: "Space Mono", ui-monospace, monospace; }
941
912
  .debt-list-explanation {
942
- font-size: 0.9rem;
913
+ font-size: 0.7rem;
943
914
  color: var(--text-muted);
944
- margin: 0.5rem 0 0;
945
- line-height: 1.7;
915
+ margin: 0.25rem 0 0;
916
+ line-height: 1.4;
946
917
  display: -webkit-box;
947
918
  -webkit-line-clamp: 2;
948
919
  line-clamp: 2;
@@ -1091,11 +1062,12 @@ body.dashboard-page {
1091
1062
 
1092
1063
  /* ——— LLM output / description ——— */
1093
1064
  .llm-output .llm-prose {
1094
- margin: 0 0 1rem;
1095
- line-height: 1.8;
1065
+ margin: 0 0 0.5rem;
1066
+ line-height: 1.5;
1096
1067
  white-space: pre-wrap;
1097
1068
  word-break: break-word;
1098
1069
  color: var(--text-muted);
1070
+ font-size: 0.8rem;
1099
1071
  }
1100
1072
 
1101
1073
  .llm-output .llm-prose:last-child { margin-bottom: 0; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tech-debt-visualizer",
3
- "version": "0.2.15",
3
+ "version": "0.2.16",
4
4
  "description": "Language-agnostic CLI that analyzes repos and generates interactive technical debt visualizations with AI-powered insights",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",