@vanduo-oss/framework 1.5.1 → 1.7.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 (58) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/README.md +25 -154
  3. package/SKILL.md +58 -0
  4. package/css/components/accordion.css +80 -0
  5. package/css/components/alerts.css +65 -0
  6. package/css/components/avatar.css +2 -1
  7. package/css/components/badges.css +2 -1
  8. package/css/components/buttons.css +44 -0
  9. package/css/components/cards.css +26 -0
  10. package/css/components/code-snippet.css +23 -0
  11. package/css/components/collections.css +21 -1
  12. package/css/components/flow.css +20 -0
  13. package/css/components/forms.css +12 -1
  14. package/css/components/modals.css +69 -0
  15. package/css/components/navbar.css +11 -0
  16. package/css/components/popover.css +97 -0
  17. package/css/components/preloader.css +31 -0
  18. package/css/components/progress.css +46 -0
  19. package/css/components/separator.css +50 -0
  20. package/css/components/skeleton.css +42 -0
  21. package/css/components/slider.css +92 -0
  22. package/css/components/tabs.css +46 -0
  23. package/css/components/theme-customizer.css +53 -0
  24. package/css/core/colors-fib-base.css +524 -0
  25. package/css/core/colors-palette.css +786 -0
  26. package/css/core/colors.css +54 -46
  27. package/css/core/helpers.css +17 -0
  28. package/css/core/tokens.css +19 -19
  29. package/css/utilities/table.css +9 -0
  30. package/css/vanduo.css +11 -1
  31. package/dist/build-info.json +3 -3
  32. package/dist/vanduo-core.css +2147 -93
  33. package/dist/vanduo-core.css.map +1 -1
  34. package/dist/vanduo-core.min.css +2 -2
  35. package/dist/vanduo-core.min.css.map +1 -1
  36. package/dist/vanduo.cjs.js +387 -6
  37. package/dist/vanduo.cjs.js.map +3 -3
  38. package/dist/vanduo.cjs.min.js +16 -10
  39. package/dist/vanduo.cjs.min.js.map +4 -4
  40. package/dist/vanduo.css +2147 -93
  41. package/dist/vanduo.css.map +1 -1
  42. package/dist/vanduo.esm.js +387 -6
  43. package/dist/vanduo.esm.js.map +3 -3
  44. package/dist/vanduo.esm.min.js +16 -10
  45. package/dist/vanduo.esm.min.js.map +4 -4
  46. package/dist/vanduo.js +387 -6
  47. package/dist/vanduo.js.map +3 -3
  48. package/dist/vanduo.min.css +2 -2
  49. package/dist/vanduo.min.css.map +1 -1
  50. package/dist/vanduo.min.js +16 -10
  51. package/dist/vanduo.min.js.map +4 -4
  52. package/js/components/doc-search.js +9 -4
  53. package/js/components/popover.js +295 -0
  54. package/js/components/search.js +108 -0
  55. package/js/components/theme-customizer.js +54 -1
  56. package/js/index.js +2 -0
  57. package/js/utils/helpers.js +12 -4
  58. package/package.json +8 -4
@@ -1,15 +1,22 @@
1
1
  /**
2
2
  * Vanduo Framework - Color System
3
3
  *
4
- * Color palette based on Open Color (https://yeun.github.io/open-color/)
5
- * Open Color is MIT licensed, Copyright (c) 2016 Heeyeun Jeong
4
+ * Palette system: the DEFAULT palette is Fibonacci (golden-angle generated);
5
+ * Open Color is an opt-in alternative via [data-palette="open-color"]. The raw,
6
+ * namespaced scales for both palettes live in colors-fib-base.css, and the
7
+ * active scales + runtime switch live in colors-palette.css (both generated by
8
+ * @vanduo-oss/core). The literal values below are the legacy Open Color scales;
9
+ * colors-palette.css rebinds the active --vd-<family>-<step> scales on top.
10
+ *
11
+ * Open Color (https://yeun.github.io/open-color/) is MIT licensed,
12
+ * Copyright (c) 2016 Heeyeun Jeong.
6
13
  *
7
14
  * @license MIT
8
15
  */
9
16
 
10
17
  :root {
11
18
  /* ═══════════════════════════════════════════════════════════════════════
12
- * OPEN COLOR PALETTE
19
+ * OPEN COLOR PALETTE (legacy literals; rebound by colors-palette.css)
13
20
  * ═══════════════════════════════════════════════════════════════════════ */
14
21
 
15
22
  /* --- NEUTRALS: Gray Scale (Open Color Gray 0-9) ---
@@ -452,19 +459,20 @@
452
459
  --vd-border-color-light: var(--vd-gray-2);
453
460
  --vd-border-color-dark: var(--vd-gray-4);
454
461
 
455
- /* Alpha Colors (for hover/active states) - indigo */
456
- --vd-color-primary-alpha-10: rgba(92, 124, 250, 0.1);
457
- --vd-color-primary-alpha-20: rgba(92, 124, 250, 0.2);
458
- --vd-color-secondary-alpha-10: rgba(32, 201, 151, 0.1);
459
- --vd-color-secondary-alpha-20: rgba(32, 201, 151, 0.2);
460
- --vd-color-success-alpha-10: rgba(64, 192, 87, 0.1);
461
- --vd-color-success-alpha-20: rgba(64, 192, 87, 0.2);
462
- --vd-color-error-alpha-10: rgba(250, 82, 82, 0.1);
463
- --vd-color-error-alpha-20: rgba(250, 82, 82, 0.2);
464
- --vd-color-warning-alpha-10: rgba(250, 176, 5, 0.1);
465
- --vd-color-warning-alpha-20: rgba(250, 176, 5, 0.2);
466
- --vd-color-info-alpha-10: rgba(34, 139, 230, 0.1);
467
- --vd-color-info-alpha-20: rgba(34, 139, 230, 0.2);
462
+ /* Alpha Colors (for hover/active states) — palette-agnostic via color-mix
463
+ * so they track whichever palette / data-primary is active. */
464
+ --vd-color-primary-alpha-10: color-mix(in srgb, var(--vd-color-primary) 10%, transparent);
465
+ --vd-color-primary-alpha-20: color-mix(in srgb, var(--vd-color-primary) 20%, transparent);
466
+ --vd-color-secondary-alpha-10: color-mix(in srgb, var(--vd-color-secondary) 10%, transparent);
467
+ --vd-color-secondary-alpha-20: color-mix(in srgb, var(--vd-color-secondary) 20%, transparent);
468
+ --vd-color-success-alpha-10: color-mix(in srgb, var(--vd-color-success) 10%, transparent);
469
+ --vd-color-success-alpha-20: color-mix(in srgb, var(--vd-color-success) 20%, transparent);
470
+ --vd-color-error-alpha-10: color-mix(in srgb, var(--vd-color-error) 10%, transparent);
471
+ --vd-color-error-alpha-20: color-mix(in srgb, var(--vd-color-error) 20%, transparent);
472
+ --vd-color-warning-alpha-10: color-mix(in srgb, var(--vd-color-warning) 10%, transparent);
473
+ --vd-color-warning-alpha-20: color-mix(in srgb, var(--vd-color-warning) 20%, transparent);
474
+ --vd-color-info-alpha-10: color-mix(in srgb, var(--vd-color-info) 10%, transparent);
475
+ --vd-color-info-alpha-20: color-mix(in srgb, var(--vd-color-info) 20%, transparent);
468
476
  }
469
477
 
470
478
  /* ═════════════════════════════════════════════════════════════════════════
@@ -653,9 +661,9 @@
653
661
  --vd-color-secondary: var(--vd-secondary-4);
654
662
  --vd-color-secondary-hover: var(--vd-secondary-5);
655
663
 
656
- /* Alpha Colors for Dark Mode - indigo */
657
- --vd-color-primary-alpha-10: rgba(116, 143, 252, 0.15);
658
- --vd-color-primary-alpha-20: rgba(116, 143, 252, 0.25);
664
+ /* Alpha Colors for Dark Mode — palette-agnostic */
665
+ --vd-color-primary-alpha-10: color-mix(in srgb, var(--vd-color-primary) 15%, transparent);
666
+ --vd-color-primary-alpha-20: color-mix(in srgb, var(--vd-color-primary) 25%, transparent);
659
667
  }
660
668
 
661
669
  @media (prefers-color-scheme: dark) {
@@ -690,9 +698,9 @@
690
698
  --vd-color-secondary: var(--vd-secondary-4);
691
699
  --vd-color-secondary-hover: var(--vd-secondary-5);
692
700
 
693
- /* Alpha Colors for Dark Mode - indigo */
694
- --vd-color-primary-alpha-10: rgba(116, 143, 252, 0.15);
695
- --vd-color-primary-alpha-20: rgba(116, 143, 252, 0.25);
701
+ /* Alpha Colors for Dark Mode — palette-agnostic */
702
+ --vd-color-primary-alpha-10: color-mix(in srgb, var(--vd-color-primary) 15%, transparent);
703
+ --vd-color-primary-alpha-20: color-mix(in srgb, var(--vd-color-primary) 25%, transparent);
696
704
  }
697
705
  }
698
706
 
@@ -702,7 +710,7 @@
702
710
  * ═════════════════════════════════════════════════════════════════════════ */
703
711
 
704
712
  /* Red Primary */
705
- [data-primary="red"] {
713
+ html[data-primary="red"] {
706
714
  --vd-primary-0: var(--vd-red-0);
707
715
  --vd-primary-1: var(--vd-red-1);
708
716
  --vd-primary-2: var(--vd-red-2);
@@ -716,7 +724,7 @@
716
724
  }
717
725
 
718
726
  /* Orange Primary */
719
- [data-primary="orange"] {
727
+ html[data-primary="orange"] {
720
728
  --vd-primary-0: var(--vd-orange-0);
721
729
  --vd-primary-1: var(--vd-orange-1);
722
730
  --vd-primary-2: var(--vd-orange-2);
@@ -730,7 +738,7 @@
730
738
  }
731
739
 
732
740
  /* Amber Primary (using yellow with warmer tones) */
733
- [data-primary="amber"] {
741
+ html[data-primary="amber"] {
734
742
  --vd-primary-0: #fffbeb;
735
743
  --vd-primary-1: #fef3c7;
736
744
  --vd-primary-2: #fde68a;
@@ -744,7 +752,7 @@
744
752
  }
745
753
 
746
754
  /* Yellow Primary */
747
- [data-primary="yellow"] {
755
+ html[data-primary="yellow"] {
748
756
  --vd-primary-0: var(--vd-yellow-0);
749
757
  --vd-primary-1: var(--vd-yellow-1);
750
758
  --vd-primary-2: var(--vd-yellow-2);
@@ -758,7 +766,7 @@
758
766
  }
759
767
 
760
768
  /* Lime Primary */
761
- [data-primary="lime"] {
769
+ html[data-primary="lime"] {
762
770
  --vd-primary-0: var(--vd-lime-0);
763
771
  --vd-primary-1: var(--vd-lime-1);
764
772
  --vd-primary-2: var(--vd-lime-2);
@@ -772,7 +780,7 @@
772
780
  }
773
781
 
774
782
  /* Green Primary */
775
- [data-primary="green"] {
783
+ html[data-primary="green"] {
776
784
  --vd-primary-0: var(--vd-green-0);
777
785
  --vd-primary-1: var(--vd-green-1);
778
786
  --vd-primary-2: var(--vd-green-2);
@@ -786,7 +794,7 @@
786
794
  }
787
795
 
788
796
  /* Emerald Primary (slightly different green) */
789
- [data-primary="emerald"] {
797
+ html[data-primary="emerald"] {
790
798
  --vd-primary-0: #ecfdf5;
791
799
  --vd-primary-1: #d1fae5;
792
800
  --vd-primary-2: #a7f3d0;
@@ -800,7 +808,7 @@
800
808
  }
801
809
 
802
810
  /* Teal Primary */
803
- [data-primary="teal"] {
811
+ html[data-primary="teal"] {
804
812
  --vd-primary-0: var(--vd-teal-0);
805
813
  --vd-primary-1: var(--vd-teal-1);
806
814
  --vd-primary-2: var(--vd-teal-2);
@@ -814,7 +822,7 @@
814
822
  }
815
823
 
816
824
  /* Cyan Primary (default - no override needed, but included for completeness) */
817
- [data-primary="cyan"] {
825
+ html[data-primary="cyan"] {
818
826
  --vd-primary-0: var(--vd-cyan-0);
819
827
  --vd-primary-1: var(--vd-cyan-1);
820
828
  --vd-primary-2: var(--vd-cyan-2);
@@ -828,7 +836,7 @@
828
836
  }
829
837
 
830
838
  /* Sky Primary */
831
- [data-primary="sky"] {
839
+ html[data-primary="sky"] {
832
840
  --vd-primary-0: #f0f9ff;
833
841
  --vd-primary-1: #e0f2fe;
834
842
  --vd-primary-2: #bae6fd;
@@ -842,7 +850,7 @@
842
850
  }
843
851
 
844
852
  /* Blue Primary */
845
- [data-primary="blue"] {
853
+ html[data-primary="blue"] {
846
854
  --vd-primary-0: var(--vd-blue-0);
847
855
  --vd-primary-1: var(--vd-blue-1);
848
856
  --vd-primary-2: var(--vd-blue-2);
@@ -856,7 +864,7 @@
856
864
  }
857
865
 
858
866
  /* Indigo Primary */
859
- [data-primary="indigo"] {
867
+ html[data-primary="indigo"] {
860
868
  --vd-primary-0: var(--vd-indigo-0);
861
869
  --vd-primary-1: var(--vd-indigo-1);
862
870
  --vd-primary-2: var(--vd-indigo-2);
@@ -870,7 +878,7 @@
870
878
  }
871
879
 
872
880
  /* Violet Primary */
873
- [data-primary="violet"] {
881
+ html[data-primary="violet"] {
874
882
  --vd-primary-0: var(--vd-violet-0);
875
883
  --vd-primary-1: var(--vd-violet-1);
876
884
  --vd-primary-2: var(--vd-violet-2);
@@ -884,7 +892,7 @@
884
892
  }
885
893
 
886
894
  /* Purple Primary (using grape) */
887
- [data-primary="purple"] {
895
+ html[data-primary="purple"] {
888
896
  --vd-primary-0: var(--vd-grape-0);
889
897
  --vd-primary-1: var(--vd-grape-1);
890
898
  --vd-primary-2: var(--vd-grape-2);
@@ -898,7 +906,7 @@
898
906
  }
899
907
 
900
908
  /* Fuchsia Primary */
901
- [data-primary="fuchsia"] {
909
+ html[data-primary="fuchsia"] {
902
910
  --vd-primary-0: #fdf4ff;
903
911
  --vd-primary-1: #fae8ff;
904
912
  --vd-primary-2: #f5d0fe;
@@ -912,7 +920,7 @@
912
920
  }
913
921
 
914
922
  /* Pink Primary */
915
- [data-primary="pink"] {
923
+ html[data-primary="pink"] {
916
924
  --vd-primary-0: var(--vd-pink-0);
917
925
  --vd-primary-1: var(--vd-pink-1);
918
926
  --vd-primary-2: var(--vd-pink-2);
@@ -926,7 +934,7 @@
926
934
  }
927
935
 
928
936
  /* Rose Primary */
929
- [data-primary="rose"] {
937
+ html[data-primary="rose"] {
930
938
  --vd-primary-0: #fff1f2;
931
939
  --vd-primary-1: #ffe4e6;
932
940
  --vd-primary-2: #fecdd3;
@@ -940,7 +948,7 @@
940
948
  }
941
949
 
942
950
  /* Black Primary (grayscale) */
943
- [data-primary="black"] {
951
+ html[data-primary="black"] {
944
952
  --vd-primary-0: #fafafa;
945
953
  --vd-primary-1: #f5f5f5;
946
954
  --vd-primary-2: #e5e5e5;
@@ -959,7 +967,7 @@
959
967
  * ═════════════════════════════════════════════════════════════════════════ */
960
968
 
961
969
  /* Charcoal Neutral (default) */
962
- [data-neutral="charcoal"] {
970
+ html[data-neutral="charcoal"] {
963
971
  --vd-gray-0: var(--vd-charcoal-0);
964
972
  --vd-gray-1: var(--vd-charcoal-1);
965
973
  --vd-gray-2: var(--vd-charcoal-2);
@@ -973,7 +981,7 @@
973
981
  }
974
982
 
975
983
  /* Gray Neutral */
976
- [data-neutral="gray"] {
984
+ html[data-neutral="gray"] {
977
985
  --vd-gray-0: #f8f9fa;
978
986
  --vd-gray-1: #f1f3f5;
979
987
  --vd-gray-2: #e9ecef;
@@ -987,7 +995,7 @@
987
995
  }
988
996
 
989
997
  /* Slate Neutral */
990
- [data-neutral="slate"] {
998
+ html[data-neutral="slate"] {
991
999
  --vd-gray-0: var(--vd-slate-0);
992
1000
  --vd-gray-1: var(--vd-slate-1);
993
1001
  --vd-gray-2: var(--vd-slate-2);
@@ -1001,7 +1009,7 @@
1001
1009
  }
1002
1010
 
1003
1011
  /* Zinc Neutral */
1004
- [data-neutral="zinc"] {
1012
+ html[data-neutral="zinc"] {
1005
1013
  --vd-gray-0: var(--vd-zinc-0);
1006
1014
  --vd-gray-1: var(--vd-zinc-1);
1007
1015
  --vd-gray-2: var(--vd-zinc-2);
@@ -1015,7 +1023,7 @@
1015
1023
  }
1016
1024
 
1017
1025
  /* Neutral (true neutral) */
1018
- [data-neutral="neutral"] {
1026
+ html[data-neutral="neutral"] {
1019
1027
  --vd-gray-0: var(--vd-neutral-0);
1020
1028
  --vd-gray-1: var(--vd-neutral-1);
1021
1029
  --vd-gray-2: var(--vd-neutral-2);
@@ -1029,7 +1037,7 @@
1029
1037
  }
1030
1038
 
1031
1039
  /* Stone Neutral */
1032
- [data-neutral="stone"] {
1040
+ html[data-neutral="stone"] {
1033
1041
  --vd-gray-0: var(--vd-stone-0);
1034
1042
  --vd-gray-1: var(--vd-stone-1);
1035
1043
  --vd-gray-2: var(--vd-stone-2);
@@ -2203,3 +2203,20 @@
2203
2203
  --vd-radius-fib-13: 1.625rem; /* 26px */
2204
2204
  --vd-radius-fib-21: 2.625rem; /* 42px */
2205
2205
  }
2206
+
2207
+ /* Muted text + visually-hidden utilities (added in 1.6.1; used by @vanduo-oss/vue) */
2208
+ .vd-muted {
2209
+ color: var(--vd-text-muted);
2210
+ }
2211
+
2212
+ .vd-visually-hidden {
2213
+ position: absolute !important;
2214
+ width: 1px;
2215
+ height: 1px;
2216
+ padding: 0;
2217
+ margin: -1px;
2218
+ overflow: hidden;
2219
+ clip: rect(0, 0, 0, 0);
2220
+ white-space: nowrap;
2221
+ border: 0;
2222
+ }
@@ -17,14 +17,14 @@
17
17
  --vd-color-primary-hover: var(--vd-primary-6);
18
18
  --vd-color-primary-active: var(--vd-primary-7);
19
19
  --vd-color-primary-rgb: 92, 124, 250;
20
- --vd-color-primary-alpha-5: rgba(92, 124, 250, 0.05);
21
- --vd-color-primary-alpha-08: rgba(92, 124, 250, 0.08);
22
- --vd-color-primary-alpha-10: rgba(92, 124, 250, 0.1);
23
- --vd-color-primary-alpha-15: rgba(92, 124, 250, 0.15);
24
- --vd-color-primary-alpha-20: rgba(92, 124, 250, 0.2);
25
- --vd-color-primary-alpha-30: rgba(92, 124, 250, 0.3);
26
- --vd-color-primary-alpha-40: rgba(92, 124, 250, 0.4);
27
- --vd-color-primary-alpha-50: rgba(92, 124, 250, 0.5);
20
+ --vd-color-primary-alpha-5: color-mix(in srgb, var(--vd-color-primary) 5%, transparent);
21
+ --vd-color-primary-alpha-08: color-mix(in srgb, var(--vd-color-primary) 8%, transparent);
22
+ --vd-color-primary-alpha-10: color-mix(in srgb, var(--vd-color-primary) 10%, transparent);
23
+ --vd-color-primary-alpha-15: color-mix(in srgb, var(--vd-color-primary) 15%, transparent);
24
+ --vd-color-primary-alpha-20: color-mix(in srgb, var(--vd-color-primary) 20%, transparent);
25
+ --vd-color-primary-alpha-30: color-mix(in srgb, var(--vd-color-primary) 30%, transparent);
26
+ --vd-color-primary-alpha-40: color-mix(in srgb, var(--vd-color-primary) 40%, transparent);
27
+ --vd-color-primary-alpha-50: color-mix(in srgb, var(--vd-color-primary) 50%, transparent);
28
28
 
29
29
  /* Secondary Colors */
30
30
  --vd-color-secondary: var(--vd-secondary-5);
@@ -32,8 +32,8 @@
32
32
  --vd-color-secondary-dark: var(--vd-secondary-7);
33
33
  --vd-color-secondary-hover: var(--vd-secondary-6);
34
34
  --vd-color-secondary-active: var(--vd-secondary-7);
35
- --vd-color-secondary-alpha-10: rgba(32, 201, 151, 0.1);
36
- --vd-color-secondary-alpha-20: rgba(32, 201, 151, 0.2);
35
+ --vd-color-secondary-alpha-10: color-mix(in srgb, var(--vd-color-secondary) 10%, transparent);
36
+ --vd-color-secondary-alpha-20: color-mix(in srgb, var(--vd-color-secondary) 20%, transparent);
37
37
 
38
38
  /* Accent */
39
39
  --vd-color-accent: var(--vd-color-primary);
@@ -47,8 +47,8 @@
47
47
  --vd-color-success-hover: var(--vd-success-7);
48
48
  --vd-color-success-active: var(--vd-success-8);
49
49
  --vd-color-success-rgb: 64, 192, 87;
50
- --vd-color-success-alpha-10: rgba(64, 192, 87, 0.1);
51
- --vd-color-success-alpha-20: rgba(64, 192, 87, 0.2);
50
+ --vd-color-success-alpha-10: color-mix(in srgb, var(--vd-color-success) 10%, transparent);
51
+ --vd-color-success-alpha-20: color-mix(in srgb, var(--vd-color-success) 20%, transparent);
52
52
 
53
53
  --vd-color-warning: var(--vd-warning-6);
54
54
  --vd-color-warning-light: var(--vd-warning-4);
@@ -56,9 +56,9 @@
56
56
  --vd-color-warning-hover: var(--vd-warning-7);
57
57
  --vd-color-warning-active: var(--vd-warning-8);
58
58
  --vd-color-warning-rgb: 250, 176, 5;
59
- --vd-color-warning-alpha-10: rgba(250, 176, 5, 0.1);
60
- --vd-color-warning-alpha-20: rgba(250, 176, 5, 0.2);
61
- --vd-color-warning-alpha-30: rgba(250, 176, 5, 0.3);
59
+ --vd-color-warning-alpha-10: color-mix(in srgb, var(--vd-color-warning) 10%, transparent);
60
+ --vd-color-warning-alpha-20: color-mix(in srgb, var(--vd-color-warning) 20%, transparent);
61
+ --vd-color-warning-alpha-30: color-mix(in srgb, var(--vd-color-warning) 30%, transparent);
62
62
 
63
63
  --vd-color-error: var(--vd-danger-6);
64
64
  --vd-color-error-light: var(--vd-danger-4);
@@ -66,8 +66,8 @@
66
66
  --vd-color-error-hover: var(--vd-danger-7);
67
67
  --vd-color-error-active: var(--vd-danger-8);
68
68
  --vd-color-error-rgb: 250, 82, 82;
69
- --vd-color-error-alpha-10: rgba(250, 82, 82, 0.1);
70
- --vd-color-error-alpha-20: rgba(250, 82, 82, 0.2);
69
+ --vd-color-error-alpha-10: color-mix(in srgb, var(--vd-color-error) 10%, transparent);
70
+ --vd-color-error-alpha-20: color-mix(in srgb, var(--vd-color-error) 20%, transparent);
71
71
 
72
72
  --vd-color-danger: var(--vd-color-error);
73
73
  --vd-color-danger-light: var(--vd-color-error-light);
@@ -83,8 +83,8 @@
83
83
  --vd-color-info-hover: var(--vd-info-7);
84
84
  --vd-color-info-active: var(--vd-info-8);
85
85
  --vd-color-info-rgb: 34, 139, 230;
86
- --vd-color-info-alpha-10: rgba(34, 139, 230, 0.1);
87
- --vd-color-info-alpha-20: rgba(34, 139, 230, 0.2);
86
+ --vd-color-info-alpha-10: color-mix(in srgb, var(--vd-color-info) 10%, transparent);
87
+ --vd-color-info-alpha-20: color-mix(in srgb, var(--vd-color-info) 20%, transparent);
88
88
 
89
89
  /* Neutral Colors (Open Color) */
90
90
  --vd-color-white: #ffffff;
@@ -32,6 +32,15 @@
32
32
  border-collapse: collapse;
33
33
  }
34
34
 
35
+ /* @vanduo-oss/vue VdTable <caption> (additive; added in 1.6.1) */
36
+ .vd-table-caption {
37
+ padding: var(--vd-table-padding-y) var(--vd-table-padding-x);
38
+ color: var(--vd-text-muted);
39
+ font-size: var(--vd-font-size-sm);
40
+ text-align: left;
41
+ caption-side: top;
42
+ }
43
+
35
44
  .vd-table th,
36
45
  .vd-table td,
37
46
  .table th,
package/css/vanduo.css CHANGED
@@ -6,8 +6,14 @@
6
6
  /* Layer 0: Reset */
7
7
  @import url('core/reset.css');
8
8
 
9
- /* Layer 1: Foundation (vd-prefixed palette and canonical tokens) */
9
+ /* Layer 1: Foundation (vd-prefixed palette and canonical tokens)
10
+ Palette layering (generated by @vanduo-oss/core):
11
+ colors-fib-base.css raw namespaced scales (--vd-oc-* / --vd-fib-*) [before]
12
+ colors.css legacy literals, semantics, theming, hue remaps
13
+ colors-palette.css active scales + [data-palette] switch (Fibonacci default) [after] */
14
+ @import url('core/colors-fib-base.css');
10
15
  @import url('core/colors.css');
16
+ @import url('core/colors-palette.css');
11
17
  @import url('core/fonts.css');
12
18
  @import url('core/typography.css');
13
19
  @import url('core/tokens.css');
@@ -36,6 +42,9 @@
36
42
  @import url('components/buttons.css');
37
43
  @import url('components/forms.css');
38
44
  @import url('components/cards.css');
45
+ @import url('components/accordion.css');
46
+ @import url('components/separator.css');
47
+ @import url('components/slider.css');
39
48
  @import url('components/expanding-cards.css');
40
49
  @import url('components/navbar.css');
41
50
  @import url('components/footer.css');
@@ -66,6 +75,7 @@
66
75
  @import url('components/draggable.css');
67
76
  @import url('components/flow.css');
68
77
  @import url('components/bubble.css');
78
+ @import url('components/popover.css');
69
79
  @import url('components/waypoint.css');
70
80
  @import url('components/ripple.css');
71
81
  @import url('components/fab.css');
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "1.5.1",
3
- "builtAt": "2026-06-20T15:00:18.257Z",
4
- "commit": "baf8178",
2
+ "version": "1.7.0",
3
+ "builtAt": "2026-06-29T06:28:14.462Z",
4
+ "commit": "c12c685",
5
5
  "mode": "development+production"
6
6
  }