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,167 @@
1
+ /**
2
+ * Vanduo Framework - Media Utilities
3
+ * Responsive image and media utilities
4
+ */
5
+
6
+ /* Responsive Images */
7
+ .img-responsive,
8
+ .img-fluid {
9
+ max-width: 100%;
10
+ height: auto;
11
+ display: block;
12
+ }
13
+
14
+ .img-fluid {
15
+ width: 100%;
16
+ }
17
+
18
+ /* Object Fit Utilities */
19
+ .object-fit-contain {
20
+ object-fit: contain;
21
+ }
22
+
23
+ .object-fit-cover {
24
+ object-fit: cover;
25
+ }
26
+
27
+ .object-fit-fill {
28
+ object-fit: fill;
29
+ }
30
+
31
+ .object-fit-none {
32
+ object-fit: none;
33
+ }
34
+
35
+ .object-fit-scale-down {
36
+ object-fit: scale-down;
37
+ }
38
+
39
+ /* Object Position Utilities */
40
+ .object-position-center {
41
+ object-position: center;
42
+ }
43
+
44
+ .object-position-top {
45
+ object-position: top;
46
+ }
47
+
48
+ .object-position-bottom {
49
+ object-position: bottom;
50
+ }
51
+
52
+ .object-position-left {
53
+ object-position: left;
54
+ }
55
+
56
+ .object-position-right {
57
+ object-position: right;
58
+ }
59
+
60
+ .object-position-top-left {
61
+ object-position: top left;
62
+ }
63
+
64
+ .object-position-top-right {
65
+ object-position: top right;
66
+ }
67
+
68
+ .object-position-bottom-left {
69
+ object-position: bottom left;
70
+ }
71
+
72
+ .object-position-bottom-right {
73
+ object-position: bottom right;
74
+ }
75
+
76
+ /* Aspect Ratio Utilities */
77
+ .aspect-ratio {
78
+ position: relative;
79
+ width: 100%;
80
+ padding-bottom: 56.25%; /* 16:9 default */
81
+ }
82
+
83
+ .aspect-ratio > * {
84
+ position: absolute;
85
+ top: 0;
86
+ left: 0;
87
+ width: 100%;
88
+ height: 100%;
89
+ object-fit: cover;
90
+ }
91
+
92
+ .aspect-ratio-1-1 {
93
+ padding-bottom: 100%; /* 1:1 - Square */
94
+ }
95
+
96
+ .aspect-ratio-16-9 {
97
+ padding-bottom: 56.25%; /* 16:9 - Video */
98
+ }
99
+
100
+ .aspect-ratio-4-3 {
101
+ padding-bottom: 75%; /* 4:3 - Classic */
102
+ }
103
+
104
+ .aspect-ratio-21-9 {
105
+ padding-bottom: 42.857%; /* 21:9 - Ultrawide */
106
+ }
107
+
108
+ .aspect-ratio-3-2 {
109
+ padding-bottom: 66.667%; /* 3:2 */
110
+ }
111
+
112
+ .aspect-ratio-2-1 {
113
+ padding-bottom: 50%; /* 2:1 */
114
+ }
115
+
116
+ .aspect-ratio-golden {
117
+ padding-bottom: 61.8%; /* 1:1.618 - Golden Rectangle landscape */
118
+ }
119
+
120
+ .aspect-ratio-golden-portrait {
121
+ padding-bottom: 161.8%; /* 1.618:1 - Golden Rectangle portrait */
122
+ }
123
+
124
+ /* Image Styles */
125
+ .img-rounded {
126
+ border-radius: var(--btn-border-radius);
127
+ }
128
+
129
+ .img-circle {
130
+ border-radius: 50%;
131
+ }
132
+
133
+ .img-thumbnail {
134
+ padding: 0.1875rem; /* 3px - fib */
135
+ background-color: var(--color-white);
136
+ border: 1px solid var(--border-color);
137
+ border-radius: var(--radius-fib-5);
138
+ max-width: 100%;
139
+ height: auto;
140
+ }
141
+
142
+ /* Image Alignment */
143
+ .img-left {
144
+ float: left;
145
+ margin-right: 0.8125rem; /* 13px - fib */
146
+ margin-bottom: 0.8125rem;
147
+ }
148
+
149
+ .img-right {
150
+ float: right;
151
+ margin-left: 0.8125rem; /* 13px - fib */
152
+ margin-bottom: 0.8125rem;
153
+ }
154
+
155
+ .img-center {
156
+ display: block;
157
+ margin-left: auto;
158
+ margin-right: auto;
159
+ }
160
+
161
+ /* Clearfix for floated images */
162
+ .img-clearfix::after {
163
+ content: '';
164
+ display: table;
165
+ clear: both;
166
+ }
167
+
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Vanduo Framework - Print Styles
3
+ * Optimized styles for printing
4
+ */
5
+
6
+ @media print {
7
+ /* Reset backgrounds and shadows for printing */
8
+ *,
9
+ *::before,
10
+ *::after {
11
+ background: transparent !important;
12
+ color: #000 !important;
13
+ box-shadow: none !important;
14
+ text-shadow: none !important;
15
+ }
16
+
17
+ /* Links */
18
+ a,
19
+ a:visited {
20
+ text-decoration: underline;
21
+ }
22
+
23
+ a[href]::after {
24
+ content: " (" attr(href) ")";
25
+ font-size: 0.8em;
26
+ }
27
+
28
+ a[href^="#"]::after,
29
+ a[href^="javascript:"]::after {
30
+ content: "";
31
+ }
32
+
33
+ /* Images */
34
+ img {
35
+ max-width: 100% !important;
36
+ page-break-inside: avoid;
37
+ }
38
+
39
+ /* Headings */
40
+ h1, h2, h3, h4, h5, h6 {
41
+ page-break-after: avoid;
42
+ page-break-inside: avoid;
43
+ }
44
+
45
+ /* Paragraphs */
46
+ p {
47
+ orphans: 3;
48
+ widows: 3;
49
+ }
50
+
51
+ /* Tables */
52
+ table {
53
+ border-collapse: collapse !important;
54
+ }
55
+
56
+ thead {
57
+ display: table-header-group;
58
+ }
59
+
60
+ tr {
61
+ page-break-inside: avoid;
62
+ }
63
+
64
+ /* Hide non-essential elements */
65
+ .navbar,
66
+ .navbar-menu,
67
+ .navbar-toggle,
68
+ .navbar-overlay,
69
+ .sidenav,
70
+ .modal,
71
+ .modal-backdrop,
72
+ .tooltip,
73
+ .dropdown-menu,
74
+ .btn-group,
75
+ .pagination,
76
+ .skip-link,
77
+ .d-print-none {
78
+ display: none !important;
79
+ }
80
+
81
+ /* Show print-only elements */
82
+ .d-print-block {
83
+ display: block !important;
84
+ }
85
+
86
+ .d-print-inline {
87
+ display: inline !important;
88
+ }
89
+
90
+ .d-print-inline-block {
91
+ display: inline-block !important;
92
+ }
93
+
94
+ /* Container adjustments */
95
+ .container {
96
+ width: 100% !important;
97
+ max-width: none !important;
98
+ padding: 0 !important;
99
+ }
100
+
101
+ /* Pre and code blocks */
102
+ pre,
103
+ blockquote {
104
+ border: 1px solid #999;
105
+ page-break-inside: avoid;
106
+ }
107
+
108
+ pre {
109
+ white-space: pre-wrap !important;
110
+ }
111
+ }
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Vanduo Framework - Shadow Utilities
3
+ * Elevation and shadow system for depth and visual hierarchy
4
+ */
5
+
6
+ :root {
7
+ /* Fibonacci Shadow System
8
+ * Y-offset and blur follow Fibonacci pairs: 1/2, 2/3, 3/5, 8/13, 13/21, 21/34
9
+ * Each level steps through the Fibonacci sequence */
10
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
11
+ --shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
12
+ --shadow-md: 0 3px 5px -1px rgba(0, 0, 0, 0.1), 0 2px 3px -2px rgba(0, 0, 0, 0.1);
13
+ --shadow-lg: 0 8px 13px -3px rgba(0, 0, 0, 0.1), 0 3px 5px -3px rgba(0, 0, 0, 0.1);
14
+ --shadow-xl: 0 13px 21px -5px rgba(0, 0, 0, 0.1), 0 5px 8px -5px rgba(0, 0, 0, 0.1);
15
+ --shadow-2xl: 0 21px 34px -8px rgba(0, 0, 0, 0.25);
16
+ --shadow-inner: inset 0 2px 3px 0 rgba(0, 0, 0, 0.05);
17
+
18
+ /* Colored Shadows (Fibonacci: 3/5 offset/blur)
19
+ * Colors match Open Color palette defined in colors.css */
20
+ --shadow-primary: 0 3px 5px -1px rgba(34, 184, 207, 0.2), 0 2px 3px -2px rgba(34, 184, 207, 0.1);
21
+ --shadow-success: 0 3px 5px -1px rgba(64, 192, 87, 0.2), 0 2px 3px -2px rgba(64, 192, 87, 0.1);
22
+ --shadow-warning: 0 3px 5px -1px rgba(250, 176, 5, 0.2), 0 2px 3px -2px rgba(250, 176, 5, 0.1);
23
+ --shadow-error: 0 3px 5px -1px rgba(250, 82, 82, 0.2), 0 2px 3px -2px rgba(250, 82, 82, 0.1);
24
+
25
+ /* Glow Effect Colors - uses color scale variables */
26
+ --glow-primary-color: var(--primary-3);
27
+ --glow-success-color: var(--success-3);
28
+ --glow-warning-color: var(--warning-3);
29
+ --glow-error-color: var(--danger-3);
30
+ }
31
+
32
+ /* Shadow Utilities */
33
+ .vd-shadow-none {
34
+ box-shadow: none;
35
+ }
36
+
37
+ .vd-shadow-sm {
38
+ box-shadow: var(--shadow-sm);
39
+ }
40
+
41
+ .vd-shadow {
42
+ box-shadow: var(--shadow);
43
+ }
44
+
45
+ .vd-shadow-md {
46
+ box-shadow: var(--shadow-md);
47
+ }
48
+
49
+ .vd-shadow-lg {
50
+ box-shadow: var(--shadow-lg);
51
+ }
52
+
53
+ .vd-shadow-xl {
54
+ box-shadow: var(--shadow-xl);
55
+ }
56
+
57
+ .vd-shadow-2xl {
58
+ box-shadow: var(--shadow-2xl);
59
+ }
60
+
61
+ .vd-shadow-inner {
62
+ box-shadow: var(--shadow-inner);
63
+ }
64
+
65
+ /* Colored Shadow Utilities */
66
+ .vd-shadow-primary {
67
+ box-shadow: var(--shadow-primary);
68
+ }
69
+
70
+ .vd-shadow-success {
71
+ box-shadow: var(--shadow-success);
72
+ }
73
+
74
+ .vd-shadow-warning {
75
+ box-shadow: var(--shadow-warning);
76
+ }
77
+
78
+ .vd-shadow-error {
79
+ box-shadow: var(--shadow-error);
80
+ }
81
+
82
+ /* Elevation Levels (for Material Design-like system) */
83
+ .elevation-0 {
84
+ box-shadow: none;
85
+ }
86
+
87
+ .elevation-1 {
88
+ box-shadow: var(--shadow-sm);
89
+ }
90
+
91
+ .elevation-2 {
92
+ box-shadow: var(--shadow);
93
+ }
94
+
95
+ .elevation-3 {
96
+ box-shadow: var(--shadow-md);
97
+ }
98
+
99
+ .elevation-4 {
100
+ box-shadow: var(--shadow-lg);
101
+ }
102
+
103
+ .elevation-5 {
104
+ box-shadow: var(--shadow-xl);
105
+ }
106
+
107
+ /* ═════════════════════════════════════════════════════════════════════════
108
+ * GLOW EFFECT UTILITIES
109
+ * Soft glowing shadows for interactive elements
110
+ * ═════════════════════════════════════════════════════════════════════════ */
111
+
112
+ /* Base Glow (uses primary color) */
113
+ .vd-glow,
114
+ .vd-glow-primary,
115
+ .glow,
116
+ .glow-primary {
117
+ box-shadow: 0 0 15px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.25));
118
+ }
119
+
120
+ /* Glow on Hover */
121
+ .vd-hover-glow,
122
+ .vd-hover-glow-primary,
123
+ .hover-glow,
124
+ .hover-glow-primary {
125
+ transition: box-shadow 0.3s ease;
126
+ }
127
+
128
+ .vd-hover-glow:hover,
129
+ .vd-hover-glow-primary:hover,
130
+ .hover-glow:hover,
131
+ .hover-glow-primary:hover {
132
+ box-shadow: 0 0 15px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.25));
133
+ }
134
+
135
+ /* Glow Color Variants */
136
+ .vd-glow-success,
137
+ .glow-success {
138
+ box-shadow: 0 0 15px 0 var(--glow-success-color, rgba(64, 192, 87, 0.25));
139
+ }
140
+
141
+ .vd-glow-warning,
142
+ .glow-warning {
143
+ box-shadow: 0 0 15px 0 var(--glow-warning-color, rgba(250, 176, 5, 0.25));
144
+ }
145
+
146
+ .vd-glow-error,
147
+ .glow-error {
148
+ box-shadow: 0 0 15px 0 var(--glow-error-color, rgba(250, 82, 82, 0.25));
149
+ }
150
+
151
+ /* Glow Hover Variants */
152
+ .vd-hover-glow-success:hover,
153
+ .hover-glow-success:hover {
154
+ box-shadow: 0 0 15px 0 var(--glow-success-color, rgba(64, 192, 87, 0.25));
155
+ }
156
+
157
+ .vd-hover-glow-warning:hover,
158
+ .hover-glow-warning:hover {
159
+ box-shadow: 0 0 15px 0 var(--glow-warning-color, rgba(250, 176, 5, 0.25));
160
+ }
161
+
162
+ .vd-hover-glow-error:hover,
163
+ .hover-glow-error:hover {
164
+ box-shadow: 0 0 15px 0 var(--glow-error-color, rgba(250, 82, 82, 0.25));
165
+ }
166
+
167
+ /* Glow Intensity Variants */
168
+ .vd-glow-sm,
169
+ .glow-sm {
170
+ box-shadow: 0 0 8px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.15));
171
+ }
172
+
173
+ .vd-glow-md,
174
+ .glow-md {
175
+ box-shadow: 0 0 15px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.25));
176
+ }
177
+
178
+ .vd-glow-lg,
179
+ .glow-lg {
180
+ box-shadow: 0 0 22px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.35));
181
+ }
182
+
183
+ .vd-hover-glow-sm:hover,
184
+ .hover-glow-sm:hover {
185
+ box-shadow: 0 0 8px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.15));
186
+ }
187
+
188
+ .vd-hover-glow-md:hover,
189
+ .hover-glow-md:hover {
190
+ box-shadow: 0 0 15px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.25));
191
+ }
192
+
193
+ .vd-hover-glow-lg:hover,
194
+ .hover-glow-lg:hover {
195
+ box-shadow: 0 0 22px 0 var(--glow-primary-color, rgba(34, 184, 207, 0.35));
196
+ }
197
+
198
+ /* Dark Mode Shadow Overrides
199
+ * Dark backgrounds need stronger shadows for visible depth
200
+ * Matches both explicit dark theme and system preference */
201
+ [data-theme="dark"],
202
+ :root:not([data-theme]) {
203
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
204
+ --shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3);
205
+ --shadow-md: 0 3px 5px -1px rgba(0, 0, 0, 0.35), 0 2px 3px -2px rgba(0, 0, 0, 0.3);
206
+ --shadow-lg: 0 8px 13px -3px rgba(0, 0, 0, 0.35), 0 3px 5px -3px rgba(0, 0, 0, 0.3);
207
+ --shadow-xl: 0 13px 21px -5px rgba(0, 0, 0, 0.35), 0 5px 8px -5px rgba(0, 0, 0, 0.3);
208
+ --shadow-2xl: 0 21px 34px -8px rgba(0, 0, 0, 0.5);
209
+ --shadow-inner: inset 0 2px 3px 0 rgba(0, 0, 0, 0.2);
210
+ --shadow-primary: 0 3px 5px -1px rgba(34, 184, 207, 0.3), 0 2px 3px -2px rgba(34, 184, 207, 0.2);
211
+ --shadow-success: 0 3px 5px -1px rgba(64, 192, 87, 0.3), 0 2px 3px -2px rgba(64, 192, 87, 0.2);
212
+ --shadow-warning: 0 3px 5px -1px rgba(250, 176, 5, 0.3), 0 2px 3px -2px rgba(250, 176, 5, 0.2);
213
+ --shadow-error: 0 3px 5px -1px rgba(250, 82, 82, 0.3), 0 2px 3px -2px rgba(250, 82, 82, 0.2);
214
+
215
+ /* Glow Effect Colors - Dark Mode (lighter shades for visibility) */
216
+ --glow-primary-color: var(--primary-4);
217
+ --glow-success-color: var(--success-4);
218
+ --glow-warning-color: var(--warning-4);
219
+ --glow-error-color: var(--danger-4);
220
+ }
221
+
222
+ /* System preference dark mode (when no explicit theme is set) */
223
+ @media (prefers-color-scheme: dark) {
224
+ :root:not([data-theme]) {
225
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
226
+ --shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3);
227
+ --shadow-md: 0 3px 5px -1px rgba(0, 0, 0, 0.35), 0 2px 3px -2px rgba(0, 0, 0, 0.3);
228
+ --shadow-lg: 0 8px 13px -3px rgba(0, 0, 0, 0.35), 0 3px 5px -3px rgba(0, 0, 0, 0.3);
229
+ --shadow-xl: 0 13px 21px -5px rgba(0, 0, 0, 0.35), 0 5px 8px -5px rgba(0, 0, 0, 0.3);
230
+ --shadow-2xl: 0 21px 34px -8px rgba(0, 0, 0, 0.5);
231
+ --shadow-inner: inset 0 2px 3px 0 rgba(0, 0, 0, 0.2);
232
+ --shadow-primary: 0 3px 5px -1px rgba(34, 184, 207, 0.3), 0 2px 3px -2px rgba(34, 184, 207, 0.2);
233
+ --shadow-success: 0 3px 5px -1px rgba(64, 192, 87, 0.3), 0 2px 3px -2px rgba(64, 192, 87, 0.2);
234
+ --shadow-warning: 0 3px 5px -1px rgba(250, 176, 5, 0.3), 0 2px 3px -2px rgba(250, 176, 5, 0.2);
235
+ --shadow-error: 0 3px 5px -1px rgba(250, 82, 82, 0.3), 0 2px 3px -2px rgba(250, 82, 82, 0.2);
236
+
237
+ /* Glow Effect Colors - Dark Mode */
238
+ --glow-primary-color: var(--primary-4);
239
+ --glow-success-color: var(--success-4);
240
+ --glow-warning-color: var(--warning-4);
241
+ --glow-error-color: var(--danger-4);
242
+ }
243
+ }