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.
- package/CHANGELOG.md +43 -0
- package/CLAUDE.md +672 -0
- package/TODO.md +3 -0
- package/dist/assets/css/browser-extension-manager.scss +18 -0
- package/dist/assets/css/components/content/index.scss +5 -0
- package/dist/assets/css/components/options/index.scss +5 -0
- package/dist/assets/css/components/pages/index.scss +5 -0
- package/dist/assets/css/components/popup/index.scss +5 -0
- package/dist/assets/css/core/_animations.scss +64 -0
- package/dist/assets/css/core/_initialize.scss +23 -0
- package/dist/assets/css/core/_utilities.scss +80 -0
- package/dist/assets/themes/_template/_theme.js +5 -0
- package/dist/assets/themes/_template/_theme.scss +5 -0
- package/dist/assets/themes/bootstrap/_theme.js +16 -0
- package/dist/assets/themes/bootstrap/_theme.scss +232 -0
- package/dist/assets/themes/bootstrap/js/index.esm.js +19 -0
- package/dist/assets/themes/bootstrap/js/index.umd.js +34 -0
- package/dist/assets/themes/bootstrap/js/src/alert.js +87 -0
- package/dist/assets/themes/bootstrap/js/src/base-component.js +86 -0
- package/dist/assets/themes/bootstrap/js/src/button.js +72 -0
- package/dist/assets/themes/bootstrap/js/src/carousel.js +474 -0
- package/dist/assets/themes/bootstrap/js/src/collapse.js +297 -0
- package/dist/assets/themes/bootstrap/js/src/dom/data.js +55 -0
- package/dist/assets/themes/bootstrap/js/src/dom/event-handler.js +317 -0
- package/dist/assets/themes/bootstrap/js/src/dom/manipulator.js +71 -0
- package/dist/assets/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
- package/dist/assets/themes/bootstrap/js/src/dropdown.js +458 -0
- package/dist/assets/themes/bootstrap/js/src/modal.js +378 -0
- package/dist/assets/themes/bootstrap/js/src/offcanvas.js +282 -0
- package/dist/assets/themes/bootstrap/js/src/popover.js +97 -0
- package/dist/assets/themes/bootstrap/js/src/scrollspy.js +296 -0
- package/dist/assets/themes/bootstrap/js/src/tab.js +315 -0
- package/dist/assets/themes/bootstrap/js/src/toast.js +224 -0
- package/dist/assets/themes/bootstrap/js/src/tooltip.js +632 -0
- package/dist/assets/themes/bootstrap/js/src/util/backdrop.js +151 -0
- package/dist/assets/themes/bootstrap/js/src/util/component-functions.js +35 -0
- package/dist/assets/themes/bootstrap/js/src/util/config.js +65 -0
- package/dist/assets/themes/bootstrap/js/src/util/focustrap.js +115 -0
- package/dist/assets/themes/bootstrap/js/src/util/index.js +306 -0
- package/dist/assets/themes/bootstrap/js/src/util/sanitizer.js +117 -0
- package/dist/assets/themes/bootstrap/js/src/util/scrollbar.js +114 -0
- package/dist/assets/themes/bootstrap/js/src/util/swipe.js +146 -0
- package/dist/assets/themes/bootstrap/js/src/util/template-factory.js +160 -0
- package/dist/assets/themes/bootstrap/scss/_accordion.scss +153 -0
- package/dist/assets/themes/bootstrap/scss/_alert.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_badge.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/_breadcrumb.scss +40 -0
- package/dist/assets/themes/bootstrap/scss/_button-group.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_buttons.scss +216 -0
- package/dist/assets/themes/bootstrap/scss/_card.scss +238 -0
- package/dist/assets/themes/bootstrap/scss/_carousel.scss +226 -0
- package/dist/assets/themes/bootstrap/scss/_close.scss +66 -0
- package/dist/assets/themes/bootstrap/scss/_containers.scss +41 -0
- package/dist/assets/themes/bootstrap/scss/_dropdown.scss +250 -0
- package/dist/assets/themes/bootstrap/scss/_forms.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/_functions.scss +302 -0
- package/dist/assets/themes/bootstrap/scss/_grid.scss +39 -0
- package/dist/assets/themes/bootstrap/scss/_helpers.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/_images.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_list-group.scss +199 -0
- package/dist/assets/themes/bootstrap/scss/_maps.scss +174 -0
- package/dist/assets/themes/bootstrap/scss/_mixins.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_modal.scss +240 -0
- package/dist/assets/themes/bootstrap/scss/_nav.scss +197 -0
- package/dist/assets/themes/bootstrap/scss/_navbar.scss +289 -0
- package/dist/assets/themes/bootstrap/scss/_offcanvas.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_pagination.scss +109 -0
- package/dist/assets/themes/bootstrap/scss/_placeholders.scss +51 -0
- package/dist/assets/themes/bootstrap/scss/_popover.scss +196 -0
- package/dist/assets/themes/bootstrap/scss/_progress.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_reboot.scss +611 -0
- package/dist/assets/themes/bootstrap/scss/_root.scss +187 -0
- package/dist/assets/themes/bootstrap/scss/_spinners.scss +85 -0
- package/dist/assets/themes/bootstrap/scss/_tables.scss +171 -0
- package/dist/assets/themes/bootstrap/scss/_toasts.scss +73 -0
- package/dist/assets/themes/bootstrap/scss/_tooltip.scss +119 -0
- package/dist/assets/themes/bootstrap/scss/_transitions.scss +27 -0
- package/dist/assets/themes/bootstrap/scss/_type.scss +106 -0
- package/dist/assets/themes/bootstrap/scss/_utilities.scss +806 -0
- package/dist/assets/themes/bootstrap/scss/_variables-dark.scss +102 -0
- package/dist/assets/themes/bootstrap/scss/_variables.scss +1753 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap.scss +52 -0
- package/dist/assets/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-check.scss +189 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-control.scss +214 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-range.scss +91 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-select.scss +80 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-text.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/forms/_input-group.scss +132 -0
- package/dist/assets/themes/bootstrap/scss/forms/_labels.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/forms/_validation.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_position.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_vr.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_alert.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_banner.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_caret.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_container.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_forms.scss +163 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_grid.scss +151 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_image.scss +16 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_lists.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_resize.scss +6 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_transition.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/tests/jasmine.js +16 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
- package/dist/assets/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
- package/dist/assets/themes/bootstrap/scss/utilities/_api.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
- package/dist/assets/themes/classy/README.md +75 -0
- package/dist/assets/themes/classy/_config.scss +185 -0
- package/dist/assets/themes/classy/_theme.js +29 -0
- package/dist/assets/themes/classy/_theme.scss +34 -0
- package/dist/assets/themes/classy/css/base/_animations.scss +27 -0
- package/dist/assets/themes/classy/css/base/_backgrounds.scss +191 -0
- package/dist/assets/themes/classy/css/base/_borders.scss +65 -0
- package/dist/assets/themes/classy/css/base/_root.scss +58 -0
- package/dist/assets/themes/classy/css/base/_soft-colors.scss +92 -0
- package/dist/assets/themes/classy/css/base/_spacing.scss +64 -0
- package/dist/assets/themes/classy/css/base/_typography.scss +179 -0
- package/dist/assets/themes/classy/css/base/_utilities.scss +77 -0
- package/dist/assets/themes/classy/css/components/_accordion.scss +33 -0
- package/dist/assets/themes/classy/css/components/_avatars.scss +32 -0
- package/dist/assets/themes/classy/css/components/_badges.scss +25 -0
- package/dist/assets/themes/classy/css/components/_buttons.scss +397 -0
- package/dist/assets/themes/classy/css/components/_cards.scss +33 -0
- package/dist/assets/themes/classy/css/components/_carousel.scss +41 -0
- package/dist/assets/themes/classy/css/components/_forms.scss +115 -0
- package/dist/assets/themes/classy/css/components/_links.scss +19 -0
- package/dist/assets/themes/classy/css/components/_logo-scroll.scss +57 -0
- package/dist/assets/themes/classy/css/components/_spinners.scss +19 -0
- package/dist/assets/themes/classy/css/components/_text.scss +41 -0
- package/dist/assets/themes/classy/css/layout/_blog.scss +42 -0
- package/dist/assets/themes/classy/css/layout/_general.scss +139 -0
- package/dist/assets/themes/classy/css/layout/_navigation.scss +576 -0
- package/dist/assets/themes/classy/css/layout/_team.scss +18 -0
- package/dist/assets/themes/classy/js/logo-scroll.js +83 -0
- package/dist/assets/themes/classy/js/navbar-scroll.js +65 -0
- package/dist/background.js +236 -260
- package/dist/build.js +93 -4
- package/dist/commands/setup.js +0 -268
- package/dist/config/manifest.json +11 -3
- package/dist/config/page-template.html +21 -0
- package/dist/defaults/.nvmrc +1 -1
- package/dist/defaults/CLAUDE.md +8 -0
- package/dist/defaults/config/browser-extension-manager.json +37 -0
- package/dist/defaults/src/assets/css/components/content/index.scss +11 -0
- package/dist/defaults/src/assets/css/components/options/index.scss +14 -0
- package/dist/defaults/src/assets/css/components/pages/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/popup/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/sidepanel/index.scss +6 -0
- package/dist/defaults/src/assets/css/main.scss +32 -0
- package/dist/defaults/src/assets/js/components/background/index.js +22 -0
- package/dist/defaults/src/assets/js/components/content/index.js +22 -0
- package/dist/defaults/src/assets/js/components/options/index.js +22 -0
- package/dist/defaults/src/assets/js/components/pages/index.js +22 -0
- package/dist/defaults/src/assets/js/components/popup/index.js +22 -0
- package/dist/defaults/src/assets/js/components/sidepanel/index.js +20 -0
- package/dist/defaults/src/assets/vendor/.gitkeep +0 -0
- package/dist/defaults/src/manifest.json +11 -6
- package/dist/defaults/src/views/options/index.html +8 -0
- package/dist/defaults/src/views/pages/index.html +10 -0
- package/dist/defaults/src/views/popup/index.html +4 -0
- package/dist/defaults/src/views/sidepanel/index.html +4 -0
- package/dist/gulp/main.js +11 -5
- package/dist/gulp/plugins/webpack/strip-dev-blocks.js +53 -0
- package/dist/gulp/tasks/{_package.js → BU/_package.js} +1 -1
- package/dist/gulp/tasks/{developmentRebuild.js → BU/developmentRebuild.js} +1 -1
- package/dist/gulp/tasks/{themes.js → BU/themes.js} +2 -1
- package/dist/gulp/tasks/{test.js → _.js} +3 -3
- package/dist/gulp/tasks/audit.js +154 -0
- package/dist/gulp/tasks/defaults.js +308 -0
- package/dist/gulp/tasks/distribute.js +71 -78
- package/dist/gulp/tasks/html.js +150 -0
- package/dist/gulp/tasks/icons.js +3 -2
- package/dist/gulp/tasks/package.js +202 -13
- package/dist/gulp/tasks/sass.js +188 -43
- package/dist/gulp/tasks/serve.js +1 -0
- package/dist/gulp/tasks/utils/template-transform.js +50 -0
- package/dist/gulp/tasks/webpack.js +338 -134
- package/dist/index.js +34 -34
- package/dist/options.js +40 -0
- package/dist/page.js +40 -0
- package/dist/popup.js +40 -0
- package/dist/sidepanel.js +40 -0
- package/firebase-debug.log +322 -0
- package/package.json +25 -18
- package/dist/assets/css/main.scss +0 -3
- package/dist/assets/themes/bootstrap/5.3.3/css/bootstrap.css +0 -12057
- package/dist/assets/themes/bootstrap/5.3.3/css/bootstrap.css.map +0 -1
- package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.bundle.js +0 -6314
- package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.bundle.js.map +0 -1
- package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.js +0 -4494
- package/dist/assets/themes/bootstrap/5.3.3/js/bootstrap.js.map +0 -1
- package/dist/defaults/src/assets/css/content.scss +0 -2
- package/dist/defaults/src/assets/css/options.scss +0 -11
- package/dist/defaults/src/assets/css/popup.scss +0 -14
- package/dist/defaults/src/assets/js/background.js +0 -18
- package/dist/defaults/src/assets/js/content.js +0 -15
- package/dist/defaults/src/assets/js/options.js +0 -17
- package/dist/defaults/src/assets/js/popup.js +0 -17
- package/dist/defaults/src/pages/options.html +0 -26
- package/dist/defaults/src/pages/popup.html +0 -26
- /package/dist/{defaults/src/assets/images/_ → assets/css/bundles/.gitkeep} +0 -0
- /package/dist/assets/css/{fontawesome.scss → core/_fontawesome.scss} +0 -0
- /package/dist/defaults/src/assets/{vendor/_ → images/.gitkeep} +0 -0
- /package/dist/gulp/tasks/{_importer.js → BU/_importer.js} +0 -0
- /package/dist/gulp/tasks/{_vendor.js → BU/_vendor.js} +0 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
// stylelint-disable scss/dimension-no-non-numeric-values
|
|
2
|
+
|
|
3
|
+
// SCSS RFS mixin
|
|
4
|
+
//
|
|
5
|
+
// Automated responsive values for font sizes, paddings, margins and much more
|
|
6
|
+
//
|
|
7
|
+
// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
|
|
8
|
+
|
|
9
|
+
// Configuration
|
|
10
|
+
|
|
11
|
+
// Base value
|
|
12
|
+
$rfs-base-value: 1.25rem !default;
|
|
13
|
+
$rfs-unit: rem !default;
|
|
14
|
+
|
|
15
|
+
@if $rfs-unit != rem and $rfs-unit != px {
|
|
16
|
+
@error "`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.";
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Breakpoint at where values start decreasing if screen width is smaller
|
|
20
|
+
$rfs-breakpoint: 1200px !default;
|
|
21
|
+
$rfs-breakpoint-unit: px !default;
|
|
22
|
+
|
|
23
|
+
@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
|
|
24
|
+
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Resize values based on screen height and width
|
|
28
|
+
$rfs-two-dimensional: false !default;
|
|
29
|
+
|
|
30
|
+
// Factor of decrease
|
|
31
|
+
$rfs-factor: 10 !default;
|
|
32
|
+
|
|
33
|
+
@if type-of($rfs-factor) != number or $rfs-factor <= 1 {
|
|
34
|
+
@error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Mode. Possibilities: "min-media-query", "max-media-query"
|
|
38
|
+
$rfs-mode: min-media-query !default;
|
|
39
|
+
|
|
40
|
+
// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
|
|
41
|
+
$rfs-class: false !default;
|
|
42
|
+
|
|
43
|
+
// 1 rem = $rfs-rem-value px
|
|
44
|
+
$rfs-rem-value: 16 !default;
|
|
45
|
+
|
|
46
|
+
// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
|
|
47
|
+
$rfs-safari-iframe-resize-bug-fix: false !default;
|
|
48
|
+
|
|
49
|
+
// Disable RFS by setting $enable-rfs to false
|
|
50
|
+
$enable-rfs: true !default;
|
|
51
|
+
|
|
52
|
+
// Cache $rfs-base-value unit
|
|
53
|
+
$rfs-base-value-unit: unit($rfs-base-value);
|
|
54
|
+
|
|
55
|
+
@function divide($dividend, $divisor, $precision: 10) {
|
|
56
|
+
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
|
|
57
|
+
$dividend: abs($dividend);
|
|
58
|
+
$divisor: abs($divisor);
|
|
59
|
+
@if $dividend == 0 {
|
|
60
|
+
@return 0;
|
|
61
|
+
}
|
|
62
|
+
@if $divisor == 0 {
|
|
63
|
+
@error "Cannot divide by 0";
|
|
64
|
+
}
|
|
65
|
+
$remainder: $dividend;
|
|
66
|
+
$result: 0;
|
|
67
|
+
$factor: 10;
|
|
68
|
+
@while ($remainder > 0 and $precision >= 0) {
|
|
69
|
+
$quotient: 0;
|
|
70
|
+
@while ($remainder >= $divisor) {
|
|
71
|
+
$remainder: $remainder - $divisor;
|
|
72
|
+
$quotient: $quotient + 1;
|
|
73
|
+
}
|
|
74
|
+
$result: $result * 10 + $quotient;
|
|
75
|
+
$factor: $factor * .1;
|
|
76
|
+
$remainder: $remainder * 10;
|
|
77
|
+
$precision: $precision - 1;
|
|
78
|
+
@if ($precision < 0 and $remainder >= $divisor * 5) {
|
|
79
|
+
$result: $result + 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
$result: $result * $factor * $sign;
|
|
83
|
+
$dividend-unit: unit($dividend);
|
|
84
|
+
$divisor-unit: unit($divisor);
|
|
85
|
+
$unit-map: (
|
|
86
|
+
"px": 1px,
|
|
87
|
+
"rem": 1rem,
|
|
88
|
+
"em": 1em,
|
|
89
|
+
"%": 1%
|
|
90
|
+
);
|
|
91
|
+
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
|
|
92
|
+
$result: $result * map-get($unit-map, $dividend-unit);
|
|
93
|
+
}
|
|
94
|
+
@return $result;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Remove px-unit from $rfs-base-value for calculations
|
|
98
|
+
@if $rfs-base-value-unit == px {
|
|
99
|
+
$rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);
|
|
100
|
+
}
|
|
101
|
+
@else if $rfs-base-value-unit == rem {
|
|
102
|
+
$rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Cache $rfs-breakpoint unit to prevent multiple calls
|
|
106
|
+
$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
|
|
107
|
+
|
|
108
|
+
// Remove unit from $rfs-breakpoint for calculations
|
|
109
|
+
@if $rfs-breakpoint-unit-cache == px {
|
|
110
|
+
$rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
|
|
111
|
+
}
|
|
112
|
+
@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == "em" {
|
|
113
|
+
$rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Calculate the media query value
|
|
117
|
+
$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
|
|
118
|
+
$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);
|
|
119
|
+
$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);
|
|
120
|
+
|
|
121
|
+
// Internal mixin used to determine which media query needs to be used
|
|
122
|
+
@mixin _rfs-media-query {
|
|
123
|
+
@if $rfs-two-dimensional {
|
|
124
|
+
@if $rfs-mode == max-media-query {
|
|
125
|
+
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
|
|
126
|
+
@content;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
@else {
|
|
130
|
+
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
|
|
131
|
+
@content;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
@else {
|
|
136
|
+
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {
|
|
137
|
+
@content;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Internal mixin that adds disable classes to the selector if needed.
|
|
143
|
+
@mixin _rfs-rule {
|
|
144
|
+
@if $rfs-class == disable and $rfs-mode == max-media-query {
|
|
145
|
+
// Adding an extra class increases specificity, which prevents the media query to override the property
|
|
146
|
+
&,
|
|
147
|
+
.disable-rfs &,
|
|
148
|
+
&.disable-rfs {
|
|
149
|
+
@content;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
@else if $rfs-class == enable and $rfs-mode == min-media-query {
|
|
153
|
+
.enable-rfs &,
|
|
154
|
+
&.enable-rfs {
|
|
155
|
+
@content;
|
|
156
|
+
}
|
|
157
|
+
} @else {
|
|
158
|
+
@content;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Internal mixin that adds enable classes to the selector if needed.
|
|
163
|
+
@mixin _rfs-media-query-rule {
|
|
164
|
+
|
|
165
|
+
@if $rfs-class == enable {
|
|
166
|
+
@if $rfs-mode == min-media-query {
|
|
167
|
+
@content;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@include _rfs-media-query () {
|
|
171
|
+
.enable-rfs &,
|
|
172
|
+
&.enable-rfs {
|
|
173
|
+
@content;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
@else {
|
|
178
|
+
@if $rfs-class == disable and $rfs-mode == min-media-query {
|
|
179
|
+
.disable-rfs &,
|
|
180
|
+
&.disable-rfs {
|
|
181
|
+
@content;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
@include _rfs-media-query () {
|
|
185
|
+
@content;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Helper function to get the formatted non-responsive value
|
|
191
|
+
@function rfs-value($values) {
|
|
192
|
+
// Convert to list
|
|
193
|
+
$values: if(type-of($values) != list, ($values,), $values);
|
|
194
|
+
|
|
195
|
+
$val: "";
|
|
196
|
+
|
|
197
|
+
// Loop over each value and calculate value
|
|
198
|
+
@each $value in $values {
|
|
199
|
+
@if $value == 0 {
|
|
200
|
+
$val: $val + " 0";
|
|
201
|
+
}
|
|
202
|
+
@else {
|
|
203
|
+
// Cache $value unit
|
|
204
|
+
$unit: if(type-of($value) == "number", unit($value), false);
|
|
205
|
+
|
|
206
|
+
@if $unit == px {
|
|
207
|
+
// Convert to rem if needed
|
|
208
|
+
$val: $val + " " + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);
|
|
209
|
+
}
|
|
210
|
+
@else if $unit == rem {
|
|
211
|
+
// Convert to px if needed
|
|
212
|
+
$val: $val + " " + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);
|
|
213
|
+
} @else {
|
|
214
|
+
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
|
|
215
|
+
$val: $val + " " + $value;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// Remove first space
|
|
221
|
+
@return unquote(str-slice($val, 2));
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Helper function to get the responsive value calculated by RFS
|
|
225
|
+
@function rfs-fluid-value($values) {
|
|
226
|
+
// Convert to list
|
|
227
|
+
$values: if(type-of($values) != list, ($values,), $values);
|
|
228
|
+
|
|
229
|
+
$val: "";
|
|
230
|
+
|
|
231
|
+
// Loop over each value and calculate value
|
|
232
|
+
@each $value in $values {
|
|
233
|
+
@if $value == 0 {
|
|
234
|
+
$val: $val + " 0";
|
|
235
|
+
} @else {
|
|
236
|
+
// Cache $value unit
|
|
237
|
+
$unit: if(type-of($value) == "number", unit($value), false);
|
|
238
|
+
|
|
239
|
+
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
|
|
240
|
+
@if not $unit or $unit != px and $unit != rem {
|
|
241
|
+
$val: $val + " " + $value;
|
|
242
|
+
} @else {
|
|
243
|
+
// Remove unit from $value for calculations
|
|
244
|
+
$value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));
|
|
245
|
+
|
|
246
|
+
// Only add the media query if the value is greater than the minimum value
|
|
247
|
+
@if abs($value) <= $rfs-base-value or not $enable-rfs {
|
|
248
|
+
$val: $val + " " + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);
|
|
249
|
+
}
|
|
250
|
+
@else {
|
|
251
|
+
// Calculate the minimum value
|
|
252
|
+
$value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);
|
|
253
|
+
|
|
254
|
+
// Calculate difference between $value and the minimum value
|
|
255
|
+
$value-diff: abs($value) - $value-min;
|
|
256
|
+
|
|
257
|
+
// Base value formatting
|
|
258
|
+
$min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);
|
|
259
|
+
|
|
260
|
+
// Use negative value if needed
|
|
261
|
+
$min-width: if($value < 0, -$min-width, $min-width);
|
|
262
|
+
|
|
263
|
+
// Use `vmin` if two-dimensional is enabled
|
|
264
|
+
$variable-unit: if($rfs-two-dimensional, vmin, vw);
|
|
265
|
+
|
|
266
|
+
// Calculate the variable width between 0 and $rfs-breakpoint
|
|
267
|
+
$variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};
|
|
268
|
+
|
|
269
|
+
// Return the calculated value
|
|
270
|
+
$val: $val + " calc(" + $min-width + if($value < 0, " - ", " + ") + $variable-width + ")";
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// Remove first space
|
|
277
|
+
@return unquote(str-slice($val, 2));
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// RFS mixin
|
|
281
|
+
@mixin rfs($values, $property: font-size) {
|
|
282
|
+
@if $values != null {
|
|
283
|
+
$val: rfs-value($values);
|
|
284
|
+
$fluid-val: rfs-fluid-value($values);
|
|
285
|
+
|
|
286
|
+
// Do not print the media query if responsive & non-responsive values are the same
|
|
287
|
+
@if $val == $fluid-val {
|
|
288
|
+
#{$property}: $val;
|
|
289
|
+
}
|
|
290
|
+
@else {
|
|
291
|
+
@include _rfs-rule () {
|
|
292
|
+
#{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);
|
|
293
|
+
|
|
294
|
+
// Include safari iframe resize fix if needed
|
|
295
|
+
min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
@include _rfs-media-query-rule () {
|
|
299
|
+
#{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// Shorthand helper mixins
|
|
306
|
+
@mixin font-size($value) {
|
|
307
|
+
@include rfs($value);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
@mixin padding($value) {
|
|
311
|
+
@include rfs($value, padding);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
@mixin padding-top($value) {
|
|
315
|
+
@include rfs($value, padding-top);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
@mixin padding-right($value) {
|
|
319
|
+
@include rfs($value, padding-right);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
@mixin padding-bottom($value) {
|
|
323
|
+
@include rfs($value, padding-bottom);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@mixin padding-left($value) {
|
|
327
|
+
@include rfs($value, padding-left);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
@mixin margin($value) {
|
|
331
|
+
@include rfs($value, margin);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
@mixin margin-top($value) {
|
|
335
|
+
@include rfs($value, margin-top);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
@mixin margin-right($value) {
|
|
339
|
+
@include rfs($value, margin-right);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
@mixin margin-bottom($value) {
|
|
343
|
+
@include rfs($value, margin-bottom);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
@mixin margin-left($value) {
|
|
347
|
+
@include rfs($value, margin-left);
|
|
348
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Classy Theme Customization Guide
|
|
2
|
+
|
|
3
|
+
## How to Customize in Your Consuming Project
|
|
4
|
+
|
|
5
|
+
The Classy theme is designed to be fully customizable. All theme variables use `!default` which means you can override them BEFORE importing the theme.
|
|
6
|
+
|
|
7
|
+
### Example: Customizing Colors in Your Project
|
|
8
|
+
|
|
9
|
+
In your consuming project's `src/assets/css/main.scss`:
|
|
10
|
+
|
|
11
|
+
```scss
|
|
12
|
+
// 1. Override Classy theme variables BEFORE importing the theme
|
|
13
|
+
$primary: #FF0000; // Change primary color to red
|
|
14
|
+
$classy-bg-light: #F5F5F5; // Change light mode background
|
|
15
|
+
$classy-bg-dark: #1A1A1A; // Change dark mode background
|
|
16
|
+
$font-family-sans-serif: 'Inter', sans-serif; // Change font
|
|
17
|
+
|
|
18
|
+
// 2. Now import the Classy theme - it will use YOUR values
|
|
19
|
+
@import '~ultimate-jekyll-manager/src/assets/themes/classy/theme';
|
|
20
|
+
|
|
21
|
+
// 3. Add your custom styles below
|
|
22
|
+
.my-custom-class {
|
|
23
|
+
// Your custom CSS
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Available Customizable Variables
|
|
28
|
+
|
|
29
|
+
See `_config.scss` for the full list of variables you can override:
|
|
30
|
+
|
|
31
|
+
### Bootstrap Colors
|
|
32
|
+
- `$primary` - Primary brand color
|
|
33
|
+
- `$secondary` - Secondary color
|
|
34
|
+
- `$success`, `$info`, `$warning`, `$danger` - Utility colors
|
|
35
|
+
- `$light`, `$dark` - Light and dark variants
|
|
36
|
+
|
|
37
|
+
### Background Colors
|
|
38
|
+
- `$classy-bg-light` - Light mode background
|
|
39
|
+
- `$classy-bg-dark` - Dark mode background
|
|
40
|
+
|
|
41
|
+
### Typography
|
|
42
|
+
- `$font-family-sans-serif` - Main font family
|
|
43
|
+
- `$headings-font-weight` - Heading font weight
|
|
44
|
+
|
|
45
|
+
### Border Radius
|
|
46
|
+
- `$border-radius` - Default border radius
|
|
47
|
+
- `$border-radius-sm`, `$border-radius-lg` - Size variants
|
|
48
|
+
|
|
49
|
+
### Gradients
|
|
50
|
+
- `$classy-gradient-primary`, `$classy-gradient-aurora`, etc.
|
|
51
|
+
|
|
52
|
+
## File Structure
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
classy/
|
|
56
|
+
├── _config.scss ← All customizable variables with !default
|
|
57
|
+
├── _theme.scss ← Main entry point, imports config then Bootstrap
|
|
58
|
+
├── css/base/
|
|
59
|
+
│ ├── _variables.scss ← Internal non-customizable values
|
|
60
|
+
│ └── _root.scss ← CSS custom property overrides
|
|
61
|
+
└── ...
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## How It Works
|
|
65
|
+
|
|
66
|
+
1. **`_config.scss`**: Defines all variables with `!default` (can be overridden)
|
|
67
|
+
2. **Your `main.scss`**: Sets custom values BEFORE importing theme
|
|
68
|
+
3. **`_theme.scss`**: Imports config (uses your values or defaults), then Bootstrap
|
|
69
|
+
4. **`_root.scss`**: Converts SCSS variables to CSS custom properties for runtime
|
|
70
|
+
|
|
71
|
+
This ensures:
|
|
72
|
+
- ✅ You can customize anything
|
|
73
|
+
- ✅ Bootstrap gets configured with your colors
|
|
74
|
+
- ✅ CSS custom properties update for light/dark mode
|
|
75
|
+
- ✅ No need to modify theme files
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// Classy Theme Configuration
|
|
2
|
+
// ALL customizable variables are defined here with !default
|
|
3
|
+
// Consuming projects can override any of these using @use ... with ()
|
|
4
|
+
|
|
5
|
+
// ============================================
|
|
6
|
+
// Bootstrap Color Overrides
|
|
7
|
+
// ============================================
|
|
8
|
+
$primary: #5B47FB !default;
|
|
9
|
+
$secondary: #6C757D !default;
|
|
10
|
+
$success: #10B981 !default;
|
|
11
|
+
$info: #00D4FF !default;
|
|
12
|
+
$warning: #FFB800 !default;
|
|
13
|
+
$danger: #DC3545 !default;
|
|
14
|
+
$light: #F8F9FA !default;
|
|
15
|
+
$dark: #1A1A23 !default;
|
|
16
|
+
|
|
17
|
+
// ============================================
|
|
18
|
+
// Typography
|
|
19
|
+
// ============================================
|
|
20
|
+
$font-family-sans-serif: 'Lexend', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !default;
|
|
21
|
+
$headings-font-weight: 700 !default;
|
|
22
|
+
$classy-font-mono: monospace !default;
|
|
23
|
+
$classy-font-accent: 'Instrument Serif', serif !default;
|
|
24
|
+
// $classy-font-accent: 'DM Serif Display', serif !default;
|
|
25
|
+
// $classy-font-accent: 'Crimson Pro', serif !default;
|
|
26
|
+
|
|
27
|
+
// ============================================
|
|
28
|
+
// Border Radius
|
|
29
|
+
// ============================================
|
|
30
|
+
$border-radius: 0.5rem !default;
|
|
31
|
+
$border-radius-sm: 0.375rem !default;
|
|
32
|
+
$border-radius-lg: 0.75rem !default;
|
|
33
|
+
$border-radius-xl: 1rem !default;
|
|
34
|
+
$border-radius-2xl: 1.5rem !default;
|
|
35
|
+
$border-radius-pill: 50rem !default;
|
|
36
|
+
|
|
37
|
+
// Classy-specific border radius aliases
|
|
38
|
+
$classy-radius-sm: $border-radius-sm !default;
|
|
39
|
+
$classy-radius-md: $border-radius !default;
|
|
40
|
+
$classy-radius-lg: $border-radius-lg !default;
|
|
41
|
+
$classy-radius-xl: $border-radius-xl !default;
|
|
42
|
+
$classy-radius-2xl: $border-radius-2xl !default;
|
|
43
|
+
$classy-radius-full: 9999px !default;
|
|
44
|
+
|
|
45
|
+
// ============================================
|
|
46
|
+
// Background Colors (Light Mode)
|
|
47
|
+
// ============================================
|
|
48
|
+
$classy-bg-light: #ffffff !default; // Main body background
|
|
49
|
+
$classy-bg-light-secondary: #f6f6f6 !default; // Secondary backgrounds (cards, sidebars)
|
|
50
|
+
$classy-bg-light-tertiary: #f0f0f0 !default; // Tertiary backgrounds (hover states)
|
|
51
|
+
|
|
52
|
+
// ============================================
|
|
53
|
+
// Background Colors (Dark Mode)
|
|
54
|
+
// ============================================
|
|
55
|
+
$classy-bg-dark: #121212 !default; // Main body background
|
|
56
|
+
$classy-bg-dark-secondary: #171717 !default; // Secondary backgrounds (cards, sidebars)
|
|
57
|
+
$classy-bg-dark-tertiary: #212121 !default; // Tertiary backgrounds (hover states)
|
|
58
|
+
|
|
59
|
+
// ============================================
|
|
60
|
+
// Classy-Specific Colors
|
|
61
|
+
// ============================================
|
|
62
|
+
$classy-primary: $primary !default;
|
|
63
|
+
$classy-primary-dark: darken($primary, 10%) !default;
|
|
64
|
+
$classy-primary-light: lighten($primary, 10%) !default;
|
|
65
|
+
$classy-primary-soft: mix($primary, white, 10%) !default;
|
|
66
|
+
|
|
67
|
+
$classy-secondary: $secondary !default;
|
|
68
|
+
$classy-secondary-dark: darken($secondary, 5%) !default;
|
|
69
|
+
$classy-secondary-light: lighten($secondary, 5%) !default;
|
|
70
|
+
|
|
71
|
+
$classy-accent: $info !default;
|
|
72
|
+
$classy-accent-dark: darken($info, 10%) !default;
|
|
73
|
+
$classy-accent-light: lighten($info, 10%) !default;
|
|
74
|
+
|
|
75
|
+
$classy-dark: $dark !default;
|
|
76
|
+
$classy-dark-900: lighten($dark, 5%) !default;
|
|
77
|
+
$classy-dark-800: lighten($dark, 10%) !default;
|
|
78
|
+
$classy-dark-700: lighten($dark, 15%) !default;
|
|
79
|
+
$classy-dark-600: lighten($dark, 20%) !default;
|
|
80
|
+
|
|
81
|
+
$classy-gray: #6B7280 !default;
|
|
82
|
+
$classy-gray-light: #9CA3AF !default;
|
|
83
|
+
$classy-gray-lighter: #D1D5DB !default;
|
|
84
|
+
$classy-gray-lightest: #F3F4F6 !default;
|
|
85
|
+
|
|
86
|
+
$classy-white: #FFFFFF !default;
|
|
87
|
+
$classy-off-white: #FAFBFC !default;
|
|
88
|
+
$classy-cream: #FFF9F5 !default;
|
|
89
|
+
|
|
90
|
+
// ============================================
|
|
91
|
+
// Gradient Definitions
|
|
92
|
+
// ============================================
|
|
93
|
+
$classy-gradient-primary: linear-gradient(135deg, $classy-primary 0%, $classy-accent 100%) !default;
|
|
94
|
+
$classy-gradient-dark: linear-gradient(135deg, $classy-dark 0%, $classy-dark-800 100%) !default;
|
|
95
|
+
$classy-gradient-light: linear-gradient(135deg, $classy-white 0%, $classy-off-white 100%) !default;
|
|
96
|
+
$classy-gradient-sunset: linear-gradient(135deg, #FF6B6B 0%, #FFB84D 100%) !default;
|
|
97
|
+
$classy-gradient-aurora: linear-gradient(135deg, #5B47FB 0%, #00D4FF 50%, #FF6B6B 100%) !default;
|
|
98
|
+
$classy-gradient-rainbow: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8, #1098ad, #07b39b, #6fba82) !default;
|
|
99
|
+
|
|
100
|
+
// ============================================
|
|
101
|
+
// Typography Scale
|
|
102
|
+
// ============================================
|
|
103
|
+
$classy-font-size-xs: 0.75rem !default;
|
|
104
|
+
$classy-font-size-sm: 0.875rem !default;
|
|
105
|
+
$classy-font-size-base: 1rem !default;
|
|
106
|
+
$classy-font-size-lg: 1.125rem !default;
|
|
107
|
+
$classy-font-size-xl: 1.25rem !default;
|
|
108
|
+
$classy-font-size-2xl: 1.5rem !default;
|
|
109
|
+
$classy-font-size-3xl: 1.875rem !default;
|
|
110
|
+
$classy-font-size-4xl: 2.25rem !default;
|
|
111
|
+
$classy-font-size-5xl: 3rem !default;
|
|
112
|
+
$classy-font-size-6xl: 3.75rem !default;
|
|
113
|
+
|
|
114
|
+
// ============================================
|
|
115
|
+
// Spacing Scale
|
|
116
|
+
// ============================================
|
|
117
|
+
$classy-spacing-xs: 0.25rem !default;
|
|
118
|
+
$classy-spacing-sm: 0.5rem !default;
|
|
119
|
+
$classy-spacing-md: 1rem !default;
|
|
120
|
+
$classy-spacing-lg: 1.5rem !default;
|
|
121
|
+
$classy-spacing-xl: 2rem !default;
|
|
122
|
+
$classy-spacing-2xl: 3rem !default;
|
|
123
|
+
$classy-spacing-3xl: 4rem !default;
|
|
124
|
+
$classy-spacing-4xl: 6rem !default;
|
|
125
|
+
|
|
126
|
+
// ============================================
|
|
127
|
+
// Shadow System
|
|
128
|
+
// ============================================
|
|
129
|
+
$classy-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !default;
|
|
130
|
+
$classy-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) !default;
|
|
131
|
+
$classy-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !default;
|
|
132
|
+
$classy-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !default;
|
|
133
|
+
$classy-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !default;
|
|
134
|
+
$classy-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !default;
|
|
135
|
+
$classy-shadow-glow: 0 0 40px rgba(91, 71, 251, 0.15) !default;
|
|
136
|
+
|
|
137
|
+
// ============================================
|
|
138
|
+
// Transition Timing
|
|
139
|
+
// ============================================
|
|
140
|
+
$classy-transition-fast: all 0.15s cubic-bezier(.2,.3,0,1) !default;
|
|
141
|
+
$classy-transition-base: all 0.3s cubic-bezier(.2,.3,0,1) !default;
|
|
142
|
+
$classy-transition-slow: all 0.5s cubic-bezier(.2,.3,0,1) !default;
|
|
143
|
+
$classy-transition-bounce: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55) !default;
|
|
144
|
+
|
|
145
|
+
// ============================================
|
|
146
|
+
// Responsive Breakpoints
|
|
147
|
+
// ============================================
|
|
148
|
+
// Bootstrap-compatible breakpoint values
|
|
149
|
+
$classy-breakpoint-sm: 576px !default;
|
|
150
|
+
$classy-breakpoint-md: 768px !default;
|
|
151
|
+
$classy-breakpoint-lg: 992px !default;
|
|
152
|
+
$classy-breakpoint-xl: 1200px !default;
|
|
153
|
+
$classy-breakpoint-xxl: 1400px !default;
|
|
154
|
+
|
|
155
|
+
// ============================================
|
|
156
|
+
// Component Sizing
|
|
157
|
+
// ============================================
|
|
158
|
+
// Avatar sizes map
|
|
159
|
+
$avatar-sizes: (
|
|
160
|
+
null: 3rem, // default
|
|
161
|
+
2xs: 0.5rem,
|
|
162
|
+
xs: 1.5rem,
|
|
163
|
+
sm: 2rem,
|
|
164
|
+
md: 2.5rem,
|
|
165
|
+
lg: 3.5rem,
|
|
166
|
+
xl: 5rem,
|
|
167
|
+
2xl: 7.5rem
|
|
168
|
+
) !default;
|
|
169
|
+
|
|
170
|
+
// Forward Bootstrap with our configuration
|
|
171
|
+
@forward '../bootstrap/scss/bootstrap.scss' with (
|
|
172
|
+
$primary: $primary,
|
|
173
|
+
$secondary: $secondary,
|
|
174
|
+
$success: $success,
|
|
175
|
+
$info: $info,
|
|
176
|
+
$warning: $warning,
|
|
177
|
+
$danger: $danger,
|
|
178
|
+
$light: $light,
|
|
179
|
+
$dark: $dark,
|
|
180
|
+
$font-family-sans-serif: $font-family-sans-serif,
|
|
181
|
+
$headings-font-weight: $headings-font-weight,
|
|
182
|
+
$border-radius: $border-radius,
|
|
183
|
+
$border-radius-sm: $border-radius-sm,
|
|
184
|
+
$border-radius-lg: $border-radius-lg
|
|
185
|
+
);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Import the theme entry point
|
|
2
|
+
import bootstrap from '../bootstrap/js/index.umd.js';
|
|
3
|
+
|
|
4
|
+
// Make Bootstrap available globally
|
|
5
|
+
window.bootstrap = bootstrap;
|
|
6
|
+
|
|
7
|
+
// Log that we've MADE IT
|
|
8
|
+
/* @dev-only:start */
|
|
9
|
+
{
|
|
10
|
+
console.log('Classy theme loaded successfully (assets/themes/classy/_theme.js)');
|
|
11
|
+
}
|
|
12
|
+
/* @dev-only:end */
|
|
13
|
+
|
|
14
|
+
// Import navbar scroll functionality
|
|
15
|
+
import setupNavbarScroll from './js/navbar-scroll.js';
|
|
16
|
+
// Import logo scroll functionality
|
|
17
|
+
import setupLogoScroll from './js/logo-scroll.js';
|
|
18
|
+
|
|
19
|
+
// Initialize navbar scroll effect when DOM is ready
|
|
20
|
+
if (document.readyState === 'loading') {
|
|
21
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
22
|
+
setupNavbarScroll();
|
|
23
|
+
setupLogoScroll();
|
|
24
|
+
});
|
|
25
|
+
} else {
|
|
26
|
+
setupNavbarScroll();
|
|
27
|
+
setupLogoScroll();
|
|
28
|
+
}
|
|
29
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Forward theme configuration (allows consuming project to override)
|
|
2
|
+
@forward 'config';
|
|
3
|
+
@use 'config' as *;
|
|
4
|
+
|
|
5
|
+
// Import root overrides (CSS custom properties)
|
|
6
|
+
@import 'css/base/root';
|
|
7
|
+
|
|
8
|
+
// Import base styles
|
|
9
|
+
@import 'css/base/animations';
|
|
10
|
+
@import 'css/base/backgrounds';
|
|
11
|
+
@import 'css/base/borders';
|
|
12
|
+
@import 'css/base/soft-colors';
|
|
13
|
+
@import 'css/base/spacing';
|
|
14
|
+
@import 'css/base/typography';
|
|
15
|
+
@import 'css/base/utilities';
|
|
16
|
+
|
|
17
|
+
// Import layout styles
|
|
18
|
+
@import 'css/layout/blog';
|
|
19
|
+
@import 'css/layout/general';
|
|
20
|
+
@import 'css/layout/navigation';
|
|
21
|
+
@import 'css/layout/team';
|
|
22
|
+
|
|
23
|
+
// Import component styles
|
|
24
|
+
@import 'css/components/accordion';
|
|
25
|
+
@import 'css/components/avatars';
|
|
26
|
+
@import 'css/components/badges';
|
|
27
|
+
@import 'css/components/buttons';
|
|
28
|
+
@import 'css/components/cards';
|
|
29
|
+
@import 'css/components/carousel';
|
|
30
|
+
@import 'css/components/forms';
|
|
31
|
+
@import 'css/components/links';
|
|
32
|
+
@import 'css/components/logo-scroll';
|
|
33
|
+
@import 'css/components/spinners';
|
|
34
|
+
@import 'css/components/text';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Classy Animation Utilities
|
|
2
|
+
// Keyframes and animation classes for dynamic effects
|
|
3
|
+
|
|
4
|
+
// ============================================
|
|
5
|
+
// Keyframe Animations
|
|
6
|
+
// ============================================
|
|
7
|
+
|
|
8
|
+
@keyframes gradient-shimmer {
|
|
9
|
+
0% {
|
|
10
|
+
background-position: 0% 50%;
|
|
11
|
+
}
|
|
12
|
+
50% {
|
|
13
|
+
background-position: 100% 50%;
|
|
14
|
+
}
|
|
15
|
+
100% {
|
|
16
|
+
background-position: 0% 50%;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// ============================================
|
|
21
|
+
// Animation Classes
|
|
22
|
+
// ============================================
|
|
23
|
+
|
|
24
|
+
// Gradient animation modifier - works with all rainbow gradient classes
|
|
25
|
+
.gradient-animated {
|
|
26
|
+
animation: gradient-shimmer 5s ease-out infinite alternate !important;
|
|
27
|
+
}
|