@vanduo-oss/framework 1.2.4 → 1.2.6

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Vanduo Framework v1.2.3
1
+ # Vanduo Framework v1.2.6
2
2
 
3
3
  <p align="center">
4
4
  <img src="vanduo-banner.svg" alt="Vanduo Framework Banner" width="100%">
@@ -54,8 +54,8 @@ The quickest way to get started — no install, no build step. Add two lines to
54
54
 
55
55
  **Pin to a specific version** for production:
56
56
  ```html
57
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.2.3/dist/vanduo.min.css">
58
- <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.2.3/dist/vanduo.min.js"></script>
57
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.2.5/dist/vanduo.min.css">
58
+ <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.2.5/dist/vanduo.min.js"></script>
59
59
  <script>Vanduo.init();</script>
60
60
  ```
61
61
 
@@ -118,7 +118,7 @@ This project includes an [`llms.txt`](llms.txt) file — a structured markdown s
118
118
  Use the hardened upload script to attach only approved bundle artifacts from `dist/`:
119
119
 
120
120
  ```bash
121
- pnpm run release:assets -- v1.2.3
121
+ pnpm run release:assets -- v1.2.5
122
122
  ```
123
123
 
124
124
  Notes:
@@ -0,0 +1,352 @@
1
+ /**
2
+ * Vanduo Framework - Color Utility Classes
3
+ *
4
+ * Per-hue background and text color utilities for all Open Color scales.
5
+ * Usage:
6
+ * Background: .vd-bg-{color}-{shade} (e.g. .vd-bg-teal-3)
7
+ * Text: .vd-text-{color}-{shade} (e.g. .vd-text-indigo-7)
8
+ *
9
+ * Covers 13 hues × 10 shades (0–9) × 2 properties = 260 classes.
10
+ * All values reference existing CSS custom properties from colors.css.
11
+ *
12
+ * @since 1.2.6
13
+ * @license MIT
14
+ */
15
+
16
+ /* ═══════════════════════════════════════════════════════════════════════════
17
+ * RED
18
+ * ═══════════════════════════════════════════════════════════════════════════ */
19
+
20
+ .vd-bg-red-0 { background-color: var(--red-0); }
21
+ .vd-bg-red-1 { background-color: var(--red-1); }
22
+ .vd-bg-red-2 { background-color: var(--red-2); }
23
+ .vd-bg-red-3 { background-color: var(--red-3); }
24
+ .vd-bg-red-4 { background-color: var(--red-4); }
25
+ .vd-bg-red-5 { background-color: var(--red-5); }
26
+ .vd-bg-red-6 { background-color: var(--red-6); }
27
+ .vd-bg-red-7 { background-color: var(--red-7); }
28
+ .vd-bg-red-8 { background-color: var(--red-8); }
29
+ .vd-bg-red-9 { background-color: var(--red-9); }
30
+
31
+ .vd-text-red-0 { color: var(--red-0); }
32
+ .vd-text-red-1 { color: var(--red-1); }
33
+ .vd-text-red-2 { color: var(--red-2); }
34
+ .vd-text-red-3 { color: var(--red-3); }
35
+ .vd-text-red-4 { color: var(--red-4); }
36
+ .vd-text-red-5 { color: var(--red-5); }
37
+ .vd-text-red-6 { color: var(--red-6); }
38
+ .vd-text-red-7 { color: var(--red-7); }
39
+ .vd-text-red-8 { color: var(--red-8); }
40
+ .vd-text-red-9 { color: var(--red-9); }
41
+
42
+ /* ═══════════════════════════════════════════════════════════════════════════
43
+ * ORANGE
44
+ * ═══════════════════════════════════════════════════════════════════════════ */
45
+
46
+ .vd-bg-orange-0 { background-color: var(--orange-0); }
47
+ .vd-bg-orange-1 { background-color: var(--orange-1); }
48
+ .vd-bg-orange-2 { background-color: var(--orange-2); }
49
+ .vd-bg-orange-3 { background-color: var(--orange-3); }
50
+ .vd-bg-orange-4 { background-color: var(--orange-4); }
51
+ .vd-bg-orange-5 { background-color: var(--orange-5); }
52
+ .vd-bg-orange-6 { background-color: var(--orange-6); }
53
+ .vd-bg-orange-7 { background-color: var(--orange-7); }
54
+ .vd-bg-orange-8 { background-color: var(--orange-8); }
55
+ .vd-bg-orange-9 { background-color: var(--orange-9); }
56
+
57
+ .vd-text-orange-0 { color: var(--orange-0); }
58
+ .vd-text-orange-1 { color: var(--orange-1); }
59
+ .vd-text-orange-2 { color: var(--orange-2); }
60
+ .vd-text-orange-3 { color: var(--orange-3); }
61
+ .vd-text-orange-4 { color: var(--orange-4); }
62
+ .vd-text-orange-5 { color: var(--orange-5); }
63
+ .vd-text-orange-6 { color: var(--orange-6); }
64
+ .vd-text-orange-7 { color: var(--orange-7); }
65
+ .vd-text-orange-8 { color: var(--orange-8); }
66
+ .vd-text-orange-9 { color: var(--orange-9); }
67
+
68
+ /* ═══════════════════════════════════════════════════════════════════════════
69
+ * YELLOW
70
+ * ═══════════════════════════════════════════════════════════════════════════ */
71
+
72
+ .vd-bg-yellow-0 { background-color: var(--yellow-0); }
73
+ .vd-bg-yellow-1 { background-color: var(--yellow-1); }
74
+ .vd-bg-yellow-2 { background-color: var(--yellow-2); }
75
+ .vd-bg-yellow-3 { background-color: var(--yellow-3); }
76
+ .vd-bg-yellow-4 { background-color: var(--yellow-4); }
77
+ .vd-bg-yellow-5 { background-color: var(--yellow-5); }
78
+ .vd-bg-yellow-6 { background-color: var(--yellow-6); }
79
+ .vd-bg-yellow-7 { background-color: var(--yellow-7); }
80
+ .vd-bg-yellow-8 { background-color: var(--yellow-8); }
81
+ .vd-bg-yellow-9 { background-color: var(--yellow-9); }
82
+
83
+ .vd-text-yellow-0 { color: var(--yellow-0); }
84
+ .vd-text-yellow-1 { color: var(--yellow-1); }
85
+ .vd-text-yellow-2 { color: var(--yellow-2); }
86
+ .vd-text-yellow-3 { color: var(--yellow-3); }
87
+ .vd-text-yellow-4 { color: var(--yellow-4); }
88
+ .vd-text-yellow-5 { color: var(--yellow-5); }
89
+ .vd-text-yellow-6 { color: var(--yellow-6); }
90
+ .vd-text-yellow-7 { color: var(--yellow-7); }
91
+ .vd-text-yellow-8 { color: var(--yellow-8); }
92
+ .vd-text-yellow-9 { color: var(--yellow-9); }
93
+
94
+ /* ═══════════════════════════════════════════════════════════════════════════
95
+ * LIME
96
+ * ═══════════════════════════════════════════════════════════════════════════ */
97
+
98
+ .vd-bg-lime-0 { background-color: var(--lime-0); }
99
+ .vd-bg-lime-1 { background-color: var(--lime-1); }
100
+ .vd-bg-lime-2 { background-color: var(--lime-2); }
101
+ .vd-bg-lime-3 { background-color: var(--lime-3); }
102
+ .vd-bg-lime-4 { background-color: var(--lime-4); }
103
+ .vd-bg-lime-5 { background-color: var(--lime-5); }
104
+ .vd-bg-lime-6 { background-color: var(--lime-6); }
105
+ .vd-bg-lime-7 { background-color: var(--lime-7); }
106
+ .vd-bg-lime-8 { background-color: var(--lime-8); }
107
+ .vd-bg-lime-9 { background-color: var(--lime-9); }
108
+
109
+ .vd-text-lime-0 { color: var(--lime-0); }
110
+ .vd-text-lime-1 { color: var(--lime-1); }
111
+ .vd-text-lime-2 { color: var(--lime-2); }
112
+ .vd-text-lime-3 { color: var(--lime-3); }
113
+ .vd-text-lime-4 { color: var(--lime-4); }
114
+ .vd-text-lime-5 { color: var(--lime-5); }
115
+ .vd-text-lime-6 { color: var(--lime-6); }
116
+ .vd-text-lime-7 { color: var(--lime-7); }
117
+ .vd-text-lime-8 { color: var(--lime-8); }
118
+ .vd-text-lime-9 { color: var(--lime-9); }
119
+
120
+ /* ═══════════════════════════════════════════════════════════════════════════
121
+ * GREEN
122
+ * ═══════════════════════════════════════════════════════════════════════════ */
123
+
124
+ .vd-bg-green-0 { background-color: var(--green-0); }
125
+ .vd-bg-green-1 { background-color: var(--green-1); }
126
+ .vd-bg-green-2 { background-color: var(--green-2); }
127
+ .vd-bg-green-3 { background-color: var(--green-3); }
128
+ .vd-bg-green-4 { background-color: var(--green-4); }
129
+ .vd-bg-green-5 { background-color: var(--green-5); }
130
+ .vd-bg-green-6 { background-color: var(--green-6); }
131
+ .vd-bg-green-7 { background-color: var(--green-7); }
132
+ .vd-bg-green-8 { background-color: var(--green-8); }
133
+ .vd-bg-green-9 { background-color: var(--green-9); }
134
+
135
+ .vd-text-green-0 { color: var(--green-0); }
136
+ .vd-text-green-1 { color: var(--green-1); }
137
+ .vd-text-green-2 { color: var(--green-2); }
138
+ .vd-text-green-3 { color: var(--green-3); }
139
+ .vd-text-green-4 { color: var(--green-4); }
140
+ .vd-text-green-5 { color: var(--green-5); }
141
+ .vd-text-green-6 { color: var(--green-6); }
142
+ .vd-text-green-7 { color: var(--green-7); }
143
+ .vd-text-green-8 { color: var(--green-8); }
144
+ .vd-text-green-9 { color: var(--green-9); }
145
+
146
+ /* ═══════════════════════════════════════════════════════════════════════════
147
+ * TEAL
148
+ * ═══════════════════════════════════════════════════════════════════════════ */
149
+
150
+ .vd-bg-teal-0 { background-color: var(--teal-0); }
151
+ .vd-bg-teal-1 { background-color: var(--teal-1); }
152
+ .vd-bg-teal-2 { background-color: var(--teal-2); }
153
+ .vd-bg-teal-3 { background-color: var(--teal-3); }
154
+ .vd-bg-teal-4 { background-color: var(--teal-4); }
155
+ .vd-bg-teal-5 { background-color: var(--teal-5); }
156
+ .vd-bg-teal-6 { background-color: var(--teal-6); }
157
+ .vd-bg-teal-7 { background-color: var(--teal-7); }
158
+ .vd-bg-teal-8 { background-color: var(--teal-8); }
159
+ .vd-bg-teal-9 { background-color: var(--teal-9); }
160
+
161
+ .vd-text-teal-0 { color: var(--teal-0); }
162
+ .vd-text-teal-1 { color: var(--teal-1); }
163
+ .vd-text-teal-2 { color: var(--teal-2); }
164
+ .vd-text-teal-3 { color: var(--teal-3); }
165
+ .vd-text-teal-4 { color: var(--teal-4); }
166
+ .vd-text-teal-5 { color: var(--teal-5); }
167
+ .vd-text-teal-6 { color: var(--teal-6); }
168
+ .vd-text-teal-7 { color: var(--teal-7); }
169
+ .vd-text-teal-8 { color: var(--teal-8); }
170
+ .vd-text-teal-9 { color: var(--teal-9); }
171
+
172
+ /* ═══════════════════════════════════════════════════════════════════════════
173
+ * CYAN
174
+ * ═══════════════════════════════════════════════════════════════════════════ */
175
+
176
+ .vd-bg-cyan-0 { background-color: var(--cyan-0); }
177
+ .vd-bg-cyan-1 { background-color: var(--cyan-1); }
178
+ .vd-bg-cyan-2 { background-color: var(--cyan-2); }
179
+ .vd-bg-cyan-3 { background-color: var(--cyan-3); }
180
+ .vd-bg-cyan-4 { background-color: var(--cyan-4); }
181
+ .vd-bg-cyan-5 { background-color: var(--cyan-5); }
182
+ .vd-bg-cyan-6 { background-color: var(--cyan-6); }
183
+ .vd-bg-cyan-7 { background-color: var(--cyan-7); }
184
+ .vd-bg-cyan-8 { background-color: var(--cyan-8); }
185
+ .vd-bg-cyan-9 { background-color: var(--cyan-9); }
186
+
187
+ .vd-text-cyan-0 { color: var(--cyan-0); }
188
+ .vd-text-cyan-1 { color: var(--cyan-1); }
189
+ .vd-text-cyan-2 { color: var(--cyan-2); }
190
+ .vd-text-cyan-3 { color: var(--cyan-3); }
191
+ .vd-text-cyan-4 { color: var(--cyan-4); }
192
+ .vd-text-cyan-5 { color: var(--cyan-5); }
193
+ .vd-text-cyan-6 { color: var(--cyan-6); }
194
+ .vd-text-cyan-7 { color: var(--cyan-7); }
195
+ .vd-text-cyan-8 { color: var(--cyan-8); }
196
+ .vd-text-cyan-9 { color: var(--cyan-9); }
197
+
198
+ /* ═══════════════════════════════════════════════════════════════════════════
199
+ * BLUE
200
+ * ═══════════════════════════════════════════════════════════════════════════ */
201
+
202
+ .vd-bg-blue-0 { background-color: var(--blue-0); }
203
+ .vd-bg-blue-1 { background-color: var(--blue-1); }
204
+ .vd-bg-blue-2 { background-color: var(--blue-2); }
205
+ .vd-bg-blue-3 { background-color: var(--blue-3); }
206
+ .vd-bg-blue-4 { background-color: var(--blue-4); }
207
+ .vd-bg-blue-5 { background-color: var(--blue-5); }
208
+ .vd-bg-blue-6 { background-color: var(--blue-6); }
209
+ .vd-bg-blue-7 { background-color: var(--blue-7); }
210
+ .vd-bg-blue-8 { background-color: var(--blue-8); }
211
+ .vd-bg-blue-9 { background-color: var(--blue-9); }
212
+
213
+ .vd-text-blue-0 { color: var(--blue-0); }
214
+ .vd-text-blue-1 { color: var(--blue-1); }
215
+ .vd-text-blue-2 { color: var(--blue-2); }
216
+ .vd-text-blue-3 { color: var(--blue-3); }
217
+ .vd-text-blue-4 { color: var(--blue-4); }
218
+ .vd-text-blue-5 { color: var(--blue-5); }
219
+ .vd-text-blue-6 { color: var(--blue-6); }
220
+ .vd-text-blue-7 { color: var(--blue-7); }
221
+ .vd-text-blue-8 { color: var(--blue-8); }
222
+ .vd-text-blue-9 { color: var(--blue-9); }
223
+
224
+ /* ═══════════════════════════════════════════════════════════════════════════
225
+ * INDIGO
226
+ * ═══════════════════════════════════════════════════════════════════════════ */
227
+
228
+ .vd-bg-indigo-0 { background-color: var(--indigo-0); }
229
+ .vd-bg-indigo-1 { background-color: var(--indigo-1); }
230
+ .vd-bg-indigo-2 { background-color: var(--indigo-2); }
231
+ .vd-bg-indigo-3 { background-color: var(--indigo-3); }
232
+ .vd-bg-indigo-4 { background-color: var(--indigo-4); }
233
+ .vd-bg-indigo-5 { background-color: var(--indigo-5); }
234
+ .vd-bg-indigo-6 { background-color: var(--indigo-6); }
235
+ .vd-bg-indigo-7 { background-color: var(--indigo-7); }
236
+ .vd-bg-indigo-8 { background-color: var(--indigo-8); }
237
+ .vd-bg-indigo-9 { background-color: var(--indigo-9); }
238
+
239
+ .vd-text-indigo-0 { color: var(--indigo-0); }
240
+ .vd-text-indigo-1 { color: var(--indigo-1); }
241
+ .vd-text-indigo-2 { color: var(--indigo-2); }
242
+ .vd-text-indigo-3 { color: var(--indigo-3); }
243
+ .vd-text-indigo-4 { color: var(--indigo-4); }
244
+ .vd-text-indigo-5 { color: var(--indigo-5); }
245
+ .vd-text-indigo-6 { color: var(--indigo-6); }
246
+ .vd-text-indigo-7 { color: var(--indigo-7); }
247
+ .vd-text-indigo-8 { color: var(--indigo-8); }
248
+ .vd-text-indigo-9 { color: var(--indigo-9); }
249
+
250
+ /* ═══════════════════════════════════════════════════════════════════════════
251
+ * VIOLET
252
+ * ═══════════════════════════════════════════════════════════════════════════ */
253
+
254
+ .vd-bg-violet-0 { background-color: var(--violet-0); }
255
+ .vd-bg-violet-1 { background-color: var(--violet-1); }
256
+ .vd-bg-violet-2 { background-color: var(--violet-2); }
257
+ .vd-bg-violet-3 { background-color: var(--violet-3); }
258
+ .vd-bg-violet-4 { background-color: var(--violet-4); }
259
+ .vd-bg-violet-5 { background-color: var(--violet-5); }
260
+ .vd-bg-violet-6 { background-color: var(--violet-6); }
261
+ .vd-bg-violet-7 { background-color: var(--violet-7); }
262
+ .vd-bg-violet-8 { background-color: var(--violet-8); }
263
+ .vd-bg-violet-9 { background-color: var(--violet-9); }
264
+
265
+ .vd-text-violet-0 { color: var(--violet-0); }
266
+ .vd-text-violet-1 { color: var(--violet-1); }
267
+ .vd-text-violet-2 { color: var(--violet-2); }
268
+ .vd-text-violet-3 { color: var(--violet-3); }
269
+ .vd-text-violet-4 { color: var(--violet-4); }
270
+ .vd-text-violet-5 { color: var(--violet-5); }
271
+ .vd-text-violet-6 { color: var(--violet-6); }
272
+ .vd-text-violet-7 { color: var(--violet-7); }
273
+ .vd-text-violet-8 { color: var(--violet-8); }
274
+ .vd-text-violet-9 { color: var(--violet-9); }
275
+
276
+ /* ═══════════════════════════════════════════════════════════════════════════
277
+ * GRAPE
278
+ * ═══════════════════════════════════════════════════════════════════════════ */
279
+
280
+ .vd-bg-grape-0 { background-color: var(--grape-0); }
281
+ .vd-bg-grape-1 { background-color: var(--grape-1); }
282
+ .vd-bg-grape-2 { background-color: var(--grape-2); }
283
+ .vd-bg-grape-3 { background-color: var(--grape-3); }
284
+ .vd-bg-grape-4 { background-color: var(--grape-4); }
285
+ .vd-bg-grape-5 { background-color: var(--grape-5); }
286
+ .vd-bg-grape-6 { background-color: var(--grape-6); }
287
+ .vd-bg-grape-7 { background-color: var(--grape-7); }
288
+ .vd-bg-grape-8 { background-color: var(--grape-8); }
289
+ .vd-bg-grape-9 { background-color: var(--grape-9); }
290
+
291
+ .vd-text-grape-0 { color: var(--grape-0); }
292
+ .vd-text-grape-1 { color: var(--grape-1); }
293
+ .vd-text-grape-2 { color: var(--grape-2); }
294
+ .vd-text-grape-3 { color: var(--grape-3); }
295
+ .vd-text-grape-4 { color: var(--grape-4); }
296
+ .vd-text-grape-5 { color: var(--grape-5); }
297
+ .vd-text-grape-6 { color: var(--grape-6); }
298
+ .vd-text-grape-7 { color: var(--grape-7); }
299
+ .vd-text-grape-8 { color: var(--grape-8); }
300
+ .vd-text-grape-9 { color: var(--grape-9); }
301
+
302
+ /* ═══════════════════════════════════════════════════════════════════════════
303
+ * PINK
304
+ * ═══════════════════════════════════════════════════════════════════════════ */
305
+
306
+ .vd-bg-pink-0 { background-color: var(--pink-0); }
307
+ .vd-bg-pink-1 { background-color: var(--pink-1); }
308
+ .vd-bg-pink-2 { background-color: var(--pink-2); }
309
+ .vd-bg-pink-3 { background-color: var(--pink-3); }
310
+ .vd-bg-pink-4 { background-color: var(--pink-4); }
311
+ .vd-bg-pink-5 { background-color: var(--pink-5); }
312
+ .vd-bg-pink-6 { background-color: var(--pink-6); }
313
+ .vd-bg-pink-7 { background-color: var(--pink-7); }
314
+ .vd-bg-pink-8 { background-color: var(--pink-8); }
315
+ .vd-bg-pink-9 { background-color: var(--pink-9); }
316
+
317
+ .vd-text-pink-0 { color: var(--pink-0); }
318
+ .vd-text-pink-1 { color: var(--pink-1); }
319
+ .vd-text-pink-2 { color: var(--pink-2); }
320
+ .vd-text-pink-3 { color: var(--pink-3); }
321
+ .vd-text-pink-4 { color: var(--pink-4); }
322
+ .vd-text-pink-5 { color: var(--pink-5); }
323
+ .vd-text-pink-6 { color: var(--pink-6); }
324
+ .vd-text-pink-7 { color: var(--pink-7); }
325
+ .vd-text-pink-8 { color: var(--pink-8); }
326
+ .vd-text-pink-9 { color: var(--pink-9); }
327
+
328
+ /* ═══════════════════════════════════════════════════════════════════════════
329
+ * GRAY
330
+ * ═══════════════════════════════════════════════════════════════════════════ */
331
+
332
+ .vd-bg-gray-0 { background-color: var(--gray-0); }
333
+ .vd-bg-gray-1 { background-color: var(--gray-1); }
334
+ .vd-bg-gray-2 { background-color: var(--gray-2); }
335
+ .vd-bg-gray-3 { background-color: var(--gray-3); }
336
+ .vd-bg-gray-4 { background-color: var(--gray-4); }
337
+ .vd-bg-gray-5 { background-color: var(--gray-5); }
338
+ .vd-bg-gray-6 { background-color: var(--gray-6); }
339
+ .vd-bg-gray-7 { background-color: var(--gray-7); }
340
+ .vd-bg-gray-8 { background-color: var(--gray-8); }
341
+ .vd-bg-gray-9 { background-color: var(--gray-9); }
342
+
343
+ .vd-text-gray-0 { color: var(--gray-0); }
344
+ .vd-text-gray-1 { color: var(--gray-1); }
345
+ .vd-text-gray-2 { color: var(--gray-2); }
346
+ .vd-text-gray-3 { color: var(--gray-3); }
347
+ .vd-text-gray-4 { color: var(--gray-4); }
348
+ .vd-text-gray-5 { color: var(--gray-5); }
349
+ .vd-text-gray-6 { color: var(--gray-6); }
350
+ .vd-text-gray-7 { color: var(--gray-7); }
351
+ .vd-text-gray-8 { color: var(--gray-8); }
352
+ .vd-text-gray-9 { color: var(--gray-9); }
@@ -37,7 +37,7 @@
37
37
  .table th,
38
38
  .table td {
39
39
  padding: var(--table-padding-y) var(--table-padding-x);
40
- vertical-align: top;
40
+ vertical-align: middle;
41
41
  border-top: 1px solid var(--table-border-color);
42
42
  }
43
43
 
@@ -217,6 +217,7 @@ tfoot {
217
217
 
218
218
  /* Responsive Breakpoints */
219
219
  @media (max-width: 575.98px) {
220
+
220
221
  .vd-table-responsive-sm,
221
222
  .table-responsive-sm {
222
223
  display: block;
@@ -233,6 +234,7 @@ tfoot {
233
234
  }
234
235
 
235
236
  @media (max-width: 767.98px) {
237
+
236
238
  .vd-table-responsive-md,
237
239
  .table-responsive-md {
238
240
  display: block;
@@ -249,6 +251,7 @@ tfoot {
249
251
  }
250
252
 
251
253
  @media (max-width: 991.98px) {
254
+
252
255
  .vd-table-responsive-lg,
253
256
  .table-responsive-lg {
254
257
  display: block;
@@ -265,6 +268,7 @@ tfoot {
265
268
  }
266
269
 
267
270
  @media (max-width: 1199.98px) {
271
+
268
272
  .vd-table-responsive-xl,
269
273
  .table-responsive-xl {
270
274
  display: block;
@@ -345,6 +349,7 @@ tfoot {
345
349
 
346
350
  /* Dark mode support for system preference */
347
351
  @media (prefers-color-scheme: dark) {
352
+
348
353
  :root:not([data-theme]) .vd-table,
349
354
  :root:not([data-theme]) .table {
350
355
  --table-bg: var(--bg-primary);
@@ -378,4 +383,4 @@ tfoot {
378
383
  :root:not([data-theme]) thead {
379
384
  background-color: var(--bg-secondary);
380
385
  }
381
- }
386
+ }
package/css/vanduo.css CHANGED
@@ -70,6 +70,9 @@
70
70
  @import url('utilities/media.css');
71
71
  @import url('utilities/table.css');
72
72
 
73
+ /* Utilities - Color palette (per-hue bg/text classes) */
74
+ @import url('utilities/color-utilities.css');
75
+
73
76
  /* Effects - Phase 7 */
74
77
  @import url('effects/parallax.css');
75
78
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "1.2.4",
3
- "builtAt": "2026-03-04T19:15:26.258Z",
4
- "commit": "a524dfc",
2
+ "version": "1.2.6",
3
+ "builtAt": "2026-03-11T06:15:19.191Z",
4
+ "commit": "3283a0d",
5
5
  "mode": "development+production"
6
6
  }
@@ -1,4 +1,4 @@
1
- /*! Vanduo v1.2.4 | Built: 2026-03-04T19:15:26.258Z | git:a524dfc | development */
1
+ /*! Vanduo v1.2.6 | Built: 2026-03-11T06:15:19.191Z | git:3283a0d | development */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -132,7 +132,7 @@ module.exports = __toCommonJS(index_exports);
132
132
  // js/vanduo.js
133
133
  (function() {
134
134
  "use strict";
135
- const VANDUO_VERSION = true ? "1.2.4" : "0.0.0-dev";
135
+ const VANDUO_VERSION = true ? "1.2.6" : "0.0.0-dev";
136
136
  const Vanduo2 = {
137
137
  version: VANDUO_VERSION,
138
138
  components: {},
@@ -4037,12 +4037,6 @@ module.exports = __toCommonJS(index_exports);
4037
4037
  this.updateUI();
4038
4038
  });
4039
4039
  }
4040
- this.elements.panel.querySelectorAll("[data-mode]").forEach((btn) => {
4041
- this.addListener(btn, "click", () => {
4042
- this.applyTheme(btn.dataset.mode);
4043
- this.updateUI();
4044
- });
4045
- });
4046
4040
  const resetBtn = this.elements.panel.querySelector(".customizer-reset");
4047
4041
  if (resetBtn) {
4048
4042
  this.addListener(resetBtn, "click", () => {
@@ -4093,15 +4087,6 @@ module.exports = __toCommonJS(index_exports);
4093
4087
  for (const [key, value] of Object.entries(this.FONT_OPTIONS)) {
4094
4088
  fontOptions += `<option value="${esc(key)}"${key === this.state.font ? " selected" : ""}>${esc(value.name)}</option>`;
4095
4089
  }
4096
- const modeIcons = {
4097
- "system": "ph-desktop",
4098
- "dark": "ph-moon",
4099
- "light": "ph-sun"
4100
- };
4101
- let modeButtons = "";
4102
- this.THEME_MODES.forEach((mode) => {
4103
- modeButtons += `<button class="tc-mode-btn${mode === this.state.theme ? " is-active" : ""}" data-mode="${mode}"><i class="ph ${modeIcons[mode]}"></i><span>${mode.charAt(0).toUpperCase() + mode.slice(1)}</span></button>`;
4104
- });
4105
4090
  return `
4106
4091
  <div class="tc-header">
4107
4092
  <h3 class="tc-title">Customize Theme</h3>
@@ -4110,12 +4095,7 @@ module.exports = __toCommonJS(index_exports);
4110
4095
  </button>
4111
4096
  </div>
4112
4097
  <div class="tc-body">
4113
- <div class="tc-section">
4114
- <label class="tc-label">Color Mode</label>
4115
- <div class="tc-mode-group">
4116
- ${modeButtons}
4117
- </div>
4118
- </div>
4098
+
4119
4099
  <div class="tc-section">
4120
4100
  <label class="tc-label">Primary Color</label>
4121
4101
  <div class="tc-color-grid">
@@ -4251,9 +4231,6 @@ module.exports = __toCommonJS(index_exports);
4251
4231
  if (fontSelect) {
4252
4232
  fontSelect.value = this.state.font;
4253
4233
  }
4254
- this.elements.panel.querySelectorAll("[data-mode]").forEach((btn) => {
4255
- btn.classList.toggle("is-active", btn.dataset.mode === this.state.theme);
4256
- });
4257
4234
  },
4258
4235
  /**
4259
4236
  * Reset all preferences to defaults