claude-code-kanban 4.8.0 → 4.10.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.
package/public/style.css CHANGED
@@ -472,6 +472,8 @@ body::before {
472
472
  white-space: nowrap;
473
473
  overflow: hidden;
474
474
  text-overflow: ellipsis;
475
+ /* reserve room for the absolutely-positioned pin button at top-right */
476
+ padding-right: 22px;
475
477
  }
476
478
 
477
479
  .session-indicators .pulse {
@@ -891,13 +893,84 @@ body::before {
891
893
  }
892
894
 
893
895
  .icon-btn-danger {
894
- color: #ef4444;
896
+ color: var(--danger);
897
+ border-color: var(--danger);
895
898
  }
896
899
 
897
900
  .icon-btn-danger:hover {
898
- background: rgba(239, 68, 68, 0.1);
899
- color: #dc2626;
900
- border-color: #ef4444;
901
+ background: color-mix(in srgb, var(--danger) 12%, transparent);
902
+ color: color-mix(in srgb, var(--danger) 80%, black);
903
+ border-color: var(--danger);
904
+ }
905
+
906
+ /* theme picker: palette icon button + custom popover with per-theme swatches
907
+ (swatch colors are generated into themes.css) */
908
+ .theme-picker {
909
+ position: relative;
910
+ }
911
+ .theme-menu {
912
+ display: none;
913
+ position: absolute;
914
+ top: calc(100% + 6px);
915
+ right: 0;
916
+ z-index: 100;
917
+ min-width: 170px;
918
+ max-height: 70vh;
919
+ overflow-y: auto;
920
+ padding: 4px;
921
+ background: var(--bg-elevated);
922
+ border: 1px solid var(--border);
923
+ border-radius: 8px;
924
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
925
+ }
926
+ .theme-menu.open {
927
+ display: block;
928
+ }
929
+ .theme-menu-item {
930
+ display: flex;
931
+ align-items: center;
932
+ gap: 8px;
933
+ width: 100%;
934
+ padding: 6px 8px;
935
+ border: 0;
936
+ border-radius: 6px;
937
+ background: none;
938
+ color: var(--text-secondary);
939
+ font-family: var(--font-mono);
940
+ font-size: 11px;
941
+ text-transform: uppercase;
942
+ letter-spacing: 0.03em;
943
+ text-align: left;
944
+ cursor: pointer;
945
+ }
946
+ .theme-menu-item:hover {
947
+ background: var(--bg-hover);
948
+ color: var(--text-primary);
949
+ }
950
+ .theme-menu-item.on {
951
+ color: var(--accent-text);
952
+ }
953
+ /* 3-dot palette preview: surface, accent, ink (colors from themes.css vars) */
954
+ .theme-swatch {
955
+ display: inline-flex;
956
+ align-items: center;
957
+ gap: 3px;
958
+ flex: 0 0 auto;
959
+ }
960
+ .theme-swatch i {
961
+ width: 9px;
962
+ height: 9px;
963
+ border-radius: 50%;
964
+ border: 1px solid var(--sw-border);
965
+ }
966
+ .theme-swatch .sw-bg {
967
+ background: var(--sw-bg);
968
+ }
969
+ .theme-swatch .sw-accent {
970
+ background: var(--sw-accent);
971
+ }
972
+ .theme-swatch .sw-ink {
973
+ background: var(--sw-ink);
901
974
  }
902
975
 
903
976
  /* #endregion */
@@ -1095,8 +1168,8 @@ body::before {
1095
1168
  }
1096
1169
 
1097
1170
  .task-badge.blocked {
1098
- background: rgba(220, 80, 30, 0.15);
1099
- color: #dc4e1e;
1171
+ background: color-mix(in srgb, var(--accent) 15%, transparent);
1172
+ color: var(--accent);
1100
1173
  }
1101
1174
 
1102
1175
  .task-title {
@@ -1496,61 +1569,6 @@ body::before {
1496
1569
 
1497
1570
  /* #endregion */
1498
1571
 
1499
- /* #region NOTE_FORM */
1500
- .note-section {
1501
- margin-top: 8px;
1502
- }
1503
-
1504
- .note-form {
1505
- display: flex;
1506
- flex-direction: column;
1507
- gap: 10px;
1508
- }
1509
-
1510
- .note-input {
1511
- width: 100%;
1512
- padding: 10px 12px;
1513
- background: var(--bg-elevated);
1514
- border: 1px solid var(--border);
1515
- border-radius: 6px;
1516
- color: var(--text-primary);
1517
- font-family: var(--mono);
1518
- font-size: 12px;
1519
- line-height: 1.5;
1520
- resize: vertical;
1521
- min-height: 60px;
1522
- }
1523
-
1524
- .note-input:focus {
1525
- outline: none;
1526
- border-color: var(--accent);
1527
- box-shadow: 0 0 0 2px var(--accent-dim);
1528
- }
1529
-
1530
- .note-input::placeholder {
1531
- color: var(--text-muted);
1532
- }
1533
-
1534
- .note-submit {
1535
- align-self: flex-end;
1536
- padding: 8px 16px;
1537
- background: var(--accent);
1538
- border: none;
1539
- border-radius: 5px;
1540
- color: white;
1541
- font-family: var(--mono);
1542
- font-size: 11px;
1543
- font-weight: 500;
1544
- cursor: pointer;
1545
- transition: all 0.15s ease;
1546
- }
1547
-
1548
- .note-submit:hover {
1549
- filter: brightness(1.1);
1550
- }
1551
-
1552
- /* #endregion */
1553
-
1554
1572
  /* #region TEAM_BADGE */
1555
1573
  .session-indicators {
1556
1574
  display: flex;
@@ -2440,8 +2458,8 @@ body::before {
2440
2458
  color: var(--success);
2441
2459
  }
2442
2460
  .toast.toast-error {
2443
- border-color: #f85149;
2444
- color: #f85149;
2461
+ border-color: var(--danger);
2462
+ color: var(--danger);
2445
2463
  }
2446
2464
  .toast.toast-info {
2447
2465
  border-color: var(--accent);
@@ -2775,10 +2793,10 @@ body::before {
2775
2793
  font-weight: 600;
2776
2794
  }
2777
2795
  .protocol-bool-true {
2778
- color: #4caf50;
2796
+ color: var(--success);
2779
2797
  }
2780
2798
  .protocol-bool-false {
2781
- color: #ef5350;
2799
+ color: var(--danger);
2782
2800
  }
2783
2801
  .msg-jump-latest {
2784
2802
  position: absolute;
@@ -2882,9 +2900,7 @@ body::before {
2882
2900
  .agent-card.selected:hover {
2883
2901
  background: var(--bg-elevated);
2884
2902
  border-color: var(--accent);
2885
- box-shadow:
2886
- 0 0 0 1px var(--accent-dim),
2887
- 0 0 12px var(--accent-dim);
2903
+ box-shadow: 0 0 0 1px var(--accent-dim);
2888
2904
  }
2889
2905
  .agent-card.fading {
2890
2906
  opacity: 0.4;
@@ -2920,18 +2936,18 @@ body::before {
2920
2936
  gap: 5px;
2921
2937
  }
2922
2938
  .agent-dot {
2923
- width: 7px;
2924
- height: 7px;
2939
+ width: 5px;
2940
+ height: 5px;
2925
2941
  border-radius: 50%;
2926
2942
  flex-shrink: 0;
2927
2943
  }
2928
2944
  .agent-dot.active {
2929
2945
  background: var(--success);
2930
- box-shadow: 0 0 6px var(--success);
2946
+ box-shadow: 0 0 4px color-mix(in srgb, var(--success) 50%, transparent);
2931
2947
  }
2932
2948
  .agent-dot.idle {
2933
2949
  background: var(--warning);
2934
- box-shadow: 0 0 6px var(--warning);
2950
+ box-shadow: 0 0 4px color-mix(in srgb, var(--warning) 50%, transparent);
2935
2951
  }
2936
2952
  .agent-dot.stopped {
2937
2953
  background: var(--text-muted);
@@ -3113,8 +3129,8 @@ body.light .msg-assistant .msg-text {
3113
3129
 
3114
3130
  /* #region INTERACTIVE */
3115
3131
  .icon-btn.delete:hover {
3116
- background: rgba(239, 68, 68, 0.1);
3117
- border-color: #ef4444;
3132
+ background: color-mix(in srgb, var(--danger) 12%, transparent);
3133
+ border-color: var(--danger);
3118
3134
  }
3119
3135
 
3120
3136
  .column-header {
@@ -3490,11 +3506,23 @@ select.form-input option:checked {
3490
3506
  }
3491
3507
 
3492
3508
  .btn-primary:hover {
3493
- background: #d96329;
3509
+ background: color-mix(in srgb, var(--accent) 82%, black);
3494
3510
  transform: translateY(-1px);
3495
3511
  box-shadow: 0 4px 12px var(--accent-glow);
3496
3512
  }
3497
3513
 
3514
+ .btn-danger {
3515
+ background: var(--danger);
3516
+ border-color: var(--danger);
3517
+ color: white;
3518
+ }
3519
+
3520
+ .btn-danger:hover {
3521
+ background: color-mix(in srgb, var(--danger) 82%, black);
3522
+ transform: translateY(-1px);
3523
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--danger) 45%, transparent);
3524
+ }
3525
+
3498
3526
  .btn-secondary {
3499
3527
  background: transparent;
3500
3528
  color: var(--text-secondary);
@@ -3615,8 +3643,8 @@ select.form-input option:checked {
3615
3643
 
3616
3644
  .badge-success {
3617
3645
  display: inline-block;
3618
- background: rgba(34, 197, 94, 0.15);
3619
- color: #22c55e;
3646
+ background: color-mix(in srgb, var(--success) 15%, transparent);
3647
+ color: var(--success);
3620
3648
  border-radius: 4px;
3621
3649
  padding: 1px 6px;
3622
3650
  font-size: 12px;
@@ -3625,8 +3653,8 @@ select.form-input option:checked {
3625
3653
 
3626
3654
  .badge-failed {
3627
3655
  display: inline-block;
3628
- background: rgba(239, 68, 68, 0.15);
3629
- color: #ef4444;
3656
+ background: color-mix(in srgb, var(--danger) 15%, transparent);
3657
+ color: var(--danger);
3630
3658
  border-radius: 4px;
3631
3659
  padding: 1px 6px;
3632
3660
  font-size: 12px;
@@ -3635,8 +3663,8 @@ select.form-input option:checked {
3635
3663
 
3636
3664
  .badge-rejected {
3637
3665
  display: inline-block;
3638
- background: rgba(245, 158, 11, 0.15);
3639
- color: #f59e0b;
3666
+ background: color-mix(in srgb, var(--warning) 15%, transparent);
3667
+ color: var(--warning);
3640
3668
  border-radius: 4px;
3641
3669
  padding: 1px 6px;
3642
3670
  font-size: 12px;
@@ -3644,7 +3672,7 @@ select.form-input option:checked {
3644
3672
  }
3645
3673
 
3646
3674
  .tool-stats-chip-val.rejected {
3647
- color: #f59e0b;
3675
+ color: var(--warning);
3648
3676
  }
3649
3677
 
3650
3678
  .impact-bar-wrap {
@@ -3840,8 +3868,8 @@ select.form-input option:checked {
3840
3868
  }
3841
3869
 
3842
3870
  .storage-item-badge.orphan {
3843
- background: rgba(239, 68, 68, 0.15);
3844
- color: #ef4444;
3871
+ background: color-mix(in srgb, var(--danger) 15%, transparent);
3872
+ color: var(--danger);
3845
3873
  }
3846
3874
 
3847
3875
  .storage-item-badge.pinned {
@@ -3850,8 +3878,8 @@ select.form-input option:checked {
3850
3878
  }
3851
3879
 
3852
3880
  .storage-item-badge.sticky {
3853
- background: rgba(234, 179, 8, 0.15);
3854
- color: #eab308;
3881
+ background: color-mix(in srgb, var(--gold) 15%, transparent);
3882
+ color: var(--gold);
3855
3883
  }
3856
3884
 
3857
3885
  .storage-item-actions {
@@ -3878,8 +3906,8 @@ select.form-input option:checked {
3878
3906
  }
3879
3907
 
3880
3908
  .storage-item-actions button.danger:hover {
3881
- background: rgba(239, 68, 68, 0.15);
3882
- color: #ef4444;
3909
+ background: color-mix(in srgb, var(--danger) 15%, transparent);
3910
+ color: var(--danger);
3883
3911
  }
3884
3912
 
3885
3913
  .storage-group-header {