picocrank 1.25.1 → 1.25.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "picocrank",
3
- "version": "1.25.1",
3
+ "version": "1.25.2",
4
4
  "description": "A set of zero dependency Vue components built on the Femtocrank global CSS theme.",
5
5
  "main": "vite.config.js",
6
6
  "scripts": {
@@ -52,6 +52,9 @@ html[data-theme="dark"] {
52
52
  --table-sticky-uneditable-bg: var(--table-uneditable-bg);
53
53
 
54
54
  --progress-track-bg-color: var(--table-uneditable-bg);
55
+
56
+ --nav-grid-accent-fg: var(--link-color);
57
+ --nav-grid-accent-bg: var(--link-color);
55
58
  }
56
59
 
57
60
  html[data-theme="light"] {
@@ -7,6 +7,88 @@
7
7
  --tab-fg: var(--muted-text-color);
8
8
  --tab-active-fg: var(--link-color);
9
9
  --tab-focus-outline-color: var(--tab-active-fg);
10
+
11
+ /* Default light: bright bold blues for icons and active fill. */
12
+ --nav-grid-accent-fg: #007dff;
13
+ --nav-grid-accent-bg: #0066cc;
14
+ --nav-grid-active-fg: var(--button-on-accent-fg);
15
+ --nav-grid-muted-fg: var(--muted-text-color);
16
+ --nav-grid-border: var(--border-color);
17
+ --nav-grid-hover-bg: var(--hover-background-color);
18
+ --nav-grid-indicator-bg: var(--button-bad-bg);
19
+ --nav-grid-indicator-fg: var(--button-on-accent-fg);
20
+ --nav-grid-ring-bg: var(--surface-bg-color);
21
+ --nav-grid-disabled-fg: var(--disabled-text-color);
22
+ --nav-grid-shadow: var(--shadow-color);
23
+ --nav-grid-hover-shadow: color-mix(in srgb, var(--nav-grid-shadow) 50%, transparent);
24
+
25
+ --quick-search-dialog-bg: var(--standout-bg-color);
26
+ --quick-search-dialog-fg: var(--text-color);
27
+ --quick-search-backdrop: var(--backdrop-color);
28
+ --quick-search-input-bg: var(--input-bg-color);
29
+ --quick-search-input-fg: var(--input-fg-color);
30
+ --quick-search-border: var(--border-color);
31
+ --quick-search-muted-fg: var(--muted-text-color);
32
+ --quick-search-subtle-fg: var(--annotation-key-color);
33
+ --quick-search-focus-outline: var(--focus-outline-color);
34
+ --quick-search-highlight-bg: var(--karma-important);
35
+ --quick-search-hover-bg: var(--hover-background-color);
36
+ --quick-search-hover-fg: var(--hover-text-color);
37
+
38
+ --breadcrumbs-separator-fg: var(--muted-text-color);
39
+ --breadcrumbs-link-hover-bg: var(--hover-background-color);
40
+
41
+ --radio-group-focus-outline: var(--focus-outline-color);
42
+ --radio-group-checked-hover-bg: var(--control-checked-hover-bg);
43
+ --radio-group-checked-hover-fg: var(--control-checked-fg);
44
+
45
+ --login-input-focus-outline: var(--focus-outline-color);
46
+ --login-error-bg: var(--karma-bad);
47
+ --login-error-fg: var(--karma-bad-fg);
48
+ --login-muted-fg: var(--muted-text-color);
49
+
50
+ --table-muted-fg: var(--muted-text-color);
51
+
52
+ --table-popover-bg: var(--surface-bg-color);
53
+ --table-popover-border: var(--border-color);
54
+ --table-popover-shadow: 0 8px 24px color-mix(in srgb, var(--shadow-color) 60%, transparent);
55
+ --table-popover-muted-fg: var(--muted-text-color);
56
+ --table-popover-fg: var(--text-color);
57
+ --table-popover-item-bg: var(--standout-bg-color);
58
+ --table-popover-item-drag-border: var(--text-color);
59
+ --table-popover-divider: var(--border-color);
60
+ --table-popover-error-fg: var(--karma-bad-fg);
61
+ --table-popover-success-fg: var(--karma-good-fg);
62
+
63
+ --tab-border: var(--border-color);
64
+ --tab-hover-fg: var(--text-color);
65
+ --tab-hover-bg: var(--hover-background-color);
66
+
67
+ --calendar-chrome-bg: var(--standout-bg-color);
68
+ --calendar-surface-bg: var(--surface-bg-color);
69
+ --calendar-border: var(--border-color);
70
+ --calendar-error-fg: var(--karma-bad-fg);
71
+ --calendar-loading-overlay-bg: color-mix(in srgb, var(--calendar-surface-bg) 60%, transparent);
72
+ --calendar-day-fg: var(--text-color);
73
+ --calendar-muted-fg: var(--muted-text-color);
74
+ --calendar-accent-fg: var(--link-color);
75
+ --calendar-day-hover-bg: color-mix(in srgb, var(--link-color) 8%, var(--calendar-surface-bg));
76
+ --calendar-day-muted-bg: var(--standout-bg-color);
77
+ --calendar-day-muted-hover-bg: var(--table-uneditable-bg);
78
+ --calendar-today-bg: var(--karma-important);
79
+ --calendar-today-hover-bg: var(--karma-note);
80
+ --calendar-range-accent: var(--link-color);
81
+ --calendar-range-bg-strong: color-mix(in srgb, var(--link-color) 22%, transparent);
82
+ --calendar-range-bg: color-mix(in srgb, var(--link-color) 14%, transparent);
83
+ --calendar-range-bg-subtle: color-mix(in srgb, var(--link-color) 10%, transparent);
84
+ --calendar-event-bg: var(--karma-good);
85
+ --calendar-event-border: color-mix(in srgb, var(--karma-good-fg) 35%, var(--karma-good));
86
+ --calendar-event-hover-bg: color-mix(in srgb, var(--karma-good) 80%, var(--karma-good-fg));
87
+ --calendar-event-title-fg: var(--text-color);
88
+ --calendar-event-shadow: 0 1px 2px color-mix(in srgb, var(--shadow-color) 50%, transparent);
89
+ --calendar-event-hover-shadow: 0 2px 4px color-mix(in srgb, var(--shadow-color) 60%, transparent);
90
+ --calendar-more-bg: var(--standout-bg-color);
91
+ --calendar-event-custom-border-mix: var(--karma-on-bg-fg);
10
92
  }
11
93
 
12
94
  table thead th {
@@ -50,6 +50,8 @@ html[data-theme="dark"] {
50
50
  --muted-text-color: var(--ctp-subtext0);
51
51
  --annotation-key-color: var(--ctp-subtext0);
52
52
  --link-color: var(--ctp-blue);
53
+ --nav-grid-accent-fg: var(--link-color);
54
+ --nav-grid-accent-bg: var(--link-color);
53
55
  --border-color: var(--ctp-surface1);
54
56
 
55
57
  --hover-background-color: var(--ctp-surface0);
@@ -71,7 +73,7 @@ html[data-theme="dark"] {
71
73
  --input-bg-color: var(--ctp-surface0);
72
74
  --input-fg-color: var(--ctp-text);
73
75
  --control-option-bg-color: var(--ctp-surface0);
74
- --control-hover-bg-color: var(--ctp-surface0);
76
+ --control-hover-bg-color: var(--ctp-surface1);
75
77
  --menu-hover-bg-color: var(--ctp-surface0);
76
78
 
77
79
  --table-row-hover-bg: var(--ctp-surface0);
@@ -151,6 +153,8 @@ html[data-theme="light"] {
151
153
  --muted-text-color: var(--ctp-subtext0);
152
154
  --annotation-key-color: var(--ctp-subtext0);
153
155
  --link-color: var(--ctp-blue);
156
+ --nav-grid-accent-fg: var(--link-color);
157
+ --nav-grid-accent-bg: var(--link-color);
154
158
  --border-color: var(--ctp-surface1);
155
159
 
156
160
  --hover-background-color: var(--ctp-surface0);
@@ -172,7 +176,7 @@ html[data-theme="light"] {
172
176
  --input-bg-color: var(--ctp-surface0);
173
177
  --input-fg-color: var(--ctp-text);
174
178
  --control-option-bg-color: var(--ctp-surface0);
175
- --control-hover-bg-color: var(--ctp-surface0);
179
+ --control-hover-bg-color: var(--ctp-surface1);
176
180
  --menu-hover-bg-color: var(--ctp-surface0);
177
181
 
178
182
  --table-row-hover-bg: var(--ctp-surface0);
@@ -41,6 +41,8 @@ html[data-theme="dark"] {
41
41
  --muted-text-color: var(--dt-muted);
42
42
  --annotation-key-color: var(--dt-muted);
43
43
  --link-color: var(--dt-accent);
44
+ --nav-grid-accent-fg: var(--link-color);
45
+ --nav-grid-accent-bg: var(--link-color);
44
46
  --border-color: var(--dt-border);
45
47
 
46
48
  --hover-background-color: var(--dt-selection);
@@ -61,8 +63,8 @@ html[data-theme="dark"] {
61
63
 
62
64
  --input-bg-color: var(--dt-background);
63
65
  --input-fg-color: var(--dt-foreground);
64
- --control-option-bg-color: var(--dt-overlay);
65
- --control-hover-bg-color: var(--dt-selection);
66
+ --control-option-bg-color: var(--dt-background);
67
+ --control-hover-bg-color: var(--dt-overlay);
66
68
  --menu-hover-bg-color: var(--dt-selection);
67
69
 
68
70
  --table-row-hover-bg: var(--dt-selection);
@@ -133,6 +135,8 @@ html[data-theme="light"] {
133
135
  --muted-text-color: var(--dt-muted);
134
136
  --annotation-key-color: var(--dt-muted);
135
137
  --link-color: var(--dt-accent);
138
+ --nav-grid-accent-fg: var(--link-color);
139
+ --nav-grid-accent-bg: var(--link-color);
136
140
  --border-color: var(--dt-border);
137
141
 
138
142
  --hover-background-color: var(--dt-selection);
@@ -44,6 +44,8 @@ html[data-theme="dark"] {
44
44
  --muted-text-color: var(--gb-fg3);
45
45
  --annotation-key-color: var(--gb-fg3);
46
46
  --link-color: var(--gb-accent);
47
+ --nav-grid-accent-fg: var(--link-color);
48
+ --nav-grid-accent-bg: var(--link-color);
47
49
  --border-color: var(--gb-bg3);
48
50
 
49
51
  --hover-background-color: var(--gb-bg2);
@@ -65,7 +67,7 @@ html[data-theme="dark"] {
65
67
  --input-bg-color: var(--gb-bg0);
66
68
  --input-fg-color: var(--gb-fg0);
67
69
  --control-option-bg-color: var(--gb-bg2);
68
- --control-hover-bg-color: var(--gb-bg2);
70
+ --control-hover-bg-color: var(--gb-bg3);
69
71
  --menu-hover-bg-color: var(--gb-bg2);
70
72
 
71
73
  --table-row-hover-bg: var(--gb-bg2);
@@ -139,6 +141,8 @@ html[data-theme="light"] {
139
141
  --muted-text-color: var(--gb-fg3);
140
142
  --annotation-key-color: var(--gb-fg3);
141
143
  --link-color: var(--gb-accent);
144
+ --nav-grid-accent-fg: var(--link-color);
145
+ --nav-grid-accent-bg: var(--link-color);
142
146
  --border-color: var(--gb-bg3);
143
147
 
144
148
  --hover-background-color: var(--gb-bg2);
@@ -160,7 +164,7 @@ html[data-theme="light"] {
160
164
  --input-bg-color: var(--gb-bg0);
161
165
  --input-fg-color: var(--gb-fg0);
162
166
  --control-option-bg-color: var(--gb-bg2);
163
- --control-hover-bg-color: var(--gb-bg2);
167
+ --control-hover-bg-color: var(--gb-bg3);
164
168
  --menu-hover-bg-color: var(--gb-bg2);
165
169
 
166
170
  --table-row-hover-bg: var(--gb-bg2);
@@ -26,6 +26,8 @@ html {
26
26
  --text-color: var(--waffle-syrup);
27
27
  --muted-text-color: #a88860;
28
28
  --link-color: var(--waffle-accent);
29
+ --nav-grid-accent-fg: var(--link-color);
30
+ --nav-grid-accent-bg: var(--link-color);
29
31
  --border-color: #e0c896;
30
32
 
31
33
  --hover-background-color: #f0d9a8;
@@ -138,6 +140,8 @@ html[data-theme="dark"] {
138
140
  --text-color: var(--waffle-foreground);
139
141
  --muted-text-color: var(--waffle-foreground-muted);
140
142
  --link-color: var(--waffle-accent-dark);
143
+ --nav-grid-accent-fg: var(--link-color);
144
+ --nav-grid-accent-bg: var(--link-color);
141
145
  --border-color: #c9a66a;
142
146
  --standout-bg-color: var(--waffle-batter);
143
147
  --hover-background-color: #f0d9a8;
@@ -10,8 +10,8 @@
10
10
  </template>
11
11
 
12
12
  <style scoped>
13
- span {
14
- color: #bbb;
13
+ .separator {
14
+ color: var(--breadcrumbs-separator-fg);
15
15
  }
16
16
 
17
17
  a {
@@ -22,7 +22,7 @@ a {
22
22
 
23
23
  a:hover {
24
24
  text-decoration: underline;
25
- background-color: #000;
25
+ background-color: var(--breadcrumbs-link-hover-bg);
26
26
  }
27
27
 
28
28
  </style>
@@ -731,7 +731,7 @@ watch([currentMonth, currentYear], () => {
731
731
  align-items: center;
732
732
  margin-bottom: 1rem;
733
733
  padding: 1rem;
734
- background: #f8f9fa;
734
+ background: var(--calendar-chrome-bg);
735
735
  border-radius: 8px;
736
736
  }
737
737
 
@@ -748,7 +748,7 @@ watch([currentMonth, currentYear], () => {
748
748
  }
749
749
 
750
750
  .calendar-error {
751
- color: #b00020;
751
+ color: var(--calendar-error-fg);
752
752
  padding: 1rem;
753
753
  }
754
754
 
@@ -763,14 +763,14 @@ watch([currentMonth, currentYear], () => {
763
763
  display: flex;
764
764
  align-items: center;
765
765
  justify-content: center;
766
- background: rgba(255, 255, 255, 0.6);
766
+ background: var(--calendar-loading-overlay-bg);
767
767
  z-index: 1;
768
768
  font-weight: 600;
769
769
  }
770
770
 
771
771
  .calendar-container {
772
- background: white;
773
- border: 1px solid #e0e0e0;
772
+ background: var(--calendar-surface-bg);
773
+ border: 1px solid var(--calendar-border);
774
774
  overflow: hidden;
775
775
  border-radius: 8px;
776
776
  position: relative;
@@ -788,36 +788,36 @@ watch([currentMonth, currentYear], () => {
788
788
  }
789
789
 
790
790
  .calendar-day.range-single {
791
- background-color: rgba(0, 123, 255, 0.22) !important;
792
- box-shadow: inset 0 0 0 2px #007bff;
791
+ background-color: var(--calendar-range-bg-strong) !important;
792
+ box-shadow: inset 0 0 0 2px var(--calendar-range-accent);
793
793
  }
794
794
 
795
795
  .calendar-day.range-start {
796
- background-color: rgba(0, 123, 255, 0.14) !important;
796
+ background-color: var(--calendar-range-bg) !important;
797
797
  box-shadow:
798
- inset 2px 0 0 0 #007bff,
799
- inset 0 2px 0 0 #007bff,
800
- inset 0 -2px 0 0 #007bff;
798
+ inset 2px 0 0 0 var(--calendar-range-accent),
799
+ inset 0 2px 0 0 var(--calendar-range-accent),
800
+ inset 0 -2px 0 0 var(--calendar-range-accent);
801
801
  }
802
802
 
803
803
  .calendar-day.range-end {
804
- background-color: rgba(0, 123, 255, 0.14) !important;
804
+ background-color: var(--calendar-range-bg) !important;
805
805
  box-shadow:
806
- inset -2px 0 0 0 #007bff,
807
- inset 0 2px 0 0 #007bff,
808
- inset 0 -2px 0 0 #007bff;
806
+ inset -2px 0 0 0 var(--calendar-range-accent),
807
+ inset 0 2px 0 0 var(--calendar-range-accent),
808
+ inset 0 -2px 0 0 var(--calendar-range-accent);
809
809
  }
810
810
 
811
811
  .calendar-day.range-middle {
812
- background-color: rgba(0, 123, 255, 0.14) !important;
812
+ background-color: var(--calendar-range-bg) !important;
813
813
  box-shadow:
814
- inset 0 2px 0 0 #007bff,
815
- inset 0 -2px 0 0 #007bff;
814
+ inset 0 2px 0 0 var(--calendar-range-accent),
815
+ inset 0 -2px 0 0 var(--calendar-range-accent);
816
816
  }
817
817
 
818
818
  .calendar-day.drag-over-target {
819
- background-color: rgba(0, 123, 255, 0.1) !important;
820
- outline: 2px dashed #007bff;
819
+ background-color: var(--calendar-range-bg-subtle) !important;
820
+ outline: 2px dashed var(--calendar-range-accent);
821
821
  outline-offset: -3px;
822
822
  }
823
823
 
@@ -825,10 +825,10 @@ watch([currentMonth, currentYear], () => {
825
825
  padding: 1rem;
826
826
  text-align: center;
827
827
  font-weight: 600;
828
- color: #666;
829
- border-right: 1px solid #e0e0e0;
830
- border-bottom: 1px solid #e0e0e0;
831
- background: #f8f9fa;
828
+ color: var(--calendar-muted-fg);
829
+ border-right: 1px solid var(--calendar-border);
830
+ border-bottom: 1px solid var(--calendar-border);
831
+ background: var(--calendar-chrome-bg);
832
832
  }
833
833
 
834
834
  .day-header:last-child {
@@ -836,8 +836,8 @@ watch([currentMonth, currentYear], () => {
836
836
  }
837
837
 
838
838
  .calendar-day {
839
- border-right: 1px solid #e0e0e0;
840
- border-bottom: 1px solid #e0e0e0;
839
+ border-right: 1px solid var(--calendar-border);
840
+ border-bottom: 1px solid var(--calendar-border);
841
841
  height: 160px;
842
842
  position: relative;
843
843
  transition: background-color 0.2s ease;
@@ -846,7 +846,7 @@ watch([currentMonth, currentYear], () => {
846
846
  }
847
847
 
848
848
  .calendar-day:hover {
849
- background-color: #f0f8ff;
849
+ background-color: var(--calendar-day-hover-bg);
850
850
  }
851
851
 
852
852
  .calendar-day:hover .day-number .day-month {
@@ -858,21 +858,21 @@ watch([currentMonth, currentYear], () => {
858
858
  }
859
859
 
860
860
  .calendar-day.weekend {
861
- background: #f8f9fa;
861
+ background: var(--calendar-day-muted-bg);
862
862
  }
863
863
 
864
864
  .calendar-day.weekend:hover {
865
- background: #e9ecef;
865
+ background: var(--calendar-day-muted-hover-bg);
866
866
  }
867
867
 
868
868
  .calendar-day.next-month,
869
869
  .calendar-day.prev-month {
870
- background: #f8f9fa;
870
+ background: var(--calendar-day-muted-bg);
871
871
  }
872
872
 
873
873
  .calendar-day.next-month:hover,
874
874
  .calendar-day.prev-month:hover {
875
- background: #e9ecef;
875
+ background: var(--calendar-day-muted-hover-bg);
876
876
  }
877
877
 
878
878
  .calendar-day.past {
@@ -884,12 +884,12 @@ watch([currentMonth, currentYear], () => {
884
884
  }
885
885
 
886
886
  .calendar-day.today {
887
- background: #f7f8d7;
887
+ background: var(--calendar-today-bg);
888
888
  font-weight: bold;
889
889
  }
890
890
 
891
891
  .calendar-day.today:hover {
892
- background: #bbdefb;
892
+ background: var(--calendar-today-hover-bg);
893
893
  }
894
894
 
895
895
 
@@ -902,7 +902,7 @@ watch([currentMonth, currentYear], () => {
902
902
  .day-number {
903
903
  font-size: 0.9rem;
904
904
  margin-bottom: 0.25rem;
905
- color: #333;
905
+ color: var(--calendar-day-fg);
906
906
  text-decoration: none;
907
907
  display: inline-block;
908
908
  padding: 0.1rem;
@@ -932,7 +932,7 @@ watch([currentMonth, currentYear], () => {
932
932
  }
933
933
 
934
934
  .day-content:hover .day-number.clickable {
935
- color: #007bff;
935
+ color: var(--calendar-accent-fg);
936
936
  }
937
937
 
938
938
  .day-events {
@@ -941,12 +941,12 @@ watch([currentMonth, currentYear], () => {
941
941
  }
942
942
 
943
943
  .calendar-event {
944
- background: #d6f1aa;
945
- border: 1px solid #c4db96;
944
+ background: var(--calendar-event-bg);
945
+ border: 1px solid var(--calendar-event-border);
946
946
  margin-bottom: 0.25rem;
947
947
  cursor: pointer;
948
948
  transition: all 0.2s;
949
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
949
+ box-shadow: var(--calendar-event-shadow);
950
950
  padding: 0.1rem 0.1rem;
951
951
  }
952
952
 
@@ -963,20 +963,20 @@ watch([currentMonth, currentYear], () => {
963
963
  }
964
964
 
965
965
  .calendar-event:hover {
966
- background: #b3de6e;
967
- border-color: #c4db96;
966
+ background: var(--calendar-event-hover-bg);
967
+ border-color: var(--calendar-event-border);
968
968
  transform: translateY(-1px);
969
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
969
+ box-shadow: var(--calendar-event-hover-shadow);
970
970
  }
971
971
 
972
972
  .calendar-event.has-custom-color {
973
973
  background: var(--event-color);
974
- border-color: color-mix(in srgb, var(--event-color) 75%, black);
974
+ border-color: color-mix(in srgb, var(--event-color) 75%, var(--calendar-event-custom-border-mix));
975
975
  }
976
976
 
977
977
  .calendar-event.has-custom-color:hover {
978
978
  background: var(--event-color);
979
- border-color: color-mix(in srgb, var(--event-color) 75%, black);
979
+ border-color: color-mix(in srgb, var(--event-color) 75%, var(--calendar-event-custom-border-mix));
980
980
  filter: brightness(0.92);
981
981
  }
982
982
 
@@ -1005,7 +1005,7 @@ watch([currentMonth, currentYear], () => {
1005
1005
  .event-title {
1006
1006
  font-weight: bold;
1007
1007
  font-size: 0.85rem;
1008
- color: #333;
1008
+ color: var(--calendar-event-title-fg);
1009
1009
  white-space: normal;
1010
1010
  overflow: hidden;
1011
1011
  text-overflow: ellipsis;
@@ -1016,22 +1016,22 @@ watch([currentMonth, currentYear], () => {
1016
1016
 
1017
1017
  .multi-day-indicator {
1018
1018
  font-size: 0.7rem;
1019
- color: #007bff;
1019
+ color: var(--calendar-accent-fg);
1020
1020
  font-weight: bold;
1021
1021
  }
1022
1022
 
1023
1023
  .event-time {
1024
1024
  font-size: 0.75rem;
1025
- color: #666;
1025
+ color: var(--calendar-muted-fg);
1026
1026
  margin-top: 0.125rem;
1027
1027
  }
1028
1028
 
1029
1029
  .more-events {
1030
1030
  font-size: 0.75rem;
1031
- color: #666;
1031
+ color: var(--calendar-muted-fg);
1032
1032
  text-align: center;
1033
1033
  padding: 0.25rem;
1034
- background: #f8f9fa;
1034
+ background: var(--calendar-more-bg);
1035
1035
  border-radius: 4px;
1036
1036
  margin-top: 0.25rem;
1037
1037
  }
@@ -1085,111 +1085,4 @@ watch([currentMonth, currentYear], () => {
1085
1085
  padding: 0.25rem 0.5rem;
1086
1086
  }
1087
1087
  }
1088
-
1089
- html[data-theme="dark"] {
1090
- .calendar-container {
1091
- background: #565656;
1092
- border-color: #374151;
1093
- border: 1px solid #565656;
1094
- }
1095
-
1096
- .calendar-day.today {
1097
- background: #646c70;
1098
- }
1099
-
1100
- .calendar-day.weekend {
1101
- background: #444;
1102
- }
1103
-
1104
- .calendar-day.weekend:hover {
1105
- background: #1a1a1a;
1106
- }
1107
-
1108
- .calendar-day.next-month,
1109
- .calendar-day.prev-month {
1110
- background: #1a1a1a !important;
1111
- }
1112
-
1113
- .calendar-day.next-month:hover,
1114
- .calendar-day.prev-month:hover {
1115
- background: #374151;
1116
- }
1117
-
1118
- .calendar-day.today:hover {
1119
- background: #374151;
1120
- }
1121
-
1122
- .calendar-day {
1123
- border: 1px solid #3b3b3b;
1124
- }
1125
-
1126
- .day-number {
1127
- color: #f9fafb;
1128
- }
1129
-
1130
- .day-header {
1131
- color: #f9fafb;
1132
- background: #444 !important;
1133
- border: 1px solid #374151;
1134
- border-color: #374151;
1135
- }
1136
-
1137
- .day-content:hover .day-number.clickable {
1138
- color: #f9fafb;
1139
- }
1140
-
1141
- .calendar-day:hover {
1142
- background-color: #374151;
1143
- }
1144
-
1145
- .calendar-day.today:hover {
1146
- background: #374151;
1147
- }
1148
-
1149
- .calendar-day.weekend:hover {
1150
- background: #374151;
1151
- }
1152
-
1153
- .calendar-day.range-single {
1154
- background-color: rgba(96, 165, 250, 0.28) !important;
1155
- box-shadow: inset 0 0 0 2px #60a5fa;
1156
- }
1157
-
1158
- .calendar-day.range-start {
1159
- background-color: rgba(96, 165, 250, 0.18) !important;
1160
- box-shadow:
1161
- inset 2px 0 0 0 #60a5fa,
1162
- inset 0 2px 0 0 #60a5fa,
1163
- inset 0 -2px 0 0 #60a5fa;
1164
- }
1165
-
1166
- .calendar-day.range-end {
1167
- background-color: rgba(96, 165, 250, 0.18) !important;
1168
- box-shadow:
1169
- inset -2px 0 0 0 #60a5fa,
1170
- inset 0 2px 0 0 #60a5fa,
1171
- inset 0 -2px 0 0 #60a5fa;
1172
- }
1173
-
1174
- .calendar-day.range-middle {
1175
- background-color: rgba(96, 165, 250, 0.18) !important;
1176
- box-shadow:
1177
- inset 0 2px 0 0 #60a5fa,
1178
- inset 0 -2px 0 0 #60a5fa;
1179
- }
1180
-
1181
- .calendar-day.drag-over-target {
1182
- background-color: rgba(96, 165, 250, 0.12) !important;
1183
- outline: 2px dashed #60a5fa;
1184
- outline-offset: -3px;
1185
- }
1186
-
1187
- .calendar-day.past {
1188
- opacity: 0.6;
1189
- }
1190
-
1191
- .calendar-day.past:hover {
1192
- opacity: 0.8;
1193
- }
1194
- }
1195
1088
  </style>
@@ -247,10 +247,9 @@ defineExpose({
247
247
  box-sizing: border-box;
248
248
  }
249
249
 
250
- .local-login-form input:focus {
251
- outline: none;
252
- border-color: var(--primary-color, #007bff);
253
- box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
250
+ .local-login-form input:focus-visible {
251
+ outline: 2px solid var(--login-input-focus-outline);
252
+ outline-offset: 2px;
254
253
  }
255
254
 
256
255
  .local-login-form button {
@@ -303,8 +302,8 @@ defineExpose({
303
302
 
304
303
  .error-message {
305
304
  padding: 0.75rem;
306
- background-color: var(--error-bg, #fee);
307
- color: var(--error-color, #c33);
305
+ background-color: var(--login-error-bg);
306
+ color: var(--login-error-fg);
308
307
  border-radius: 4px;
309
308
  font-size: 0.9em;
310
309
  margin-top: 0.5rem;
@@ -314,7 +313,7 @@ defineExpose({
314
313
  .no-providers {
315
314
  padding: 2rem;
316
315
  text-align: center;
317
- color: var(--text-muted, #666);
316
+ color: var(--login-muted-fg);
318
317
  }
319
318
 
320
319
  @media (min-width: 768px) {
@@ -181,7 +181,7 @@ function handleLinkClick(link) {
181
181
  gap: 0.75rem;
182
182
  padding: 1.25rem 0.75rem;
183
183
  background: transparent;
184
- border: 1px solid var(--border-color, #e1e5e9);
184
+ border: 1px solid var(--nav-grid-border);
185
185
  border-radius: 8px;
186
186
  cursor: pointer;
187
187
  transition: all 0.2s ease;
@@ -195,37 +195,38 @@ function handleLinkClick(link) {
195
195
  }
196
196
 
197
197
  .nav-button:hover {
198
- border-color: var(--primary-color, #007bff);
198
+ border-color: var(--nav-grid-accent-fg);
199
+ background: var(--nav-grid-hover-bg);
199
200
  transform: translateY(-2px);
200
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
201
+ box-shadow: 0 4px 8px var(--nav-grid-hover-shadow);
201
202
  }
202
203
 
203
204
  .nav-button:active {
204
205
  transform: translateY(0);
205
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
206
+ box-shadow: 0 2px 4px var(--nav-grid-shadow);
206
207
  }
207
208
 
208
209
  .nav-button.active {
209
- background: var(--primary-color, #007bff);
210
- border-color: var(--primary-color, #007bff);
211
- color: #fff;
210
+ background: var(--nav-grid-accent-bg);
211
+ border-color: var(--nav-grid-accent-bg);
212
+ color: var(--nav-grid-active-fg);
212
213
  }
213
214
 
214
215
  .nav-button.active .nav-button-icon {
215
- color: #fff;
216
+ color: var(--nav-grid-active-fg);
216
217
  }
217
218
 
218
219
  .nav-button-icon {
219
220
  display: flex;
220
221
  align-items: start;
221
222
  justify-content: start;
222
- color: var(--primary-color, #007bff);
223
+ color: var(--nav-grid-accent-fg);
223
224
  transition: color 0.2s ease;
224
225
  flex-shrink: 0;
225
226
  }
226
227
 
227
228
  .nav-button.active .nav-button-icon {
228
- color: #fff;
229
+ color: var(--nav-grid-active-fg);
229
230
  }
230
231
 
231
232
  .nav-button:disabled,
@@ -236,7 +237,7 @@ function handleLinkClick(link) {
236
237
 
237
238
  .nav-button:disabled:hover,
238
239
  .nav-button.disabled:hover {
239
- border-color: var(--border-color, #e1e5e9);
240
+ border-color: var(--nav-grid-border);
240
241
  transform: none;
241
242
  box-shadow: none;
242
243
  background: transparent;
@@ -244,7 +245,7 @@ function handleLinkClick(link) {
244
245
 
245
246
  .nav-button:disabled .nav-button-icon,
246
247
  .nav-button.disabled .nav-button-icon {
247
- color: var(--text-muted, #999);
248
+ color: var(--nav-grid-disabled-fg);
248
249
  }
249
250
 
250
251
  .nav-button-indicator {
@@ -254,8 +255,8 @@ function handleLinkClick(link) {
254
255
  width: 0.625rem;
255
256
  height: 0.625rem;
256
257
  border-radius: 50%;
257
- background: var(--indicator-color, #dc3545);
258
- box-shadow: 0 0 0 2px var(--background-color, #fff);
258
+ background: var(--nav-grid-indicator-bg);
259
+ box-shadow: 0 0 0 2px var(--nav-grid-ring-bg);
259
260
  flex-shrink: 0;
260
261
  }
261
262
 
@@ -266,13 +267,13 @@ function handleLinkClick(link) {
266
267
  min-width: 1.25rem;
267
268
  padding: 0.1rem 0.4rem;
268
269
  border-radius: 999px;
269
- background: var(--indicator-color, #dc3545);
270
- color: #fff;
270
+ background: var(--nav-grid-indicator-bg);
271
+ color: var(--nav-grid-indicator-fg);
271
272
  font-size: 0.75em;
272
273
  font-weight: 600;
273
274
  line-height: 1.2;
274
275
  text-align: center;
275
- box-shadow: 0 0 0 2px var(--background-color, #fff);
276
+ box-shadow: 0 0 0 2px var(--nav-grid-ring-bg);
276
277
  flex-shrink: 0;
277
278
  }
278
279
 
@@ -288,7 +289,7 @@ function handleLinkClick(link) {
288
289
 
289
290
  .nav-button.active .nav-button-indicator,
290
291
  .nav-button.active .nav-button-count {
291
- box-shadow: 0 0 0 2px var(--primary-color, #007bff);
292
+ box-shadow: 0 0 0 2px var(--nav-grid-accent-bg);
292
293
  }
293
294
 
294
295
  .nav-button-label {
@@ -300,50 +301,25 @@ function handleLinkClick(link) {
300
301
  }
301
302
 
302
303
  .nav-button.active .nav-button-label {
303
- color: #fff;
304
+ color: var(--nav-grid-active-fg);
304
305
  }
305
306
 
306
307
  .nav-button-description {
307
308
  font-weight: normal;
308
- color: var(--text-muted, #666);
309
+ color: var(--nav-grid-muted-fg);
309
310
  word-break: break-word;
310
311
  text-align: left;
311
312
  line-height: 1.5;
312
313
  }
313
314
 
314
315
  .nav-button.active .nav-button-description {
315
- color: rgba(255, 255, 255, 0.9);
316
+ color: var(--nav-grid-active-fg);
316
317
  }
317
318
 
318
319
  .no-links {
319
320
  padding: 2rem;
320
321
  text-align: center;
321
- color: var(--text-muted, #666);
322
- }
323
-
324
- /* Dark theme support */
325
- html[data-theme="dark"] {
326
- .nav-button {
327
- background: transparent;
328
- }
329
-
330
- .nav-button:hover {
331
- background: var(--hover-background-color, rgba(96, 165, 250, 0.1));
332
- border-color: var(--primary-color, #60a5fa);
333
- }
334
-
335
- .nav-button.active {
336
- background: var(--primary-color, #60a5fa);
337
- border-color: var(--primary-color, #60a5fa);
338
- }
339
-
340
- .nav-button-description {
341
- color: var(--text-muted, #999);
342
- }
343
-
344
- .nav-button-icon {
345
- color: var(--primary-color, #60a5fa);
346
- }
322
+ color: var(--nav-grid-muted-fg);
347
323
  }
348
324
 
349
325
  @media (max-width: 768px) {
@@ -547,14 +547,14 @@ defineExpose({
547
547
  width: min(32rem, calc(100vw - 2rem));
548
548
  max-width: 32rem;
549
549
  padding: 0;
550
- border: 1px solid var(--border-color, #d7d7d7);
551
- background: var(--standout-bg-color, #fff);
550
+ border: 1px solid var(--quick-search-border);
551
+ background: var(--quick-search-dialog-bg);
552
552
  /* Dialog is rendered under <header>, so do not inherit header's white text */
553
- color: var(--text-color, #334155);
553
+ color: var(--quick-search-dialog-fg);
554
554
  }
555
555
 
556
556
  .quick-search-dialog::backdrop {
557
- background-color: rgba(0, 0, 0, 0.5);
557
+ background-color: var(--quick-search-backdrop);
558
558
  }
559
559
 
560
560
  .dialog-body {
@@ -573,23 +573,22 @@ defineExpose({
573
573
  .search-input {
574
574
  width: 100%;
575
575
  padding: 0.75em 2.25em 0.75em 0.75em;
576
- border: 1px solid var(--border-color, #d7d7d7);
576
+ border: 1px solid var(--quick-search-border);
577
577
  border-radius: 0.4em;
578
578
  font-size: 1rem;
579
- outline: none;
580
- background-color: #fff;
581
- color: var(--text-color, #334155);
579
+ background-color: var(--quick-search-input-bg);
580
+ color: var(--quick-search-input-fg);
582
581
  }
583
582
 
584
- .search-input:focus {
585
- border-color: #3b82f6;
586
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
583
+ .search-input:focus-visible {
584
+ outline: 2px solid var(--quick-search-focus-outline);
585
+ outline-offset: 2px;
587
586
  }
588
587
 
589
588
  .search-icon {
590
589
  position: absolute;
591
590
  right: 0.75rem;
592
- color: #6b7280;
591
+ color: var(--quick-search-muted-fg);
593
592
  pointer-events: none;
594
593
  display: inline-flex;
595
594
  }
@@ -606,12 +605,13 @@ defineExpose({
606
605
 
607
606
  .search-status {
608
607
  margin: 0;
608
+ color: var(--quick-search-muted-fg);
609
609
  }
610
610
 
611
611
  .search-results {
612
612
  max-height: min(20rem, 50vh);
613
613
  overflow-y: auto;
614
- border: 1px solid var(--border-color, #e1e5e9);
614
+ border: 1px solid var(--quick-search-border);
615
615
  border-radius: 0.4em;
616
616
  }
617
617
 
@@ -620,7 +620,7 @@ defineExpose({
620
620
  align-items: center;
621
621
  padding: 0.75rem 1rem;
622
622
  cursor: pointer;
623
- border-bottom: 1px solid var(--border-color, #f3f4f6);
623
+ border-bottom: 1px solid var(--quick-search-border);
624
624
  }
625
625
 
626
626
  .search-result-item:last-child {
@@ -629,8 +629,8 @@ defineExpose({
629
629
 
630
630
  .search-result-item:hover,
631
631
  .search-result-item.active {
632
- background-color: var(--hover-background-color);
633
- color: var(--hover-text-color);
632
+ background-color: var(--quick-search-hover-bg);
633
+ color: var(--quick-search-hover-fg);
634
634
  }
635
635
 
636
636
  .result-content {
@@ -645,20 +645,20 @@ defineExpose({
645
645
 
646
646
  .result-description {
647
647
  font-size: 0.875rem;
648
- color: #6b7280;
648
+ color: var(--quick-search-muted-fg);
649
649
  margin-bottom: 0.25rem;
650
650
  }
651
651
 
652
652
  .result-category {
653
653
  font-size: 0.75rem;
654
- color: #9ca3af;
654
+ color: var(--quick-search-subtle-fg);
655
655
  text-transform: uppercase;
656
656
  letter-spacing: 0.05em;
657
657
  }
658
658
 
659
659
  .result-icon {
660
660
  margin-right: 0.75rem;
661
- color: #6b7280;
661
+ color: var(--quick-search-muted-fg);
662
662
  flex-shrink: 0;
663
663
  display: inline-flex;
664
664
  }
@@ -668,7 +668,7 @@ defineExpose({
668
668
  flex-direction: column;
669
669
  align-items: center;
670
670
  padding: 1.5rem 1rem;
671
- color: #6b7280;
671
+ color: var(--quick-search-muted-fg);
672
672
  text-align: center;
673
673
  }
674
674
 
@@ -682,35 +682,9 @@ defineExpose({
682
682
  }
683
683
 
684
684
  mark {
685
- background-color: var(--karma-important, #fef3c7);
685
+ background-color: var(--quick-search-highlight-bg);
686
686
  color: inherit;
687
687
  padding: 0;
688
688
  border-radius: 2px;
689
689
  }
690
-
691
- html[data-theme="dark"] {
692
- .quick-search-dialog {
693
- color: #f9fafb;
694
- }
695
-
696
- .search-input {
697
- background-color: #1f2937;
698
- border-color: #374151;
699
- color: #f9fafb;
700
- }
701
-
702
- .search-icon,
703
- .result-description,
704
- .result-category,
705
- .result-icon,
706
- .no-results-content,
707
- .search-status {
708
- color: #9ca3af;
709
- }
710
-
711
- .search-input:focus {
712
- border-color: #60a5fa;
713
- box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.1);
714
- }
715
- }
716
690
  </style>
@@ -147,7 +147,7 @@ function select(option) {
147
147
  }
148
148
 
149
149
  .radio-group label:has(input:focus-visible) {
150
- outline: 2px solid black;
150
+ outline: 2px solid var(--radio-group-focus-outline);
151
151
  outline-offset: 2px;
152
152
  z-index: 2;
153
153
  }
@@ -155,8 +155,8 @@ function select(option) {
155
155
  /* Beat Femtocrank's gray .radio-group focus/hover when the option is selected. */
156
156
  .radio-group label:has(input:checked):hover,
157
157
  .radio-group label:has(input:checked:focus-visible) {
158
- background-color: #3a6f3a;
159
- color: white;
158
+ background-color: var(--radio-group-checked-hover-bg);
159
+ color: var(--radio-group-checked-hover-fg);
160
160
  }
161
161
 
162
162
  .radio-group.disabled {
@@ -185,7 +185,7 @@ function select(option) {
185
185
 
186
186
  .radio-group label.disabled:has(input:focus-visible),
187
187
  .radio-group.disabled label:has(input:focus-visible) {
188
- outline: 2px solid black;
188
+ outline: 2px solid var(--radio-group-focus-outline);
189
189
  outline-offset: 2px;
190
190
  }
191
191
  </style>
@@ -1414,7 +1414,7 @@ tbody tr.row-clickable {
1414
1414
  min-height: 6rem;
1415
1415
  padding: 2rem 1rem;
1416
1416
  text-align: center;
1417
- color: var(--text-muted, #666);
1417
+ color: var(--table-muted-fg);
1418
1418
  }
1419
1419
 
1420
1420
  .table-empty-state.loading {
@@ -1436,7 +1436,7 @@ tbody tr.row-clickable {
1436
1436
  gap: 0.75rem;
1437
1437
  padding: 2rem 1rem;
1438
1438
  text-align: center;
1439
- color: var(--text-muted, #666);
1439
+ color: var(--table-muted-fg);
1440
1440
  }
1441
1441
 
1442
1442
  .table-filtered-empty-message {
@@ -1473,7 +1473,7 @@ td.table-column-options-cell {
1473
1473
 
1474
1474
  .table-layout-label {
1475
1475
  font-size: 0.85rem;
1476
- color: var(--text-muted, #666);
1476
+ color: var(--table-muted-fg);
1477
1477
  max-width: 10rem;
1478
1478
  overflow: hidden;
1479
1479
  text-overflow: ellipsis;
@@ -497,10 +497,10 @@ onBeforeUnmount(() => {
497
497
  max-width: min(24rem, calc(100vw - 1rem));
498
498
  max-height: calc(100vh - 1rem);
499
499
  padding: 0.75rem;
500
- border: 1px solid var(--border-color, #e1e5e9);
500
+ border: 1px solid var(--table-popover-border);
501
501
  border-radius: 0.4rem;
502
- background: var(--background-color, #fff);
503
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
502
+ background: var(--table-popover-bg);
503
+ box-shadow: var(--table-popover-shadow);
504
504
  overflow: hidden;
505
505
  }
506
506
 
@@ -552,7 +552,7 @@ onBeforeUnmount(() => {
552
552
 
553
553
  .field-label {
554
554
  font-size: 0.85rem;
555
- color: var(--text-muted, #666);
555
+ color: var(--table-popover-muted-fg);
556
556
  }
557
557
 
558
558
  .popover-actions {
@@ -563,21 +563,21 @@ onBeforeUnmount(() => {
563
563
  gap: 0.5rem;
564
564
  margin-top: 0.75rem;
565
565
  padding-top: 0.75rem;
566
- border-top: 1px solid var(--border-color, #e1e5e9);
566
+ border-top: 1px solid var(--table-popover-divider);
567
567
  }
568
568
 
569
569
  .saved-filters {
570
570
  flex-shrink: 0;
571
571
  margin-top: 0.75rem;
572
572
  padding-top: 0.75rem;
573
- border-top: 1px solid var(--border-color, #e1e5e9);
573
+ border-top: 1px solid var(--table-popover-divider);
574
574
  min-height: 0;
575
575
  }
576
576
 
577
577
  .saved-filters-heading {
578
578
  margin: 0 0 0.5rem;
579
579
  font-size: 0.85rem;
580
- color: var(--text-muted, #666);
580
+ color: var(--table-popover-muted-fg);
581
581
  }
582
582
 
583
583
  .saved-filters-list {
@@ -627,14 +627,4 @@ onBeforeUnmount(() => {
627
627
  align-items: center;
628
628
  justify-content: center;
629
629
  }
630
-
631
- html[data-theme="dark"] .table-column-filter-popover {
632
- background: var(--background-color, #1e1e1e);
633
- border-color: var(--border-color, #444);
634
- }
635
-
636
- html[data-theme="dark"] .popover-actions,
637
- html[data-theme="dark"] .saved-filters {
638
- border-top-color: var(--border-color, #444);
639
- }
640
630
  </style>
@@ -839,10 +839,10 @@ onBeforeUnmount(() => {
839
839
  min-width: min(30rem, calc(100vw - 1rem));
840
840
  max-height: calc(100vh - 1rem);
841
841
  padding: 0.75rem;
842
- border: 1px solid var(--border-color, #e1e5e9);
842
+ border: 1px solid var(--table-popover-border);
843
843
  border-radius: 0.4rem;
844
- background: var(--background-color, #fff);
845
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
844
+ background: var(--table-popover-bg);
845
+ box-shadow: var(--table-popover-shadow);
846
846
  overflow: hidden;
847
847
  box-sizing: border-box;
848
848
  }
@@ -923,19 +923,19 @@ onBeforeUnmount(() => {
923
923
 
924
924
  .field-label {
925
925
  font-size: 0.85rem;
926
- color: var(--text-muted, #666);
926
+ color: var(--table-popover-muted-fg);
927
927
  }
928
928
 
929
929
  .column-options-tab-error {
930
930
  margin: 0;
931
931
  font-size: 0.85rem;
932
- color: var(--bad-color, #c62828);
932
+ color: var(--table-popover-error-fg);
933
933
  }
934
934
 
935
935
  .column-options-tab-success {
936
936
  margin: 0;
937
937
  font-size: 0.85rem;
938
- color: var(--good-color, #2e7d32);
938
+ color: var(--table-popover-success-fg);
939
939
  }
940
940
 
941
941
  .column-options-load-panel {
@@ -948,7 +948,7 @@ onBeforeUnmount(() => {
948
948
  display: flex;
949
949
  justify-content: center;
950
950
  padding-top: 0.25rem;
951
- border-top: 1px solid var(--border-color, #e1e5e9);
951
+ border-top: 1px solid var(--table-popover-divider);
952
952
  }
953
953
 
954
954
  .column-options-preset-list {
@@ -968,7 +968,7 @@ onBeforeUnmount(() => {
968
968
  gap: 0.5rem;
969
969
  align-items: start;
970
970
  padding-bottom: 0.65rem;
971
- border-bottom: 1px solid var(--border-color, #e1e5e9);
971
+ border-bottom: 1px solid var(--table-popover-divider);
972
972
  }
973
973
 
974
974
  .column-options-preset-item:last-child {
@@ -1014,9 +1014,9 @@ onBeforeUnmount(() => {
1014
1014
  align-items: center;
1015
1015
  gap: 0.5rem;
1016
1016
  padding: 0.25rem 0.45rem;
1017
- border: 1px solid var(--border-color, #e1e5e9);
1017
+ border: 1px solid var(--table-popover-border);
1018
1018
  border-radius: 0.35rem;
1019
- background: var(--standout-bg-color, #f8f9fa);
1019
+ background: var(--table-popover-item-bg);
1020
1020
  }
1021
1021
 
1022
1022
  .column-options-item.is-dragging {
@@ -1024,7 +1024,7 @@ onBeforeUnmount(() => {
1024
1024
  }
1025
1025
 
1026
1026
  .column-options-item.is-drag-over {
1027
- border-color: var(--text-color, #334155);
1027
+ border-color: var(--table-popover-item-drag-border);
1028
1028
  }
1029
1029
 
1030
1030
  .column-options-item.is-fixed {
@@ -1034,7 +1034,7 @@ onBeforeUnmount(() => {
1034
1034
  .column-options-drag-handle {
1035
1035
  display: inline-flex;
1036
1036
  align-items: center;
1037
- color: var(--text-color, inherit);
1037
+ color: var(--table-popover-fg, inherit);
1038
1038
  opacity: 0.65;
1039
1039
  cursor: grab;
1040
1040
  }
@@ -1097,20 +1097,6 @@ onBeforeUnmount(() => {
1097
1097
  gap: 0.5rem;
1098
1098
  margin-top: 0.75rem;
1099
1099
  padding-top: 0.75rem;
1100
- border-top: 1px solid var(--border-color, #e1e5e9);
1101
- }
1102
-
1103
- html[data-theme="dark"] .table-column-options-popover {
1104
- background: var(--background-color, #1e1e1e);
1105
- border-color: var(--border-color, #444);
1106
- }
1107
-
1108
- html[data-theme="dark"] .column-options-item {
1109
- background: var(--standout-bg-color, #1f1f1f);
1110
- border-color: var(--border-color, #444);
1111
- }
1112
-
1113
- html[data-theme="dark"] .popover-actions {
1114
- border-top-color: var(--border-color, #444);
1100
+ border-top: 1px solid var(--table-popover-divider);
1115
1101
  }
1116
1102
  </style>
@@ -116,7 +116,7 @@ defineExpose({
116
116
 
117
117
  .tabs-header {
118
118
  display: flex;
119
- border-bottom: 2px solid var(--border-color, #e1e5e9);
119
+ border-bottom: 2px solid var(--tab-border);
120
120
  gap: 0.25rem;
121
121
  overflow-x: auto;
122
122
  scrollbar-width: thin;
@@ -131,7 +131,7 @@ defineExpose({
131
131
  }
132
132
 
133
133
  .tabs-header::-webkit-scrollbar-thumb {
134
- background: var(--border-color, #ccc);
134
+ background: var(--tab-border);
135
135
  border-radius: 2px;
136
136
  }
137
137
 
@@ -153,8 +153,8 @@ defineExpose({
153
153
  }
154
154
 
155
155
  .tab-button:hover {
156
- color: var(--text-color, #000);
157
- background-color: var(--hover-background-color, #f5f5f5);
156
+ color: var(--tab-hover-fg);
157
+ background-color: var(--tab-hover-bg);
158
158
  }
159
159
 
160
160
  .tab-button.active {
@@ -47,24 +47,6 @@
47
47
  </Navigation>
48
48
  </Section>
49
49
 
50
- <Section
51
- title="Popular examples"
52
- subtitle="A few good places to begin"
53
- >
54
- <div class="grid-boxed welcome-popular-grid">
55
- <router-link
56
- v-for="example in popularExamples"
57
- :key="example.name"
58
- :to="{ name: example.name }"
59
- class="stat-display welcome-popular-card"
60
- >
61
- <span class="subtle">{{ example.category }}</span>
62
- <span class="stat">{{ example.label }}</span>
63
- <span class="welcome-popular-description">{{ example.description }}</span>
64
- </router-link>
65
- </div>
66
- </Section>
67
-
68
50
  <Section
69
51
  title="Try it"
70
52
  subtitle="Small interactions you can trigger right now"
@@ -109,33 +91,6 @@ import logoUrl from '/logo.png'
109
91
  const { show: showPopup } = useNotificationPopups()
110
92
  const welcomeNavigation = ref(null)
111
93
 
112
- const popularExamples = [
113
- {
114
- name: 'ThemePreview',
115
- category: 'Layouts',
116
- label: 'Theme Switcher',
117
- description: 'Switch drop-in themes live',
118
- },
119
- {
120
- name: 'TableExample',
121
- category: 'Data display',
122
- label: 'Table',
123
- description: 'Sorting, pagination, and column filters',
124
- },
125
- {
126
- name: 'CalendarExample',
127
- category: 'Data display',
128
- label: 'Calendar',
129
- description: 'Events, drag-and-drop, and date ranges',
130
- },
131
- {
132
- name: 'ButtonsExample',
133
- category: 'Forms & input',
134
- label: 'Buttons',
135
- description: 'Variants, toolbars, and form actions',
136
- },
137
- ]
138
-
139
94
  function showWelcomeToast() {
140
95
  showPopup({
141
96
  label: 'WELCOME',
@@ -212,31 +167,4 @@ onMounted(() => {
212
167
  gap: 0.5rem;
213
168
  margin-bottom: 0.75rem;
214
169
  }
215
-
216
- .welcome-popular-grid {
217
- grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
218
- }
219
-
220
- .welcome-popular-card {
221
- display: flex;
222
- flex-direction: column;
223
- gap: 0.35rem;
224
- text-decoration: none;
225
- color: inherit;
226
- transition: transform 0.15s ease, box-shadow 0.15s ease;
227
- }
228
-
229
- .welcome-popular-card:hover {
230
- transform: translateY(-2px);
231
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
232
- }
233
-
234
- .welcome-popular-description {
235
- font-size: 0.85rem;
236
- color: #666;
237
- }
238
-
239
- html[data-theme="dark"] .welcome-popular-description {
240
- color: #bbb;
241
- }
242
170
  </style>