browser-extension-manager 1.0.14 → 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} +2 -1
  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 +71 -78
  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 +202 -13
  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,115 @@
1
+ // Classy Form Components
2
+ // Modern form styling with consistent rounded corners
3
+
4
+ // ============================================
5
+ // Input Groups
6
+ // ============================================
7
+ .input-group {
8
+ > .form-control {
9
+ border-radius: $classy-radius-lg;
10
+
11
+ &:not(:last-child) {
12
+ border-top-right-radius: 0;
13
+ border-bottom-right-radius: 0;
14
+ }
15
+
16
+ &:not(:first-child) {
17
+ border-top-left-radius: 0;
18
+ border-bottom-left-radius: 0;
19
+ }
20
+ }
21
+
22
+ // Buttons in input groups
23
+ > .btn {
24
+ border-radius: $classy-radius-lg;
25
+
26
+ &:not(:last-child) {
27
+ border-top-right-radius: 0;
28
+ border-bottom-right-radius: 0;
29
+ }
30
+
31
+ &:not(:first-child) {
32
+ border-top-left-radius: 0;
33
+ border-bottom-left-radius: 0;
34
+ }
35
+
36
+ // Last button in group
37
+ &:last-child {
38
+ border-top-left-radius: 0;
39
+ border-bottom-left-radius: 0;
40
+ }
41
+
42
+ // First button in group
43
+ &:first-child {
44
+ border-top-right-radius: 0;
45
+ border-bottom-right-radius: 0;
46
+ }
47
+ }
48
+
49
+ // Input group text
50
+ > .input-group-text {
51
+ border-radius: $classy-radius-lg;
52
+
53
+ &:not(:last-child) {
54
+ border-top-right-radius: 0;
55
+ border-bottom-right-radius: 0;
56
+ }
57
+
58
+ &:not(:first-child) {
59
+ border-top-left-radius: 0;
60
+ border-bottom-left-radius: 0;
61
+ }
62
+ }
63
+ }
64
+
65
+ // ============================================
66
+ // Form Controls
67
+ // ============================================
68
+ .form-control,
69
+ .form-select {
70
+ border-radius: $classy-radius-lg;
71
+ border: 1px solid var(--bs-border-color);
72
+ background-color: var(--bs-body-bg);
73
+ transition: all 0.2s ease;
74
+
75
+ &:focus {
76
+ border-color: $primary;
77
+ box-shadow: 0 0 0 0.25rem rgba($primary, 0.25);
78
+ background-color: var(--bs-body-bg);
79
+ }
80
+ }
81
+
82
+ // ============================================
83
+ // Form Labels & Text
84
+ // ============================================
85
+ .form-label {
86
+ font-weight: 500;
87
+ margin-bottom: 0.5rem;
88
+ }
89
+
90
+ // Form text
91
+ .form-text {
92
+ font-size: 0.875rem;
93
+ color: $classy-gray;
94
+ }
95
+
96
+ // ============================================
97
+ // Custom Checkboxes & Radios
98
+ // ============================================
99
+ .form-check-input {
100
+ border-radius: $classy-radius-sm;
101
+
102
+ &[type="radio"] {
103
+ border-radius: 50%;
104
+ }
105
+
106
+ &:checked {
107
+ background-color: $primary;
108
+ border-color: $primary;
109
+ }
110
+
111
+ &:focus {
112
+ border-color: $primary;
113
+ box-shadow: 0 0 0 0.25rem rgba($primary, 0.25);
114
+ }
115
+ }
@@ -0,0 +1,19 @@
1
+ // Classy Link Components
2
+ // Custom link styles and variations
3
+
4
+ // ============================================
5
+ // Muted Link Style
6
+ // ============================================
7
+ .link-muted {
8
+ --bs-text-opacity: 1;
9
+ color: var(--bs-secondary-color) !important;
10
+ text-decoration: none;
11
+ transition: opacity 0.15s ease-in-out;
12
+
13
+ &:hover,
14
+ &:focus {
15
+ color: var(--bs-secondary-color) !important;
16
+ text-decoration: underline;
17
+ opacity: 0.75;
18
+ }
19
+ }
@@ -0,0 +1,57 @@
1
+ // Logo Scroll Animation Component
2
+ // Infinite scrolling logo carousel for partner/client sections
3
+
4
+ // ============================================
5
+ // Container & Track
6
+ // ============================================
7
+
8
+ .logo-scroll-wrapper {
9
+ position: relative;
10
+ width: 100vw;
11
+ margin-left: calc(-50vw + 50%);
12
+ overflow: hidden;
13
+ }
14
+
15
+ .logo-scroll-track {
16
+ display: flex;
17
+ width: fit-content;
18
+ animation: scroll-logos var(--logo-scroll-duration, 30s) linear infinite;
19
+ }
20
+
21
+ .logo-item {
22
+ padding: 0 3rem;
23
+ display: flex;
24
+ align-items: center;
25
+ height: 60px;
26
+ flex-shrink: 0;
27
+
28
+ img, svg {
29
+ height: 40px;
30
+ width: auto;
31
+ max-width: 150px;
32
+ transition: all 0.3s ease;
33
+ }
34
+ }
35
+
36
+ @keyframes scroll-logos {
37
+ 0% {
38
+ transform: translateX(0);
39
+ }
40
+ 100% {
41
+ transform: translateX(var(--logo-scroll-distance, -50%));
42
+ }
43
+ }
44
+
45
+ // ============================================
46
+ // Responsive Design
47
+ // ============================================
48
+ @media (max-width: 768px) {
49
+ .logo-item {
50
+ padding: 0 2rem;
51
+ height: 50px;
52
+
53
+ img, svg {
54
+ height: 30px;
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,19 @@
1
+ // Classy Spinner Components
2
+ // Custom spinner size variants for Bootstrap spinners
3
+
4
+ // ============================================
5
+ // Large Spinner - Border Variant
6
+ // ============================================
7
+ .spinner-border-lg {
8
+ --bs-spinner-width: 3rem;
9
+ --bs-spinner-height: 3rem;
10
+ --bs-spinner-border-width: 0.375rem;
11
+ }
12
+
13
+ // ============================================
14
+ // Large Spinner - Grow Variant
15
+ // ============================================
16
+ .spinner-grow-lg {
17
+ --bs-spinner-width: 3rem;
18
+ --bs-spinner-height: 3rem;
19
+ }
@@ -0,0 +1,41 @@
1
+ // Classy Text Components
2
+ // Text effects and utilities
3
+
4
+ // ============================================
5
+ // Gradient Text Styles
6
+ // ============================================
7
+ .text-gradient-rainbow {
8
+ background-image: $classy-gradient-rainbow;
9
+ background-size: 300% 300%;
10
+ -webkit-background-clip: text;
11
+ -webkit-text-fill-color: transparent;
12
+ background-clip: text;
13
+ }
14
+
15
+ .text-gradient-aurora {
16
+ background-image: $classy-gradient-aurora;
17
+ background-size: 300% 300%;
18
+ -webkit-background-clip: text;
19
+ -webkit-text-fill-color: transparent;
20
+ background-clip: text;
21
+ }
22
+
23
+ // ============================================
24
+ // Accent Font
25
+ // ============================================
26
+ .text-accent {
27
+ font-family: $classy-font-accent;
28
+ font-weight: inherit;
29
+ font-style: italic;
30
+ }
31
+
32
+ // ============================================
33
+ // Adaptive Text Colors
34
+ // ============================================
35
+ .text-adaptive {
36
+ @extend .text-light;
37
+ }
38
+
39
+ [data-bs-theme="dark"] .text-adaptive {
40
+ @extend .text-dark;
41
+ }
@@ -0,0 +1,42 @@
1
+ // Classy Blog Layout
2
+ // Responsive image sizing for blog posts and cards
3
+
4
+ // ============================================
5
+ // Blog Card Images
6
+ // ============================================
7
+ .blog-post-card-image {
8
+ height: 240px;
9
+ width: 100%;
10
+ }
11
+
12
+ @media (max-width: 991.98px) {
13
+ .blog-post-card-image {
14
+ height: 240px;
15
+ }
16
+ }
17
+
18
+ @media (max-width: 575.98px) {
19
+ .blog-post-card-image {
20
+ height: 200px;
21
+ }
22
+ }
23
+
24
+ // ============================================
25
+ // Blog Post Page Images
26
+ // ============================================
27
+ .blog-post-image {
28
+ min-height: 600px;
29
+ width: 100%;
30
+ }
31
+
32
+ @media (max-width: 991.98px) {
33
+ .blog-post-image {
34
+ min-height: 360px;
35
+ }
36
+ }
37
+
38
+ @media (max-width: 575.98px) {
39
+ .blog-post-image {
40
+ min-height: 240px;
41
+ }
42
+ }
@@ -0,0 +1,139 @@
1
+ // Classy General Layout
2
+ // Standard spacing and layout rules
3
+
4
+ // ============================================
5
+ // Main Content Spacing
6
+ // ============================================
7
+ main {
8
+ padding-top: 6rem;
9
+ // padding-bottom: 2rem;
10
+
11
+ @media (min-width: 992px) {
12
+ padding-top: 3.5rem;
13
+ }
14
+ }
15
+
16
+ // ============================================
17
+ // Section Spacing
18
+ // ============================================
19
+ main {
20
+ > section {
21
+ padding-top: 4rem;
22
+ padding-bottom: 4rem;
23
+
24
+ @media (min-width: 992px) {
25
+ padding-top: 7rem;
26
+ padding-bottom: 7rem;
27
+ }
28
+ }
29
+ }
30
+
31
+ // ============================================
32
+ // Section Breakout Utilities
33
+ // ============================================
34
+
35
+ // Horizontal breakout - full width (edge-to-edge)
36
+ .section-breakout-x {
37
+ margin-left: calc(-50vw + 50%);
38
+ margin-right: calc(-50vw + 50%);
39
+ width: 100vw;
40
+ }
41
+
42
+ // Horizontal breakout - nearly full width (with padding on left/right)
43
+ .section-breakout-x-nearly {
44
+ margin-left: calc(-50vw + 50% + 0.25rem);
45
+ margin-right: calc(-50vw + 50% + 0.25rem);
46
+ width: calc(100vw - 0.5rem);
47
+
48
+ @media (min-width: 768px) {
49
+ margin-left: calc(-50vw + 50% + 1rem);
50
+ margin-right: calc(-50vw + 50% + 1rem);
51
+ width: calc(100vw - 2rem);
52
+ }
53
+
54
+ @media (min-width: 1200px) {
55
+ margin-left: calc(-50vw + 50% + 1.5rem);
56
+ margin-right: calc(-50vw + 50% + 1.5rem);
57
+ width: calc(100vw - 3rem);
58
+ }
59
+ }
60
+
61
+ // Responsive breakout classes (Bootstrap-style breakpoints)
62
+ // Small and up (576px+)
63
+ @media (min-width: 576px) {
64
+ .section-breakout-x-sm {
65
+ margin-left: calc(-50vw + 50%);
66
+ margin-right: calc(-50vw + 50%);
67
+ width: 100vw;
68
+ }
69
+ .section-breakout-x-nearly-sm {
70
+ margin-left: calc(-50vw + 50% + 0.25rem);
71
+ margin-right: calc(-50vw + 50% + 0.25rem);
72
+ width: calc(100vw - 0.5rem);
73
+ }
74
+ }
75
+
76
+ // Medium and up (768px+)
77
+ @media (min-width: 768px) {
78
+ .section-breakout-x-md {
79
+ margin-left: calc(-50vw + 50%);
80
+ margin-right: calc(-50vw + 50%);
81
+ width: 100vw;
82
+ }
83
+ .section-breakout-x-nearly-md {
84
+ margin-left: calc(-50vw + 50% + 1rem);
85
+ margin-right: calc(-50vw + 50% + 1rem);
86
+ width: calc(100vw - 2rem);
87
+ }
88
+ }
89
+
90
+ // Large and up (992px+)
91
+ @media (min-width: 992px) {
92
+ .section-breakout-x-lg {
93
+ margin-left: calc(-50vw + 50%);
94
+ margin-right: calc(-50vw + 50%);
95
+ width: 100vw;
96
+ }
97
+ .section-breakout-x-nearly-lg {
98
+ margin-left: calc(-50vw + 50% + 1rem);
99
+ margin-right: calc(-50vw + 50% + 1rem);
100
+ width: calc(100vw - 2rem);
101
+ }
102
+ }
103
+
104
+ // Extra large and up (1200px+)
105
+ @media (min-width: 1200px) {
106
+ .section-breakout-x-xl {
107
+ margin-left: calc(-50vw + 50%);
108
+ margin-right: calc(-50vw + 50%);
109
+ width: 100vw;
110
+ }
111
+ .section-breakout-x-nearly-xl {
112
+ margin-left: calc(-50vw + 50% + 1.5rem);
113
+ margin-right: calc(-50vw + 50% + 1.5rem);
114
+ width: calc(100vw - 3rem);
115
+ }
116
+ }
117
+
118
+ // XXL and up (1400px+)
119
+ @media (min-width: 1400px) {
120
+ .section-breakout-x-xxl {
121
+ margin-left: calc(-50vw + 50%);
122
+ margin-right: calc(-50vw + 50%);
123
+ width: 100vw;
124
+ }
125
+ .section-breakout-x-nearly-xxl {
126
+ margin-left: calc(-50vw + 50% + 1.5rem);
127
+ margin-right: calc(-50vw + 50% + 1.5rem);
128
+ width: calc(100vw - 3rem);
129
+ }
130
+ }
131
+
132
+ // Vertical breakout - top (negative top margin to offset main padding of 6rem on mobile, 3.5rem on desktop)
133
+ .section-breakout-top {
134
+ margin-top: -6rem;
135
+
136
+ @media (min-width: 992px) {
137
+ margin-top: -3.5rem;
138
+ }
139
+ }