vanduo-framework 1.1.8-docs-update

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 (196) hide show
  1. package/LICENSE +35 -0
  2. package/README.md +216 -0
  3. package/css/components/alerts.css +224 -0
  4. package/css/components/avatar.css +275 -0
  5. package/css/components/badges.css +230 -0
  6. package/css/components/breadcrumbs.css +146 -0
  7. package/css/components/button-group.css +82 -0
  8. package/css/components/buttons.css +530 -0
  9. package/css/components/cards.css +304 -0
  10. package/css/components/chips.css +259 -0
  11. package/css/components/code-snippet.css +555 -0
  12. package/css/components/collapsible.css +267 -0
  13. package/css/components/collections.css +253 -0
  14. package/css/components/doc-search.css +464 -0
  15. package/css/components/doc-tabs.css +38 -0
  16. package/css/components/draggable.css +317 -0
  17. package/css/components/dropdown.css +266 -0
  18. package/css/components/footer.css +375 -0
  19. package/css/components/forms.css +1774 -0
  20. package/css/components/image-box.css +279 -0
  21. package/css/components/modals.css +285 -0
  22. package/css/components/navbar.css +530 -0
  23. package/css/components/pagination.css +186 -0
  24. package/css/components/preloader.css +340 -0
  25. package/css/components/progress.css +107 -0
  26. package/css/components/sidenav.css +301 -0
  27. package/css/components/skeleton.css +241 -0
  28. package/css/components/spinner.css +144 -0
  29. package/css/components/tabs.css +327 -0
  30. package/css/components/theme-customizer.css +835 -0
  31. package/css/components/toast.css +357 -0
  32. package/css/components/tooltips.css +270 -0
  33. package/css/core/colors.css +1017 -0
  34. package/css/core/fonts.css +266 -0
  35. package/css/core/grid.css +1699 -0
  36. package/css/core/helpers.css +2202 -0
  37. package/css/core/reset.css +128 -0
  38. package/css/core/tokens.css +213 -0
  39. package/css/core/typography.css +405 -0
  40. package/css/core/vd-aliases.css +47 -0
  41. package/css/effects/parallax.css +113 -0
  42. package/css/icons/icons-all.css +23 -0
  43. package/css/icons/icons.css +25 -0
  44. package/css/utilities/media.css +167 -0
  45. package/css/utilities/print.css +111 -0
  46. package/css/utilities/shadow.css +243 -0
  47. package/css/utilities/table.css +381 -0
  48. package/css/utilities/transforms.css +71 -0
  49. package/css/utilities/transitions.css +87 -0
  50. package/css/vanduo.css +80 -0
  51. package/dist/build-info.json +6 -0
  52. package/dist/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
  53. package/dist/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
  54. package/dist/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
  55. package/dist/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
  56. package/dist/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
  57. package/dist/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
  58. package/dist/fonts/inter/inter-bold.woff2 +0 -0
  59. package/dist/fonts/inter/inter-medium.woff2 +0 -0
  60. package/dist/fonts/inter/inter-regular.woff2 +0 -0
  61. package/dist/fonts/inter/inter-semibold.woff2 +0 -0
  62. package/dist/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
  63. package/dist/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
  64. package/dist/fonts/open-sans/open-sans-bold.woff2 +0 -0
  65. package/dist/fonts/open-sans/open-sans-medium.woff2 +0 -0
  66. package/dist/fonts/open-sans/open-sans-regular.woff2 +0 -0
  67. package/dist/fonts/rubik/rubik-bold.woff2 +0 -0
  68. package/dist/fonts/rubik/rubik-medium.woff2 +0 -0
  69. package/dist/fonts/rubik/rubik-regular.woff2 +0 -0
  70. package/dist/fonts/source-sans/source-sans-bold.woff2 +0 -0
  71. package/dist/fonts/source-sans/source-sans-regular.woff2 +0 -0
  72. package/dist/fonts/source-sans/source-sans-semibold.woff2 +0 -0
  73. package/dist/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
  74. package/dist/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
  75. package/dist/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
  76. package/dist/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
  77. package/dist/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
  78. package/dist/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
  79. package/dist/icons/phosphor/LICENSE +21 -0
  80. package/dist/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  81. package/dist/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  82. package/dist/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  83. package/dist/icons/phosphor/bold/style.css +4627 -0
  84. package/dist/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  85. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  86. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  87. package/dist/icons/phosphor/duotone/style.css +12115 -0
  88. package/dist/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
  89. package/dist/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
  90. package/dist/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
  91. package/dist/icons/phosphor/fill/style.css +4627 -0
  92. package/dist/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  93. package/dist/icons/phosphor/light/Phosphor-Light.woff +0 -0
  94. package/dist/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  95. package/dist/icons/phosphor/light/style.css +4627 -0
  96. package/dist/icons/phosphor/regular/Phosphor.ttf +0 -0
  97. package/dist/icons/phosphor/regular/Phosphor.woff +0 -0
  98. package/dist/icons/phosphor/regular/Phosphor.woff2 +0 -0
  99. package/dist/icons/phosphor/regular/style.css +4627 -0
  100. package/dist/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  101. package/dist/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  102. package/dist/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  103. package/dist/icons/phosphor/thin/style.css +4627 -0
  104. package/dist/vanduo.cjs.js +5569 -0
  105. package/dist/vanduo.cjs.js.map +7 -0
  106. package/dist/vanduo.cjs.min.js +48 -0
  107. package/dist/vanduo.cjs.min.js.map +7 -0
  108. package/dist/vanduo.css +60666 -0
  109. package/dist/vanduo.css.map +1 -0
  110. package/dist/vanduo.esm.js +5548 -0
  111. package/dist/vanduo.esm.js.map +7 -0
  112. package/dist/vanduo.esm.min.js +48 -0
  113. package/dist/vanduo.esm.min.js.map +7 -0
  114. package/dist/vanduo.js +5545 -0
  115. package/dist/vanduo.js.map +7 -0
  116. package/dist/vanduo.min.css +2 -0
  117. package/dist/vanduo.min.css.map +1 -0
  118. package/dist/vanduo.min.js +48 -0
  119. package/dist/vanduo.min.js.map +7 -0
  120. package/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
  121. package/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
  122. package/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
  123. package/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
  124. package/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
  125. package/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
  126. package/fonts/inter/inter-bold.woff2 +0 -0
  127. package/fonts/inter/inter-medium.woff2 +0 -0
  128. package/fonts/inter/inter-regular.woff2 +0 -0
  129. package/fonts/inter/inter-semibold.woff2 +0 -0
  130. package/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
  131. package/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
  132. package/fonts/open-sans/open-sans-bold.woff2 +0 -0
  133. package/fonts/open-sans/open-sans-medium.woff2 +0 -0
  134. package/fonts/open-sans/open-sans-regular.woff2 +0 -0
  135. package/fonts/rubik/rubik-bold.woff2 +0 -0
  136. package/fonts/rubik/rubik-medium.woff2 +0 -0
  137. package/fonts/rubik/rubik-regular.woff2 +0 -0
  138. package/fonts/source-sans/source-sans-bold.woff2 +0 -0
  139. package/fonts/source-sans/source-sans-regular.woff2 +0 -0
  140. package/fonts/source-sans/source-sans-semibold.woff2 +0 -0
  141. package/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
  142. package/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
  143. package/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
  144. package/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
  145. package/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
  146. package/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
  147. package/icons/phosphor/LICENSE +21 -0
  148. package/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  149. package/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  150. package/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  151. package/icons/phosphor/bold/style.css +4627 -0
  152. package/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  153. package/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  154. package/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  155. package/icons/phosphor/duotone/style.css +12115 -0
  156. package/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
  157. package/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
  158. package/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
  159. package/icons/phosphor/fill/style.css +4627 -0
  160. package/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  161. package/icons/phosphor/light/Phosphor-Light.woff +0 -0
  162. package/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  163. package/icons/phosphor/light/style.css +4627 -0
  164. package/icons/phosphor/regular/Phosphor.ttf +0 -0
  165. package/icons/phosphor/regular/Phosphor.woff +0 -0
  166. package/icons/phosphor/regular/Phosphor.woff2 +0 -0
  167. package/icons/phosphor/regular/style.css +4627 -0
  168. package/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  169. package/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  170. package/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  171. package/icons/phosphor/thin/style.css +4627 -0
  172. package/js/components/code-snippet.js +639 -0
  173. package/js/components/collapsible.js +226 -0
  174. package/js/components/doc-search.js +936 -0
  175. package/js/components/draggable.js +725 -0
  176. package/js/components/dropdown.js +362 -0
  177. package/js/components/font-switcher.js +253 -0
  178. package/js/components/grid.js +279 -0
  179. package/js/components/image-box.js +372 -0
  180. package/js/components/modals.js +367 -0
  181. package/js/components/navbar.js +264 -0
  182. package/js/components/pagination.js +286 -0
  183. package/js/components/parallax.js +216 -0
  184. package/js/components/preloader.js +183 -0
  185. package/js/components/select.js +444 -0
  186. package/js/components/sidenav.js +303 -0
  187. package/js/components/tabs.js +303 -0
  188. package/js/components/theme-customizer.js +784 -0
  189. package/js/components/theme-switcher.js +183 -0
  190. package/js/components/toast.js +343 -0
  191. package/js/components/tooltips.js +306 -0
  192. package/js/index.js +52 -0
  193. package/js/utils/helpers.js +306 -0
  194. package/js/utils/lifecycle.js +135 -0
  195. package/js/vanduo.js +120 -0
  196. package/package.json +78 -0
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Vanduo Framework - CSS Reset
3
+ * Modern CSS reset for consistent cross-browser styling
4
+ */
5
+
6
+ /* Box sizing rules */
7
+ *,
8
+ *::before,
9
+ *::after {
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ /* Remove default margin and padding */
14
+ * {
15
+ margin: 0;
16
+ padding: 0;
17
+ }
18
+
19
+ /* Prevent font size inflation on mobile */
20
+ html {
21
+ -moz-text-size-adjust: none;
22
+ -webkit-text-size-adjust: none;
23
+ text-size-adjust: none;
24
+ }
25
+
26
+ /* Set core body defaults */
27
+ body {
28
+ min-height: 100vh;
29
+ line-height: 1.5;
30
+ -webkit-font-smoothing: antialiased;
31
+ }
32
+
33
+ /* Remove list styles on ul, ol elements with a list role */
34
+ ul[role='list'],
35
+ ol[role='list'] {
36
+ list-style: none;
37
+ }
38
+
39
+ /* Set shorter line heights on headings and interactive elements */
40
+ h1,
41
+ h2,
42
+ h3,
43
+ h4,
44
+ h5,
45
+ h6,
46
+ button,
47
+ input,
48
+ label {
49
+ line-height: 1.1;
50
+ }
51
+
52
+ /* Balance text wrapping on headings */
53
+ h1,
54
+ h2,
55
+ h3,
56
+ h4,
57
+ h5,
58
+ h6 {
59
+ text-wrap: balance;
60
+ }
61
+
62
+ /* Anchor elements without a class get default styles */
63
+ a:not([class]) {
64
+ text-decoration-skip-ink: auto;
65
+ color: currentColor;
66
+ }
67
+
68
+ /* Make images easier to work with */
69
+ img,
70
+ picture,
71
+ video,
72
+ canvas,
73
+ svg {
74
+ display: block;
75
+ max-width: 100%;
76
+ }
77
+
78
+ /* Inherit fonts for inputs and buttons */
79
+ input,
80
+ button,
81
+ textarea,
82
+ select {
83
+ font: inherit;
84
+ }
85
+
86
+ /* Make sure textareas without rows have a sensible min-height */
87
+ textarea:not([rows]) {
88
+ min-height: 10em;
89
+ }
90
+
91
+ /* Anything that has been anchored to should have extra scroll margin */
92
+ :target {
93
+ scroll-margin-block: 5ex;
94
+ }
95
+
96
+ /* Remove all animations, transitions and smooth scroll for users that prefer reduced motion */
97
+ @media (prefers-reduced-motion: reduce) {
98
+ html:focus-within {
99
+ scroll-behavior: auto;
100
+ }
101
+
102
+ *,
103
+ *::before,
104
+ *::after {
105
+ animation-duration: 0.01ms !important;
106
+ animation-iteration-count: 1 !important;
107
+ transition-duration: 0.01ms !important;
108
+ scroll-behavior: auto !important;
109
+ }
110
+ }
111
+
112
+ /* Ensure hidden attribute works as expected */
113
+ [hidden] {
114
+ display: none !important;
115
+ }
116
+
117
+ /* Remove default button styles */
118
+ button {
119
+ background: none;
120
+ border: none;
121
+ cursor: pointer;
122
+ }
123
+
124
+ /* Table reset */
125
+ table {
126
+ border-collapse: collapse;
127
+ border-spacing: 0;
128
+ }
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Vanduo Framework - Design Tokens
3
+ * Centralized CSS custom properties for consistent theming
4
+ * v1.1.1
5
+ */
6
+
7
+ :root {
8
+ /* ============================================
9
+ * COLOR TOKENS
10
+ * Based on Open Color with semantic mapping
11
+ * ============================================ */
12
+
13
+ /* Primary Colors */
14
+ --vd-color-primary: #0d6efd;
15
+ --vd-color-primary-rgb: 13, 110, 253;
16
+ --vd-color-primary-hover: #0b5ed7;
17
+ --vd-color-primary-active: #0a58ca;
18
+ --vd-color-primary-alpha-10: rgba(13, 110, 253, 0.1);
19
+ --vd-color-primary-alpha-20: rgba(13, 110, 253, 0.2);
20
+ --vd-color-primary-alpha-50: rgba(13, 110, 253, 0.5);
21
+
22
+ /* Secondary Colors */
23
+ --vd-color-secondary: #6c757d;
24
+ --vd-color-secondary-hover: #5c636a;
25
+ --vd-color-secondary-active: #565e64;
26
+
27
+ /* Semantic Colors */
28
+ --vd-color-success: #198754;
29
+ --vd-color-success-rgb: 25, 135, 84;
30
+ --vd-color-success-alpha-10: rgba(25, 135, 84, 0.1);
31
+
32
+ --vd-color-warning: #ffc107;
33
+ --vd-color-warning-rgb: 255, 193, 7;
34
+ --vd-color-warning-alpha-10: rgba(255, 193, 7, 0.1);
35
+ --vd-color-warning-alpha-30: rgba(255, 193, 7, 0.3);
36
+
37
+ --vd-color-error: #dc3545;
38
+ --vd-color-error-rgb: 220, 53, 69;
39
+ --vd-color-error-alpha-10: rgba(220, 53, 69, 0.1);
40
+
41
+ --vd-color-info: #0dcaf0;
42
+ --vd-color-info-rgb: 13, 202, 240;
43
+ --vd-color-info-alpha-10: rgba(13, 202, 240, 0.1);
44
+
45
+ /* Neutral Colors (Open Color) */
46
+ --vd-color-white: #ffffff;
47
+ --vd-color-gray-100: #f8f9fa;
48
+ --vd-color-gray-200: #e9ecef;
49
+ --vd-color-gray-300: #dee2e6;
50
+ --vd-color-gray-400: #ced4da;
51
+ --vd-color-gray-500: #adb5bd;
52
+ --vd-color-gray-600: #6c757d;
53
+ --vd-color-gray-700: #495057;
54
+ --vd-color-gray-800: #343a40;
55
+ --vd-color-gray-900: #212529;
56
+ --vd-color-black: #000000;
57
+
58
+ /* ============================================
59
+ * BACKGROUND TOKENS
60
+ * ============================================ */
61
+ --vd-bg-primary: var(--vd-color-white);
62
+ --vd-bg-secondary: var(--vd-color-gray-100);
63
+ --vd-bg-tertiary: var(--vd-color-gray-200);
64
+
65
+ /* ============================================
66
+ * TEXT TOKENS
67
+ * ============================================ */
68
+ --vd-text-primary: var(--vd-color-gray-900);
69
+ --vd-text-secondary: var(--vd-color-gray-600);
70
+ --vd-text-muted: var(--vd-color-gray-500);
71
+ --vd-text-on-primary: var(--vd-color-white);
72
+
73
+ /* ============================================
74
+ * BORDER TOKENS
75
+ * ============================================ */
76
+ --vd-border-color: var(--vd-color-gray-300);
77
+ --vd-border-color-light: var(--vd-color-gray-200);
78
+ --vd-border-width: 1px;
79
+ --vd-border-radius-sm: 0.25rem;
80
+ --vd-border-radius-md: 0.5rem;
81
+ --vd-border-radius-lg: 0.75rem;
82
+ --vd-border-radius-xl: 1rem;
83
+
84
+ /* ============================================
85
+ * TYPOGRAPHY TOKENS
86
+ * ============================================ */
87
+ --vd-font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
88
+ --vd-font-family-mono: 'JetBrains Mono', 'Fira Code', monospace;
89
+
90
+ /* Font Sizes (Fibonacci scale) */
91
+ --vd-font-size-xs: 0.75rem;
92
+ --vd-font-size-sm: 0.8125rem;
93
+ --vd-font-size-base: 1rem;
94
+ --vd-font-size-lg: 1.125rem;
95
+ --vd-font-size-xl: 1.25rem;
96
+ --vd-font-size-2xl: 1.5rem;
97
+ --vd-font-size-3xl: 1.875rem;
98
+ --vd-font-size-4xl: 2.25rem;
99
+
100
+ /* Font Weights */
101
+ --vd-font-weight-light: 300;
102
+ --vd-font-weight-normal: 400;
103
+ --vd-font-weight-medium: 500;
104
+ --vd-font-weight-semibold: 600;
105
+ --vd-font-weight-bold: 700;
106
+
107
+ /* Line Heights */
108
+ --vd-line-height-tight: 1.25;
109
+ --vd-line-height-normal: 1.5;
110
+ --vd-line-height-relaxed: 1.75;
111
+
112
+ /* ============================================
113
+ * SPACING TOKENS (Fibonacci)
114
+ * ============================================ */
115
+ --vd-space-fib-1: 0.125rem; /* 2px */
116
+ --vd-space-fib-2: 0.25rem; /* 4px */
117
+ --vd-space-fib-3: 0.375rem; /* 6px */
118
+ --vd-space-fib-5: 0.5rem; /* 8px */
119
+ --vd-space-fib-8: 0.75rem; /* 12px */
120
+ --vd-space-fib-13: 0.8125rem; /* 13px */
121
+ --vd-space-fib-21: 1.3125rem; /* 21px */
122
+ --vd-space-fib-34: 2.125rem; /* 34px */
123
+ --vd-space-fib-55: 3.4375rem; /* 55px */
124
+
125
+ /* Standard spacing */
126
+ --vd-space-1: 0.25rem;
127
+ --vd-space-2: 0.5rem;
128
+ --vd-space-3: 0.75rem;
129
+ --vd-space-4: 1rem;
130
+ --vd-space-5: 1.25rem;
131
+ --vd-space-6: 1.5rem;
132
+ --vd-space-8: 2rem;
133
+ --vd-space-10: 2.5rem;
134
+ --vd-space-12: 3rem;
135
+ --vd-space-16: 4rem;
136
+
137
+ /* ============================================
138
+ * SHADOW TOKENS
139
+ * ============================================ */
140
+ --vd-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
141
+ --vd-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
142
+ --vd-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
143
+ --vd-shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15);
144
+
145
+ /* ============================================
146
+ * TRANSITION TOKENS
147
+ * ============================================ */
148
+ --vd-transition-fast: 150ms ease;
149
+ --vd-transition-normal: 250ms ease;
150
+ --vd-transition-slow: 350ms ease;
151
+
152
+ /* ============================================
153
+ * Z-INDEX TOKENS
154
+ * ============================================ */
155
+ --vd-z-dropdown: 1000;
156
+ --vd-z-sticky: 1020;
157
+ --vd-z-fixed: 1030;
158
+ --vd-z-modal-backdrop: 1040;
159
+ --vd-z-modal: 1050;
160
+ --vd-z-popover: 1060;
161
+ --vd-z-tooltip: 1070;
162
+ --vd-z-toast: 1080;
163
+
164
+ /* ============================================
165
+ * BREAKPOINT TOKENS
166
+ * (Documented, not CSS variables - used in media queries)
167
+ * ============================================ */
168
+ /* sm: 576px */
169
+ /* md: 768px */
170
+ /* lg: 992px */
171
+ /* xl: 1200px */
172
+ /* 2xl: 1400px */
173
+ }
174
+
175
+ /* ============================================
176
+ * DARK MODE TOKENS
177
+ * ============================================ */
178
+ [data-theme="dark"] {
179
+ --vd-bg-primary: var(--vd-color-gray-900);
180
+ --vd-bg-secondary: var(--vd-color-gray-800);
181
+ --vd-bg-tertiary: var(--vd-color-gray-700);
182
+
183
+ --vd-text-primary: var(--vd-color-gray-100);
184
+ --vd-text-secondary: var(--vd-color-gray-400);
185
+ --vd-text-muted: var(--vd-color-gray-500);
186
+
187
+ --vd-border-color: var(--vd-color-gray-700);
188
+ --vd-border-color-light: var(--vd-color-gray-800);
189
+
190
+ --vd-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
191
+ --vd-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
192
+ --vd-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4);
193
+ }
194
+
195
+ /* Dark mode via prefers-color-scheme */
196
+ @media (prefers-color-scheme: dark) {
197
+ :root:not([data-theme]) {
198
+ --vd-bg-primary: var(--vd-color-gray-900);
199
+ --vd-bg-secondary: var(--vd-color-gray-800);
200
+ --vd-bg-tertiary: var(--vd-color-gray-700);
201
+
202
+ --vd-text-primary: var(--vd-color-gray-100);
203
+ --vd-text-secondary: var(--vd-color-gray-400);
204
+ --vd-text-muted: var(--vd-color-gray-500);
205
+
206
+ --vd-border-color: var(--vd-color-gray-700);
207
+ --vd-border-color-light: var(--vd-color-gray-800);
208
+
209
+ --vd-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
210
+ --vd-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
211
+ --vd-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4);
212
+ }
213
+ }