@o2vend/theme-cli 1.0.37 → 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/lib/lib/dev-server.js +309 -40
- package/lib/lib/liquid-engine.js +3 -1
- package/lib/lib/mock-data.js +36 -124
- package/lib/lib/widget-service.js +12 -4
- package/package.json +1 -1
- 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
|
@@ -107,13 +107,14 @@
|
|
|
107
107
|
<a href="{{ brand_url }}" class="brand-carousel-item" aria-label="{{ brand_name }}">
|
|
108
108
|
{% if brand_image != blank and brand_image != '' and brand_image != 'null' %}
|
|
109
109
|
<div class="brand-carousel-item__image">
|
|
110
|
-
<img src="{{ brand_image }}" alt="{{ brand_name }}" width="200" height="60" loading="lazy"
|
|
110
|
+
<img src="{{ brand_image }}" alt="{{ brand_name }}" width="200" height="60" loading="lazy" data-img-fallback="parent-next">
|
|
111
111
|
</div>
|
|
112
|
-
<span class="brand-carousel-item__name brand-carousel-item__name--fallback"
|
|
112
|
+
<span class="brand-carousel-item__name brand-carousel-item__name--fallback" >{{ brand_name }}</span>
|
|
113
113
|
{% else %}
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
{% endif %}
|
|
116
116
|
</a>
|
|
117
|
+
<div class="brand-carousel-item__name">{{ brand_name }}</div>
|
|
117
118
|
</div>
|
|
118
119
|
{% endfor %}
|
|
119
120
|
</div>
|
|
@@ -136,13 +137,39 @@
|
|
|
136
137
|
</div>
|
|
137
138
|
|
|
138
139
|
<style>
|
|
140
|
+
:root {
|
|
141
|
+
--brand-carousel-white: var(--color-white);
|
|
142
|
+
--brand-carousel-text: var(--color-text);
|
|
143
|
+
--brand-carousel-text-muted: var(--color-text-muted);
|
|
144
|
+
--brand-carousel-border: var(--color-border);
|
|
145
|
+
--brand-carousel-surface: var(--color-surface);
|
|
146
|
+
--brand-carousel-spacing-section: var(--spacing-section);
|
|
147
|
+
--brand-carousel-spacing-large: var(--spacing-large);
|
|
148
|
+
--brand-carousel-spacing-component: var(--spacing-component);
|
|
149
|
+
--brand-carousel-spacing-element: var(--spacing-element);
|
|
150
|
+
--brand-carousel-spacing-small: var(--spacing-small);
|
|
151
|
+
--brand-carousel-spacing-xsmall: var(--spacing-xsmall);
|
|
152
|
+
--brand-carousel-container-padding: var(--container-padding);
|
|
153
|
+
--brand-carousel-radius-xl: var(--radius-xl);
|
|
154
|
+
--brand-carousel-radius-lg: var(--radius-lg);
|
|
155
|
+
--brand-carousel-radius: var(--radius);
|
|
156
|
+
--brand-carousel-radius-full: var(--radius-full);
|
|
157
|
+
--brand-carousel-shadow-sm: var(--shadow-sm);
|
|
158
|
+
--brand-carousel-shadow-md: var(--shadow-md);
|
|
159
|
+
--brand-carousel-shadow-lg: var(--shadow-lg);
|
|
160
|
+
--brand-carousel-transition: var(--transition);
|
|
161
|
+
--brand-carousel-transition-fast: var(--transition-fast);
|
|
162
|
+
--brand-carousel-text-sm: var(--text-sm);
|
|
163
|
+
--brand-carousel-text-xs: var(--text-xs);
|
|
164
|
+
}
|
|
165
|
+
|
|
139
166
|
.widget-brand-carousel {
|
|
140
167
|
{% if show_bottom_margin == 'Yes' %}
|
|
141
|
-
padding:
|
|
168
|
+
padding: var(--brand-carousel-spacing-section) 0;
|
|
142
169
|
{% elsif show_bottom_margin == 'No' %}
|
|
143
|
-
padding:
|
|
170
|
+
padding: var(--brand-carousel-spacing-section) 0 0;
|
|
144
171
|
{% else %}
|
|
145
|
-
padding:
|
|
172
|
+
padding: var(--brand-carousel-spacing-section) 0;
|
|
146
173
|
{% endif %}
|
|
147
174
|
background: {{ background_color | default: widget_settings.background_color | default: 'transparent' }};
|
|
148
175
|
}
|
|
@@ -152,25 +179,23 @@
|
|
|
152
179
|
margin-left: auto;
|
|
153
180
|
margin-right: auto;
|
|
154
181
|
{% endif %}
|
|
155
|
-
padding-left:
|
|
156
|
-
padding-right:
|
|
182
|
+
padding-left: var(--brand-carousel-container-padding);
|
|
183
|
+
padding-right: var(--brand-carousel-container-padding);
|
|
157
184
|
}
|
|
158
185
|
.brand-carousel-slide {
|
|
159
186
|
position: relative;
|
|
160
|
-
|
|
161
|
-
background:
|
|
187
|
+
|
|
188
|
+
background: var(--brand-carousel-white);
|
|
162
189
|
min-height: 100px;
|
|
163
190
|
text-decoration: none;
|
|
164
191
|
color: inherit;
|
|
165
192
|
overflow: hidden;
|
|
166
193
|
|
|
167
|
-
box-shadow:
|
|
168
|
-
0 0 8px rgba(15, 23, 42, 0.06),
|
|
169
|
-
0 0 16px rgba(15, 23, 42, 0.04);
|
|
194
|
+
box-shadow: var(--brand-carousel-shadow-sm);
|
|
170
195
|
|
|
171
196
|
transition:
|
|
172
|
-
transform
|
|
173
|
-
box-shadow
|
|
197
|
+
transform var(--brand-carousel-transition),
|
|
198
|
+
box-shadow var(--brand-carousel-transition);
|
|
174
199
|
}
|
|
175
200
|
|
|
176
201
|
/* Hover / Focus */
|
|
@@ -178,21 +203,19 @@
|
|
|
178
203
|
.brand-carousel-slide:focus-visible {
|
|
179
204
|
transform: translateY(-2px);
|
|
180
205
|
|
|
181
|
-
box-shadow:
|
|
182
|
-
0 4px 12px rgba(15, 23, 42, 0.10),
|
|
183
|
-
0 8px 24px rgba(15, 23, 42, 0.06);
|
|
206
|
+
box-shadow: var(--brand-carousel-shadow-md);
|
|
184
207
|
}
|
|
185
208
|
|
|
186
209
|
/* Brand Carousel - True Carousel Behavior */
|
|
187
210
|
.widget-brand-carousel {
|
|
188
|
-
padding:
|
|
211
|
+
padding: 40px 0px;
|
|
189
212
|
overflow: hidden;
|
|
190
213
|
}
|
|
191
214
|
|
|
192
215
|
.widget-brand-carousel .brand-carousel-container {
|
|
193
216
|
max-width: 1400px;
|
|
194
217
|
margin: 0 auto;
|
|
195
|
-
padding: 0
|
|
218
|
+
padding: 0 var(--brand-carousel-container-padding);
|
|
196
219
|
}
|
|
197
220
|
|
|
198
221
|
/* Header */
|
|
@@ -200,8 +223,8 @@
|
|
|
200
223
|
display: flex;
|
|
201
224
|
align-items: center;
|
|
202
225
|
justify-content: space-between;
|
|
203
|
-
margin-bottom:
|
|
204
|
-
gap:
|
|
226
|
+
margin-bottom: var(--brand-carousel-spacing-component);
|
|
227
|
+
gap: var(--brand-carousel-spacing-element);
|
|
205
228
|
}
|
|
206
229
|
|
|
207
230
|
.widget-brand-carousel .brand-carousel-header__text {
|
|
@@ -213,45 +236,45 @@
|
|
|
213
236
|
z-index: auto;
|
|
214
237
|
}
|
|
215
238
|
.widget-brand-carousel .brand-carousel-title {
|
|
216
|
-
font-size:
|
|
239
|
+
font-size: var(--brand-carousel-text-sm);
|
|
217
240
|
font-weight: 500;
|
|
218
241
|
line-height: 1.3;
|
|
219
|
-
color:
|
|
242
|
+
color: var(--brand-carousel-text);
|
|
220
243
|
margin: 0;
|
|
221
244
|
letter-spacing: -0.01em;
|
|
222
245
|
}
|
|
223
246
|
|
|
224
247
|
.widget-brand-carousel .brand-carousel-subtitle {
|
|
225
|
-
font-size:
|
|
226
|
-
color:
|
|
227
|
-
margin:
|
|
248
|
+
font-size: var(--brand-carousel-text-sm);
|
|
249
|
+
color: var(--brand-carousel-text-muted);
|
|
250
|
+
margin: var(--brand-carousel-spacing-xsmall) 0 0 0;
|
|
228
251
|
}
|
|
229
252
|
|
|
230
253
|
/* Header Nav Arrows */
|
|
231
254
|
.widget-brand-carousel .brand-carousel-nav {
|
|
232
255
|
display: flex;
|
|
233
|
-
gap:
|
|
256
|
+
gap: var(--brand-carousel-spacing-xsmall);
|
|
234
257
|
}
|
|
235
258
|
|
|
236
259
|
.widget-brand-carousel .brand-carousel-arrow {
|
|
237
260
|
width: 40px;
|
|
238
261
|
height: 40px;
|
|
239
|
-
border-radius:
|
|
240
|
-
border: 1px solid
|
|
241
|
-
background:
|
|
262
|
+
border-radius: var(--brand-carousel-radius-full);
|
|
263
|
+
border: 1px solid var(--brand-carousel-border);
|
|
264
|
+
background: var(--brand-carousel-white);
|
|
242
265
|
display: flex;
|
|
243
266
|
align-items: center;
|
|
244
267
|
justify-content: center;
|
|
245
268
|
cursor: pointer;
|
|
246
|
-
color:
|
|
247
|
-
transition: all
|
|
269
|
+
color: var(--brand-carousel-text);
|
|
270
|
+
transition: all var(--brand-carousel-transition-fast);
|
|
248
271
|
flex-shrink: 0;
|
|
249
272
|
}
|
|
250
273
|
|
|
251
274
|
.widget-brand-carousel .brand-carousel-arrow:hover:not(:disabled) {
|
|
252
|
-
background:
|
|
253
|
-
color:
|
|
254
|
-
border-color:
|
|
275
|
+
background: var(--brand-carousel-text);
|
|
276
|
+
color: var(--brand-carousel-white);
|
|
277
|
+
border-color: var(--brand-carousel-text);
|
|
255
278
|
}
|
|
256
279
|
|
|
257
280
|
.widget-brand-carousel .brand-carousel-arrow:disabled {
|
|
@@ -264,7 +287,7 @@
|
|
|
264
287
|
position: relative;
|
|
265
288
|
display: flex;
|
|
266
289
|
align-items: center;
|
|
267
|
-
gap:
|
|
290
|
+
gap: var(--brand-carousel-spacing-small);
|
|
268
291
|
}
|
|
269
292
|
|
|
270
293
|
/* Side Navigation Arrows */
|
|
@@ -272,22 +295,22 @@
|
|
|
272
295
|
display: none; /* Hidden by default, shown on desktop */
|
|
273
296
|
width: 30px;
|
|
274
297
|
height: 30px;
|
|
275
|
-
border-radius:
|
|
298
|
+
border-radius: var(--brand-carousel-radius-full);
|
|
276
299
|
border: none;
|
|
277
|
-
background:
|
|
278
|
-
box-shadow:
|
|
300
|
+
background: var(--brand-carousel-white);
|
|
301
|
+
box-shadow: var(--brand-carousel-shadow-md);
|
|
279
302
|
align-items: center;
|
|
280
303
|
justify-content: center;
|
|
281
304
|
cursor: pointer;
|
|
282
|
-
color:
|
|
283
|
-
transition: all
|
|
305
|
+
color: var(--brand-carousel-text);
|
|
306
|
+
transition: all var(--brand-carousel-transition-fast);
|
|
284
307
|
flex-shrink: 0;
|
|
285
308
|
z-index: 10;
|
|
286
309
|
}
|
|
287
310
|
|
|
288
311
|
.widget-brand-carousel .brand-carousel-side-arrow:hover:not(:disabled) {
|
|
289
|
-
background:
|
|
290
|
-
color:
|
|
312
|
+
background: var(--brand-carousel-text);
|
|
313
|
+
color: var(--brand-carousel-white);
|
|
291
314
|
transform: scale(1.05);
|
|
292
315
|
}
|
|
293
316
|
|
|
@@ -306,7 +329,7 @@
|
|
|
306
329
|
/* The Scrolling Track */
|
|
307
330
|
.widget-brand-carousel .brand-carousel-track {
|
|
308
331
|
display: flex !important;
|
|
309
|
-
gap:
|
|
332
|
+
gap: var(--brand-carousel-spacing-component);
|
|
310
333
|
overflow-x: auto !important;
|
|
311
334
|
overflow-y: hidden !important;
|
|
312
335
|
scroll-snap-type: x mandatory;
|
|
@@ -314,7 +337,7 @@
|
|
|
314
337
|
-webkit-overflow-scrolling: touch;
|
|
315
338
|
scrollbar-width: none;
|
|
316
339
|
-ms-overflow-style: none;
|
|
317
|
-
padding:
|
|
340
|
+
padding: var(--brand-carousel-spacing-xsmall) 0;
|
|
318
341
|
}
|
|
319
342
|
|
|
320
343
|
.widget-brand-carousel .brand-carousel-track::-webkit-scrollbar {
|
|
@@ -335,8 +358,8 @@
|
|
|
335
358
|
display: flex;
|
|
336
359
|
align-items: center;
|
|
337
360
|
justify-content: center;
|
|
338
|
-
|
|
339
|
-
background:
|
|
361
|
+
|
|
362
|
+
background: var(--brand-carousel-white);
|
|
340
363
|
min-height: 100px;
|
|
341
364
|
text-decoration: none;
|
|
342
365
|
color: inherit;
|
|
@@ -350,25 +373,26 @@
|
|
|
350
373
|
align-items: center;
|
|
351
374
|
justify-content: center;
|
|
352
375
|
width: 100%;
|
|
353
|
-
|
|
376
|
+
|
|
354
377
|
}
|
|
355
378
|
|
|
356
379
|
.widget-brand-carousel .brand-carousel-item__image img {
|
|
357
380
|
max-width: 100%;
|
|
358
|
-
|
|
381
|
+
|
|
359
382
|
width: auto;
|
|
360
383
|
height: auto;
|
|
361
384
|
object-fit: contain;
|
|
362
385
|
}
|
|
363
386
|
|
|
364
387
|
.widget-brand-carousel .brand-carousel-item__name {
|
|
365
|
-
font-size:
|
|
388
|
+
font-size: var(--brand-carousel-text-sm);
|
|
366
389
|
font-weight: 600;
|
|
367
|
-
color:
|
|
390
|
+
color: var(--brand-carousel-text);
|
|
368
391
|
text-align: center;
|
|
369
392
|
line-height: 1.3;
|
|
370
393
|
word-break: break-word;
|
|
371
394
|
letter-spacing: -0.01em;
|
|
395
|
+
margin-top:10px;
|
|
372
396
|
}
|
|
373
397
|
|
|
374
398
|
.widget-brand-carousel .brand-carousel-item__name--fallback {
|
|
@@ -377,7 +401,7 @@
|
|
|
377
401
|
left: 50%;
|
|
378
402
|
transform: translate(-50%, -50%);
|
|
379
403
|
width: 100%;
|
|
380
|
-
padding: 0
|
|
404
|
+
padding: 0 var(--brand-carousel-spacing-xsmall);
|
|
381
405
|
box-sizing: border-box;
|
|
382
406
|
display: none;
|
|
383
407
|
align-items: center;
|
|
@@ -388,29 +412,29 @@
|
|
|
388
412
|
.widget-brand-carousel .brand-carousel-dots {
|
|
389
413
|
display: flex;
|
|
390
414
|
justify-content: center;
|
|
391
|
-
gap:
|
|
392
|
-
margin-top:
|
|
415
|
+
gap: var(--brand-carousel-spacing-xsmall);
|
|
416
|
+
margin-top: var(--brand-carousel-spacing-component);
|
|
393
417
|
}
|
|
394
418
|
|
|
395
419
|
.widget-brand-carousel .brand-carousel-dot {
|
|
396
420
|
width: 8px;
|
|
397
421
|
height: 8px;
|
|
398
|
-
border-radius:
|
|
399
|
-
background:
|
|
422
|
+
border-radius: var(--brand-carousel-radius-full);
|
|
423
|
+
background: var(--brand-carousel-border);
|
|
400
424
|
border: none;
|
|
401
425
|
padding: 0;
|
|
402
426
|
cursor: pointer;
|
|
403
|
-
transition: all
|
|
427
|
+
transition: all var(--brand-carousel-transition-fast);
|
|
404
428
|
}
|
|
405
429
|
|
|
406
430
|
.widget-brand-carousel .brand-carousel-dot:hover {
|
|
407
|
-
background:
|
|
431
|
+
background: var(--brand-carousel-text-muted);
|
|
408
432
|
}
|
|
409
433
|
|
|
410
434
|
.widget-brand-carousel .brand-carousel-dot.active {
|
|
411
|
-
background:
|
|
435
|
+
background: var(--brand-carousel-text);
|
|
412
436
|
width: 24px;
|
|
413
|
-
border-radius:
|
|
437
|
+
border-radius: var(--brand-carousel-radius);
|
|
414
438
|
}
|
|
415
439
|
|
|
416
440
|
/* Desktop: Show side arrows, hide header arrows */
|
|
@@ -438,75 +462,71 @@
|
|
|
438
462
|
max-width: calc(25% - 15px);
|
|
439
463
|
}
|
|
440
464
|
.widget-brand-carousel .brand-carousel-track {
|
|
441
|
-
gap:
|
|
465
|
+
gap: var(--brand-carousel-spacing-component);
|
|
442
466
|
}
|
|
443
467
|
}
|
|
444
468
|
|
|
445
469
|
/* Small Tablet: 3 items */
|
|
446
470
|
@media (max-width: 768px) {
|
|
447
471
|
.widget-brand-carousel {
|
|
448
|
-
padding:
|
|
472
|
+
padding: var(--brand-carousel-spacing-large) 0;
|
|
449
473
|
}
|
|
450
474
|
.widget-brand-carousel .brand-carousel-container {
|
|
451
|
-
padding: 0
|
|
475
|
+
padding: 0 var(--brand-carousel-spacing-element);
|
|
452
476
|
}
|
|
453
477
|
.widget-brand-carousel .brand-carousel-title {
|
|
454
478
|
font-size: 1.3rem;
|
|
455
479
|
}
|
|
456
480
|
.widget-brand-carousel .brand-carousel-track {
|
|
457
|
-
gap:
|
|
481
|
+
gap: var(--brand-carousel-spacing-small);
|
|
458
482
|
}
|
|
459
483
|
.widget-brand-carousel .brand-carousel-slide {
|
|
460
484
|
flex: 0 0 calc(33.333% - 8px);
|
|
461
485
|
max-width: calc(33.333% - 8px);
|
|
462
486
|
}
|
|
463
487
|
.widget-brand-carousel .brand-carousel-item {
|
|
464
|
-
padding:
|
|
488
|
+
padding: var(--brand-carousel-spacing-element);
|
|
465
489
|
min-height: 80px;
|
|
466
490
|
}
|
|
467
491
|
.widget-brand-carousel .brand-carousel-item__image {
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
.widget-brand-carousel .brand-carousel-item__image img {
|
|
471
|
-
max-height: 45px;
|
|
492
|
+
height: 100%;
|
|
472
493
|
}
|
|
494
|
+
|
|
473
495
|
.widget-brand-carousel .brand-carousel-arrow {
|
|
474
496
|
width: 36px;
|
|
475
497
|
height: 36px;
|
|
476
498
|
}
|
|
477
499
|
.widget-brand-carousel .brand-carousel-dots {
|
|
478
|
-
margin-top:
|
|
500
|
+
margin-top: var(--brand-carousel-spacing-element);
|
|
479
501
|
}
|
|
480
502
|
}
|
|
481
503
|
|
|
482
504
|
/* Mobile: 2.5 items (partial view for hint) */
|
|
483
505
|
@media (max-width: 480px) {
|
|
484
506
|
.widget-brand-carousel .brand-carousel-container {
|
|
485
|
-
padding: 0
|
|
507
|
+
padding: 0 var(--brand-carousel-spacing-small);
|
|
486
508
|
}
|
|
487
509
|
.widget-brand-carousel .brand-carousel-track {
|
|
488
|
-
gap:
|
|
510
|
+
gap: var(--brand-carousel-spacing-small);
|
|
489
511
|
}
|
|
490
512
|
.widget-brand-carousel .brand-carousel-slide {
|
|
491
513
|
flex: 0 0 calc(40% - 6px);
|
|
492
514
|
max-width: calc(40% - 6px);
|
|
493
515
|
}
|
|
494
516
|
.widget-brand-carousel .brand-carousel-item {
|
|
495
|
-
padding:
|
|
517
|
+
padding: var(--brand-carousel-spacing-small);
|
|
496
518
|
min-height: 70px;
|
|
497
|
-
border-radius:
|
|
519
|
+
border-radius: var(--brand-carousel-radius-lg);
|
|
498
520
|
}
|
|
499
521
|
.widget-brand-carousel .brand-carousel-item__image {
|
|
500
|
-
height:
|
|
501
|
-
}
|
|
502
|
-
.widget-brand-carousel .brand-carousel-item__image img {
|
|
503
|
-
max-height: 40px;
|
|
522
|
+
height: 100%;
|
|
504
523
|
}
|
|
524
|
+
|
|
505
525
|
.widget-brand-carousel .brand-carousel-title {
|
|
506
526
|
font-size: 1.2rem;
|
|
507
527
|
}
|
|
508
528
|
.widget-brand-carousel .brand-carousel-item__name {
|
|
509
|
-
font-size:
|
|
529
|
+
font-size: var(--brand-carousel-text-xs);
|
|
510
530
|
}
|
|
511
531
|
}
|
|
512
532
|
|
|
@@ -517,13 +537,13 @@
|
|
|
517
537
|
max-width: calc(50% - 5px);
|
|
518
538
|
}
|
|
519
539
|
.widget-brand-carousel .brand-carousel-track {
|
|
520
|
-
gap:
|
|
540
|
+
gap: var(--brand-carousel-spacing-xsmall);
|
|
521
541
|
}
|
|
522
542
|
}
|
|
523
543
|
</style>
|
|
524
544
|
|
|
525
545
|
<script>
|
|
526
|
-
(
|
|
546
|
+
(() => {
|
|
527
547
|
// Wait for DOM
|
|
528
548
|
if (document.readyState === 'loading') {
|
|
529
549
|
document.addEventListener('DOMContentLoaded', initBrandCarousel);
|
|
@@ -81,12 +81,14 @@
|
|
|
81
81
|
{% else %}
|
|
82
82
|
{% assign brand_image_src = brand_image | asset_url %}
|
|
83
83
|
{% endif %}
|
|
84
|
-
<img src="{{ brand_image_src }}" alt="{{ brand_name }}" width="200" height="60" loading="lazy"
|
|
84
|
+
<img src="{{ brand_image_src }}" alt="{{ brand_name }}" width="200" height="60" loading="lazy" data-img-fallback="next" data-img-fallback-display="block">
|
|
85
85
|
<span class="widget-brand__name widget-brand__name--fallback" style="display: none;">{{ brand_name }}</span>
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
<div class="widget-brand__name">{{ brand_name }}</div>
|
|
87
|
+
{% else %}
|
|
88
|
+
|
|
88
89
|
{% endif %}
|
|
89
90
|
</a>
|
|
91
|
+
|
|
90
92
|
{% endfor %}
|
|
91
93
|
</div>
|
|
92
94
|
{% else %}
|
|
@@ -97,84 +99,106 @@
|
|
|
97
99
|
</div>
|
|
98
100
|
|
|
99
101
|
<style>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
:root {
|
|
103
|
+
--widget-brand-white: var(--color-white);
|
|
104
|
+
--widget-brand-text: var(--color-text);
|
|
105
|
+
--widget-brand-text-muted: var(--color-text-muted);
|
|
106
|
+
--widget-brand-border: var(--color-border);
|
|
107
|
+
--widget-brand-spacing-section: var(--spacing-section);
|
|
108
|
+
--widget-brand-spacing-large: var(--spacing-large);
|
|
109
|
+
--widget-brand-spacing-component: var(--spacing-component);
|
|
110
|
+
--widget-brand-spacing-element: var(--spacing-element);
|
|
111
|
+
--widget-brand-spacing-small: var(--spacing-small);
|
|
112
|
+
--widget-brand-spacing-xsmall: var(--spacing-xsmall);
|
|
113
|
+
--widget-brand-container-padding: var(--container-padding);
|
|
114
|
+
--widget-brand-radius-xl: var(--radius-xl);
|
|
115
|
+
--widget-brand-radius-lg: var(--radius-lg);
|
|
116
|
+
--widget-brand-transition-fast: var(--transition-fast);
|
|
117
|
+
--widget-brand-text-sm: var(--text-sm);
|
|
109
118
|
}
|
|
119
|
+
|
|
120
|
+
.widget-brand {
|
|
121
|
+
padding-top: 40px;
|
|
122
|
+
padding-left: 0;
|
|
123
|
+
padding-right: 0;
|
|
124
|
+
|
|
125
|
+
{% if show_bottom_margin == 'Yes' %}
|
|
126
|
+
padding-bottom: 40px;
|
|
127
|
+
{% else %}
|
|
128
|
+
padding-bottom: 0;
|
|
129
|
+
{% endif %}
|
|
130
|
+
|
|
131
|
+
background: {{ background_color | default: widget_settings.background_color | default: 'transparent' }};
|
|
132
|
+
}
|
|
133
|
+
|
|
110
134
|
.widget-brand__inner {
|
|
111
135
|
{% if show_container == 'Yes' %}
|
|
112
136
|
max-width: 1400px;
|
|
113
137
|
margin-left: auto;
|
|
114
138
|
margin-right: auto;
|
|
115
139
|
{% endif %}
|
|
116
|
-
padding-left:
|
|
117
|
-
padding-right:
|
|
140
|
+
padding-left: var(--widget-brand-container-padding);
|
|
141
|
+
padding-right: var(--widget-brand-container-padding);
|
|
118
142
|
}
|
|
119
143
|
|
|
120
144
|
.widget-brand .widget-header {
|
|
121
|
-
margin-bottom:
|
|
145
|
+
margin-bottom: var(--widget-brand-spacing-component);
|
|
122
146
|
position: static;
|
|
123
147
|
z-index: auto;
|
|
124
148
|
}
|
|
125
149
|
.widget-brand .widget-title {
|
|
126
|
-
font-size:
|
|
150
|
+
font-size: var(--widget-brand-text-sm);
|
|
127
151
|
font-weight: 500;
|
|
128
152
|
line-height: 1.3;
|
|
129
|
-
color:
|
|
130
|
-
margin: 0 0
|
|
153
|
+
color: var(--widget-brand-text);
|
|
154
|
+
margin: 0 0 var(--widget-brand-spacing-xsmall) 0;
|
|
131
155
|
letter-spacing: -0.01em;
|
|
132
156
|
}
|
|
133
157
|
.widget-brand .widget-subtitle {
|
|
134
|
-
font-size:
|
|
135
|
-
color:
|
|
158
|
+
font-size: var(--widget-brand-text-sm);
|
|
159
|
+
color: var(--widget-brand-text-muted);
|
|
136
160
|
margin: 0;
|
|
137
161
|
}
|
|
138
162
|
.widget-brand__grid {
|
|
139
163
|
display: grid;
|
|
140
|
-
gap:
|
|
164
|
+
gap: var(--widget-brand-spacing-component);
|
|
141
165
|
grid-template-columns: repeat(6, 1fr);
|
|
142
166
|
align-items: stretch;
|
|
143
167
|
}
|
|
144
168
|
.widget-brand__item {
|
|
145
169
|
position: relative;
|
|
146
|
-
|
|
170
|
+
display: flex;
|
|
171
|
+
flex-direction: column;
|
|
147
172
|
align-items: center;
|
|
148
173
|
justify-content: center;
|
|
149
|
-
padding:
|
|
150
|
-
border-radius:
|
|
151
|
-
background:
|
|
152
|
-
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
|
|
174
|
+
padding: var(--widget-brand-spacing-small);
|
|
175
|
+
border-radius: var(--widget-brand-radius-xl);
|
|
176
|
+
background: var(--widget-brand-white);
|
|
153
177
|
min-height: 100px;
|
|
154
178
|
text-decoration: none;
|
|
155
179
|
color: inherit;
|
|
156
|
-
transition: transform
|
|
180
|
+
transition: transform var(--widget-brand-transition-fast);
|
|
157
181
|
overflow: hidden;
|
|
158
182
|
}
|
|
159
183
|
.widget-brand__item:hover {
|
|
160
184
|
transform: translateY(-4px);
|
|
161
|
-
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
|
|
162
185
|
}
|
|
163
186
|
.widget-brand__item img {
|
|
164
187
|
max-width: 100%;
|
|
165
|
-
|
|
188
|
+
border-radius: var(--brand-carousel-radius-lg);
|
|
166
189
|
width: auto;
|
|
167
190
|
height: auto;
|
|
168
191
|
object-fit: contain;
|
|
169
192
|
}
|
|
170
193
|
.widget-brand__name {
|
|
171
|
-
font-size:
|
|
194
|
+
font-size: var(--widget-brand-text-sm);
|
|
172
195
|
font-weight: 600;
|
|
173
|
-
color:
|
|
196
|
+
color: var(--widget-brand-text);
|
|
174
197
|
text-align: center;
|
|
175
198
|
line-height: 1.3;
|
|
176
199
|
word-break: break-word;
|
|
177
200
|
letter-spacing: -0.01em;
|
|
201
|
+
margin-top: 10px;
|
|
178
202
|
}
|
|
179
203
|
.widget-brand__name--fallback {
|
|
180
204
|
position: absolute;
|
|
@@ -182,64 +206,68 @@
|
|
|
182
206
|
left: 50%;
|
|
183
207
|
transform: translate(-50%, -50%);
|
|
184
208
|
width: 100%;
|
|
185
|
-
padding: 0
|
|
209
|
+
padding: 0 var(--widget-brand-spacing-xsmall);
|
|
186
210
|
}
|
|
187
211
|
|
|
188
212
|
/* Tablet: 4 columns */
|
|
189
213
|
@media (max-width: 1024px) {
|
|
190
214
|
.widget-brand__grid {
|
|
191
215
|
grid-template-columns: repeat(4, 1fr);
|
|
192
|
-
gap:
|
|
216
|
+
gap: var(--widget-brand-spacing-component);
|
|
193
217
|
}
|
|
194
218
|
}
|
|
195
219
|
|
|
196
|
-
/* Mobile:
|
|
220
|
+
/* Mobile: 2 columns for cleaner layout */
|
|
197
221
|
@media (max-width: 768px) {
|
|
198
222
|
.widget-brand {
|
|
199
|
-
padding:
|
|
223
|
+
padding: 40px 0;
|
|
200
224
|
}
|
|
201
225
|
.widget-brand__inner {
|
|
202
|
-
padding: 0
|
|
226
|
+
padding: 0 var(--widget-brand-spacing-element);
|
|
203
227
|
}
|
|
204
228
|
.widget-brand .widget-header {
|
|
205
|
-
margin-bottom:
|
|
229
|
+
margin-bottom: var(--widget-brand-spacing-component);
|
|
206
230
|
}
|
|
207
231
|
.widget-brand .widget-title {
|
|
208
232
|
font-size: 1.3rem;
|
|
209
233
|
}
|
|
210
234
|
.widget-brand__grid {
|
|
211
|
-
grid-template-columns: repeat(
|
|
212
|
-
gap:
|
|
235
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
236
|
+
gap: 10px;
|
|
213
237
|
}
|
|
214
238
|
.widget-brand__item {
|
|
215
|
-
padding:
|
|
216
|
-
min-height:
|
|
239
|
+
padding: 10px;
|
|
240
|
+
min-height: 88px;
|
|
217
241
|
}
|
|
218
242
|
.widget-brand__item img {
|
|
219
|
-
|
|
243
|
+
width: 100%;
|
|
244
|
+
max-height: 52px;
|
|
245
|
+
object-fit: contain;
|
|
220
246
|
}
|
|
247
|
+
|
|
221
248
|
}
|
|
222
249
|
|
|
223
250
|
/* Small Mobile: 2 columns */
|
|
224
251
|
@media (max-width: 480px) {
|
|
225
252
|
.widget-brand__inner {
|
|
226
|
-
padding: 0
|
|
253
|
+
padding: 0 var(--widget-brand-spacing-small);
|
|
227
254
|
}
|
|
228
255
|
.widget-brand__grid {
|
|
229
|
-
grid-template-columns: repeat(2, 1fr);
|
|
230
|
-
gap:
|
|
256
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
257
|
+
gap: 8px;
|
|
231
258
|
}
|
|
232
259
|
.widget-brand__item {
|
|
233
|
-
padding:
|
|
234
|
-
min-height:
|
|
235
|
-
border-radius:
|
|
260
|
+
padding: 8px;
|
|
261
|
+
min-height: 82px;
|
|
262
|
+
border-radius: var(--widget-brand-radius-lg);
|
|
236
263
|
}
|
|
237
264
|
.widget-brand__item img {
|
|
238
|
-
max-height:
|
|
265
|
+
max-height: 48px;
|
|
239
266
|
}
|
|
267
|
+
|
|
240
268
|
.widget-brand .widget-title {
|
|
241
269
|
font-size: 1.2rem;
|
|
242
270
|
}
|
|
243
271
|
}
|
|
244
272
|
</style>
|
|
245
|
-
</section>
|
|
273
|
+
</section>
|