ultimate-jekyll-manager 1.0.5 → 1.0.6

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 (77) hide show
  1. package/dist/assets/themes/elegant/README.md +75 -0
  2. package/dist/assets/themes/elegant/_config.scss +189 -0
  3. package/dist/assets/themes/elegant/_theme.js +36 -0
  4. package/dist/assets/themes/elegant/_theme.scss +34 -0
  5. package/dist/assets/themes/elegant/css/base/_animations.scss +27 -0
  6. package/dist/assets/themes/elegant/css/base/_backgrounds.scss +191 -0
  7. package/dist/assets/themes/elegant/css/base/_borders.scss +65 -0
  8. package/dist/assets/themes/elegant/css/base/_root.scss +58 -0
  9. package/dist/assets/themes/elegant/css/base/_typography.scss +155 -0
  10. package/dist/assets/themes/elegant/css/base/_utilities.scss +15 -0
  11. package/dist/assets/themes/elegant/css/components/_accordion.scss +44 -0
  12. package/dist/assets/themes/elegant/css/components/_badges.scss +25 -0
  13. package/dist/assets/themes/elegant/css/components/_buttons.scss +264 -0
  14. package/dist/assets/themes/elegant/css/components/_cards.scss +33 -0
  15. package/dist/assets/themes/elegant/css/components/_carousel.scss +41 -0
  16. package/dist/assets/themes/elegant/css/components/_forms.scss +150 -0
  17. package/dist/assets/themes/elegant/css/components/_infinite-scroll.scss +140 -0
  18. package/dist/assets/themes/elegant/css/components/_text.scss +53 -0
  19. package/dist/assets/themes/elegant/css/layout/_backend.scss +59 -0
  20. package/dist/assets/themes/elegant/css/layout/_blog.scss +42 -0
  21. package/dist/assets/themes/elegant/css/layout/_general.scss +142 -0
  22. package/dist/assets/themes/elegant/css/layout/_navigation.scss +602 -0
  23. package/dist/assets/themes/elegant/css/layout/_team.scss +18 -0
  24. package/dist/assets/themes/elegant/js/hero-demo-form.js +42 -0
  25. package/dist/assets/themes/elegant/js/infinite-scroll.js +139 -0
  26. package/dist/assets/themes/elegant/js/initialize-tooltips.js +20 -0
  27. package/dist/assets/themes/elegant/js/navbar-scroll.js +65 -0
  28. package/dist/defaults/dist/_includes/themes/elegant/admin/sections/sidebar.html +3 -0
  29. package/dist/defaults/dist/_includes/themes/elegant/admin/sections/topbar.html +3 -0
  30. package/dist/defaults/dist/_includes/themes/elegant/backend/sections/sidebar.html +347 -0
  31. package/dist/defaults/dist/_includes/themes/elegant/backend/sections/topbar.html +184 -0
  32. package/dist/defaults/dist/_includes/themes/elegant/frontend/components/testimonial-scroll.html +84 -0
  33. package/dist/defaults/dist/_includes/themes/elegant/frontend/sections/footer.html +158 -0
  34. package/dist/defaults/dist/_includes/themes/elegant/frontend/sections/nav.html +276 -0
  35. package/dist/defaults/dist/_includes/themes/elegant/global/sections/account.html +72 -0
  36. package/dist/defaults/dist/_layouts/themes/elegant/admin/core/minimal-viewport-locked.html +31 -0
  37. package/dist/defaults/dist/_layouts/themes/elegant/admin/core/minimal.html +32 -0
  38. package/dist/defaults/dist/_layouts/themes/elegant/backend/core/base.html +55 -0
  39. package/dist/defaults/dist/_layouts/themes/elegant/backend/core/minimal-viewport-locked.html +149 -0
  40. package/dist/defaults/dist/_layouts/themes/elegant/backend/core/minimal.html +149 -0
  41. package/dist/defaults/dist/_layouts/themes/elegant/backend/pages/dashboard/index.html +247 -0
  42. package/dist/defaults/dist/_layouts/themes/elegant/frontend/core/base.html +32 -0
  43. package/dist/defaults/dist/_layouts/themes/elegant/frontend/core/cover.html +41 -0
  44. package/dist/defaults/dist/_layouts/themes/elegant/frontend/core/minimal.html +42 -0
  45. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/404.html +68 -0
  46. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/about.html +338 -0
  47. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/account/index.html +1639 -0
  48. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/alternatives/alternative.html +583 -0
  49. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/alternatives/index.html +353 -0
  50. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/app.html +83 -0
  51. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/oauth2.html +62 -0
  52. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/reset.html +81 -0
  53. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/signin.html +109 -0
  54. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/signup.html +121 -0
  55. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/token.html +42 -0
  56. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/categories/category.html +152 -0
  57. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/categories/index.html +94 -0
  58. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/index.html +381 -0
  59. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/post.html +312 -0
  60. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/tags/index.html +90 -0
  61. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/tags/tag.html +153 -0
  62. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/contact.html +338 -0
  63. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/download.html +967 -0
  64. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/extension/index.html +436 -0
  65. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/extension/installed.html +188 -0
  66. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/feedback.html +201 -0
  67. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/index.html +699 -0
  68. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/payment/checkout.html +516 -0
  69. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/payment/confirmation.html +98 -0
  70. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/portal/email-preferences.html +108 -0
  71. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/pricing.html +852 -0
  72. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/status.html +388 -0
  73. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/team/index.html +204 -0
  74. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/team/member.html +151 -0
  75. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/updates/index.html +128 -0
  76. package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/updates/update.html +122 -0
  77. package/package.json +1 -1
@@ -0,0 +1,75 @@
1
+ # elegant Theme Customization Guide
2
+
3
+ ## How to Customize in Your Consuming Project
4
+
5
+ The elegant 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 elegant theme variables BEFORE importing the theme
13
+ $primary: #FF0000; // Change primary color to red
14
+ $elegant-bg-light: #F5F5F5; // Change light mode background
15
+ $elegant-bg-dark: #1A1A1A; // Change dark mode background
16
+ $font-family-sans-serif: 'Inter', sans-serif; // Change font
17
+
18
+ // 2. Now import the elegant theme - it will use YOUR values
19
+ @import '~ultimate-jekyll-manager/src/assets/themes/elegant/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
+ - `$elegant-bg-light` - Light mode background
39
+ - `$elegant-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
+ - `$elegant-gradient-primary`, `$elegant-gradient-aurora`, etc.
51
+
52
+ ## File Structure
53
+
54
+ ```
55
+ elegant/
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,189 @@
1
+ // elegant 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: #1A1A23 !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: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !default;
21
+ $headings-font-weight: 700 !default;
22
+ $elegant-font-mono: monospace !default;
23
+ $elegant-font-accent: 'Playfair Display', serif !default;
24
+ // $elegant-font-accent: 'DM Serif Display', serif !default;
25
+ // $elegant-font-accent: 'Crimson Pro', serif !default;
26
+
27
+ // ============================================
28
+ // Border Radius
29
+ // ============================================
30
+ $border-radius: 0.25rem !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
+ // elegant-specific border radius aliases
38
+ $elegant-radius-sm: $border-radius-sm !default;
39
+ $elegant-radius-md: $border-radius !default;
40
+ $elegant-radius-lg: $border-radius-lg !default;
41
+ $elegant-radius-xl: $border-radius-xl !default;
42
+ $elegant-radius-2xl: $border-radius-2xl !default;
43
+ $elegant-radius-full: 9999px !default;
44
+
45
+ // ============================================
46
+ // Background Colors (Light Mode)
47
+ // ============================================
48
+ $elegant-bg-light: #ffffff !default; // Main body background
49
+ $elegant-bg-light-secondary: #f6f6f6 !default; // Secondary backgrounds (cards, sidebars)
50
+ $elegant-bg-light-tertiary: #f0f0f0 !default; // Tertiary backgrounds (hover states)
51
+
52
+ // ============================================
53
+ // Background Colors (Dark Mode)
54
+ // ============================================
55
+ $elegant-bg-dark: #121212 !default; // Main body background
56
+ $elegant-bg-dark-secondary: #171717 !default; // Secondary backgrounds (cards, sidebars)
57
+ $elegant-bg-dark-tertiary: #212121 !default; // Tertiary backgrounds (hover states)
58
+
59
+ // ============================================
60
+ // elegant-Specific Colors
61
+ // ============================================
62
+ $elegant-primary: $primary !default;
63
+ $elegant-primary-dark: darken($primary, 10%) !default;
64
+ $elegant-primary-light: lighten($primary, 10%) !default;
65
+ $elegant-primary-soft: mix($primary, white, 10%) !default;
66
+
67
+ $elegant-secondary: $secondary !default;
68
+ $elegant-secondary-dark: darken($secondary, 5%) !default;
69
+ $elegant-secondary-light: lighten($secondary, 5%) !default;
70
+
71
+ $elegant-accent: $info !default;
72
+ $elegant-accent-dark: darken($info, 10%) !default;
73
+ $elegant-accent-light: lighten($info, 10%) !default;
74
+
75
+ $elegant-dark: $dark !default;
76
+ $elegant-dark-900: lighten($dark, 5%) !default;
77
+ $elegant-dark-800: lighten($dark, 10%) !default;
78
+ $elegant-dark-700: lighten($dark, 15%) !default;
79
+ $elegant-dark-600: lighten($dark, 20%) !default;
80
+
81
+ $elegant-gray: #6B7280 !default;
82
+ $elegant-gray-light: #9CA3AF !default;
83
+ $elegant-gray-lighter: #D1D5DB !default;
84
+ $elegant-gray-lightest: #F3F4F6 !default;
85
+
86
+ $elegant-white: #FFFFFF !default;
87
+ $elegant-off-white: #FAFBFC !default;
88
+ $elegant-cream: #FFF9F5 !default;
89
+
90
+ // ============================================
91
+ // Gradient Definitions
92
+ // ============================================
93
+ $elegant-gradient-primary: linear-gradient(135deg, $elegant-primary 0%, $elegant-accent 100%) !default;
94
+ $elegant-gradient-dark: linear-gradient(135deg, $elegant-dark 0%, $elegant-dark-800 100%) !default;
95
+ $elegant-gradient-light: linear-gradient(135deg, $elegant-white 0%, $elegant-off-white 100%) !default;
96
+ $elegant-gradient-sunset: linear-gradient(135deg, #FF6B6B 0%, #FFB84D 100%) !default;
97
+ $elegant-gradient-aurora: linear-gradient(135deg, #5B47FB 0%, #00D4FF 50%, #FF6B6B 100%) !default;
98
+ $elegant-gradient-rainbow: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8, #1098ad, #07b39b, #6fba82) !default;
99
+
100
+ // ============================================
101
+ // Typography Scale
102
+ // ============================================
103
+ $elegant-font-size-xs: 0.75rem !default;
104
+ $elegant-font-size-sm: 0.875rem !default;
105
+ $elegant-font-size-base: 1rem !default;
106
+ $elegant-font-size-lg: 1.125rem !default;
107
+ $elegant-font-size-xl: 1.25rem !default;
108
+ $elegant-font-size-2xl: 1.5rem !default;
109
+ $elegant-font-size-3xl: 1.875rem !default;
110
+ $elegant-font-size-4xl: 2.25rem !default;
111
+ $elegant-font-size-5xl: 3rem !default;
112
+ $elegant-font-size-6xl: 3.75rem !default;
113
+
114
+ // ============================================
115
+ // Spacing Scale
116
+ // ============================================
117
+ $elegant-spacing-xs: 0.25rem !default;
118
+ $elegant-spacing-sm: 0.5rem !default;
119
+ $elegant-spacing-md: 1rem !default;
120
+ $elegant-spacing-lg: 1.5rem !default;
121
+ $elegant-spacing-xl: 2rem !default;
122
+ $elegant-spacing-2xl: 3rem !default;
123
+ $elegant-spacing-3xl: 4rem !default;
124
+ $elegant-spacing-4xl: 6rem !default;
125
+
126
+ // ============================================
127
+ // Shadow System
128
+ // ============================================
129
+ $elegant-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !default;
130
+ $elegant-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) !default;
131
+ $elegant-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !default;
132
+ $elegant-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !default;
133
+ $elegant-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !default;
134
+ $elegant-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !default;
135
+ $elegant-shadow-glow: 0 0 40px rgba(91, 71, 251, 0.15) !default;
136
+
137
+ // ============================================
138
+ // Transition Timing
139
+ // ============================================
140
+ $elegant-transition-fast: all 0.15s cubic-bezier(.2,.3,0,1) !default;
141
+ $elegant-transition-base: all 0.3s cubic-bezier(.2,.3,0,1) !default;
142
+ $elegant-transition-slow: all 0.5s cubic-bezier(.2,.3,0,1) !default;
143
+ $elegant-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
+ $elegant-breakpoint-sm: 576px !default;
150
+ $elegant-breakpoint-md: 768px !default;
151
+ $elegant-breakpoint-lg: 992px !default;
152
+ $elegant-breakpoint-xl: 1200px !default;
153
+ $elegant-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
+ 3xl: 10rem,
169
+ 4xl: 12.5rem,
170
+ 5xl: 15rem
171
+ ) !default;
172
+
173
+ // Forward Bootstrap with our configuration
174
+ @forward '../bootstrap/scss/bootstrap.scss' with (
175
+ $primary: $primary,
176
+ $secondary: $secondary,
177
+ $success: $success,
178
+ $info: $info,
179
+ $warning: $warning,
180
+ $danger: $danger,
181
+ $light: $light,
182
+ $dark: $dark,
183
+ $font-family-sans-serif: $font-family-sans-serif,
184
+ $headings-font-weight: $headings-font-weight,
185
+ $border-radius: $border-radius,
186
+ $border-radius-sm: $border-radius-sm,
187
+ $border-radius-lg: $border-radius-lg,
188
+ $enable-negative-margins: true
189
+ );
@@ -0,0 +1,36 @@
1
+ // Import the theme entry point
2
+ // __main_assets__ is a webpack alias that resolves to UJM's dist/assets
3
+ import bootstrap from '__main_assets__/themes/bootstrap/js/index.umd.js';
4
+ import { ready as domReady } from 'web-manager/modules/dom.js';
5
+
6
+ // Make Bootstrap available globally
7
+ window.bootstrap = bootstrap;
8
+
9
+ // Log that we've MADE IT
10
+ /* @dev-only:start */
11
+ {
12
+ console.log('elegant theme loaded successfully (assets/themes/elegant/_theme.js)');
13
+ }
14
+ /* @dev-only:end */
15
+
16
+ // Import navbar scroll functionality
17
+ import setupNavbarScroll from './js/navbar-scroll.js';
18
+ // Import infinite scroll functionality (used by logo scroll, testimonials, etc.)
19
+ import { setupInfiniteScroll } from './js/infinite-scroll.js';
20
+ // Import tooltip initialization
21
+ import initializeTooltips from './js/initialize-tooltips.js';
22
+ // Import hero demo form initialization
23
+ import initHeroDemoForm from './js/hero-demo-form.js';
24
+
25
+ // Initialize theme components when DOM is ready
26
+ domReady().then(() => {
27
+ // elegant Theme Initializations
28
+ setupNavbarScroll();
29
+ setupInfiniteScroll();
30
+
31
+ // Generic Bootstrap initializations
32
+ initializeTooltips();
33
+
34
+ // Initialize hero demo form if present
35
+ initHeroDemoForm();
36
+ });
@@ -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/typography';
13
+ @import 'css/base/utilities';
14
+
15
+ // Import layout styles
16
+ @import 'css/layout/backend';
17
+ @import 'css/layout/blog';
18
+ @import 'css/layout/general';
19
+ @import 'css/layout/navigation';
20
+ @import 'css/layout/team';
21
+
22
+ // Import component styles
23
+ @import 'css/components/accordion';
24
+ @import 'css/components/badges';
25
+ @import 'css/components/buttons';
26
+ @import 'css/components/cards';
27
+ @import 'css/components/carousel';
28
+ @import 'css/components/forms';
29
+ @import 'css/components/infinite-scroll';
30
+ @import 'css/components/text';
31
+
32
+ // Import universal Bootstrap overrides (shared across all UJ themes)
33
+ // Must come AFTER Bootstrap is loaded via config to use @extend
34
+ @import '../bootstrap/overrides';
@@ -0,0 +1,27 @@
1
+ // elegant 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
+ }
@@ -0,0 +1,191 @@
1
+ // elegant Background Utilities
2
+ // Background gradients, patterns, and visual effects
3
+
4
+ // ============================================
5
+ // Gradient Backgrounds
6
+ // ============================================
7
+ .bg-gradient-primary {
8
+ background-image: $elegant-gradient-primary !important;
9
+ background-size: 300% 300% !important;
10
+ }
11
+
12
+ .bg-gradient-dark {
13
+ background-image: $elegant-gradient-dark !important;
14
+ background-size: 300% 300% !important;
15
+ }
16
+
17
+ .bg-gradient-light {
18
+ background-image: $elegant-gradient-light !important;
19
+ background-size: 300% 300% !important;
20
+ }
21
+
22
+ .bg-gradient-sunset {
23
+ background-image: $elegant-gradient-sunset !important;
24
+ background-size: 300% 300% !important;
25
+ }
26
+
27
+ .bg-gradient-aurora {
28
+ background-image: $elegant-gradient-aurora !important;
29
+ background-size: 300% 300% !important;
30
+ }
31
+
32
+ .bg-gradient-rainbow {
33
+ background-image: $elegant-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
+ // elegant Border Utilities
2
+ // Border styles, gradients, and decorative dividers
3
+
4
+ // ============================================
5
+ // Border Radius
6
+ // ============================================
7
+ .rounded-sm { border-radius: $elegant-radius-sm !important; }
8
+ .rounded-md { border-radius: $elegant-radius-md !important; }
9
+ .rounded-lg { border-radius: $elegant-radius-lg !important; }
10
+ .rounded-xl { border-radius: $elegant-radius-xl !important; }
11
+ .rounded-2xl { border-radius: $elegant-radius-2xl !important; }
12
+ .rounded-full { border-radius: $elegant-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: $elegant-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: $elegant-gray-lighter;
56
+ margin: $elegant-spacing-2xl 0;
57
+
58
+ &.divider-gradient {
59
+ background: $elegant-gradient-primary;
60
+ }
61
+
62
+ &.divider-fade {
63
+ background: linear-gradient(to right, transparent, $elegant-gray-lighter 20%, $elegant-gray-lighter 80%, transparent);
64
+ }
65
+ }
@@ -0,0 +1,58 @@
1
+ // elegant 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: #{$elegant-bg-light};
12
+ --bs-body-bg-rgb: #{red($elegant-bg-light)}, #{green($elegant-bg-light)}, #{blue($elegant-bg-light)};
13
+
14
+ --bs-secondary-bg: #{$elegant-bg-light-secondary};
15
+ --bs-secondary-bg-rgb: #{red($elegant-bg-light-secondary)}, #{green($elegant-bg-light-secondary)}, #{blue($elegant-bg-light-secondary)};
16
+
17
+ --bs-tertiary-bg: #{$elegant-bg-light-tertiary};
18
+ --bs-tertiary-bg-rgb: #{red($elegant-bg-light-tertiary)}, #{green($elegant-bg-light-tertiary)}, #{blue($elegant-bg-light-tertiary)};
19
+
20
+ // Component backgrounds - use secondary bg for elevated surfaces
21
+ // --bs-card-bg: #{$elegant-bg-light-secondary};
22
+ // --bs-dropdown-bg: #{$elegant-bg-light-secondary};
23
+ // --bs-modal-bg: #{$elegant-bg-light-secondary};
24
+ // --bs-popover-bg: #{$elegant-bg-light-secondary};
25
+ // --bs-offcanvas-bg: #{$elegant-bg-light-secondary};
26
+ // --bs-accordion-bg: #{$elegant-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: #{$elegant-bg-dark};
41
+ --bs-body-bg-rgb: #{red($elegant-bg-dark)}, #{green($elegant-bg-dark)}, #{blue($elegant-bg-dark)};
42
+
43
+ --bs-secondary-bg: #{$elegant-bg-dark-secondary};
44
+ --bs-secondary-bg-rgb: #{red($elegant-bg-dark-secondary)}, #{green($elegant-bg-dark-secondary)}, #{blue($elegant-bg-dark-secondary)};
45
+
46
+ --bs-tertiary-bg: #{$elegant-bg-dark-tertiary};
47
+ --bs-tertiary-bg-rgb: #{red($elegant-bg-dark-tertiary)}, #{green($elegant-bg-dark-tertiary)}, #{blue($elegant-bg-dark-tertiary)};
48
+
49
+ // Component backgrounds - use secondary bg for elevated surfaces
50
+ // --bs-card-bg: #{$elegant-bg-dark-secondary};
51
+ // --bs-dropdown-bg: #{$elegant-bg-dark-secondary};
52
+ // --bs-modal-bg: #{$elegant-bg-dark-secondary};
53
+ // --bs-popover-bg: #{$elegant-bg-dark-secondary};
54
+ // --bs-offcanvas-bg: #{$elegant-bg-dark-secondary};
55
+ // --bs-accordion-bg: #{$elegant-bg-dark-secondary};
56
+
57
+ // Add more Bootstrap overrides here as needed
58
+ }