@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
|
@@ -74,6 +74,93 @@
|
|
|
74
74
|
</div>
|
|
75
75
|
|
|
76
76
|
<style>
|
|
77
|
+
:root {
|
|
78
|
+
--color-primary: {{ settings.color_primary | default: '#000000' }};
|
|
79
|
+
--color-primary-hover: {{ settings.color_primary_dark | default: '#333333' }};
|
|
80
|
+
--color-primary-light: {{ settings.color_primary_light | default: '#666666' }};
|
|
81
|
+
--color-success: {{ settings.color_success | default: '#22c55e' }};
|
|
82
|
+
--color-success-light: {{ settings.color_success | default: '#22c55e' }};
|
|
83
|
+
--color-success-dark: {{ settings.color_success | default: '#22c55e' }};
|
|
84
|
+
--color-danger: {{ settings.color_error | default: '#ef4444' }};
|
|
85
|
+
--color-danger-light: {{ settings.color_error | default: '#ef4444' }};
|
|
86
|
+
--color-danger-dark: {{ settings.color_error | default: '#ef4444' }};
|
|
87
|
+
--color-text: {{ settings.color_text | default: '#000000' }};
|
|
88
|
+
--color-text-light: {{ settings.color_text_light | default: '#999999' }};
|
|
89
|
+
--color-text-muted: {{ settings.color_text_muted | default: '#666666' }};
|
|
90
|
+
--color-background: {{ settings.color_background | default: '#ffffff' }};
|
|
91
|
+
--color-card-bg: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
92
|
+
--color-border: {{ settings.color_border | default: '#cccccc' }};
|
|
93
|
+
--color-border-light: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
94
|
+
--color-white: #ffffff;
|
|
95
|
+
--color-black: {{ settings.color_primary_dark | default: '#333333' }};
|
|
96
|
+
--color-gray-25: {{ settings.color_background | default: '#ffffff' }};
|
|
97
|
+
--color-gray-50: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
98
|
+
--color-gray-100: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
99
|
+
--color-gray-200: {{ settings.color_border | default: '#cccccc' }};
|
|
100
|
+
--color-gray-300: {{ settings.color_border | default: '#cccccc' }};
|
|
101
|
+
--color-gray-400: {{ settings.color_text_muted | default: '#666666' }};
|
|
102
|
+
--color-gray-500: {{ settings.color_text_muted | default: '#666666' }};
|
|
103
|
+
--color-gray-600: {{ settings.color_text_muted | default: '#666666' }};
|
|
104
|
+
--color-gray-700: {{ settings.color_text | default: '#000000' }};
|
|
105
|
+
--color-gray-800: {{ settings.color_text | default: '#000000' }};
|
|
106
|
+
--color-gray-900: {{ settings.color_text | default: '#000000' }};
|
|
107
|
+
/* Shadow variables - mapped from settings */
|
|
108
|
+
--shadow-opacity: {{ settings.shadow_opacity | default: 0.1 }};
|
|
109
|
+
--shadow-blur: {{ settings.shadow_blur | default: 8 }}px;
|
|
110
|
+
--shadow-spread: {{ settings.shadow_spread | default: 0 }}px;
|
|
111
|
+
|
|
112
|
+
/* Border radius - mapped from settings */
|
|
113
|
+
--radius-sm: {{ settings.border_radius_small | default: 6 }}px;
|
|
114
|
+
--radius-md: {{ settings.border_radius_medium | default: 10 }}px;
|
|
115
|
+
--radius-lg: {{ settings.border_radius_large | default: 16 }}px;
|
|
116
|
+
--radius-xl: 24px;
|
|
117
|
+
--radius-2xl: 32px;
|
|
118
|
+
--radius-full: 9999px;
|
|
119
|
+
|
|
120
|
+
/* Spacing - mapped from settings */
|
|
121
|
+
--spacing-xs: {{ settings.spacing_xsmall | default: 4 }}px;
|
|
122
|
+
--spacing-sm: {{ settings.spacing_small | default: 8 }}px;
|
|
123
|
+
--spacing-md: {{ settings.spacing_element | default: 16 }}px;
|
|
124
|
+
--spacing-lg: {{ settings.spacing_component | default: 24 }}px;
|
|
125
|
+
--spacing-xl: {{ settings.spacing_large | default: 32 }}px;
|
|
126
|
+
|
|
127
|
+
/* Typography - mapped from settings */
|
|
128
|
+
--font-primary: {{ settings.font_primary | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
|
|
129
|
+
|
|
130
|
+
/* Text sizes - based on font_size_base from settings */
|
|
131
|
+
--text-xs: 12px;
|
|
132
|
+
--text-sm: {{ settings.font_size_base | default: 14 }}px;
|
|
133
|
+
--text-base: {{ settings.font_size_base | default: 14 }}px;
|
|
134
|
+
--text-lg: 16px;
|
|
135
|
+
--text-xl: 18px;
|
|
136
|
+
--text-2xl: 21px;
|
|
137
|
+
|
|
138
|
+
/* Transitions - mapped from settings */
|
|
139
|
+
--transition-fast: 133ms cubic-bezier(0, 0, 0.2, 1);
|
|
140
|
+
--transition: {{ settings.button_transition_speed | default: 200 }}ms cubic-bezier(0, 0, 0.2, 1);
|
|
141
|
+
--transition-slow: 300ms cubic-bezier(0, 0, 0.2, 1);
|
|
142
|
+
--duration-150: 150ms;
|
|
143
|
+
--duration-300: 300ms;
|
|
144
|
+
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
145
|
+
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
146
|
+
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
147
|
+
|
|
148
|
+
/* Z-index values */
|
|
149
|
+
--z-10: 10;
|
|
150
|
+
--z-modal: 1050;
|
|
151
|
+
--z-dropdown: 1000;
|
|
152
|
+
--font-heading: {{ settings.font_heading | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
|
|
153
|
+
--font-display: {{ settings.font_display | default: '' }}, 'Georgia', 'Times New Roman', serif;
|
|
154
|
+
--font-body: {{ settings.font_body | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
|
|
155
|
+
--font-weight-bold: {{ settings.font_weight_bold | default: 700 }};
|
|
156
|
+
--font-weight-medium: {{ settings.font_weight_medium | default: 500 }};
|
|
157
|
+
--line-height-heading: {{ settings.line_height_heading | default: 1.2 }};
|
|
158
|
+
--leading-none: var(--leading-none);
|
|
159
|
+
--leading-normal: var(--leading-normal);
|
|
160
|
+
--leading-snug: var(--leading-snug);
|
|
161
|
+
--tracking-wider: var(--tracking-wider);
|
|
162
|
+
}
|
|
163
|
+
|
|
77
164
|
/* Menu Navigation Styles */
|
|
78
165
|
.header-menu-nav {
|
|
79
166
|
flex: 1 1 auto;
|
|
@@ -92,16 +179,16 @@
|
|
|
92
179
|
|
|
93
180
|
.header-menu-nav__loading,
|
|
94
181
|
.header-menu-nav__error {
|
|
95
|
-
padding:
|
|
96
|
-
color:
|
|
97
|
-
font-size:
|
|
182
|
+
padding: var(--space-2) 0;
|
|
183
|
+
color: var(--color-black);
|
|
184
|
+
font-size: var(--text-base);
|
|
98
185
|
opacity: 0.6;
|
|
99
186
|
}
|
|
100
187
|
|
|
101
188
|
.header-menu-nav__list {
|
|
102
189
|
display: flex;
|
|
103
190
|
align-items: center;
|
|
104
|
-
gap:
|
|
191
|
+
gap: var(--space-5);
|
|
105
192
|
list-style: none;
|
|
106
193
|
margin: 0;
|
|
107
194
|
padding: 0;
|
|
@@ -129,7 +216,7 @@
|
|
|
129
216
|
}
|
|
130
217
|
|
|
131
218
|
.header-menu-nav__link:hover {
|
|
132
|
-
color:
|
|
219
|
+
color: var(--color-gray-700);
|
|
133
220
|
}
|
|
134
221
|
|
|
135
222
|
.header-menu-nav__item.has-children .header-menu-nav__link::after {
|
|
@@ -137,26 +224,26 @@
|
|
|
137
224
|
display: inline-block;
|
|
138
225
|
width: 0;
|
|
139
226
|
height: 0;
|
|
140
|
-
border-left:
|
|
141
|
-
border-right:
|
|
142
|
-
border-top: 0.3125rem solid
|
|
143
|
-
margin-left:
|
|
227
|
+
border-left: var(--space-1) solid transparent;
|
|
228
|
+
border-right: var(--space-1) solid transparent;
|
|
229
|
+
border-top: 0.3125rem solid var(--color-black);
|
|
230
|
+
margin-left: var(--space-1);
|
|
144
231
|
}
|
|
145
232
|
|
|
146
233
|
.header-menu-nav__submenu {
|
|
147
234
|
position: absolute;
|
|
148
|
-
|
|
235
|
+
top: 100%;
|
|
149
236
|
left: 0;
|
|
150
237
|
display: none;
|
|
151
238
|
flex-direction: column;
|
|
152
|
-
background:
|
|
153
|
-
padding:
|
|
154
|
-
border-radius:
|
|
155
|
-
box-shadow:
|
|
239
|
+
background: var(--color-white);
|
|
240
|
+
padding: var(--space-2) 0;
|
|
241
|
+
border-radius: var(--radius-md);
|
|
242
|
+
box-shadow: var(--shadow-md);
|
|
156
243
|
min-width: 12.5rem;
|
|
157
244
|
list-style: none;
|
|
158
245
|
margin: 0;
|
|
159
|
-
z-index:
|
|
246
|
+
z-index: var(--z-dropdown);
|
|
160
247
|
border: 0.125rem solid rgba(0, 0, 0, 0.08);
|
|
161
248
|
}
|
|
162
249
|
|
|
@@ -167,10 +254,10 @@
|
|
|
167
254
|
.header-menu-nav__submenu-link {
|
|
168
255
|
display: block;
|
|
169
256
|
padding: 0.625rem 1.25rem;
|
|
170
|
-
color:
|
|
257
|
+
color: var(--color-black);
|
|
171
258
|
text-decoration: none;
|
|
172
|
-
font-size:
|
|
173
|
-
transition: background-color
|
|
259
|
+
font-size: var(--text-sm);
|
|
260
|
+
transition: background-color var(--duration-150) var(--ease-out);
|
|
174
261
|
}
|
|
175
262
|
|
|
176
263
|
.header-menu-nav__submenu-link:hover {
|
|
@@ -190,13 +277,13 @@
|
|
|
190
277
|
width: 100% !important;
|
|
191
278
|
height: 100vh !important;
|
|
192
279
|
background-color: rgba(0, 0, 0, 0.5);
|
|
193
|
-
backdrop-filter: blur(
|
|
194
|
-
z-index:
|
|
280
|
+
backdrop-filter: blur(var(--space-0-5));
|
|
281
|
+
z-index: var(--z-modal) !important;
|
|
195
282
|
pointer-events: none;
|
|
196
283
|
display: block !important;
|
|
197
284
|
opacity: 0;
|
|
198
285
|
visibility: hidden;
|
|
199
|
-
transition: opacity
|
|
286
|
+
transition: opacity var(--duration-300) var(--ease-out), visibility var(--duration-300) var(--ease-out);
|
|
200
287
|
margin: 0 !important;
|
|
201
288
|
padding: 0 !important;
|
|
202
289
|
}
|
|
@@ -221,12 +308,12 @@
|
|
|
221
308
|
width: 280px !important;
|
|
222
309
|
max-width: 85vw !important;
|
|
223
310
|
height: 100% !important;
|
|
224
|
-
background-color:
|
|
225
|
-
padding:
|
|
311
|
+
background-color: var(--color-white) !important;
|
|
312
|
+
padding: var(--space-6) !important;
|
|
226
313
|
overflow-y: auto !important;
|
|
227
314
|
transform: translateX(-100%);
|
|
228
|
-
transition: transform
|
|
229
|
-
box-shadow:
|
|
315
|
+
transition: transform var(--duration-300) var(--ease-out);
|
|
316
|
+
box-shadow: var(--shadow-md);
|
|
230
317
|
display: flex !important;
|
|
231
318
|
flex-direction: column !important;
|
|
232
319
|
margin: 0 !important;
|
|
@@ -240,13 +327,13 @@
|
|
|
240
327
|
display: flex;
|
|
241
328
|
align-items: center;
|
|
242
329
|
justify-content: space-between;
|
|
243
|
-
margin-bottom:
|
|
244
|
-
padding-bottom:
|
|
330
|
+
margin-bottom: var(--space-6);
|
|
331
|
+
padding-bottom: var(--space-3);
|
|
245
332
|
border-bottom: 0.125rem solid rgba(0, 0, 0, 0.08);
|
|
246
333
|
}
|
|
247
334
|
|
|
248
335
|
.header-menu-nav__mobile-drawer-title {
|
|
249
|
-
font-size:
|
|
336
|
+
font-size: var(--text-2xl);
|
|
250
337
|
font-weight: 600;
|
|
251
338
|
margin: 0;
|
|
252
339
|
}
|
|
@@ -260,7 +347,7 @@
|
|
|
260
347
|
background: none;
|
|
261
348
|
border: none;
|
|
262
349
|
cursor: pointer;
|
|
263
|
-
border-radius:
|
|
350
|
+
border-radius: var(--radius);
|
|
264
351
|
}
|
|
265
352
|
|
|
266
353
|
.header-menu-nav__mobile-drawer-close:hover {
|
|
@@ -284,17 +371,17 @@
|
|
|
284
371
|
|
|
285
372
|
.header-menu-nav__mobile-drawer-link {
|
|
286
373
|
display: block;
|
|
287
|
-
padding:
|
|
288
|
-
color:
|
|
374
|
+
padding: var(--spacing-sm) 0;
|
|
375
|
+
color: var(--color-black);
|
|
289
376
|
text-decoration: none;
|
|
290
377
|
font-weight: 500;
|
|
291
|
-
font-size:
|
|
378
|
+
font-size: var(--text-lg);
|
|
292
379
|
}
|
|
293
380
|
|
|
294
381
|
.header-menu-nav__mobile-drawer-sublist {
|
|
295
382
|
list-style: none;
|
|
296
383
|
margin: 0;
|
|
297
|
-
padding: 0 0 0
|
|
384
|
+
padding: 0 0 0 var(--spacing-sm);
|
|
298
385
|
border-left: 0.125rem solid rgba(0, 0, 0, 0.08);
|
|
299
386
|
display: none;
|
|
300
387
|
}
|
|
@@ -305,10 +392,10 @@
|
|
|
305
392
|
|
|
306
393
|
.header-menu-nav__mobile-drawer-sublink {
|
|
307
394
|
display: block;
|
|
308
|
-
padding:
|
|
309
|
-
color:
|
|
395
|
+
padding: var(--space-3) 0;
|
|
396
|
+
color: var(--color-black);
|
|
310
397
|
text-decoration: none;
|
|
311
|
-
font-size:
|
|
398
|
+
font-size: var(--text-sm);
|
|
312
399
|
}
|
|
313
400
|
}
|
|
314
401
|
|
|
@@ -321,7 +408,7 @@
|
|
|
321
408
|
</style>
|
|
322
409
|
|
|
323
410
|
<script>
|
|
324
|
-
(
|
|
411
|
+
(() => {
|
|
325
412
|
'use strict';
|
|
326
413
|
|
|
327
414
|
// Prevent multiple initializations
|
|
@@ -395,7 +482,7 @@
|
|
|
395
482
|
toggle.dataset.menuListenerAttached = 'true';
|
|
396
483
|
|
|
397
484
|
// Toggle button click handler (only on mobile)
|
|
398
|
-
toggle.addEventListener('click',
|
|
485
|
+
toggle.addEventListener('click', (e) => {
|
|
399
486
|
// Double check we're on mobile
|
|
400
487
|
if (window.innerWidth > 768) {
|
|
401
488
|
console.log('[HeaderMenu] Ignoring toggle click on desktop');
|
|
@@ -420,7 +507,7 @@
|
|
|
420
507
|
|
|
421
508
|
// Close button handler
|
|
422
509
|
if (drawerClose) {
|
|
423
|
-
drawerClose.addEventListener('click',
|
|
510
|
+
drawerClose.addEventListener('click', (e) => {
|
|
424
511
|
e.preventDefault();
|
|
425
512
|
e.stopPropagation();
|
|
426
513
|
console.log('[HeaderMenu] Close button clicked');
|
|
@@ -433,7 +520,7 @@
|
|
|
433
520
|
|
|
434
521
|
// Close on Escape key (only add once)
|
|
435
522
|
if (!window.__headerMenuEscapeHandler) {
|
|
436
|
-
window.__headerMenuEscapeHandler =
|
|
523
|
+
window.__headerMenuEscapeHandler = (e) => {
|
|
437
524
|
if (e.key === 'Escape' && window.innerWidth <= 768) {
|
|
438
525
|
const currentDrawer = document.getElementById('header-menu-mobile-drawer');
|
|
439
526
|
if (currentDrawer && currentDrawer.classList.contains('active')) {
|
|
@@ -447,7 +534,7 @@
|
|
|
447
534
|
|
|
448
535
|
// Close on outside click (only add once)
|
|
449
536
|
if (!window.__headerMenuOverlayHandler) {
|
|
450
|
-
window.__headerMenuOverlayHandler =
|
|
537
|
+
window.__headerMenuOverlayHandler = (e) => {
|
|
451
538
|
if (window.innerWidth > 768) return;
|
|
452
539
|
const currentDrawer = document.getElementById('header-menu-mobile-drawer');
|
|
453
540
|
if (currentDrawer && currentDrawer.classList.contains('active')) {
|
|
@@ -743,7 +830,7 @@
|
|
|
743
830
|
const newLink = link.cloneNode(true);
|
|
744
831
|
link.parentNode.replaceChild(newLink, link);
|
|
745
832
|
|
|
746
|
-
newLink.addEventListener('click',
|
|
833
|
+
newLink.addEventListener('click', (e) => {
|
|
747
834
|
const submenu = item.querySelector('.header-menu-nav__mobile-drawer-sublist');
|
|
748
835
|
if (submenu) {
|
|
749
836
|
e.preventDefault();
|
|
@@ -800,7 +887,7 @@
|
|
|
800
887
|
}
|
|
801
888
|
|
|
802
889
|
if (document.readyState === 'loading') {
|
|
803
|
-
document.addEventListener('DOMContentLoaded',
|
|
890
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
804
891
|
init();
|
|
805
892
|
normalizeServerRenderedLinks();
|
|
806
893
|
});
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
{% assign news_category = news_item.category | default: news_item.Category %}
|
|
34
34
|
|
|
35
35
|
<div class="news-thumbnail">
|
|
36
|
-
<a href="/
|
|
36
|
+
<a href="/{{ news_slug }}" class="news-thumbnail__link">
|
|
37
37
|
{% if news_image and news_image != blank %}
|
|
38
38
|
<div class="news-thumbnail__image">
|
|
39
39
|
{% if news_image contains 'http://' or news_image contains 'https://' %}
|
|
@@ -76,19 +76,111 @@
|
|
|
76
76
|
</div>
|
|
77
77
|
|
|
78
78
|
<style>
|
|
79
|
+
:root {
|
|
80
|
+
--color-primary: {{ settings.color_primary | default: '#000000' }};
|
|
81
|
+
--color-primary-hover: {{ settings.color_primary_dark | default: '#333333' }};
|
|
82
|
+
--color-primary-light: {{ settings.color_primary_light | default: '#666666' }};
|
|
83
|
+
--color-success: {{ settings.color_success | default: '#22c55e' }};
|
|
84
|
+
--color-success-light: {{ settings.color_success | default: '#22c55e' }};
|
|
85
|
+
--color-success-dark: {{ settings.color_success | default: '#22c55e' }};
|
|
86
|
+
--color-danger: {{ settings.color_error | default: '#ef4444' }};
|
|
87
|
+
--color-danger-light: {{ settings.color_error | default: '#ef4444' }};
|
|
88
|
+
--color-danger-dark: {{ settings.color_error | default: '#ef4444' }};
|
|
89
|
+
--color-text: {{ settings.color_text | default: '#000000' }};
|
|
90
|
+
--color-text-light: {{ settings.color_text_light | default: '#999999' }};
|
|
91
|
+
--color-text-muted: {{ settings.color_text_muted | default: '#666666' }};
|
|
92
|
+
--color-background: {{ settings.color_background | default: '#ffffff' }};
|
|
93
|
+
--color-card-bg: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
94
|
+
--color-border: {{ settings.color_border | default: '#cccccc' }};
|
|
95
|
+
--color-border-light: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
96
|
+
--color-white: #ffffff;
|
|
97
|
+
--color-black: {{ settings.color_primary_dark | default: '#333333' }};
|
|
98
|
+
--color-gray-25: {{ settings.color_background | default: '#ffffff' }};
|
|
99
|
+
--color-gray-50: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
100
|
+
--color-gray-100: {{ settings.color_surface | default: '#f5f5f5' }};
|
|
101
|
+
--color-gray-200: {{ settings.color_border | default: '#cccccc' }};
|
|
102
|
+
--color-gray-300: {{ settings.color_border | default: '#cccccc' }};
|
|
103
|
+
--color-gray-400: {{ settings.color_text_muted | default: '#666666' }};
|
|
104
|
+
--color-gray-500: {{ settings.color_text_muted | default: '#666666' }};
|
|
105
|
+
--color-gray-600: {{ settings.color_text_muted | default: '#666666' }};
|
|
106
|
+
--color-gray-700: {{ settings.color_text | default: '#000000' }};
|
|
107
|
+
--color-gray-800: {{ settings.color_text | default: '#000000' }};
|
|
108
|
+
--color-gray-900: {{ settings.color_text | default: '#000000' }};
|
|
109
|
+
--shadow-sm: var(--shadow-sm);
|
|
110
|
+
--shadow-md: var(--shadow-md);
|
|
111
|
+
--shadow-lg: var(--shadow-lg);
|
|
112
|
+
/* Shadow variables - mapped from settings */
|
|
113
|
+
--shadow-opacity: {{ settings.shadow_opacity | default: 0.1 }};
|
|
114
|
+
--shadow-blur: {{ settings.shadow_blur | default: 8 }}px;
|
|
115
|
+
--shadow-spread: {{ settings.shadow_spread | default: 0 }}px;
|
|
116
|
+
|
|
117
|
+
/* Border radius - mapped from settings */
|
|
118
|
+
--radius-sm: {{ settings.border_radius_small | default: 6 }}px;
|
|
119
|
+
--radius-md: {{ settings.border_radius_medium | default: 10 }}px;
|
|
120
|
+
--radius-lg: {{ settings.border_radius_large | default: 16 }}px;
|
|
121
|
+
--radius-xl: 24px;
|
|
122
|
+
--radius-2xl: 32px;
|
|
123
|
+
--radius-full: 9999px;
|
|
124
|
+
|
|
125
|
+
/* Spacing - mapped from settings */
|
|
126
|
+
--spacing-xs: {{ settings.spacing_xsmall | default: 4 }}px;
|
|
127
|
+
--spacing-sm: {{ settings.spacing_small | default: 8 }}px;
|
|
128
|
+
--spacing-md: {{ settings.spacing_element | default: 16 }}px;
|
|
129
|
+
--spacing-lg: {{ settings.spacing_component | default: 24 }}px;
|
|
130
|
+
--spacing-xl: {{ settings.spacing_large | default: 32 }}px;
|
|
131
|
+
|
|
132
|
+
/* Typography - mapped from settings */
|
|
133
|
+
--font-primary: {{ settings.font_primary | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
|
|
134
|
+
--font-heading: {{ settings.font_heading | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
|
|
135
|
+
--font-display: {{ settings.font_display | default: '' }}, 'Georgia', 'Times New Roman', serif;
|
|
136
|
+
--font-body: {{ settings.font_body | default: '' }}, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
|
|
137
|
+
--font-weight-bold: {{ settings.font_weight_bold | default: 700 }};
|
|
138
|
+
--font-weight-medium: {{ settings.font_weight_medium | default: 500 }};
|
|
139
|
+
--line-height-heading: {{ settings.line_height_heading | default: 1.2 }};
|
|
140
|
+
|
|
141
|
+
/* Text sizes - based on font_size_base from settings */
|
|
142
|
+
--text-xs: 12px;
|
|
143
|
+
--text-sm: {{ settings.font_size_base | default: 14 }}px;
|
|
144
|
+
--text-base: {{ settings.font_size_base | default: 14 }}px;
|
|
145
|
+
--text-lg: 16px;
|
|
146
|
+
--text-xl: 18px;
|
|
147
|
+
--text-2xl: 21px;
|
|
148
|
+
|
|
149
|
+
/* Transitions - mapped from settings */
|
|
150
|
+
--transition-fast: 133ms cubic-bezier(0, 0, 0.2, 1);
|
|
151
|
+
--transition: {{ settings.button_transition_speed | default: 200 }}ms cubic-bezier(0, 0, 0.2, 1);
|
|
152
|
+
--transition-slow: 300ms cubic-bezier(0, 0, 0.2, 1);
|
|
153
|
+
--duration-150: 150ms;
|
|
154
|
+
--duration-300: 300ms;
|
|
155
|
+
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
156
|
+
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
157
|
+
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
158
|
+
|
|
159
|
+
/* Z-index values */
|
|
160
|
+
--z-10: 10;
|
|
161
|
+
--z-modal: 1050;
|
|
162
|
+
--z-dropdown: 1000;
|
|
163
|
+
|
|
164
|
+
/* Line heights - mapped from settings */
|
|
165
|
+
--leading-none: 1;
|
|
166
|
+
--leading-normal: {{ settings.line_height_base | default: 1.6 }};
|
|
167
|
+
--leading-snug: 1.375;
|
|
168
|
+
--tracking-wider: var(--tracking-wider);
|
|
169
|
+
}
|
|
170
|
+
|
|
79
171
|
.news-thumbnail {
|
|
80
172
|
width: 100%;
|
|
81
173
|
height: 100%;
|
|
82
|
-
background:
|
|
83
|
-
border-radius:
|
|
174
|
+
background: var(--color-white);
|
|
175
|
+
border-radius: var(--radius-md);
|
|
84
176
|
overflow: hidden;
|
|
85
|
-
box-shadow:
|
|
86
|
-
transition: transform
|
|
177
|
+
box-shadow: var(--shadow-sm);
|
|
178
|
+
transition: transform var(--transition), box-shadow var(--transition);
|
|
87
179
|
}
|
|
88
180
|
|
|
89
181
|
.news-thumbnail:hover {
|
|
90
|
-
transform: translateY(-
|
|
91
|
-
box-shadow:
|
|
182
|
+
transform: translateY(calc(-1 * var(--space-1)));
|
|
183
|
+
box-shadow: var(--shadow-md);
|
|
92
184
|
}
|
|
93
185
|
|
|
94
186
|
.news-thumbnail__link {
|
|
@@ -103,7 +195,7 @@
|
|
|
103
195
|
width: 100%;
|
|
104
196
|
aspect-ratio: 16 / 9;
|
|
105
197
|
overflow: hidden;
|
|
106
|
-
background:
|
|
198
|
+
background: var(--color-gray-50);
|
|
107
199
|
}
|
|
108
200
|
|
|
109
201
|
.news-thumbnail__image img {
|
|
@@ -119,32 +211,32 @@
|
|
|
119
211
|
display: flex;
|
|
120
212
|
align-items: center;
|
|
121
213
|
justify-content: center;
|
|
122
|
-
background:
|
|
123
|
-
color:
|
|
214
|
+
background: var(--color-gray-50);
|
|
215
|
+
color: var(--color-gray-400);
|
|
124
216
|
}
|
|
125
217
|
|
|
126
218
|
.news-thumbnail__content {
|
|
127
|
-
padding:
|
|
219
|
+
padding: var(--spacing-element);
|
|
128
220
|
flex: 1;
|
|
129
221
|
display: flex;
|
|
130
222
|
flex-direction: column;
|
|
131
|
-
gap:
|
|
223
|
+
gap: var(--space-2);
|
|
132
224
|
}
|
|
133
225
|
|
|
134
226
|
.news-thumbnail__category {
|
|
135
|
-
font-size:
|
|
136
|
-
font-weight:
|
|
227
|
+
font-size: var(--text-xs);
|
|
228
|
+
font-weight: var(--font-weight-bold);
|
|
137
229
|
text-transform: uppercase;
|
|
138
|
-
letter-spacing:
|
|
139
|
-
color:
|
|
230
|
+
letter-spacing: var(--tracking-wider);
|
|
231
|
+
color: var(--color-gray-400);
|
|
140
232
|
}
|
|
141
233
|
|
|
142
234
|
.news-thumbnail__title {
|
|
143
|
-
font-size:
|
|
144
|
-
font-weight:
|
|
145
|
-
line-height:
|
|
235
|
+
font-size: var(--text-base);
|
|
236
|
+
font-weight: var(--font-weight-bold);
|
|
237
|
+
line-height: var(--leading-tight);
|
|
146
238
|
margin: 0;
|
|
147
|
-
color:
|
|
239
|
+
color: var(--color-gray-900);
|
|
148
240
|
display: -webkit-box;
|
|
149
241
|
-webkit-line-clamp: 2;
|
|
150
242
|
-webkit-box-orient: vertical;
|
|
@@ -152,9 +244,9 @@
|
|
|
152
244
|
}
|
|
153
245
|
|
|
154
246
|
.news-thumbnail__excerpt {
|
|
155
|
-
font-size:
|
|
156
|
-
line-height:
|
|
157
|
-
color:
|
|
247
|
+
font-size: var(--text-sm);
|
|
248
|
+
line-height: var(--leading-normal);
|
|
249
|
+
color: var(--color-gray-400);
|
|
158
250
|
margin: 0;
|
|
159
251
|
display: -webkit-box;
|
|
160
252
|
-webkit-line-clamp: 3;
|
|
@@ -164,22 +256,22 @@
|
|
|
164
256
|
}
|
|
165
257
|
|
|
166
258
|
.news-thumbnail__date {
|
|
167
|
-
font-size:
|
|
168
|
-
color:
|
|
259
|
+
font-size: var(--text-xs);
|
|
260
|
+
color: var(--color-gray-400);
|
|
169
261
|
margin-top: auto;
|
|
170
262
|
}
|
|
171
263
|
|
|
172
264
|
@media (max-width: 768px) {
|
|
173
265
|
.news-thumbnail__content {
|
|
174
|
-
padding:
|
|
266
|
+
padding: var(--space-3);
|
|
175
267
|
}
|
|
176
268
|
|
|
177
269
|
.news-thumbnail__title {
|
|
178
|
-
font-size:
|
|
270
|
+
font-size: var(--text-sm);
|
|
179
271
|
}
|
|
180
272
|
|
|
181
273
|
.news-thumbnail__excerpt {
|
|
182
|
-
font-size:
|
|
274
|
+
font-size: var(--text-sm);
|
|
183
275
|
-webkit-line-clamp: 2;
|
|
184
276
|
}
|
|
185
277
|
}
|