ultimate-jekyll-manager 1.0.6 → 1.0.8
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 +4 -0
- package/dist/assets/css/bundles/umbra.scss +5 -0
- package/dist/assets/js/libs/authorized-fetch.js +6 -7
- package/dist/assets/themes/{elegant → umbra}/README.md +11 -11
- package/dist/assets/themes/umbra/_config.scss +187 -0
- package/dist/assets/themes/{elegant → umbra}/_theme.js +2 -2
- package/dist/assets/themes/{elegant → umbra}/css/base/_animations.scss +1 -1
- package/dist/assets/themes/{elegant → umbra}/css/base/_backgrounds.scss +7 -7
- package/dist/assets/themes/{elegant → umbra}/css/base/_borders.scss +12 -12
- package/dist/assets/themes/umbra/css/base/_root.scss +68 -0
- package/dist/assets/themes/{elegant → umbra}/css/base/_typography.scss +24 -31
- package/dist/assets/themes/umbra/css/base/_utilities.scss +15 -0
- package/dist/assets/themes/{elegant → umbra}/css/components/_accordion.scss +1 -1
- package/dist/assets/themes/{elegant → umbra}/css/components/_badges.scss +3 -3
- package/dist/assets/themes/{elegant → umbra}/css/components/_buttons.scss +18 -18
- package/dist/assets/themes/umbra/css/components/_cards.scss +47 -0
- package/dist/assets/themes/{elegant → umbra}/css/components/_carousel.scss +1 -1
- package/dist/assets/themes/{elegant → umbra}/css/components/_forms.scss +8 -8
- package/dist/assets/themes/{elegant → umbra}/css/components/_text.scss +4 -4
- package/dist/assets/themes/{elegant → umbra}/css/layout/_backend.scss +1 -1
- package/dist/assets/themes/{elegant → umbra}/css/layout/_blog.scss +1 -1
- package/dist/assets/themes/{elegant → umbra}/css/layout/_general.scss +1 -1
- package/dist/assets/themes/{elegant → umbra}/css/layout/_navigation.scss +13 -13
- package/dist/assets/themes/{elegant → umbra}/js/navbar-scroll.js +1 -1
- package/dist/build.js +11 -1
- package/dist/defaults/dist/_includes/themes/umbra/admin/sections/sidebar.html +3 -0
- package/dist/defaults/dist/_includes/themes/umbra/admin/sections/topbar.html +3 -0
- package/dist/defaults/dist/_includes/themes/{elegant → umbra}/backend/sections/topbar.html +1 -1
- package/dist/defaults/dist/_includes/themes/{elegant → umbra}/frontend/components/testimonial-scroll.html +1 -1
- package/dist/defaults/dist/_includes/themes/{elegant → umbra}/frontend/sections/nav.html +2 -2
- package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/admin/core/minimal-viewport-locked.html +2 -2
- package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/admin/core/minimal.html +2 -2
- package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/backend/core/base.html +1 -1
- package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/frontend/core/base.html +1 -1
- package/dist/defaults/dist/_layouts/themes/umbra/frontend/pages/account/index.html +152 -0
- package/dist/defaults/dist/_layouts/themes/umbra/frontend/pages/auth/signin.html +85 -0
- package/dist/defaults/dist/_layouts/themes/umbra/frontend/pages/auth/signup.html +97 -0
- package/dist/defaults/dist/_layouts/themes/umbra/frontend/pages/index.html +188 -0
- package/dist/defaults/dist/_layouts/themes/umbra/frontend/pages/pricing.html +129 -0
- package/dist/defaults/src/_config.yml +1 -1
- package/dist/defaults/src/assets/css/main.scss +6 -6
- package/package.json +5 -5
- package/test.css +18 -0
- package/dist/assets/themes/elegant/_config.scss +0 -189
- package/dist/assets/themes/elegant/css/base/_root.scss +0 -58
- package/dist/assets/themes/elegant/css/base/_utilities.scss +0 -15
- package/dist/assets/themes/elegant/css/components/_cards.scss +0 -33
- package/dist/defaults/dist/_includes/themes/elegant/admin/sections/sidebar.html +0 -3
- package/dist/defaults/dist/_includes/themes/elegant/admin/sections/topbar.html +0 -3
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/404.html +0 -68
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/about.html +0 -338
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/account/index.html +0 -1639
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/alternatives/alternative.html +0 -583
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/alternatives/index.html +0 -353
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/app.html +0 -83
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/oauth2.html +0 -62
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/reset.html +0 -81
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/signin.html +0 -109
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/signup.html +0 -121
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/auth/token.html +0 -42
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/categories/category.html +0 -152
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/categories/index.html +0 -94
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/index.html +0 -381
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/post.html +0 -312
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/tags/index.html +0 -90
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/blog/tags/tag.html +0 -153
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/contact.html +0 -338
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/download.html +0 -967
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/extension/index.html +0 -436
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/extension/installed.html +0 -188
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/feedback.html +0 -201
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/index.html +0 -699
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/payment/checkout.html +0 -516
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/payment/confirmation.html +0 -98
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/portal/email-preferences.html +0 -108
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/pricing.html +0 -852
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/status.html +0 -388
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/team/index.html +0 -204
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/team/member.html +0 -151
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/updates/index.html +0 -128
- package/dist/defaults/dist/_layouts/themes/elegant/frontend/pages/updates/update.html +0 -122
- /package/dist/assets/themes/{elegant → umbra}/_theme.scss +0 -0
- /package/dist/assets/themes/{elegant → umbra}/css/components/_infinite-scroll.scss +0 -0
- /package/dist/assets/themes/{elegant → umbra}/css/layout/_team.scss +0 -0
- /package/dist/assets/themes/{elegant → umbra}/js/hero-demo-form.js +0 -0
- /package/dist/assets/themes/{elegant → umbra}/js/infinite-scroll.js +0 -0
- /package/dist/assets/themes/{elegant → umbra}/js/initialize-tooltips.js +0 -0
- /package/dist/defaults/dist/_includes/themes/{elegant → umbra}/backend/sections/sidebar.html +0 -0
- /package/dist/defaults/dist/_includes/themes/{elegant → umbra}/frontend/sections/footer.html +0 -0
- /package/dist/defaults/dist/_includes/themes/{elegant → umbra}/global/sections/account.html +0 -0
- /package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/backend/core/minimal-viewport-locked.html +0 -0
- /package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/backend/core/minimal.html +0 -0
- /package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/backend/pages/dashboard/index.html +0 -0
- /package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/frontend/core/cover.html +0 -0
- /package/dist/defaults/dist/_layouts/themes/{elegant → umbra}/frontend/core/minimal.html +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
15
15
|
- `Security` in case of vulnerabilities.
|
|
16
16
|
|
|
17
17
|
---
|
|
18
|
+
## [1.0.7] - 2026-03-20
|
|
19
|
+
### Changed
|
|
20
|
+
- Upgrade `web-manager` from ^4.1.29 to ^4.1.30
|
|
21
|
+
|
|
18
22
|
## [1.0.3] - 2026-03-16
|
|
19
23
|
### Added
|
|
20
24
|
- Ensure consuming projects have `"private": true` in package.json during setup to prevent accidental npm publishes
|
|
@@ -20,20 +20,19 @@ export async function authorizedFetch(url, options = {}) {
|
|
|
20
20
|
const user = auth.currentUser;
|
|
21
21
|
|
|
22
22
|
if (!user) {
|
|
23
|
-
console.warn('Did we fully wait for auth state to be determined?');
|
|
24
|
-
throw new Error('No authenticated user found');
|
|
23
|
+
console.warn('authorizedFetch: No authenticated user found. Did we fully wait for auth state to be determined?');
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
// Get the ID token - let it throw if it fails
|
|
28
|
-
const idToken = await user.getIdToken(true);
|
|
29
|
-
|
|
30
26
|
// Ensure headers object exists
|
|
31
27
|
if (!requestOptions.headers) {
|
|
32
28
|
requestOptions.headers = {};
|
|
33
29
|
}
|
|
34
30
|
|
|
35
|
-
// Set the Authorization header with Bearer token
|
|
36
|
-
|
|
31
|
+
// Set the Authorization header with Bearer token if user is logged in
|
|
32
|
+
if (user) {
|
|
33
|
+
const idToken = await user.getIdToken(true);
|
|
34
|
+
requestOptions.headers['Authorization'] = `Bearer ${idToken}`;
|
|
35
|
+
}
|
|
37
36
|
|
|
38
37
|
// Make the request using wonderful-fetch
|
|
39
38
|
return fetch(url, requestOptions);
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Umbra Theme Customization Guide
|
|
2
2
|
|
|
3
3
|
## How to Customize in Your Consuming Project
|
|
4
4
|
|
|
5
|
-
The
|
|
5
|
+
The Umbra theme is designed to be fully customizable. All theme variables use `!default` which means you can override them BEFORE importing the theme.
|
|
6
6
|
|
|
7
7
|
### Example: Customizing Colors in Your Project
|
|
8
8
|
|
|
9
9
|
In your consuming project's `src/assets/css/main.scss`:
|
|
10
10
|
|
|
11
11
|
```scss
|
|
12
|
-
// 1. Override
|
|
12
|
+
// 1. Override Umbra theme variables BEFORE importing the theme
|
|
13
13
|
$primary: #FF0000; // Change primary color to red
|
|
14
|
-
$
|
|
15
|
-
$
|
|
14
|
+
$umbra-bg-light: #F5F5F5; // Change light mode background
|
|
15
|
+
$umbra-bg-dark: #1A1A1A; // Change dark mode background
|
|
16
16
|
$font-family-sans-serif: 'Inter', sans-serif; // Change font
|
|
17
17
|
|
|
18
|
-
// 2. Now import the
|
|
19
|
-
@import '~ultimate-jekyll-manager/src/assets/themes/
|
|
18
|
+
// 2. Now import the Umbra theme - it will use YOUR values
|
|
19
|
+
@import '~ultimate-jekyll-manager/src/assets/themes/umbra/theme';
|
|
20
20
|
|
|
21
21
|
// 3. Add your custom styles below
|
|
22
22
|
.my-custom-class {
|
|
@@ -35,8 +35,8 @@ See `_config.scss` for the full list of variables you can override:
|
|
|
35
35
|
- `$light`, `$dark` - Light and dark variants
|
|
36
36
|
|
|
37
37
|
### Background Colors
|
|
38
|
-
- `$
|
|
39
|
-
- `$
|
|
38
|
+
- `$umbra-bg-light` - Light mode background
|
|
39
|
+
- `$umbra-bg-dark` - Dark mode background
|
|
40
40
|
|
|
41
41
|
### Typography
|
|
42
42
|
- `$font-family-sans-serif` - Main font family
|
|
@@ -47,12 +47,12 @@ See `_config.scss` for the full list of variables you can override:
|
|
|
47
47
|
- `$border-radius-sm`, `$border-radius-lg` - Size variants
|
|
48
48
|
|
|
49
49
|
### Gradients
|
|
50
|
-
- `$
|
|
50
|
+
- `$umbra-gradient-primary`, `$umbra-gradient-aurora`, etc.
|
|
51
51
|
|
|
52
52
|
## File Structure
|
|
53
53
|
|
|
54
54
|
```
|
|
55
|
-
|
|
55
|
+
umbra/
|
|
56
56
|
├── _config.scss ← All customizable variables with !default
|
|
57
57
|
├── _theme.scss ← Main entry point, imports config then Bootstrap
|
|
58
58
|
├── css/base/
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// Umbra 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: #E2725B !default; // Terracotta
|
|
9
|
+
$secondary: #8B7A75 !default; // Warm Gray
|
|
10
|
+
$success: #2A9D8F !default;
|
|
11
|
+
$info: #E9C46A !default; // Soft Gold
|
|
12
|
+
$warning: #F4A261 !default;
|
|
13
|
+
$danger: #E76F51 !default;
|
|
14
|
+
$light: #FDFBF7 !default; // Warm Cream
|
|
15
|
+
$dark: #1E1A18 !default; // Warm Charcoal
|
|
16
|
+
|
|
17
|
+
// ============================================
|
|
18
|
+
// Typography
|
|
19
|
+
// ============================================
|
|
20
|
+
$font-family-sans-serif: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !default;
|
|
21
|
+
$headings-font-weight: 600 !default;
|
|
22
|
+
$umbra-font-mono: monospace !default;
|
|
23
|
+
$umbra-font-accent: 'Figtree', sans-serif !default;
|
|
24
|
+
|
|
25
|
+
// ============================================
|
|
26
|
+
// Border Radius
|
|
27
|
+
// ============================================
|
|
28
|
+
$border-radius: 0.5rem !default;
|
|
29
|
+
$border-radius-sm: 0.375rem !default;
|
|
30
|
+
$border-radius-lg: 0.75rem !default;
|
|
31
|
+
$border-radius-xl: 1rem !default;
|
|
32
|
+
$border-radius-2xl: 1.5rem !default;
|
|
33
|
+
$border-radius-pill: 50rem !default;
|
|
34
|
+
|
|
35
|
+
// Umbra-specific border radius aliases
|
|
36
|
+
$umbra-radius-sm: $border-radius-sm !default;
|
|
37
|
+
$umbra-radius-md: $border-radius !default;
|
|
38
|
+
$umbra-radius-lg: $border-radius-lg !default;
|
|
39
|
+
$umbra-radius-xl: $border-radius-xl !default;
|
|
40
|
+
$umbra-radius-2xl: $border-radius-2xl !default;
|
|
41
|
+
$umbra-radius-full: 9999px !default;
|
|
42
|
+
|
|
43
|
+
// ============================================
|
|
44
|
+
// Background Colors (Light Mode)
|
|
45
|
+
// ============================================
|
|
46
|
+
$umbra-bg-light: #FDFBF7 !default; // Main body background (warm cream)
|
|
47
|
+
$umbra-bg-light-secondary: #F5F2EC !default; // Secondary backgrounds
|
|
48
|
+
$umbra-bg-light-tertiary: #EBE5DB !default; // Tertiary backgrounds
|
|
49
|
+
|
|
50
|
+
// ============================================
|
|
51
|
+
// Background Colors (Dark Mode)
|
|
52
|
+
// ============================================
|
|
53
|
+
$umbra-bg-dark: #1E1A18 !default; // Main body background (warm charcoal)
|
|
54
|
+
$umbra-bg-dark-secondary: #2A2421 !default; // Secondary backgrounds
|
|
55
|
+
$umbra-bg-dark-tertiary: #372F2B !default; // Tertiary backgrounds
|
|
56
|
+
|
|
57
|
+
// ============================================
|
|
58
|
+
// Umbra-Specific Colors
|
|
59
|
+
// ============================================
|
|
60
|
+
$umbra-primary: $primary !default;
|
|
61
|
+
$umbra-primary-dark: darken($primary, 10%) !default;
|
|
62
|
+
$umbra-primary-light: lighten($primary, 10%) !default;
|
|
63
|
+
$umbra-primary-soft: mix($primary, white, 10%) !default;
|
|
64
|
+
|
|
65
|
+
$umbra-secondary: $secondary !default;
|
|
66
|
+
$umbra-secondary-dark: darken($secondary, 5%) !default;
|
|
67
|
+
$umbra-secondary-light: lighten($secondary, 5%) !default;
|
|
68
|
+
|
|
69
|
+
$umbra-accent: $info !default;
|
|
70
|
+
$umbra-accent-dark: darken($info, 10%) !default;
|
|
71
|
+
$umbra-accent-light: lighten($info, 10%) !default;
|
|
72
|
+
|
|
73
|
+
$umbra-dark: $dark !default;
|
|
74
|
+
$umbra-dark-900: lighten($dark, 5%) !default;
|
|
75
|
+
$umbra-dark-800: lighten($dark, 10%) !default;
|
|
76
|
+
$umbra-dark-700: lighten($dark, 15%) !default;
|
|
77
|
+
$umbra-dark-600: lighten($dark, 20%) !default;
|
|
78
|
+
|
|
79
|
+
$umbra-gray: #6B7280 !default;
|
|
80
|
+
$umbra-gray-light: #9CA3AF !default;
|
|
81
|
+
$umbra-gray-lighter: #D1D5DB !default;
|
|
82
|
+
$umbra-gray-lightest: #F3F4F6 !default;
|
|
83
|
+
|
|
84
|
+
$umbra-white: #FFFFFF !default;
|
|
85
|
+
$umbra-off-white: #FAFBFC !default;
|
|
86
|
+
$umbra-cream: #FFF9F5 !default;
|
|
87
|
+
|
|
88
|
+
// ============================================
|
|
89
|
+
// Gradient Definitions
|
|
90
|
+
// ============================================
|
|
91
|
+
$umbra-gradient-primary: linear-gradient(135deg, $umbra-primary 0%, #D58C40 100%) !default;
|
|
92
|
+
$umbra-gradient-dark: linear-gradient(135deg, $umbra-dark 0%, $umbra-dark-800 100%) !default;
|
|
93
|
+
$umbra-gradient-light: linear-gradient(135deg, $umbra-white 0%, $umbra-off-white 100%) !default;
|
|
94
|
+
$umbra-gradient-sunset: linear-gradient(135deg, #E2725B 0%, #F4A261 100%) !default;
|
|
95
|
+
$umbra-gradient-aurora: linear-gradient(135deg, #E2725B 0%, #D58C40 50%, #2A9D8F 100%) !default;
|
|
96
|
+
$umbra-gradient-rainbow: linear-gradient(60deg, #E2725B, #D58C40, #F4A261, #E9C46A, #2A9D8F, #8B7A75) !default;
|
|
97
|
+
|
|
98
|
+
// ============================================
|
|
99
|
+
// Typography Scale
|
|
100
|
+
// ============================================
|
|
101
|
+
$umbra-font-size-xs: 0.75rem !default;
|
|
102
|
+
$umbra-font-size-sm: 0.875rem !default;
|
|
103
|
+
$umbra-font-size-base: 1rem !default;
|
|
104
|
+
$umbra-font-size-lg: 1.125rem !default;
|
|
105
|
+
$umbra-font-size-xl: 1.25rem !default;
|
|
106
|
+
$umbra-font-size-2xl: 1.5rem !default;
|
|
107
|
+
$umbra-font-size-3xl: 1.875rem !default;
|
|
108
|
+
$umbra-font-size-4xl: 2.25rem !default;
|
|
109
|
+
$umbra-font-size-5xl: 3rem !default;
|
|
110
|
+
$umbra-font-size-6xl: 3.75rem !default;
|
|
111
|
+
|
|
112
|
+
// ============================================
|
|
113
|
+
// Spacing Scale
|
|
114
|
+
// ============================================
|
|
115
|
+
$umbra-spacing-xs: 0.25rem !default;
|
|
116
|
+
$umbra-spacing-sm: 0.5rem !default;
|
|
117
|
+
$umbra-spacing-md: 1rem !default;
|
|
118
|
+
$umbra-spacing-lg: 1.5rem !default;
|
|
119
|
+
$umbra-spacing-xl: 2rem !default;
|
|
120
|
+
$umbra-spacing-2xl: 3rem !default;
|
|
121
|
+
$umbra-spacing-3xl: 4rem !default;
|
|
122
|
+
$umbra-spacing-4xl: 6rem !default;
|
|
123
|
+
|
|
124
|
+
// ============================================
|
|
125
|
+
// Shadow System
|
|
126
|
+
// ============================================
|
|
127
|
+
$umbra-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !default;
|
|
128
|
+
$umbra-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) !default;
|
|
129
|
+
$umbra-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !default;
|
|
130
|
+
$umbra-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !default;
|
|
131
|
+
$umbra-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !default;
|
|
132
|
+
$umbra-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !default;
|
|
133
|
+
$umbra-shadow-glow: 0 0 40px rgba(91, 71, 251, 0.15) !default;
|
|
134
|
+
|
|
135
|
+
// ============================================
|
|
136
|
+
// Transition Timing
|
|
137
|
+
// ============================================
|
|
138
|
+
$umbra-transition-fast: all 0.15s cubic-bezier(.2,.3,0,1) !default;
|
|
139
|
+
$umbra-transition-base: all 0.3s cubic-bezier(.2,.3,0,1) !default;
|
|
140
|
+
$umbra-transition-slow: all 0.5s cubic-bezier(.2,.3,0,1) !default;
|
|
141
|
+
$umbra-transition-bounce: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55) !default;
|
|
142
|
+
|
|
143
|
+
// ============================================
|
|
144
|
+
// Responsive Breakpoints
|
|
145
|
+
// ============================================
|
|
146
|
+
// Bootstrap-compatible breakpoint values
|
|
147
|
+
$umbra-breakpoint-sm: 576px !default;
|
|
148
|
+
$umbra-breakpoint-md: 768px !default;
|
|
149
|
+
$umbra-breakpoint-lg: 992px !default;
|
|
150
|
+
$umbra-breakpoint-xl: 1200px !default;
|
|
151
|
+
$umbra-breakpoint-xxl: 1400px !default;
|
|
152
|
+
|
|
153
|
+
// ============================================
|
|
154
|
+
// Component Sizing
|
|
155
|
+
// ============================================
|
|
156
|
+
// Avatar sizes map
|
|
157
|
+
$avatar-sizes: (
|
|
158
|
+
null: 3rem, // default
|
|
159
|
+
2xs: 0.5rem,
|
|
160
|
+
xs: 1.5rem,
|
|
161
|
+
sm: 2rem,
|
|
162
|
+
md: 2.5rem,
|
|
163
|
+
lg: 3.5rem,
|
|
164
|
+
xl: 5rem,
|
|
165
|
+
2xl: 7.5rem,
|
|
166
|
+
3xl: 10rem,
|
|
167
|
+
4xl: 12.5rem,
|
|
168
|
+
5xl: 15rem
|
|
169
|
+
) !default;
|
|
170
|
+
|
|
171
|
+
// Forward Bootstrap with our configuration
|
|
172
|
+
@forward '../bootstrap/scss/bootstrap.scss' with (
|
|
173
|
+
$primary: $primary,
|
|
174
|
+
$secondary: $secondary,
|
|
175
|
+
$success: $success,
|
|
176
|
+
$info: $info,
|
|
177
|
+
$warning: $warning,
|
|
178
|
+
$danger: $danger,
|
|
179
|
+
$light: $light,
|
|
180
|
+
$dark: $dark,
|
|
181
|
+
$font-family-sans-serif: $font-family-sans-serif,
|
|
182
|
+
$headings-font-weight: $headings-font-weight,
|
|
183
|
+
$border-radius: $border-radius,
|
|
184
|
+
$border-radius-sm: $border-radius-sm,
|
|
185
|
+
$border-radius-lg: $border-radius-lg,
|
|
186
|
+
$enable-negative-margins: true
|
|
187
|
+
);
|
|
@@ -9,7 +9,7 @@ window.bootstrap = bootstrap;
|
|
|
9
9
|
// Log that we've MADE IT
|
|
10
10
|
/* @dev-only:start */
|
|
11
11
|
{
|
|
12
|
-
console.log('
|
|
12
|
+
console.log('Umbra theme loaded successfully (assets/themes/umbra/_theme.js)');
|
|
13
13
|
}
|
|
14
14
|
/* @dev-only:end */
|
|
15
15
|
|
|
@@ -24,7 +24,7 @@ import initHeroDemoForm from './js/hero-demo-form.js';
|
|
|
24
24
|
|
|
25
25
|
// Initialize theme components when DOM is ready
|
|
26
26
|
domReady().then(() => {
|
|
27
|
-
//
|
|
27
|
+
// Umbra Theme Initializations
|
|
28
28
|
setupNavbarScroll();
|
|
29
29
|
setupInfiniteScroll();
|
|
30
30
|
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Umbra Background Utilities
|
|
2
2
|
// Background gradients, patterns, and visual effects
|
|
3
3
|
|
|
4
4
|
// ============================================
|
|
5
5
|
// Gradient Backgrounds
|
|
6
6
|
// ============================================
|
|
7
7
|
.bg-gradient-primary {
|
|
8
|
-
background-image: $
|
|
8
|
+
background-image: $umbra-gradient-primary !important;
|
|
9
9
|
background-size: 300% 300% !important;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
.bg-gradient-dark {
|
|
13
|
-
background-image: $
|
|
13
|
+
background-image: $umbra-gradient-dark !important;
|
|
14
14
|
background-size: 300% 300% !important;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.bg-gradient-light {
|
|
18
|
-
background-image: $
|
|
18
|
+
background-image: $umbra-gradient-light !important;
|
|
19
19
|
background-size: 300% 300% !important;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.bg-gradient-sunset {
|
|
23
|
-
background-image: $
|
|
23
|
+
background-image: $umbra-gradient-sunset !important;
|
|
24
24
|
background-size: 300% 300% !important;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.bg-gradient-aurora {
|
|
28
|
-
background-image: $
|
|
28
|
+
background-image: $umbra-gradient-aurora !important;
|
|
29
29
|
background-size: 300% 300% !important;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.bg-gradient-rainbow {
|
|
33
|
-
background-image: $
|
|
33
|
+
background-image: $umbra-gradient-rainbow !important;
|
|
34
34
|
background-size: 300% 300% !important;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Umbra Border Utilities
|
|
2
2
|
// Border styles, gradients, and decorative dividers
|
|
3
3
|
|
|
4
4
|
// ============================================
|
|
5
5
|
// Border Radius
|
|
6
6
|
// ============================================
|
|
7
|
-
.rounded-sm { border-radius: $
|
|
8
|
-
.rounded-md { border-radius: $
|
|
9
|
-
.rounded-lg { border-radius: $
|
|
10
|
-
.rounded-xl { border-radius: $
|
|
11
|
-
.rounded-2xl { border-radius: $
|
|
12
|
-
.rounded-full { border-radius: $
|
|
7
|
+
.rounded-sm { border-radius: $umbra-radius-sm !important; }
|
|
8
|
+
.rounded-md { border-radius: $umbra-radius-md !important; }
|
|
9
|
+
.rounded-lg { border-radius: $umbra-radius-lg !important; }
|
|
10
|
+
.rounded-xl { border-radius: $umbra-radius-xl !important; }
|
|
11
|
+
.rounded-2xl { border-radius: $umbra-radius-2xl !important; }
|
|
12
|
+
.rounded-full { border-radius: $umbra-radius-full !important; }
|
|
13
13
|
|
|
14
14
|
// ============================================
|
|
15
15
|
// Gradient Borders
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
position: absolute;
|
|
25
25
|
inset: calc(var(--bs-border-width) * -1);
|
|
26
26
|
border-radius: inherit;
|
|
27
|
-
background: $
|
|
27
|
+
background: $umbra-gradient-rainbow;
|
|
28
28
|
background-size: 300% 300%;
|
|
29
29
|
z-index: -1;
|
|
30
30
|
}
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
// ============================================
|
|
53
53
|
.divider {
|
|
54
54
|
height: 1px;
|
|
55
|
-
background: $
|
|
56
|
-
margin: $
|
|
55
|
+
background: $umbra-gray-lighter;
|
|
56
|
+
margin: $umbra-spacing-2xl 0;
|
|
57
57
|
|
|
58
58
|
&.divider-gradient {
|
|
59
|
-
background: $
|
|
59
|
+
background: $umbra-gradient-primary;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
&.divider-fade {
|
|
63
|
-
background: linear-gradient(to right, transparent, $
|
|
63
|
+
background: linear-gradient(to right, transparent, $umbra-gray-lighter 20%, $umbra-gray-lighter 80%, transparent);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Umbra 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: #{$umbra-bg-light};
|
|
12
|
+
--bs-body-bg-rgb: #{red($umbra-bg-light)}, #{green($umbra-bg-light)}, #{blue($umbra-bg-light)};
|
|
13
|
+
|
|
14
|
+
--bs-secondary-bg: #{$umbra-bg-light-secondary};
|
|
15
|
+
--bs-secondary-bg-rgb: #{red($umbra-bg-light-secondary)}, #{green($umbra-bg-light-secondary)}, #{blue($umbra-bg-light-secondary)};
|
|
16
|
+
|
|
17
|
+
--bs-tertiary-bg: #{$umbra-bg-light-tertiary};
|
|
18
|
+
--bs-tertiary-bg-rgb: #{red($umbra-bg-light-tertiary)}, #{green($umbra-bg-light-tertiary)}, #{blue($umbra-bg-light-tertiary)};
|
|
19
|
+
|
|
20
|
+
// Add subtle warmth to borders
|
|
21
|
+
--bs-border-color: rgba(139, 122, 117, 0.15);
|
|
22
|
+
--bs-border-color-translucent: rgba(139, 122, 117, 0.1);
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
// Component backgrounds - use secondary bg for elevated surfaces
|
|
26
|
+
// --bs-card-bg: #{$umbra-bg-light-secondary};
|
|
27
|
+
// --bs-dropdown-bg: #{$umbra-bg-light-secondary};
|
|
28
|
+
// --bs-modal-bg: #{$umbra-bg-light-secondary};
|
|
29
|
+
// --bs-popover-bg: #{$umbra-bg-light-secondary};
|
|
30
|
+
// --bs-offcanvas-bg: #{$umbra-bg-light-secondary};
|
|
31
|
+
// --bs-accordion-bg: #{$umbra-bg-light-secondary};
|
|
32
|
+
|
|
33
|
+
// Add more Bootstrap overrides here as needed
|
|
34
|
+
// Examples:
|
|
35
|
+
// --bs-body-color: #212529;
|
|
36
|
+
// --bs-border-color: #dee2e6;
|
|
37
|
+
// --bs-link-color: #{$primary};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// ============================================
|
|
41
|
+
// Dark Mode
|
|
42
|
+
// ============================================
|
|
43
|
+
[data-bs-theme="dark"] {
|
|
44
|
+
// Background colors
|
|
45
|
+
--bs-body-bg: #{$umbra-bg-dark};
|
|
46
|
+
--bs-body-bg-rgb: #{red($umbra-bg-dark)}, #{green($umbra-bg-dark)}, #{blue($umbra-bg-dark)};
|
|
47
|
+
|
|
48
|
+
--bs-secondary-bg: #{$umbra-bg-dark-secondary};
|
|
49
|
+
--bs-secondary-bg-rgb: #{red($umbra-bg-dark-secondary)}, #{green($umbra-bg-dark-secondary)}, #{blue($umbra-bg-dark-secondary)};
|
|
50
|
+
|
|
51
|
+
--bs-tertiary-bg: #{$umbra-bg-dark-tertiary};
|
|
52
|
+
--bs-tertiary-bg-rgb: #{red($umbra-bg-dark-tertiary)}, #{green($umbra-bg-dark-tertiary)}, #{blue($umbra-bg-dark-tertiary)};
|
|
53
|
+
|
|
54
|
+
// Add subtle warmth to borders for dark mode
|
|
55
|
+
--bs-border-color: rgba(226, 114, 91, 0.15); // Terracotta tint
|
|
56
|
+
--bs-border-color-translucent: rgba(226, 114, 91, 0.1);
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
// Component backgrounds - use secondary bg for elevated surfaces
|
|
60
|
+
// --bs-card-bg: #{$umbra-bg-dark-secondary};
|
|
61
|
+
// --bs-dropdown-bg: #{$umbra-bg-dark-secondary};
|
|
62
|
+
// --bs-modal-bg: #{$umbra-bg-dark-secondary};
|
|
63
|
+
// --bs-popover-bg: #{$umbra-bg-dark-secondary};
|
|
64
|
+
// --bs-offcanvas-bg: #{$umbra-bg-dark-secondary};
|
|
65
|
+
// --bs-accordion-bg: #{$umbra-bg-dark-secondary};
|
|
66
|
+
|
|
67
|
+
// Add more Bootstrap overrides here as needed
|
|
68
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Umbra Typography
|
|
2
2
|
// Modern font system with responsive headings and utilities
|
|
3
3
|
|
|
4
4
|
// ============================================
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
// ============================================
|
|
7
7
|
:root {
|
|
8
8
|
--bs-font-sans-serif: #{$font-family-sans-serif};
|
|
9
|
-
--bs-font-monospace: #{$
|
|
9
|
+
--bs-font-monospace: #{$umbra-font-mono};
|
|
10
10
|
|
|
11
11
|
// Custom CSS variables for easy access
|
|
12
|
-
--
|
|
13
|
-
--
|
|
12
|
+
--umbra-font-primary: #{$font-family-sans-serif};
|
|
13
|
+
--umbra-font-mono: #{$umbra-font-mono};
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
// ============================================
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
// ============================================
|
|
19
19
|
body {
|
|
20
20
|
font-family: $font-family-sans-serif;
|
|
21
|
-
font-size: $
|
|
21
|
+
font-size: $umbra-font-size-base;
|
|
22
22
|
font-weight: 400;
|
|
23
23
|
line-height: 1.6;
|
|
24
24
|
-webkit-font-smoothing: antialiased;
|
|
@@ -42,45 +42,45 @@ h6, .h6 {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
h1, .h1 {
|
|
45
|
-
font-size: clamp(2.5rem, 5vw, $
|
|
45
|
+
font-size: clamp(2.5rem, 5vw, $umbra-font-size-6xl);
|
|
46
46
|
font-weight: 800;
|
|
47
47
|
letter-spacing: -0.03em;
|
|
48
48
|
|
|
49
|
-
@media (max-width: $
|
|
50
|
-
font-size: $
|
|
49
|
+
@media (max-width: $umbra-breakpoint-md) {
|
|
50
|
+
font-size: $umbra-font-size-4xl;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
h2, .h2 {
|
|
55
|
-
font-size: clamp(2rem, 4vw, $
|
|
55
|
+
font-size: clamp(2rem, 4vw, $umbra-font-size-5xl);
|
|
56
56
|
font-weight: 700;
|
|
57
57
|
|
|
58
|
-
@media (max-width: $
|
|
59
|
-
font-size: $
|
|
58
|
+
@media (max-width: $umbra-breakpoint-md) {
|
|
59
|
+
font-size: $umbra-font-size-3xl;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
h3, .h3 {
|
|
64
|
-
font-size: clamp(1.5rem, 3vw, $
|
|
64
|
+
font-size: clamp(1.5rem, 3vw, $umbra-font-size-4xl);
|
|
65
65
|
font-weight: 600;
|
|
66
66
|
|
|
67
|
-
@media (max-width: $
|
|
68
|
-
font-size: $
|
|
67
|
+
@media (max-width: $umbra-breakpoint-md) {
|
|
68
|
+
font-size: $umbra-font-size-2xl;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
h4, .h4 {
|
|
73
|
-
font-size: $
|
|
73
|
+
font-size: $umbra-font-size-2xl;
|
|
74
74
|
font-weight: 600;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
h5, .h5 {
|
|
78
|
-
font-size: $
|
|
78
|
+
font-size: $umbra-font-size-xl;
|
|
79
79
|
font-weight: 500;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
h6, .h6 {
|
|
83
|
-
font-size: $
|
|
83
|
+
font-size: $umbra-font-size-lg;
|
|
84
84
|
font-weight: 500;
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -105,7 +105,7 @@ h6, .h6 {
|
|
|
105
105
|
// Lead Text
|
|
106
106
|
// ============================================
|
|
107
107
|
.lead {
|
|
108
|
-
font-size: $
|
|
108
|
+
font-size: $umbra-font-size-xl;
|
|
109
109
|
font-weight: 400;
|
|
110
110
|
line-height: 1.6;
|
|
111
111
|
}
|
|
@@ -114,18 +114,18 @@ h6, .h6 {
|
|
|
114
114
|
// Code Blocks
|
|
115
115
|
// ============================================
|
|
116
116
|
code, kbd, pre, samp {
|
|
117
|
-
font-family: $
|
|
117
|
+
font-family: $umbra-font-mono;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
code {
|
|
121
121
|
padding: 0.125rem 0.375rem;
|
|
122
122
|
font-size: 0.875em;
|
|
123
|
-
border-radius: $
|
|
123
|
+
border-radius: $umbra-radius-sm;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
pre {
|
|
127
|
-
padding: $
|
|
128
|
-
border-radius: $
|
|
127
|
+
padding: $umbra-spacing-lg;
|
|
128
|
+
border-radius: $umbra-radius-lg;
|
|
129
129
|
overflow-x: auto;
|
|
130
130
|
|
|
131
131
|
code {
|
|
@@ -139,17 +139,10 @@ pre {
|
|
|
139
139
|
// Blockquotes
|
|
140
140
|
// ============================================
|
|
141
141
|
blockquote {
|
|
142
|
-
padding-left: $
|
|
142
|
+
padding-left: $umbra-spacing-lg;
|
|
143
143
|
border-left-width: 4px;
|
|
144
144
|
border-left-style: solid;
|
|
145
|
-
font-size: $
|
|
145
|
+
font-size: $umbra-font-size-lg;
|
|
146
146
|
font-style: italic;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
// Elegant Theme Heading Overrides
|
|
151
|
-
h1, h2, h3, .h1, .h2, .h3 {
|
|
152
|
-
font-family: $elegant-font-accent !important;
|
|
153
|
-
font-weight: 500;
|
|
154
|
-
letter-spacing: -0.02em;
|
|
155
|
-
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Umbra Utility Classes
|
|
2
|
+
// Custom helper classes and theme-specific utilities
|
|
3
|
+
|
|
4
|
+
// ============================================
|
|
5
|
+
// Shadow Utilities (Umbra-specific)
|
|
6
|
+
// ============================================
|
|
7
|
+
.shadow-xs { box-shadow: $umbra-shadow-xs !important; }
|
|
8
|
+
.shadow-sm { box-shadow: $umbra-shadow-sm !important; }
|
|
9
|
+
.shadow-md { box-shadow: $umbra-shadow-md !important; }
|
|
10
|
+
.shadow-lg { box-shadow: $umbra-shadow-lg !important; }
|
|
11
|
+
.shadow-xl { box-shadow: $umbra-shadow-xl !important; }
|
|
12
|
+
.shadow-2xl { box-shadow: $umbra-shadow-2xl !important; }
|
|
13
|
+
.shadow-glow { box-shadow: $umbra-shadow-glow !important; }
|
|
14
|
+
.shadow-none { box-shadow: none !important; }
|
|
15
|
+
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Umbra Badge Components
|
|
2
2
|
// Badges and labels that can extend outside their containers
|
|
3
3
|
|
|
4
4
|
// ============================================
|
|
5
5
|
// Badge Soft Colors & Gradient
|
|
6
6
|
// ============================================
|
|
7
7
|
.badge-gradient {
|
|
8
|
-
background: $
|
|
8
|
+
background: $umbra-gradient-primary;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.badge-soft-primary {
|
|
12
|
-
background: $
|
|
12
|
+
background: $umbra-primary-soft;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
// Global fix - any element containing a badge should not clip
|