browser-extension-manager 1.0.13 → 1.1.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 (242) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/CLAUDE.md +672 -0
  3. package/TODO.md +3 -0
  4. package/dist/assets/css/browser-extension-manager.scss +18 -0
  5. package/dist/assets/css/components/content/index.scss +5 -0
  6. package/dist/assets/css/components/options/index.scss +5 -0
  7. package/dist/assets/css/components/pages/index.scss +5 -0
  8. package/dist/assets/css/components/popup/index.scss +5 -0
  9. package/dist/assets/css/core/_animations.scss +64 -0
  10. package/dist/assets/css/core/_initialize.scss +23 -0
  11. package/dist/assets/css/core/_utilities.scss +80 -0
  12. package/dist/assets/themes/_template/_theme.js +5 -0
  13. package/dist/assets/themes/_template/_theme.scss +5 -0
  14. package/dist/assets/themes/bootstrap/_theme.js +16 -0
  15. package/dist/assets/themes/bootstrap/_theme.scss +232 -0
  16. package/dist/assets/themes/bootstrap/js/index.esm.js +19 -0
  17. package/dist/assets/themes/bootstrap/js/index.umd.js +34 -0
  18. package/dist/assets/themes/bootstrap/js/src/alert.js +87 -0
  19. package/dist/assets/themes/bootstrap/js/src/base-component.js +86 -0
  20. package/dist/assets/themes/bootstrap/js/src/button.js +72 -0
  21. package/dist/assets/themes/bootstrap/js/src/carousel.js +474 -0
  22. package/dist/assets/themes/bootstrap/js/src/collapse.js +297 -0
  23. package/dist/assets/themes/bootstrap/js/src/dom/data.js +55 -0
  24. package/dist/assets/themes/bootstrap/js/src/dom/event-handler.js +317 -0
  25. package/dist/assets/themes/bootstrap/js/src/dom/manipulator.js +71 -0
  26. package/dist/assets/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
  27. package/dist/assets/themes/bootstrap/js/src/dropdown.js +458 -0
  28. package/dist/assets/themes/bootstrap/js/src/modal.js +378 -0
  29. package/dist/assets/themes/bootstrap/js/src/offcanvas.js +282 -0
  30. package/dist/assets/themes/bootstrap/js/src/popover.js +97 -0
  31. package/dist/assets/themes/bootstrap/js/src/scrollspy.js +296 -0
  32. package/dist/assets/themes/bootstrap/js/src/tab.js +315 -0
  33. package/dist/assets/themes/bootstrap/js/src/toast.js +224 -0
  34. package/dist/assets/themes/bootstrap/js/src/tooltip.js +632 -0
  35. package/dist/assets/themes/bootstrap/js/src/util/backdrop.js +151 -0
  36. package/dist/assets/themes/bootstrap/js/src/util/component-functions.js +35 -0
  37. package/dist/assets/themes/bootstrap/js/src/util/config.js +65 -0
  38. package/dist/assets/themes/bootstrap/js/src/util/focustrap.js +115 -0
  39. package/dist/assets/themes/bootstrap/js/src/util/index.js +306 -0
  40. package/dist/assets/themes/bootstrap/js/src/util/sanitizer.js +117 -0
  41. package/dist/assets/themes/bootstrap/js/src/util/scrollbar.js +114 -0
  42. package/dist/assets/themes/bootstrap/js/src/util/swipe.js +146 -0
  43. package/dist/assets/themes/bootstrap/js/src/util/template-factory.js +160 -0
  44. package/dist/assets/themes/bootstrap/scss/_accordion.scss +153 -0
  45. package/dist/assets/themes/bootstrap/scss/_alert.scss +68 -0
  46. package/dist/assets/themes/bootstrap/scss/_badge.scss +38 -0
  47. package/dist/assets/themes/bootstrap/scss/_breadcrumb.scss +40 -0
  48. package/dist/assets/themes/bootstrap/scss/_button-group.scss +147 -0
  49. package/dist/assets/themes/bootstrap/scss/_buttons.scss +216 -0
  50. package/dist/assets/themes/bootstrap/scss/_card.scss +238 -0
  51. package/dist/assets/themes/bootstrap/scss/_carousel.scss +226 -0
  52. package/dist/assets/themes/bootstrap/scss/_close.scss +66 -0
  53. package/dist/assets/themes/bootstrap/scss/_containers.scss +41 -0
  54. package/dist/assets/themes/bootstrap/scss/_dropdown.scss +250 -0
  55. package/dist/assets/themes/bootstrap/scss/_forms.scss +9 -0
  56. package/dist/assets/themes/bootstrap/scss/_functions.scss +302 -0
  57. package/dist/assets/themes/bootstrap/scss/_grid.scss +39 -0
  58. package/dist/assets/themes/bootstrap/scss/_helpers.scss +12 -0
  59. package/dist/assets/themes/bootstrap/scss/_images.scss +42 -0
  60. package/dist/assets/themes/bootstrap/scss/_list-group.scss +199 -0
  61. package/dist/assets/themes/bootstrap/scss/_maps.scss +174 -0
  62. package/dist/assets/themes/bootstrap/scss/_mixins.scss +42 -0
  63. package/dist/assets/themes/bootstrap/scss/_modal.scss +240 -0
  64. package/dist/assets/themes/bootstrap/scss/_nav.scss +197 -0
  65. package/dist/assets/themes/bootstrap/scss/_navbar.scss +289 -0
  66. package/dist/assets/themes/bootstrap/scss/_offcanvas.scss +147 -0
  67. package/dist/assets/themes/bootstrap/scss/_pagination.scss +109 -0
  68. package/dist/assets/themes/bootstrap/scss/_placeholders.scss +51 -0
  69. package/dist/assets/themes/bootstrap/scss/_popover.scss +196 -0
  70. package/dist/assets/themes/bootstrap/scss/_progress.scss +68 -0
  71. package/dist/assets/themes/bootstrap/scss/_reboot.scss +611 -0
  72. package/dist/assets/themes/bootstrap/scss/_root.scss +187 -0
  73. package/dist/assets/themes/bootstrap/scss/_spinners.scss +85 -0
  74. package/dist/assets/themes/bootstrap/scss/_tables.scss +171 -0
  75. package/dist/assets/themes/bootstrap/scss/_toasts.scss +73 -0
  76. package/dist/assets/themes/bootstrap/scss/_tooltip.scss +119 -0
  77. package/dist/assets/themes/bootstrap/scss/_transitions.scss +27 -0
  78. package/dist/assets/themes/bootstrap/scss/_type.scss +106 -0
  79. package/dist/assets/themes/bootstrap/scss/_utilities.scss +806 -0
  80. package/dist/assets/themes/bootstrap/scss/_variables-dark.scss +102 -0
  81. package/dist/assets/themes/bootstrap/scss/_variables.scss +1753 -0
  82. package/dist/assets/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
  83. package/dist/assets/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
  84. package/dist/assets/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
  85. package/dist/assets/themes/bootstrap/scss/bootstrap.scss +52 -0
  86. package/dist/assets/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
  87. package/dist/assets/themes/bootstrap/scss/forms/_form-check.scss +189 -0
  88. package/dist/assets/themes/bootstrap/scss/forms/_form-control.scss +214 -0
  89. package/dist/assets/themes/bootstrap/scss/forms/_form-range.scss +91 -0
  90. package/dist/assets/themes/bootstrap/scss/forms/_form-select.scss +80 -0
  91. package/dist/assets/themes/bootstrap/scss/forms/_form-text.scss +11 -0
  92. package/dist/assets/themes/bootstrap/scss/forms/_input-group.scss +132 -0
  93. package/dist/assets/themes/bootstrap/scss/forms/_labels.scss +36 -0
  94. package/dist/assets/themes/bootstrap/scss/forms/_validation.scss +12 -0
  95. package/dist/assets/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
  96. package/dist/assets/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
  97. package/dist/assets/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
  98. package/dist/assets/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
  99. package/dist/assets/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
  100. package/dist/assets/themes/bootstrap/scss/helpers/_position.scss +36 -0
  101. package/dist/assets/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
  102. package/dist/assets/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
  103. package/dist/assets/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  104. package/dist/assets/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  105. package/dist/assets/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  106. package/dist/assets/themes/bootstrap/scss/helpers/_vr.scss +8 -0
  107. package/dist/assets/themes/bootstrap/scss/mixins/_alert.scss +18 -0
  108. package/dist/assets/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
  109. package/dist/assets/themes/bootstrap/scss/mixins/_banner.scss +7 -0
  110. package/dist/assets/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
  111. package/dist/assets/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
  112. package/dist/assets/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  113. package/dist/assets/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
  114. package/dist/assets/themes/bootstrap/scss/mixins/_caret.scss +69 -0
  115. package/dist/assets/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
  116. package/dist/assets/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
  117. package/dist/assets/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  118. package/dist/assets/themes/bootstrap/scss/mixins/_container.scss +11 -0
  119. package/dist/assets/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
  120. package/dist/assets/themes/bootstrap/scss/mixins/_forms.scss +163 -0
  121. package/dist/assets/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
  122. package/dist/assets/themes/bootstrap/scss/mixins/_grid.scss +151 -0
  123. package/dist/assets/themes/bootstrap/scss/mixins/_image.scss +16 -0
  124. package/dist/assets/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
  125. package/dist/assets/themes/bootstrap/scss/mixins/_lists.scss +7 -0
  126. package/dist/assets/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
  127. package/dist/assets/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
  128. package/dist/assets/themes/bootstrap/scss/mixins/_resize.scss +6 -0
  129. package/dist/assets/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
  130. package/dist/assets/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  131. package/dist/assets/themes/bootstrap/scss/mixins/_transition.scss +26 -0
  132. package/dist/assets/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
  133. package/dist/assets/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
  134. package/dist/assets/themes/bootstrap/scss/tests/jasmine.js +16 -0
  135. package/dist/assets/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
  136. package/dist/assets/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
  137. package/dist/assets/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
  138. package/dist/assets/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
  139. package/dist/assets/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
  140. package/dist/assets/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
  141. package/dist/assets/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
  142. package/dist/assets/themes/bootstrap/scss/utilities/_api.scss +47 -0
  143. package/dist/assets/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
  144. package/dist/assets/themes/classy/README.md +75 -0
  145. package/dist/assets/themes/classy/_config.scss +185 -0
  146. package/dist/assets/themes/classy/_theme.js +29 -0
  147. package/dist/assets/themes/classy/_theme.scss +34 -0
  148. package/dist/assets/themes/classy/css/base/_animations.scss +27 -0
  149. package/dist/assets/themes/classy/css/base/_backgrounds.scss +191 -0
  150. package/dist/assets/themes/classy/css/base/_borders.scss +65 -0
  151. package/dist/assets/themes/classy/css/base/_root.scss +58 -0
  152. package/dist/assets/themes/classy/css/base/_soft-colors.scss +92 -0
  153. package/dist/assets/themes/classy/css/base/_spacing.scss +64 -0
  154. package/dist/assets/themes/classy/css/base/_typography.scss +179 -0
  155. package/dist/assets/themes/classy/css/base/_utilities.scss +77 -0
  156. package/dist/assets/themes/classy/css/components/_accordion.scss +33 -0
  157. package/dist/assets/themes/classy/css/components/_avatars.scss +32 -0
  158. package/dist/assets/themes/classy/css/components/_badges.scss +25 -0
  159. package/dist/assets/themes/classy/css/components/_buttons.scss +397 -0
  160. package/dist/assets/themes/classy/css/components/_cards.scss +33 -0
  161. package/dist/assets/themes/classy/css/components/_carousel.scss +41 -0
  162. package/dist/assets/themes/classy/css/components/_forms.scss +115 -0
  163. package/dist/assets/themes/classy/css/components/_links.scss +19 -0
  164. package/dist/assets/themes/classy/css/components/_logo-scroll.scss +57 -0
  165. package/dist/assets/themes/classy/css/components/_spinners.scss +19 -0
  166. package/dist/assets/themes/classy/css/components/_text.scss +41 -0
  167. package/dist/assets/themes/classy/css/layout/_blog.scss +42 -0
  168. package/dist/assets/themes/classy/css/layout/_general.scss +139 -0
  169. package/dist/assets/themes/classy/css/layout/_navigation.scss +576 -0
  170. package/dist/assets/themes/classy/css/layout/_team.scss +18 -0
  171. package/dist/assets/themes/classy/js/logo-scroll.js +83 -0
  172. package/dist/assets/themes/classy/js/navbar-scroll.js +65 -0
  173. package/dist/background.js +236 -260
  174. package/dist/build.js +93 -4
  175. package/dist/commands/setup.js +0 -268
  176. package/dist/config/manifest.json +11 -3
  177. package/dist/config/page-template.html +21 -0
  178. package/dist/defaults/.nvmrc +1 -1
  179. package/dist/defaults/CLAUDE.md +8 -0
  180. package/dist/defaults/config/browser-extension-manager.json +37 -0
  181. package/dist/defaults/src/assets/css/components/content/index.scss +11 -0
  182. package/dist/defaults/src/assets/css/components/options/index.scss +14 -0
  183. package/dist/defaults/src/assets/css/components/pages/index.scss +10 -0
  184. package/dist/defaults/src/assets/css/components/popup/index.scss +10 -0
  185. package/dist/defaults/src/assets/css/components/sidepanel/index.scss +6 -0
  186. package/dist/defaults/src/assets/css/main.scss +32 -0
  187. package/dist/defaults/src/assets/js/components/background/index.js +22 -0
  188. package/dist/defaults/src/assets/js/components/content/index.js +22 -0
  189. package/dist/defaults/src/assets/js/components/options/index.js +22 -0
  190. package/dist/defaults/src/assets/js/components/pages/index.js +22 -0
  191. package/dist/defaults/src/assets/js/components/popup/index.js +22 -0
  192. package/dist/defaults/src/assets/js/components/sidepanel/index.js +20 -0
  193. package/dist/defaults/src/assets/vendor/.gitkeep +0 -0
  194. package/dist/defaults/src/manifest.json +11 -6
  195. package/dist/defaults/src/views/options/index.html +8 -0
  196. package/dist/defaults/src/views/pages/index.html +10 -0
  197. package/dist/defaults/src/views/popup/index.html +4 -0
  198. package/dist/defaults/src/views/sidepanel/index.html +4 -0
  199. package/dist/gulp/main.js +11 -5
  200. package/dist/gulp/plugins/webpack/strip-dev-blocks.js +53 -0
  201. package/dist/gulp/tasks/{_package.js → BU/_package.js} +1 -1
  202. package/dist/gulp/tasks/{developmentRebuild.js → BU/developmentRebuild.js} +1 -1
  203. package/dist/gulp/tasks/{themes.js → BU/themes.js} +3 -2
  204. package/dist/gulp/tasks/{test.js → _.js} +3 -3
  205. package/dist/gulp/tasks/audit.js +154 -0
  206. package/dist/gulp/tasks/defaults.js +308 -0
  207. package/dist/gulp/tasks/distribute.js +87 -92
  208. package/dist/gulp/tasks/html.js +150 -0
  209. package/dist/gulp/tasks/icons.js +3 -2
  210. package/dist/gulp/tasks/package.js +216 -27
  211. package/dist/gulp/tasks/sass.js +188 -43
  212. package/dist/gulp/tasks/serve.js +1 -0
  213. package/dist/gulp/tasks/utils/template-transform.js +50 -0
  214. package/dist/gulp/tasks/webpack.js +338 -134
  215. package/dist/index.js +34 -34
  216. package/dist/options.js +40 -0
  217. package/dist/page.js +40 -0
  218. package/dist/popup.js +40 -0
  219. package/dist/sidepanel.js +40 -0
  220. package/firebase-debug.log +322 -0
  221. package/package.json +25 -18
  222. package/dist/assets/css/main.scss +0 -3
  223. package/dist/assets/themes/bootstrap/5.3.3/css/bootstrap.css +0 -12057
  224. package/dist/assets/themes/bootstrap/5.3.3/css/bootstrap.css.map +0 -1
  225. package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.bundle.js +0 -6314
  226. package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.bundle.js.map +0 -1
  227. package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.js +0 -4494
  228. package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.js.map +0 -1
  229. package/dist/defaults/src/assets/css/content.scss +0 -2
  230. package/dist/defaults/src/assets/css/options.scss +0 -11
  231. package/dist/defaults/src/assets/css/popup.scss +0 -14
  232. package/dist/defaults/src/assets/js/background.js +0 -18
  233. package/dist/defaults/src/assets/js/content.js +0 -15
  234. package/dist/defaults/src/assets/js/options.js +0 -17
  235. package/dist/defaults/src/assets/js/popup.js +0 -17
  236. package/dist/defaults/src/pages/options.html +0 -26
  237. package/dist/defaults/src/pages/popup.html +0 -26
  238. /package/dist/{defaults/src/assets/images/_ → assets/css/bundles/.gitkeep} +0 -0
  239. /package/dist/assets/css/{fontawesome.scss → core/_fontawesome.scss} +0 -0
  240. /package/dist/defaults/src/assets/{vendor/_ → images/.gitkeep} +0 -0
  241. /package/dist/gulp/tasks/{_importer.js → BU/_importer.js} +0 -0
  242. /package/dist/gulp/tasks/{_vendor.js → BU/_vendor.js} +0 -0
@@ -0,0 +1,191 @@
1
+ // Classy Background Utilities
2
+ // Background gradients, patterns, and visual effects
3
+
4
+ // ============================================
5
+ // Gradient Backgrounds
6
+ // ============================================
7
+ .bg-gradient-primary {
8
+ background-image: $classy-gradient-primary !important;
9
+ background-size: 300% 300% !important;
10
+ }
11
+
12
+ .bg-gradient-dark {
13
+ background-image: $classy-gradient-dark !important;
14
+ background-size: 300% 300% !important;
15
+ }
16
+
17
+ .bg-gradient-light {
18
+ background-image: $classy-gradient-light !important;
19
+ background-size: 300% 300% !important;
20
+ }
21
+
22
+ .bg-gradient-sunset {
23
+ background-image: $classy-gradient-sunset !important;
24
+ background-size: 300% 300% !important;
25
+ }
26
+
27
+ .bg-gradient-aurora {
28
+ background-image: $classy-gradient-aurora !important;
29
+ background-size: 300% 300% !important;
30
+ }
31
+
32
+ .bg-gradient-rainbow {
33
+ background-image: $classy-gradient-rainbow !important;
34
+ background-size: 300% 300% !important;
35
+ }
36
+
37
+ // Grain texture modifier - add this class alongside bg-gradient-* to add grain effect
38
+ .gradient-grain {
39
+ position: relative;
40
+
41
+ &::before {
42
+ content: '';
43
+ position: absolute;
44
+ top: 0;
45
+ left: 0;
46
+ width: 100%;
47
+ height: 100%;
48
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.5' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
49
+ opacity: 0.6;
50
+ mix-blend-mode: overlay;
51
+ pointer-events: none;
52
+ z-index: 1;
53
+ }
54
+
55
+ // Ensure content stays above the grain overlay
56
+ > * {
57
+ position: relative;
58
+ z-index: 2;
59
+ }
60
+ }
61
+
62
+ // @keyframes gradient-shift {
63
+ // 0%, 100% {
64
+ // background-position: 0% 50%, 0% 0%;
65
+ // }
66
+ // 25% {
67
+ // background-position: 100% 50%, 100% 100%;
68
+ // }
69
+ // 50% {
70
+ // background-position: 100% 0%, 50% 50%;
71
+ // }
72
+ // 75% {
73
+ // background-position: 0% 100%, 100% 0%;
74
+ // }
75
+ // }
76
+
77
+ // .bg-gradient-rainbow {
78
+ // position: relative;
79
+ // background:
80
+ // linear-gradient(
81
+ // to bottom right,
82
+ // rgba(0, 255, 209, 0.5),
83
+ // rgba(170, 70, 252, 0.69)
84
+ // ),
85
+ // radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.5), rgba(0, 0, 0, 0.5)) !important;
86
+ // background-size: 200% 200%, 200% 200% !important;
87
+ // animation: gradient-shift 15s ease infinite;
88
+
89
+ // &::before {
90
+ // content: '';
91
+ // position: absolute;
92
+ // top: 0;
93
+ // left: 0;
94
+ // width: 100%;
95
+ // height: 100%;
96
+ // background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.5' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
97
+ // opacity: 1;
98
+ // mix-blend-mode: overlay;
99
+ // pointer-events: none;
100
+ // z-index: 1;
101
+ // filter: contrast(110%) brightness(105%);
102
+ // }
103
+
104
+ // // Ensure content stays above the grain overlay
105
+ // > * {
106
+ // position: relative;
107
+ // z-index: 2;
108
+ // }
109
+ // }
110
+
111
+
112
+
113
+ // ============================================
114
+ // Glass Morphism Mixin
115
+ // ============================================
116
+ @mixin glassy-effect {
117
+ background: transparent !important;
118
+ backdrop-filter: blur(20px) saturate(180%);
119
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
120
+ border: 1px solid rgba(255, 255, 255, 0.15) !important;
121
+ position: relative;
122
+
123
+ // Glass effect overlay with body color using custom property
124
+ &::before {
125
+ content: "";
126
+ position: absolute;
127
+ inset: 0;
128
+ background: var(--bs-body-bg);
129
+ opacity: var(--navbar-before-opacity, 0.25);
130
+ border-radius: inherit;
131
+ z-index: -1;
132
+ pointer-events: none;
133
+ transition: opacity 0.3s ease;
134
+ }
135
+
136
+ // Dark mode adjustments
137
+ [data-bs-theme="dark"] & {
138
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
139
+ }
140
+ }
141
+
142
+ // ============================================
143
+ // Glass Morphism Classes
144
+ // ============================================
145
+ .bg-glassy {
146
+ @include glassy-effect;
147
+ }
148
+
149
+ // ============================================
150
+ // Pattern Overlays
151
+ // ============================================
152
+ .bg-pattern {
153
+ background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%235B47FB' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
154
+ }
155
+
156
+ // ============================================
157
+ // Blur Effects
158
+ // ============================================
159
+ .blur-sm {
160
+ filter: blur(4px);
161
+ }
162
+
163
+ .blur-md {
164
+ filter: blur(8px);
165
+ }
166
+
167
+ .blur-lg {
168
+ filter: blur(16px);
169
+ }
170
+
171
+ // ============================================
172
+ // Filter Effects
173
+ // ============================================
174
+ .grayscale {
175
+ filter: grayscale(100%);
176
+
177
+ &:hover {
178
+ filter: grayscale(0);
179
+ }
180
+ }
181
+
182
+ // ============================================
183
+ // Adaptive Inverse Background
184
+ // ============================================
185
+ .bg-adaptive-inverse {
186
+ @extend .bg-dark;
187
+ }
188
+
189
+ [data-bs-theme="dark"] .bg-adaptive-inverse {
190
+ @extend .bg-light;
191
+ }
@@ -0,0 +1,65 @@
1
+ // Classy Border Utilities
2
+ // Border styles, gradients, and decorative dividers
3
+
4
+ // ============================================
5
+ // Border Radius
6
+ // ============================================
7
+ .rounded-sm { border-radius: $classy-radius-sm !important; }
8
+ .rounded-md { border-radius: $classy-radius-md !important; }
9
+ .rounded-lg { border-radius: $classy-radius-lg !important; }
10
+ .rounded-xl { border-radius: $classy-radius-xl !important; }
11
+ .rounded-2xl { border-radius: $classy-radius-2xl !important; }
12
+ .rounded-full { border-radius: $classy-radius-full !important; }
13
+
14
+ // ============================================
15
+ // Gradient Borders
16
+ // ============================================
17
+ .border-gradient-rainbow {
18
+ --bs-border-width: 3px;
19
+ position: relative;
20
+ border: none !important;
21
+
22
+ &::before {
23
+ content: "";
24
+ position: absolute;
25
+ inset: calc(var(--bs-border-width) * -1);
26
+ border-radius: inherit;
27
+ background: $classy-gradient-rainbow;
28
+ background-size: 300% 300%;
29
+ z-index: -1;
30
+ }
31
+
32
+ &::after {
33
+ content: "";
34
+ position: absolute;
35
+ inset: 0;
36
+ border-radius: inherit;
37
+ background: inherit;
38
+ z-index: -1;
39
+ }
40
+
41
+ // Override Bootstrap border width classes to work with gradient border
42
+ &.border-0 { --bs-border-width: 0; }
43
+ &.border-1 { --bs-border-width: 1px; }
44
+ &.border-2 { --bs-border-width: 2px; }
45
+ &.border-3 { --bs-border-width: 3px; }
46
+ &.border-4 { --bs-border-width: 4px; }
47
+ &.border-5 { --bs-border-width: 5px; }
48
+ }
49
+
50
+ // ============================================
51
+ // Divider Styles
52
+ // ============================================
53
+ .divider {
54
+ height: 1px;
55
+ background: $classy-gray-lighter;
56
+ margin: $classy-spacing-2xl 0;
57
+
58
+ &.divider-gradient {
59
+ background: $classy-gradient-primary;
60
+ }
61
+
62
+ &.divider-fade {
63
+ background: linear-gradient(to right, transparent, $classy-gray-lighter 20%, $classy-gray-lighter 80%, transparent);
64
+ }
65
+ }
@@ -0,0 +1,58 @@
1
+ // Classy Theme CSS Custom Properties
2
+ // Converts SCSS variables to CSS custom properties for runtime theming
3
+ // These override Bootstrap's CSS variables and allow dynamic theme switching
4
+
5
+ // ============================================
6
+ // Light Mode (Default)
7
+ // ============================================
8
+ :root,
9
+ [data-bs-theme="light"] {
10
+ // Background colors
11
+ --bs-body-bg: #{$classy-bg-light};
12
+ --bs-body-bg-rgb: #{red($classy-bg-light)}, #{green($classy-bg-light)}, #{blue($classy-bg-light)};
13
+
14
+ --bs-secondary-bg: #{$classy-bg-light-secondary};
15
+ --bs-secondary-bg-rgb: #{red($classy-bg-light-secondary)}, #{green($classy-bg-light-secondary)}, #{blue($classy-bg-light-secondary)};
16
+
17
+ --bs-tertiary-bg: #{$classy-bg-light-tertiary};
18
+ --bs-tertiary-bg-rgb: #{red($classy-bg-light-tertiary)}, #{green($classy-bg-light-tertiary)}, #{blue($classy-bg-light-tertiary)};
19
+
20
+ // Component backgrounds - use secondary bg for elevated surfaces
21
+ // --bs-card-bg: #{$classy-bg-light-secondary};
22
+ // --bs-dropdown-bg: #{$classy-bg-light-secondary};
23
+ // --bs-modal-bg: #{$classy-bg-light-secondary};
24
+ // --bs-popover-bg: #{$classy-bg-light-secondary};
25
+ // --bs-offcanvas-bg: #{$classy-bg-light-secondary};
26
+ // --bs-accordion-bg: #{$classy-bg-light-secondary};
27
+
28
+ // Add more Bootstrap overrides here as needed
29
+ // Examples:
30
+ // --bs-body-color: #212529;
31
+ // --bs-border-color: #dee2e6;
32
+ // --bs-link-color: #{$primary};
33
+ }
34
+
35
+ // ============================================
36
+ // Dark Mode
37
+ // ============================================
38
+ [data-bs-theme="dark"] {
39
+ // Background colors
40
+ --bs-body-bg: #{$classy-bg-dark};
41
+ --bs-body-bg-rgb: #{red($classy-bg-dark)}, #{green($classy-bg-dark)}, #{blue($classy-bg-dark)};
42
+
43
+ --bs-secondary-bg: #{$classy-bg-dark-secondary};
44
+ --bs-secondary-bg-rgb: #{red($classy-bg-dark-secondary)}, #{green($classy-bg-dark-secondary)}, #{blue($classy-bg-dark-secondary)};
45
+
46
+ --bs-tertiary-bg: #{$classy-bg-dark-tertiary};
47
+ --bs-tertiary-bg-rgb: #{red($classy-bg-dark-tertiary)}, #{green($classy-bg-dark-tertiary)}, #{blue($classy-bg-dark-tertiary)};
48
+
49
+ // Component backgrounds - use secondary bg for elevated surfaces
50
+ // --bs-card-bg: #{$classy-bg-dark-secondary};
51
+ // --bs-dropdown-bg: #{$classy-bg-dark-secondary};
52
+ // --bs-modal-bg: #{$classy-bg-dark-secondary};
53
+ // --bs-popover-bg: #{$classy-bg-dark-secondary};
54
+ // --bs-offcanvas-bg: #{$classy-bg-dark-secondary};
55
+ // --bs-accordion-bg: #{$classy-bg-dark-secondary};
56
+
57
+ // Add more Bootstrap overrides here as needed
58
+ }
@@ -0,0 +1,92 @@
1
+ // Classy Soft Color Utilities
2
+ // Transparent color variations for all Bootstrap theme colors
3
+ // Uses Bootstrap's $theme-colors map which is available via config
4
+
5
+ // ============================================
6
+ // Soft Color Generation Loop
7
+ // ============================================
8
+ @each $color-name, $color-value in $theme-colors {
9
+ // Soft background colors (50% opacity)
10
+ .bg-#{$color-name}-soft {
11
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.5) !important;
12
+ }
13
+
14
+ // Soft text colors (more vibrant for readability)
15
+ .text-#{$color-name}-soft {
16
+ color: rgba(var(--bs-#{$color-name}-rgb), 0.8) !important;
17
+ }
18
+
19
+ // Soft border colors
20
+ .border-#{$color-name}-soft {
21
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.2) !important;
22
+ }
23
+
24
+ // Soft buttons - background with hover states
25
+ .btn-#{$color-name}-soft {
26
+ color: var(--bs-#{$color-name});
27
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.1);
28
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.1);
29
+
30
+ &:hover {
31
+ color: var(--bs-#{$color-name});
32
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.2);
33
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.2);
34
+ }
35
+
36
+ &:focus,
37
+ &:active,
38
+ &.active {
39
+ color: var(--bs-#{$color-name});
40
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.25);
41
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.25);
42
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-#{$color-name}-rgb), 0.15);
43
+ }
44
+
45
+ &:disabled,
46
+ &.disabled {
47
+ color: rgba(var(--bs-#{$color-name}-rgb), 0.5);
48
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.05);
49
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.05);
50
+ }
51
+ }
52
+
53
+ // Soft outline buttons
54
+ .btn-outline-#{$color-name}-soft {
55
+ color: var(--bs-#{$color-name});
56
+ background-color: transparent;
57
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.3);
58
+
59
+ &:hover {
60
+ color: var(--bs-#{$color-name});
61
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.1);
62
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.4);
63
+ }
64
+
65
+ &:focus,
66
+ &:active,
67
+ &.active {
68
+ color: var(--bs-#{$color-name});
69
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.15);
70
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.5);
71
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-#{$color-name}-rgb), 0.15);
72
+ }
73
+ }
74
+
75
+ // Soft badges
76
+ .badge-#{$color-name}-soft {
77
+ color: var(--bs-#{$color-name});
78
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.1);
79
+ }
80
+
81
+ // Soft alerts
82
+ .alert-#{$color-name}-soft {
83
+ color: var(--bs-#{$color-name});
84
+ background-color: rgba(var(--bs-#{$color-name}-rgb), 0.1);
85
+ border-color: rgba(var(--bs-#{$color-name}-rgb), 0.2);
86
+
87
+ .alert-link {
88
+ color: var(--bs-#{$color-name});
89
+ text-decoration: underline;
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,64 @@
1
+ // Classy Extended Spacing
2
+ // Additional spacing utilities beyond Bootstrap's defaults
3
+ // Uses Bootstrap's $spacer variable which is available via config
4
+
5
+ // ============================================
6
+ // Extended Padding Classes
7
+ // ============================================
8
+ @for $i from 6 through 10 {
9
+ $size: if($i == 6, 4, if($i == 7, 5, if($i == 8, 6, if($i == 9, 8, 10))));
10
+
11
+ .p-#{$i} { padding: $spacer * $size !important; }
12
+ .pt-#{$i} { padding-top: $spacer * $size !important; }
13
+ .pb-#{$i} { padding-bottom: $spacer * $size !important; }
14
+ .ps-#{$i} { padding-left: $spacer * $size !important; }
15
+ .pe-#{$i} { padding-right: $spacer * $size !important; }
16
+ .px-#{$i} {
17
+ padding-left: $spacer * $size !important;
18
+ padding-right: $spacer * $size !important;
19
+ }
20
+ .py-#{$i} {
21
+ padding-top: $spacer * $size !important;
22
+ padding-bottom: $spacer * $size !important;
23
+ }
24
+ }
25
+
26
+ // ============================================
27
+ // VH classes
28
+ // ============================================
29
+ // Height utilities using viewport height (vh) units
30
+ .vh-50 { height: 50vh !important; }
31
+
32
+ // Min-Height utilities using viewport height (vh) units
33
+ .min-vh-50 { min-height: 50vh !important; }
34
+ .min-vh-75 { min-height: 75vh !important; }
35
+ .min-vh-80 { min-height: 80vh !important; }
36
+ .min-vh-90 { min-height: 90vh !important; }
37
+ .min-vh-100 { min-height: 100vh !important; }
38
+
39
+ // ============================================
40
+ // Max Width Utilities (Bootstrap Breakpoints)
41
+ // ============================================
42
+ // Max width utility classes based on Bootstrap grid breakpoints
43
+ // Usage: mw-sm, mw-md, mw-lg, mw-xl, mw-xxl
44
+ // These set the max-width to match Bootstrap's container breakpoints
45
+
46
+ .mw-sm {
47
+ max-width: 576px !important;
48
+ }
49
+
50
+ .mw-md {
51
+ max-width: 768px !important;
52
+ }
53
+
54
+ .mw-lg {
55
+ max-width: 992px !important;
56
+ }
57
+
58
+ .mw-xl {
59
+ max-width: 1200px !important;
60
+ }
61
+
62
+ .mw-xxl {
63
+ max-width: 1400px !important;
64
+ }
@@ -0,0 +1,179 @@
1
+ // Classy Typography
2
+ // Modern font system with responsive headings and utilities
3
+
4
+ // ============================================
5
+ // CSS Custom Properties
6
+ // ============================================
7
+ :root {
8
+ --bs-font-sans-serif: #{$font-family-sans-serif};
9
+ --bs-font-monospace: #{$classy-font-mono};
10
+
11
+ // Custom CSS variables for easy access
12
+ --classy-font-primary: #{$font-family-sans-serif};
13
+ --classy-font-mono: #{$classy-font-mono};
14
+ }
15
+
16
+ // ============================================
17
+ // Base Typography
18
+ // ============================================
19
+ body {
20
+ font-family: $font-family-sans-serif;
21
+ font-size: $classy-font-size-base;
22
+ font-weight: 400;
23
+ line-height: 1.6;
24
+ -webkit-font-smoothing: antialiased;
25
+ -moz-osx-font-smoothing: grayscale;
26
+ }
27
+
28
+ // ============================================
29
+ // Heading Styles
30
+ // ============================================
31
+ h1, .h1,
32
+ h2, .h2,
33
+ h3, .h3,
34
+ h4, .h4,
35
+ h5, .h5,
36
+ h6, .h6 {
37
+ font-family: $font-family-sans-serif;
38
+ font-weight: 700;
39
+ line-height: 1.2;
40
+ margin-bottom: 1rem;
41
+ letter-spacing: -0.02em;
42
+ }
43
+
44
+ h1, .h1 {
45
+ font-size: clamp(2.5rem, 5vw, $classy-font-size-6xl);
46
+ font-weight: 800;
47
+ letter-spacing: -0.03em;
48
+
49
+ @media (max-width: $classy-breakpoint-md) {
50
+ font-size: $classy-font-size-4xl;
51
+ }
52
+ }
53
+
54
+ h2, .h2 {
55
+ font-size: clamp(2rem, 4vw, $classy-font-size-5xl);
56
+ font-weight: 700;
57
+
58
+ @media (max-width: $classy-breakpoint-md) {
59
+ font-size: $classy-font-size-3xl;
60
+ }
61
+ }
62
+
63
+ h3, .h3 {
64
+ font-size: clamp(1.5rem, 3vw, $classy-font-size-4xl);
65
+ font-weight: 600;
66
+
67
+ @media (max-width: $classy-breakpoint-md) {
68
+ font-size: $classy-font-size-2xl;
69
+ }
70
+ }
71
+
72
+ h4, .h4 {
73
+ font-size: $classy-font-size-2xl;
74
+ font-weight: 600;
75
+ }
76
+
77
+ h5, .h5 {
78
+ font-size: $classy-font-size-xl;
79
+ font-weight: 500;
80
+ }
81
+
82
+ h6, .h6 {
83
+ font-size: $classy-font-size-lg;
84
+ font-weight: 500;
85
+ }
86
+
87
+ // ============================================
88
+ // Display Typography
89
+ // ============================================
90
+ .display-1 {
91
+ font-size: clamp(3rem, 7vw, 5rem);
92
+ font-weight: 900;
93
+ letter-spacing: -0.04em;
94
+ line-height: 1;
95
+ }
96
+
97
+ .display-2 {
98
+ font-size: clamp(2.5rem, 6vw, 4rem);
99
+ font-weight: 800;
100
+ letter-spacing: -0.03em;
101
+ line-height: 1.1;
102
+ }
103
+
104
+ // ============================================
105
+ // Lead Text
106
+ // ============================================
107
+ .lead {
108
+ font-size: $classy-font-size-xl;
109
+ font-weight: 400;
110
+ line-height: 1.6;
111
+ }
112
+
113
+
114
+
115
+ // ============================================
116
+ // Font Weight Utilities
117
+ // ============================================
118
+ .fw-300 { font-weight: 300 !important; }
119
+ .fw-400 { font-weight: 400 !important; }
120
+ .fw-500 { font-weight: 500 !important; }
121
+ .fw-600 { font-weight: 600 !important; }
122
+ .fw-700 { font-weight: 700 !important; }
123
+ .fw-800 { font-weight: 800 !important; }
124
+ .fw-900 { font-weight: 900 !important; }
125
+
126
+ // ============================================
127
+ // Letter Spacing
128
+ // ============================================
129
+ .ls-tight { letter-spacing: -0.02em !important; }
130
+ .ls-tighter { letter-spacing: -0.04em !important; }
131
+ .ls-normal { letter-spacing: 0 !important; }
132
+ .ls-wide { letter-spacing: 0.02em !important; }
133
+ .ls-wider { letter-spacing: 0.04em !important; }
134
+
135
+ // ============================================
136
+ // Line Height Utilities
137
+ // ============================================
138
+ .lh-1 { line-height: 1 !important; }
139
+ .lh-tight { line-height: 1.2 !important; }
140
+ .lh-normal { line-height: 1.6 !important; }
141
+ .lh-relaxed { line-height: 1.8 !important; }
142
+ .lh-loose { line-height: 2 !important; }
143
+
144
+ // ============================================
145
+ // Code Blocks
146
+ // ============================================
147
+ code, kbd, pre, samp {
148
+ font-family: $classy-font-mono;
149
+ }
150
+
151
+ code {
152
+ padding: 0.125rem 0.375rem;
153
+ font-size: 0.875em;
154
+ border-radius: $classy-radius-sm;
155
+ }
156
+
157
+ pre {
158
+ padding: $classy-spacing-lg;
159
+ border-radius: $classy-radius-lg;
160
+ overflow-x: auto;
161
+
162
+ code {
163
+ padding: 0;
164
+ font-size: inherit;
165
+ border-radius: 0;
166
+ }
167
+ }
168
+
169
+ // ============================================
170
+ // Blockquotes
171
+ // ============================================
172
+ blockquote {
173
+ padding-left: $classy-spacing-lg;
174
+ border-left-width: 4px;
175
+ border-left-style: solid;
176
+ font-size: $classy-font-size-lg;
177
+ font-style: italic;
178
+ }
179
+