@o2vend/theme-cli 1.0.36 → 1.0.38
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/README.md +4 -0
- package/lib/lib/dev-server.js +344 -48
- package/lib/lib/liquid-engine.js +3 -1
- package/lib/lib/mock-data.js +473 -119
- package/lib/lib/widget-service.js +12 -4
- package/package.json +2 -2
- package/test-theme/assets/async-sections.js +32 -24
- package/test-theme/assets/cart-drawer.js +20 -22
- package/test-theme/assets/cart-manager.js +1 -15
- package/test-theme/assets/checkout-price-handler.js +12 -11
- package/test-theme/assets/checkout.css +1415 -0
- package/test-theme/assets/checkout.js +3174 -0
- package/test-theme/assets/components.css +178 -29
- package/test-theme/assets/delivery-zone.js +1 -1
- package/test-theme/assets/product-detail.css +1050 -0
- package/test-theme/assets/product-detail.js +2940 -0
- package/test-theme/assets/theme.css +95 -120
- package/test-theme/assets/theme.js +781 -186
- package/test-theme/layout/theme.liquid +91 -17
- package/test-theme/sections/content.liquid +64 -57
- package/test-theme/sections/footer-fallback.liquid +57 -7
- package/test-theme/sections/footer.liquid +63 -12
- package/test-theme/sections/header-fallback.liquid +41 -41
- package/test-theme/sections/header.liquid +41 -51
- package/test-theme/sections/hero-fallback.liquid +1 -1
- package/test-theme/sections/hero.liquid +159 -136
- package/test-theme/snippets/account-sidebar.liquid +121 -29
- package/test-theme/snippets/add-to-cart-modal.liquid +258 -206
- package/test-theme/snippets/breadcrumbs.liquid +98 -11
- package/test-theme/snippets/cart-drawer.liquid +93 -0
- package/test-theme/snippets/delivery-zone-city-selector.liquid +101 -15
- package/test-theme/snippets/delivery-zone-modal.liquid +529 -84
- package/test-theme/snippets/delivery-zone-search.liquid +104 -18
- package/test-theme/snippets/login-modal.liquid +269 -82
- package/test-theme/snippets/mega-menu.liquid +130 -43
- package/test-theme/snippets/news-thumbnail.liquid +120 -28
- package/test-theme/snippets/pagination.liquid +1 -1
- package/test-theme/snippets/price.liquid +100 -9
- package/test-theme/snippets/product-card-related.liquid +22 -4
- package/test-theme/snippets/product-card-simple.liquid +521 -25
- package/test-theme/snippets/product-card.liquid +145 -232
- package/test-theme/snippets/rating.liquid +100 -9
- package/test-theme/snippets/skeleton-collection-grid.liquid +94 -8
- package/test-theme/snippets/skeleton-product-card.liquid +102 -16
- package/test-theme/snippets/skeleton-product-grid.liquid +87 -1
- package/test-theme/snippets/social-sharing.liquid +133 -32
- package/test-theme/templates/account/dashboard.liquid +30 -0
- package/test-theme/templates/account/loyalty-redemption.liquid +29 -28
- package/test-theme/templates/account/loyalty.liquid +45 -43
- package/test-theme/templates/account/order-detail.liquid +15 -8
- package/test-theme/templates/account/orders.liquid +189 -35
- package/test-theme/templates/account/profile.liquid +509 -114
- package/test-theme/templates/account/register.liquid +18 -8
- package/test-theme/templates/account/return-orders.liquid +31 -30
- package/test-theme/templates/account/store-credit.liquid +27 -26
- package/test-theme/templates/account/subscriptions.liquid +22 -5
- package/test-theme/templates/account/wishlist.liquid +88 -19
- package/test-theme/templates/address-book.liquid +166 -69
- package/test-theme/templates/categories.liquid +90 -30
- package/test-theme/templates/checkout.liquid +137 -3834
- package/test-theme/templates/error.liquid +23 -21
- package/test-theme/templates/index.liquid +29 -0
- package/test-theme/templates/login.liquid +33 -6
- package/test-theme/templates/order-confirmation.liquid +67 -9
- package/test-theme/templates/page.liquid +418 -206
- package/test-theme/templates/product-detail.liquid +124 -3878
- package/test-theme/templates/products.liquid +155 -30
- package/test-theme/templates/search.liquid +739 -225
- package/test-theme/widgets/brand-carousel.liquid +102 -82
- package/test-theme/widgets/brand.liquid +78 -50
- package/test-theme/widgets/carousel.liquid +253 -121
- package/test-theme/widgets/category-list-carousel.liquid +32 -8
- package/test-theme/widgets/category-list.liquid +21 -6
- package/test-theme/widgets/category.liquid +104 -37
- package/test-theme/widgets/discount-time.liquid +326 -119
- package/test-theme/widgets/footer-menu.liquid +115 -23
- package/test-theme/widgets/footer.liquid +118 -5
- package/test-theme/widgets/gallery.liquid +29 -5
- package/test-theme/widgets/header-menu.liquid +25 -13
- package/test-theme/widgets/header.liquid +64 -26
- package/test-theme/widgets/html.liquid +29 -6
- package/test-theme/widgets/news.liquid +6 -0
- package/test-theme/widgets/product-canvas.liquid +20 -12
- package/test-theme/widgets/product-carousel.liquid +118 -56
- package/test-theme/widgets/shared/product-grid.liquid +12 -0
- package/test-theme/widgets/single-product.liquid +688 -250
- package/test-theme/widgets/spacebar-carousel.liquid +39 -10
- package/test-theme/widgets/spacebar.liquid +77 -6
- package/test-theme/widgets/splash.liquid +40 -30
- package/test-theme/widgets/testimonial-carousel.liquid +111 -67
|
@@ -30,6 +30,10 @@
|
|
|
30
30
|
assign background_color = widget_settings.backgroundColor
|
|
31
31
|
assign text_color = widget_settings.textColor
|
|
32
32
|
%}
|
|
33
|
+
{% assign is_hero_priority_widget = false %}
|
|
34
|
+
{% if is_hero_first == true or is_hero_first == 'true' or is_hero_first == 1 or is_hero_first == '1' %}
|
|
35
|
+
{% assign is_hero_priority_widget = true %}
|
|
36
|
+
{% endif %}
|
|
33
37
|
|
|
34
38
|
<section class="widget widget-category-carousel" data-widget-id="{{ widget.id }}" data-category-carousel{% if background_color and background_color != blank and background_color != 'null' %} style="background-color: {{ background_color }};"{% endif %}>
|
|
35
39
|
<div class="category-carousel-container">
|
|
@@ -114,7 +118,10 @@
|
|
|
114
118
|
<a href="{{ cat_url }}" class="category-carousel-item">
|
|
115
119
|
<div class="category-carousel-item__media">
|
|
116
120
|
{% if cat_image != blank and cat_image != nil and cat_image != 'null' %}
|
|
117
|
-
|
|
121
|
+
{% if forloop.first and is_hero_priority_widget %}
|
|
122
|
+
<link rel="preload" as="image" href="{{ cat_image }}" fetchpriority="high">
|
|
123
|
+
{% endif %}
|
|
124
|
+
<img src="{{ cat_image }}" alt="{{ cat_name }}" width="300" height="300" loading="{% if forloop.first %}eager{% else %}lazy{% endif %}" {% if forloop.first and is_hero_priority_widget %}fetchpriority="high"{% endif %} data-img-fallback="next" data-img-fallback-display="flex">
|
|
118
125
|
<span class="category-carousel-item__placeholder category-carousel-item__placeholder--fallback" style="display: none;">
|
|
119
126
|
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
120
127
|
<path d="M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h6v6h-6z"/>
|
|
@@ -157,6 +164,27 @@
|
|
|
157
164
|
</div>
|
|
158
165
|
|
|
159
166
|
<style>
|
|
167
|
+
:root {
|
|
168
|
+
--category-carousel-white: var(--color-white);
|
|
169
|
+
--category-carousel-text: var(--color-text);
|
|
170
|
+
--category-carousel-text-muted: var(--color-text-muted);
|
|
171
|
+
--category-carousel-border: var(--color-border);
|
|
172
|
+
--category-carousel-spacing-section: var(--spacing-section);
|
|
173
|
+
--category-carousel-spacing-large: var(--spacing-large);
|
|
174
|
+
--category-carousel-spacing-component: var(--spacing-component);
|
|
175
|
+
--category-carousel-spacing-element: var(--spacing-element);
|
|
176
|
+
--category-carousel-spacing-small: var(--spacing-small);
|
|
177
|
+
--category-carousel-spacing-xsmall: var(--spacing-xsmall);
|
|
178
|
+
--category-carousel-container-padding: var(--container-padding);
|
|
179
|
+
--category-carousel-radius-xl: var(--radius-xl);
|
|
180
|
+
--category-carousel-radius-lg: var(--radius-lg);
|
|
181
|
+
--category-carousel-radius: var(--radius);
|
|
182
|
+
--category-carousel-radius-full: var(--radius-full);
|
|
183
|
+
--category-carousel-transition-fast: var(--transition-fast);
|
|
184
|
+
--category-carousel-text-sm: var(--text-sm);
|
|
185
|
+
--category-carousel-text-xs: var(--text-xs);
|
|
186
|
+
}
|
|
187
|
+
|
|
160
188
|
/* Category Carousel - True Carousel Behavior */
|
|
161
189
|
.widget-category-carousel {
|
|
162
190
|
padding: 48px 0;
|
|
@@ -249,7 +277,6 @@
|
|
|
249
277
|
border-radius: 50%;
|
|
250
278
|
border: none;
|
|
251
279
|
background: #fff;
|
|
252
|
-
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
|
|
253
280
|
align-items: center;
|
|
254
281
|
justify-content: center;
|
|
255
282
|
cursor: pointer;
|
|
@@ -310,15 +337,13 @@
|
|
|
310
337
|
background: #fff;
|
|
311
338
|
border-radius: 12px;
|
|
312
339
|
overflow: hidden;
|
|
313
|
-
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
|
|
314
340
|
text-decoration: none;
|
|
315
341
|
color: inherit;
|
|
316
|
-
transition: transform 0.25s ease
|
|
342
|
+
transition: transform 0.25s ease;
|
|
317
343
|
}
|
|
318
344
|
|
|
319
345
|
.widget-category-carousel .category-carousel-item:hover {
|
|
320
346
|
transform: translateY(-4px);
|
|
321
|
-
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
|
|
322
347
|
}
|
|
323
348
|
|
|
324
349
|
.widget-category-carousel .category-carousel-item__media {
|
|
@@ -330,8 +355,7 @@
|
|
|
330
355
|
|
|
331
356
|
.widget-category-carousel .category-carousel-item__media img {
|
|
332
357
|
width: 100%;
|
|
333
|
-
|
|
334
|
-
object-fit: cover;
|
|
358
|
+
object-fit: contain;
|
|
335
359
|
transition: transform 0.3s ease;
|
|
336
360
|
}
|
|
337
361
|
|
|
@@ -504,7 +528,7 @@
|
|
|
504
528
|
</style>
|
|
505
529
|
|
|
506
530
|
<script>
|
|
507
|
-
(
|
|
531
|
+
(() => {
|
|
508
532
|
// Wait for DOM
|
|
509
533
|
if (document.readyState === 'loading') {
|
|
510
534
|
document.addEventListener('DOMContentLoaded', initCategoryCarousel);
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<a href="{{ cat_url }}" class="widget-category-list__link">
|
|
96
96
|
<div class="widget-category-list__media">
|
|
97
97
|
{% if cat_image != blank and cat_image != nil and cat_image != 'null' %}
|
|
98
|
-
<img src="{{ cat_image }}" alt="{{ cat_name }}" width="300" height="300" loading="lazy"
|
|
98
|
+
<img src="{{ cat_image }}" alt="{{ cat_name }}" width="300" height="300" loading="lazy" data-img-fallback="next" data-img-fallback-display="flex">
|
|
99
99
|
<span class="widget-category-list__placeholder widget-category-list__placeholder--fallback" style="display: none;" aria-hidden="true">
|
|
100
100
|
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
101
101
|
<path d="M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h6v6h-6z"/>
|
|
@@ -129,6 +129,24 @@
|
|
|
129
129
|
</div>
|
|
130
130
|
|
|
131
131
|
<style>
|
|
132
|
+
:root {
|
|
133
|
+
--category-list-white: var(--color-white);
|
|
134
|
+
--category-list-text: var(--color-text);
|
|
135
|
+
--category-list-text-muted: var(--color-text-muted);
|
|
136
|
+
--category-list-spacing-section: var(--spacing-section);
|
|
137
|
+
--category-list-spacing-large: var(--spacing-large);
|
|
138
|
+
--category-list-spacing-component: var(--spacing-component);
|
|
139
|
+
--category-list-spacing-element: var(--spacing-element);
|
|
140
|
+
--category-list-spacing-small: var(--spacing-small);
|
|
141
|
+
--category-list-spacing-xsmall: var(--spacing-xsmall);
|
|
142
|
+
--category-list-container-padding: var(--container-padding);
|
|
143
|
+
--category-list-radius-xl: var(--radius-xl);
|
|
144
|
+
--category-list-radius-lg: var(--radius-lg);
|
|
145
|
+
--category-list-transition: var(--transition);
|
|
146
|
+
--category-list-text-sm: var(--text-sm);
|
|
147
|
+
--category-list-text-xs: var(--text-xs);
|
|
148
|
+
}
|
|
149
|
+
|
|
132
150
|
.widget-category-list {
|
|
133
151
|
padding: 48px 0;
|
|
134
152
|
background: transparent;
|
|
@@ -178,13 +196,11 @@
|
|
|
178
196
|
background: #fff;
|
|
179
197
|
border-radius: 12px;
|
|
180
198
|
overflow: hidden;
|
|
181
|
-
|
|
182
|
-
transition: transform 0.25s ease, box-shadow 0.25s ease;
|
|
199
|
+
transition: transform 0.25s ease;
|
|
183
200
|
}
|
|
184
201
|
|
|
185
202
|
.widget-category-list__item:hover {
|
|
186
203
|
transform: translateY(-4px);
|
|
187
|
-
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
|
|
188
204
|
}
|
|
189
205
|
|
|
190
206
|
.widget-category-list__link {
|
|
@@ -202,8 +218,7 @@
|
|
|
202
218
|
|
|
203
219
|
.widget-category-list__media img {
|
|
204
220
|
width: 100%;
|
|
205
|
-
|
|
206
|
-
object-fit: cover;
|
|
221
|
+
object-fit: contain;
|
|
207
222
|
transition: transform 0.3s ease;
|
|
208
223
|
}
|
|
209
224
|
|
|
@@ -12,10 +12,45 @@
|
|
|
12
12
|
Dynamic Widget: Category comes from widget_data.category (enriched by WidgetService)
|
|
13
13
|
Settings come from widget_settings
|
|
14
14
|
endcomment
|
|
15
|
+
assign heading = widget_settings.title | default: widget.Title | default: widget.title
|
|
16
|
+
assign subtitle = widget_settings.subtitle | default: widget.Subtitle | default: widget.subtitle
|
|
15
17
|
assign background_color = widget_settings.backgroundColor
|
|
16
18
|
assign text_color = widget_settings.textColor | default: '#ffffff'
|
|
17
|
-
assign
|
|
18
|
-
|
|
19
|
+
assign show_container_raw = widget_settings.showContainer | default: widget_settings.ShowContainer | default: true
|
|
20
|
+
if show_container_raw == null or show_container_raw == blank or show_container_raw == 'null'
|
|
21
|
+
assign show_container = true
|
|
22
|
+
else
|
|
23
|
+
if show_container_raw == 'Yes' or show_container_raw == true or show_container_raw == 'true' or show_container_raw == 1 or show_container_raw == '1'
|
|
24
|
+
assign show_container = true
|
|
25
|
+
else
|
|
26
|
+
assign show_container = false
|
|
27
|
+
endif
|
|
28
|
+
endif
|
|
29
|
+
assign show_bottom_margin_raw = widget_settings.showWidgetBottomMargin | default: widget_settings.ShowWidgetBottomMargin | default: true
|
|
30
|
+
if show_bottom_margin_raw == null or show_bottom_margin_raw == blank or show_bottom_margin_raw == 'null'
|
|
31
|
+
assign show_bottom_margin = true
|
|
32
|
+
else
|
|
33
|
+
if show_bottom_margin_raw == 'Yes' or show_bottom_margin_raw == true or show_bottom_margin_raw == 'true' or show_bottom_margin_raw == 1 or show_bottom_margin_raw == '1'
|
|
34
|
+
assign show_bottom_margin = true
|
|
35
|
+
else
|
|
36
|
+
assign show_bottom_margin = false
|
|
37
|
+
endif
|
|
38
|
+
endif
|
|
39
|
+
assign show_widget_title_raw = widget_settings.showWidgetTitle | default: widget_settings.ShowWidgetTitle | default: true
|
|
40
|
+
if show_widget_title_raw == null or show_widget_title_raw == blank or show_widget_title_raw == 'null'
|
|
41
|
+
assign show_widget_title = true
|
|
42
|
+
else
|
|
43
|
+
if show_widget_title_raw == 'Yes' or show_widget_title_raw == true or show_widget_title_raw == 'true' or show_widget_title_raw == 1 or show_widget_title_raw == '1'
|
|
44
|
+
assign show_widget_title = true
|
|
45
|
+
else
|
|
46
|
+
assign show_widget_title = false
|
|
47
|
+
endif
|
|
48
|
+
endif
|
|
49
|
+
assign widget_title_alignment_raw = widget_settings.widgetTitleAlignment | default: widget_settings.WidgetTitleAlignment | default: 'left'
|
|
50
|
+
assign widget_title_alignment = widget_title_alignment_raw | downcase
|
|
51
|
+
if widget_title_alignment != 'left' and widget_title_alignment != 'right' and widget_title_alignment != 'center'
|
|
52
|
+
assign widget_title_alignment = 'left'
|
|
53
|
+
endif
|
|
19
54
|
|
|
20
55
|
|
|
21
56
|
assign category_slug = category.slug | default: category.Slug | default: category.handle
|
|
@@ -59,6 +94,19 @@
|
|
|
59
94
|
|
|
60
95
|
{% if category %}
|
|
61
96
|
<section class="widget widget-category-banner" data-widget-id="{{ widget.id }}">
|
|
97
|
+
{% if show_widget_title %}
|
|
98
|
+
{% if heading or subtitle %}
|
|
99
|
+
<header class="widget-header" style="text-align: {{ widget_title_alignment }};">
|
|
100
|
+
{% if heading and heading != blank %}
|
|
101
|
+
<h2 class="widget-title">{{ heading }}</h2>
|
|
102
|
+
{% endif %}
|
|
103
|
+
{% if subtitle and subtitle != blank %}
|
|
104
|
+
<p class="widget-subtitle">{{ subtitle }}</p>
|
|
105
|
+
{% endif %}
|
|
106
|
+
</header>
|
|
107
|
+
{% endif %}
|
|
108
|
+
{% endif %}
|
|
109
|
+
|
|
62
110
|
<a href="{{ category_url }}" class="category-banner{% unless category_image %} category-banner--no-image{% endunless %}">
|
|
63
111
|
|
|
64
112
|
{% if category_image %}
|
|
@@ -69,7 +117,7 @@
|
|
|
69
117
|
width="1400"
|
|
70
118
|
height="400"
|
|
71
119
|
loading="lazy"
|
|
72
|
-
|
|
120
|
+
data-img-fallback="hide">
|
|
73
121
|
</div>
|
|
74
122
|
<div class="category-banner__overlay"></div>
|
|
75
123
|
<div class="category-banner__content category-banner__content--overlay">
|
|
@@ -114,36 +162,62 @@
|
|
|
114
162
|
</a>
|
|
115
163
|
|
|
116
164
|
<style>
|
|
165
|
+
:root {
|
|
166
|
+
--category-banner-white: var(--color-white);
|
|
167
|
+
--category-banner-text: var(--color-text);
|
|
168
|
+
--category-banner-spacing-component: var(--spacing-component);
|
|
169
|
+
--category-banner-spacing-element: var(--spacing-element);
|
|
170
|
+
--category-banner-spacing-small: var(--spacing-small);
|
|
171
|
+
--category-banner-spacing-xsmall: var(--spacing-xsmall);
|
|
172
|
+
--category-banner-container-padding: var(--container-padding);
|
|
173
|
+
--category-banner-transition: var(--transition);
|
|
174
|
+
--category-banner-transition-fast: var(--transition-fast);
|
|
175
|
+
}
|
|
176
|
+
|
|
117
177
|
.widget-category-banner {
|
|
118
178
|
width: 100%;
|
|
119
|
-
padding: 0 {{ settings.container_padding }}px;
|
|
120
|
-
{% if show_bottom_margin
|
|
121
|
-
margin-bottom: {{ settings.spacing_large }}px;
|
|
122
|
-
{% elsif show_bottom_margin == 'No' %}
|
|
123
|
-
margin-bottom: 0;
|
|
179
|
+
padding: 0 {{ settings.container_padding | default: 16 }}px;
|
|
180
|
+
{% if show_bottom_margin %}
|
|
181
|
+
margin-bottom: {{ settings.spacing_large | default: 32 }}px;
|
|
124
182
|
{% else %}
|
|
125
|
-
margin-bottom:
|
|
183
|
+
margin-bottom: 0;
|
|
126
184
|
{% endif %}
|
|
127
185
|
}
|
|
186
|
+
|
|
187
|
+
.widget-category-banner .widget-header {
|
|
188
|
+
margin-bottom: 16px;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.widget-category-banner .widget-title {
|
|
192
|
+
font-size: 1.4rem;
|
|
193
|
+
font-weight: 500;
|
|
194
|
+
line-height: 1.3;
|
|
195
|
+
margin: 0 0 6px 0;
|
|
196
|
+
color: #111;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.widget-category-banner .widget-subtitle {
|
|
200
|
+
font-size: 14px;
|
|
201
|
+
margin: 0;
|
|
202
|
+
color: #6b7280;
|
|
203
|
+
}
|
|
128
204
|
|
|
129
205
|
/* ===== WITH IMAGE: Full Banner ===== */
|
|
130
206
|
.category-banner {
|
|
131
207
|
display: block;
|
|
132
208
|
position: relative;
|
|
133
209
|
width: 100%;
|
|
134
|
-
max-width: {{ settings.container_width }}px;
|
|
210
|
+
max-width: {{ settings.container_width | default: 1200 }}px;
|
|
135
211
|
margin: 0 auto;
|
|
136
212
|
height: 280px;
|
|
137
213
|
overflow: hidden;
|
|
138
214
|
text-decoration: none;
|
|
139
|
-
color: {{ settings.color_background }};
|
|
140
|
-
|
|
141
|
-
transition: box-shadow 0.3s ease, transform 0.3s ease;
|
|
215
|
+
color: {{ settings.color_background | default: '#ffffff' }};
|
|
216
|
+
transition: transform var(--category-banner-transition);
|
|
142
217
|
border-radius: var(--border-radius-medium);
|
|
143
218
|
}
|
|
144
219
|
|
|
145
220
|
.category-banner:hover {
|
|
146
|
-
box-shadow: 0 12px 48px rgba(0, 0, 0, 0.18);
|
|
147
221
|
transform: translateY(-2px);
|
|
148
222
|
}
|
|
149
223
|
|
|
@@ -165,7 +239,7 @@
|
|
|
165
239
|
height: 100%;
|
|
166
240
|
object-fit: cover;
|
|
167
241
|
object-position: center;
|
|
168
|
-
transition: transform
|
|
242
|
+
transition: transform var(--category-banner-transition);
|
|
169
243
|
}
|
|
170
244
|
|
|
171
245
|
{% comment %}
|
|
@@ -201,8 +275,7 @@
|
|
|
201
275
|
margin: 0 0 16px 0;
|
|
202
276
|
line-height: 1.15;
|
|
203
277
|
letter-spacing: -0.025em;
|
|
204
|
-
|
|
205
|
-
color: #fff;
|
|
278
|
+
color: var(--category-banner-white);
|
|
206
279
|
}
|
|
207
280
|
|
|
208
281
|
.category-banner__content--overlay .category-banner__description {
|
|
@@ -211,8 +284,7 @@
|
|
|
211
284
|
margin: 0 0 28px 0;
|
|
212
285
|
opacity: 0.95;
|
|
213
286
|
max-width: 500px;
|
|
214
|
-
|
|
215
|
-
color: #fff;
|
|
287
|
+
color: var(--category-banner-white);
|
|
216
288
|
}
|
|
217
289
|
|
|
218
290
|
.category-banner__cta {
|
|
@@ -224,20 +296,19 @@
|
|
|
224
296
|
text-transform: uppercase;
|
|
225
297
|
letter-spacing: 0.1em;
|
|
226
298
|
padding: 14px 32px;
|
|
227
|
-
background: {{ settings.color_background }};
|
|
228
|
-
color: {{ settings.color_text }};
|
|
229
|
-
transition: all
|
|
230
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
|
|
299
|
+
background: {{ settings.color_background | default: '#ffffff' }};
|
|
300
|
+
color: {{ settings.color_text | default: '#000000' }};
|
|
301
|
+
transition: all var(--category-banner-transition);
|
|
231
302
|
border-radius: var(--border-radius-medium);
|
|
232
303
|
}
|
|
233
304
|
|
|
234
305
|
.category-banner:hover .category-banner__cta {
|
|
235
|
-
background: {{ settings.color_text }};
|
|
236
|
-
color: {{ settings.color_background }};
|
|
306
|
+
background: {{ settings.color_text | default: '#000000' }};
|
|
307
|
+
color: {{ settings.color_background | default: '#ffffff' }};
|
|
237
308
|
}
|
|
238
309
|
|
|
239
310
|
.category-banner__cta svg {
|
|
240
|
-
transition: transform
|
|
311
|
+
transition: transform var(--category-banner-transition);
|
|
241
312
|
}
|
|
242
313
|
|
|
243
314
|
.category-banner:hover .category-banner__cta svg {
|
|
@@ -293,14 +364,13 @@
|
|
|
293
364
|
|
|
294
365
|
.category-banner__cta--solid {
|
|
295
366
|
flex-shrink: 0;
|
|
296
|
-
background:
|
|
367
|
+
background: var(--category-banner-white);
|
|
297
368
|
color: #764ba2;
|
|
298
|
-
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
299
369
|
}
|
|
300
370
|
|
|
301
371
|
.category-banner--no-image:hover .category-banner__cta--solid {
|
|
302
|
-
background:
|
|
303
|
-
color:
|
|
372
|
+
background: var(--category-banner-text);
|
|
373
|
+
color: var(--category-banner-white);
|
|
304
374
|
}
|
|
305
375
|
|
|
306
376
|
/* ===== Tablet ===== */
|
|
@@ -356,9 +426,6 @@
|
|
|
356
426
|
height: 200px;
|
|
357
427
|
}
|
|
358
428
|
|
|
359
|
-
|
|
360
|
-
}
|
|
361
|
-
|
|
362
429
|
.category-banner__content--overlay {
|
|
363
430
|
height: 200px;
|
|
364
431
|
padding: 24px;
|
|
@@ -460,14 +527,14 @@
|
|
|
460
527
|
</section>
|
|
461
528
|
{% else %}
|
|
462
529
|
<section class="widget widget-category-banner widget-category-banner--empty" data-widget-id="{{ widget.id }}">
|
|
463
|
-
<div style="max-width: {{ settings.container_width }}px; margin: 0 auto; padding: 0 {{ settings.container_padding }}px;">
|
|
464
|
-
<div style="padding: {{ settings.spacing_component | times: 2 }}px; text-align: center;">
|
|
465
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="{{ settings.color_text_muted }}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: {{ settings.spacing_element }}px;">
|
|
530
|
+
<div style="max-width: {{ settings.container_width | default: 1200 }}px; margin: 0 auto; padding: 0 {{ settings.container_padding | default: 16 }}px;">
|
|
531
|
+
<div style="padding: {{ settings.spacing_component | default: 24 | times: 2 }}px; text-align: center;">
|
|
532
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="{{ settings.color_text_muted | default: '#666666' }}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: {{ settings.spacing_element | default: 16 }}px;">
|
|
466
533
|
<path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"></path>
|
|
467
534
|
<line x1="3" y1="6" x2="21" y2="6"></line>
|
|
468
535
|
<path d="M16 10a4 4 0 0 1-8 0"></path>
|
|
469
536
|
</svg>
|
|
470
|
-
<p style="color: {{ settings.color_text_muted }}; margin: 0; font-size: {{ settings.font_size_base | plus: 1 }}px;">{{ widget_settings.empty_state | default: 'Category not found. Please configure a valid CategoryId.' }}</p>
|
|
537
|
+
<p style="color: {{ settings.color_text_muted | default: '#666666' }}; margin: 0; font-size: {{ settings.font_size_base | default: 14 | plus: 1 }}px;">{{ widget_settings.empty_state | default: 'Category not found. Please configure a valid CategoryId.' }}</p>
|
|
471
538
|
</div>
|
|
472
539
|
</div>
|
|
473
540
|
</section>
|