@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.
Files changed (89) hide show
  1. package/lib/lib/dev-server.js +309 -40
  2. package/lib/lib/liquid-engine.js +3 -1
  3. package/lib/lib/mock-data.js +36 -124
  4. package/lib/lib/widget-service.js +12 -4
  5. package/package.json +1 -1
  6. package/test-theme/assets/async-sections.js +32 -24
  7. package/test-theme/assets/cart-drawer.js +20 -22
  8. package/test-theme/assets/cart-manager.js +1 -15
  9. package/test-theme/assets/checkout-price-handler.js +12 -11
  10. package/test-theme/assets/checkout.css +1415 -0
  11. package/test-theme/assets/checkout.js +3174 -0
  12. package/test-theme/assets/components.css +178 -29
  13. package/test-theme/assets/delivery-zone.js +1 -1
  14. package/test-theme/assets/product-detail.css +1050 -0
  15. package/test-theme/assets/product-detail.js +2940 -0
  16. package/test-theme/assets/theme.css +95 -120
  17. package/test-theme/assets/theme.js +781 -186
  18. package/test-theme/layout/theme.liquid +91 -17
  19. package/test-theme/sections/content.liquid +64 -57
  20. package/test-theme/sections/footer-fallback.liquid +57 -7
  21. package/test-theme/sections/footer.liquid +63 -12
  22. package/test-theme/sections/header-fallback.liquid +41 -41
  23. package/test-theme/sections/header.liquid +41 -51
  24. package/test-theme/sections/hero-fallback.liquid +1 -1
  25. package/test-theme/sections/hero.liquid +159 -136
  26. package/test-theme/snippets/account-sidebar.liquid +121 -29
  27. package/test-theme/snippets/add-to-cart-modal.liquid +258 -206
  28. package/test-theme/snippets/breadcrumbs.liquid +98 -11
  29. package/test-theme/snippets/cart-drawer.liquid +93 -0
  30. package/test-theme/snippets/delivery-zone-city-selector.liquid +101 -15
  31. package/test-theme/snippets/delivery-zone-modal.liquid +529 -84
  32. package/test-theme/snippets/delivery-zone-search.liquid +104 -18
  33. package/test-theme/snippets/login-modal.liquid +269 -82
  34. package/test-theme/snippets/mega-menu.liquid +130 -43
  35. package/test-theme/snippets/news-thumbnail.liquid +120 -28
  36. package/test-theme/snippets/pagination.liquid +1 -1
  37. package/test-theme/snippets/price.liquid +100 -9
  38. package/test-theme/snippets/product-card-related.liquid +22 -4
  39. package/test-theme/snippets/product-card-simple.liquid +521 -25
  40. package/test-theme/snippets/product-card.liquid +145 -232
  41. package/test-theme/snippets/rating.liquid +100 -9
  42. package/test-theme/snippets/skeleton-collection-grid.liquid +94 -8
  43. package/test-theme/snippets/skeleton-product-card.liquid +102 -16
  44. package/test-theme/snippets/skeleton-product-grid.liquid +87 -1
  45. package/test-theme/snippets/social-sharing.liquid +133 -32
  46. package/test-theme/templates/account/dashboard.liquid +30 -0
  47. package/test-theme/templates/account/loyalty-redemption.liquid +29 -28
  48. package/test-theme/templates/account/loyalty.liquid +45 -43
  49. package/test-theme/templates/account/order-detail.liquid +15 -8
  50. package/test-theme/templates/account/orders.liquid +189 -35
  51. package/test-theme/templates/account/profile.liquid +509 -114
  52. package/test-theme/templates/account/register.liquid +18 -8
  53. package/test-theme/templates/account/return-orders.liquid +31 -30
  54. package/test-theme/templates/account/store-credit.liquid +27 -26
  55. package/test-theme/templates/account/subscriptions.liquid +22 -5
  56. package/test-theme/templates/account/wishlist.liquid +88 -19
  57. package/test-theme/templates/address-book.liquid +166 -69
  58. package/test-theme/templates/categories.liquid +90 -30
  59. package/test-theme/templates/checkout.liquid +137 -3834
  60. package/test-theme/templates/error.liquid +23 -21
  61. package/test-theme/templates/index.liquid +29 -0
  62. package/test-theme/templates/login.liquid +33 -6
  63. package/test-theme/templates/order-confirmation.liquid +67 -9
  64. package/test-theme/templates/page.liquid +418 -206
  65. package/test-theme/templates/product-detail.liquid +124 -3878
  66. package/test-theme/templates/products.liquid +155 -30
  67. package/test-theme/templates/search.liquid +739 -225
  68. package/test-theme/widgets/brand-carousel.liquid +102 -82
  69. package/test-theme/widgets/brand.liquid +78 -50
  70. package/test-theme/widgets/carousel.liquid +253 -121
  71. package/test-theme/widgets/category-list-carousel.liquid +32 -8
  72. package/test-theme/widgets/category-list.liquid +21 -6
  73. package/test-theme/widgets/category.liquid +104 -37
  74. package/test-theme/widgets/discount-time.liquid +326 -119
  75. package/test-theme/widgets/footer-menu.liquid +115 -23
  76. package/test-theme/widgets/footer.liquid +118 -5
  77. package/test-theme/widgets/gallery.liquid +29 -5
  78. package/test-theme/widgets/header-menu.liquid +25 -13
  79. package/test-theme/widgets/header.liquid +64 -26
  80. package/test-theme/widgets/html.liquid +29 -6
  81. package/test-theme/widgets/news.liquid +6 -0
  82. package/test-theme/widgets/product-canvas.liquid +20 -12
  83. package/test-theme/widgets/product-carousel.liquid +118 -56
  84. package/test-theme/widgets/shared/product-grid.liquid +12 -0
  85. package/test-theme/widgets/single-product.liquid +688 -250
  86. package/test-theme/widgets/spacebar-carousel.liquid +39 -10
  87. package/test-theme/widgets/spacebar.liquid +77 -6
  88. package/test-theme/widgets/splash.liquid +40 -30
  89. package/test-theme/widgets/testimonial-carousel.liquid +111 -67
@@ -21,61 +21,63 @@
21
21
 
22
22
  <!-- Product Details -->
23
23
  <div class="add-to-cart-modal-details">
24
- <h3 class="add-to-cart-modal-title" id="add-to-cart-modal-title"></h3>
25
-
26
- <!-- Price (shown after title, before variants) -->
27
- <div class="add-to-cart-modal-price">
28
- <span class="add-to-cart-modal-price-current" id="add-to-cart-modal-price-current"></span>
29
- <span class="add-to-cart-modal-price-original" id="add-to-cart-modal-price-original" style="display: none;"></span>
30
- </div>
31
-
32
- <!-- Variant Option Selectors (Buttons/Swatches) -->
33
- <div class="add-to-cart-modal-variant-options" id="add-to-cart-modal-variant-options"></div>
34
-
35
- <!-- Combinations -->
36
- <div id="add-to-cart-modal-comboContainer"></div>
37
- <div id="add-to-cart-modal-combinationValidationMsg"></div>
38
-
39
- <!-- Subscriptions -->
40
- <div class="add-to-cart-modal-subscription-option" id="add-to-cart-modal-subscription-option" style="display: none;">
41
- <div id="add-to-cart-modal-subscriptionInfoMessage"></div>
42
- <div id="add-to-cart-modal-subscriptionPlanContainer" class="subscription-list"></div>
43
- <div id="add-to-cart-modal-frequencyContainer"></div>
44
- <div class="sub-modern-box">
45
- <div class="sub-row">
46
- <span class="sub-label">Shipping</span>
47
- <select id="add-to-cart-modal-shippingMethod" class="sub-input" aria-label="Select shipping method">
48
- <option value="">Select</option>
49
- </select>
50
- <div id="add-to-cart-modal-shippingMethodDetails"></div>
51
- </div>
52
- <div class="sub-row">
53
- <span class="sub-label">Start Date <span class="required-indicator">*</span></span>
54
- <div class="flex-column">
55
- <input type="date" id="add-to-cart-modal-startDate" class="sub-input" aria-label="Subscription start date (required)" aria-required="true">
24
+ <div class="add-to-cart-modal-details-inner">
25
+ <h3 class="add-to-cart-modal-title" id="add-to-cart-modal-title"></h3>
26
+
27
+ <!-- Price -->
28
+ <div class="add-to-cart-modal-price">
29
+ <span class="add-to-cart-modal-price-current" id="add-to-cart-modal-price-current"></span>
30
+ <span class="add-to-cart-modal-price-original" id="add-to-cart-modal-price-original" style="display: none;"></span>
31
+ </div>
32
+
33
+ <!-- Variant Options -->
34
+ <div class="add-to-cart-modal-variant-options" id="add-to-cart-modal-variant-options"></div>
35
+
36
+ <!-- Combinations -->
37
+ <div id="add-to-cart-modal-comboContainer"></div>
38
+ <div id="add-to-cart-modal-combinationValidationMsg"></div>
39
+
40
+ <!-- Subscriptions -->
41
+ <div class="add-to-cart-modal-subscription-option" id="add-to-cart-modal-subscription-option" style="display: none;">
42
+ <div id="add-to-cart-modal-subscriptionInfoMessage"></div>
43
+ <div id="add-to-cart-modal-subscriptionPlanContainer" class="subscription-list"></div>
44
+ <div id="add-to-cart-modal-frequencyContainer"></div>
45
+ <div class="sub-modern-box">
46
+ <div class="sub-row">
47
+ <span class="sub-label">Shipping</span>
48
+ <select id="add-to-cart-modal-shippingMethod" class="sub-input" aria-label="Select shipping method">
49
+ <option value="">Select</option>
50
+ </select>
51
+ <div id="add-to-cart-modal-shippingMethodDetails"></div>
56
52
  </div>
57
- </div>
58
- <div class="sub-row">
59
- <span class="sub-label">End Date <span class="required-indicator">*</span></span>
60
- <div class="flex-column">
61
- <input type="date" id="add-to-cart-modal-endDate" class="sub-input" aria-label="Subscription end date (required)" aria-required="true">
53
+ <div class="sub-row">
54
+ <span class="sub-label">Start Date <span class="required-indicator">*</span></span>
55
+ <div class="flex-column">
56
+ <input type="date" id="add-to-cart-modal-startDate" class="sub-input" aria-label="Subscription start date (required)" aria-required="true">
57
+ </div>
62
58
  </div>
59
+ <div class="sub-row">
60
+ <span class="sub-label">End Date <span class="required-indicator">*</span></span>
61
+ <div class="flex-column">
62
+ <input type="date" id="add-to-cart-modal-endDate" class="sub-input" aria-label="Subscription end date (required)" aria-required="true">
63
+ </div>
64
+ </div>
65
+ <div class="sub-row">
66
+ <span class="sub-label">Deliverables</span>
67
+ <span class="deliver-pill liveOrderCount">0</span>
68
+ </div>
69
+ <span id="add-to-cart-modal-subscriptionValidationMsg"></span>
63
70
  </div>
64
- <div class="sub-row">
65
- <span class="sub-label">Deliverables</span>
66
- <span class="deliver-pill liveOrderCount">0</span>
67
- </div>
68
- <span id="add-to-cart-modal-subscriptionValidationMsg"></span>
69
71
  </div>
70
- </div>
71
-
72
- <!-- Quantity Selector -->
73
- <div class="add-to-cart-modal-quantity">
74
- <label class="add-to-cart-modal-quantity-label">QUANTITY:</label>
75
- <div class="add-to-cart-modal-quantity-controls">
76
- <button type="button" class="add-to-cart-modal-qty-btn" id="add-to-cart-modal-qty-decrease" aria-label="Decrease quantity">−</button>
77
- <input type="number" class="add-to-cart-modal-qty-input" id="add-to-cart-modal-qty-input" value="1" min="1" max="99" aria-label="Quantity">
78
- <button type="button" class="add-to-cart-modal-qty-btn" id="add-to-cart-modal-qty-increase" aria-label="Increase quantity">+</button>
72
+
73
+ <!-- Quantity -->
74
+ <div class="add-to-cart-modal-quantity">
75
+ <label class="add-to-cart-modal-quantity-label">QUANTITY:</label>
76
+ <div class="add-to-cart-modal-quantity-controls">
77
+ <button type="button" class="add-to-cart-modal-qty-btn" id="add-to-cart-modal-qty-decrease" aria-label="Decrease quantity">−</button>
78
+ <input type="number" class="add-to-cart-modal-qty-input" id="add-to-cart-modal-qty-input" value="1" min="1" max="99" aria-label="Quantity">
79
+ <button type="button" class="add-to-cart-modal-qty-btn" id="add-to-cart-modal-qty-increase" aria-label="Increase quantity">+</button>
80
+ </div>
79
81
  </div>
80
82
  </div>
81
83
 
@@ -89,6 +91,39 @@
89
91
  </div>
90
92
 
91
93
  <style>
94
+ :root {
95
+ --color-primary: {{ settings.color_primary | default: '#000000' }};
96
+ --color-primary-hover: {{ settings.color_primary_dark | default: '#333333' }};
97
+ --color-white: #ffffff;
98
+ --color-gray-50: {{ settings.color_surface | default: '#f5f5f5' }};
99
+ --color-gray-100: {{ settings.color_surface | default: '#f5f5f5' }};
100
+ --color-gray-200: {{ settings.color_border | default: '#cccccc' }};
101
+ --color-gray-300: {{ settings.color_border | default: '#cccccc' }};
102
+ --color-gray-400: {{ settings.color_text_muted | default: '#666666' }};
103
+ --color-gray-900: {{ settings.color_text | default: '#000000' }};
104
+ --radius-sm: {{ settings.border_radius_small | default: 8 }}px;
105
+ --radius-md: {{ settings.border_radius_medium | default: 12 }}px;
106
+ --radius-lg: {{ settings.border_radius_large | default: 16 }}px;
107
+ --radius-full: 9999px;
108
+ --space-2: 0.5rem;
109
+ --space-2-5: 0.625rem;
110
+ --space-3: 0.75rem;
111
+ --space-4: 1rem;
112
+ --space-5: 1.25rem;
113
+ --space-7: 1.75rem;
114
+ --space-8: 2rem;
115
+ --text-xs: 12px;
116
+ --text-sm: {{ settings.font_size_base | default: 14 }}px;
117
+ --text-lg: 16px;
118
+ --text-xl: 18px;
119
+ --text-2xl: 21px;
120
+ --text-3xl: 24px;
121
+ --transition: {{ settings.button_transition_speed | default: 200 }}ms cubic-bezier(0, 0, 0.2, 1);
122
+ --leading-snug: 1.375;
123
+ --tracking-wider: 0.05em;
124
+ --z-10: 10;
125
+ }
126
+
92
127
  .add-to-cart-modal {
93
128
  position: fixed;
94
129
  inset: 0;
@@ -96,7 +131,7 @@
96
131
  display: none;
97
132
  align-items: center;
98
133
  justify-content: center;
99
- padding: 20px;
134
+ padding: var(--space-5);
100
135
  }
101
136
 
102
137
  #add-to-cart-modal.add-to-cart-modal.active {
@@ -106,66 +141,64 @@
106
141
  #add-to-cart-modal .add-to-cart-modal-overlay {
107
142
  position: absolute;
108
143
  inset: 0;
109
- background: rgba(0, 0, 0, 0.5);
110
- backdrop-filter: blur(4px);
144
+ background: rgba(0, 0, 0, 0.4);
145
+ backdrop-filter: blur(8px);
111
146
  }
112
147
 
113
148
  .add-to-cart-modal-panel {
114
149
  position: relative;
115
- background: white;
116
- border-radius: 16px;
117
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
150
+ background: var(--color-white);
151
+ border-radius: var(--radius-md);
118
152
  width: 100%;
119
153
  max-width: 900px;
120
154
  max-height: 90vh;
121
155
  overflow-y: auto;
122
- display: flex;
123
- flex-direction: column;
156
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
124
157
  }
125
158
 
126
159
  #add-to-cart-modal .add-to-cart-modal-close {
127
160
  position: absolute;
128
- top: 16px;
129
- right: 16px;
130
- background: none;
161
+ top: var(--space-4);
162
+ right: var(--space-4);
163
+ background: var(--color-white);
131
164
  border: none;
132
165
  cursor: pointer;
133
- color: #6b7280;
134
- padding: 8px;
166
+ color: var(--color-gray-400);
167
+ padding: var(--space-2);
135
168
  display: flex;
136
169
  align-items: center;
137
170
  justify-content: center;
138
- z-index: 10;
139
- border-radius: 50%;
140
- transition: all 0.2s ease;
171
+ z-index: var(--z-10);
172
+ border-radius: var(--radius-full);
173
+ transition: all var(--transition);
174
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
141
175
  }
142
176
 
143
177
  #add-to-cart-modal .add-to-cart-modal-close:hover {
144
- color: #111827;
145
- background: rgba(0, 0, 0, 0.05);
178
+ color: var(--color-gray-900);
179
+ background: var(--color-gray-100);
146
180
  }
147
181
 
148
182
  #add-to-cart-modal .add-to-cart-modal-content {
149
183
  display: flex;
150
184
  flex-direction: row;
151
- gap: 30px;
152
- align-items: flex-start;
153
- padding: 24px;
185
+ gap: 2rem;
186
+ align-items: stretch;
187
+ padding: var(--space-7);
188
+ min-height: 500px;
154
189
  }
155
190
 
156
191
  #add-to-cart-modal .add-to-cart-modal-image-container {
157
- flex: 0 0 45% !important;
158
- max-width: 45% !important;
159
- width: 45% !important;
192
+ flex: 0 0 45%;
193
+ max-width: 45%;
194
+ width: 45%;
160
195
  aspect-ratio: 1;
161
- background: #f5f5f5;
162
- border-radius: 12px;
196
+ background: var(--color-gray-50);
197
+ border-radius: var(--radius-md);
163
198
  overflow: hidden;
164
199
  display: flex;
165
200
  align-items: center;
166
201
  justify-content: center;
167
- position: relative;
168
- margin-bottom: 0 !important;
169
202
  }
170
203
 
171
204
  #add-to-cart-modal .add-to-cart-modal-image {
@@ -178,97 +211,94 @@
178
211
  flex: 1;
179
212
  display: flex;
180
213
  flex-direction: column;
181
- gap: 20px;
182
- padding-left: 0;
214
+ justify-content: space-between;
215
+ }
216
+
217
+ #add-to-cart-modal .add-to-cart-modal-details-inner {
218
+ display: flex;
219
+ flex-direction: column;
220
+ gap: var(--space-5);
221
+ flex: 1;
183
222
  }
184
223
 
185
224
  #add-to-cart-modal .add-to-cart-modal-title {
186
225
  margin: 0;
187
- font-size: 20px;
226
+ font-size: var(--text-2xl);
188
227
  font-weight: 600;
189
- color: #111827;
190
- line-height: 1.4;
228
+ color: var(--color-gray-900);
229
+ line-height: var(--leading-snug);
191
230
  }
192
231
 
193
232
  #add-to-cart-modal .add-to-cart-modal-variant-options {
194
- margin: 16px 0;
195
233
  display: flex;
196
234
  flex-direction: column;
197
- gap: 16px;
235
+ gap: var(--space-4);
198
236
  }
199
237
 
200
- /* Use same classes as product page for consistency - scoped to modal */
201
238
  #add-to-cart-modal .add-to-cart-modal-variant-options .product-option {
202
239
  display: flex;
203
240
  flex-direction: column;
204
- gap: 12px;
241
+ gap: var(--space-3);
205
242
  }
206
243
 
207
244
  #add-to-cart-modal .add-to-cart-modal-variant-options .option-label {
208
245
  font-weight: 500;
209
- color: #111;
210
- font-size: 13px;
246
+ color: var(--color-gray-900);
247
+ font-size: var(--text-xs);
211
248
  text-transform: uppercase;
212
- letter-spacing: 0.5px;
213
- margin-bottom: 8px;
249
+ letter-spacing: var(--tracking-wider);
250
+ margin-bottom: var(--space-2);
214
251
  }
215
252
 
216
253
  #add-to-cart-modal .add-to-cart-modal-variant-options .option-values {
217
254
  display: flex;
218
255
  flex-wrap: wrap;
219
- gap: 8px;
256
+ gap: var(--space-2);
220
257
  }
221
258
 
222
259
  #add-to-cart-modal .add-to-cart-modal-variant-options .product-option-btn,
223
260
  #add-to-cart-modal .add-to-cart-modal-variant-options .option-value {
224
- border: 1px solid #cccccc;
225
- background: white;
226
- padding: 8px 14px;
227
- margin: 0;
228
- border-radius: 6px;
261
+ border: 1px solid var(--color-gray-300);
262
+ background: var(--color-white);
263
+ padding: var(--space-3) var(--space-4);
264
+ border-radius: var(--radius-sm);
229
265
  cursor: pointer;
230
- position: relative;
231
- z-index: 10;
232
- pointer-events: auto;
233
- transition: all 0.2s ease;
234
- font-size: 14px;
266
+ transition: all var(--transition);
267
+ font-size: var(--text-sm);
235
268
  font-weight: 500;
236
- color: #111;
237
- font-family: inherit;
238
- min-width: auto;
269
+ color: var(--color-gray-900);
270
+ min-width: 80px;
271
+ text-align: center;
239
272
  }
240
273
 
241
274
  #add-to-cart-modal .add-to-cart-modal-variant-options .product-option-btn.selected,
242
275
  #add-to-cart-modal .add-to-cart-modal-variant-options .option-value.selected {
243
- background: #111827 !important;
244
- color: white !important;
245
- border-color: #111827 !important;
276
+ background: var(--color-gray-900) !important;
277
+ color: var(--color-white) !important;
278
+ border-color: var(--color-gray-900) !important;
246
279
  }
247
280
 
248
281
  #add-to-cart-modal .add-to-cart-modal-variant-options .product-option-btn:hover:not(:disabled):not(.selected),
249
282
  #add-to-cart-modal .add-to-cart-modal-variant-options .option-value:hover:not(:disabled):not(.selected) {
250
- border-color: #111827;
251
- background: #f9fafb;
283
+ border-color: var(--color-gray-400);
284
+ background: var(--color-gray-50);
252
285
  }
253
286
 
254
287
  #add-to-cart-modal .add-to-cart-modal-variant-options .product-option-btn[data-display-type="color"],
255
288
  #add-to-cart-modal .add-to-cart-modal-variant-options .option-value-color {
256
- width: 32px;
257
- height: 32px;
258
- border-radius: 50%;
259
- font-size: 0;
289
+ width: var(--space-8);
290
+ height: var(--space-8);
291
+ border-radius: var(--radius-full);
260
292
  padding: 0;
261
- border: 2px solid #aaa;
262
- background-color: currentColor;
263
- min-width: 32px;
293
+ border: 2px solid var(--color-gray-300);
294
+ min-width: var(--space-8);
264
295
  }
265
296
 
266
297
  #add-to-cart-modal .add-to-cart-modal-variant-options .product-option-btn[data-display-type="color"].selected,
267
298
  #add-to-cart-modal .add-to-cart-modal-variant-options .option-value-color.selected {
268
- border: 2px solid #111827 !important;
299
+ border: 2px solid var(--color-gray-900) !important;
269
300
  }
270
301
 
271
- /* Screen reader text for color swatches */
272
302
  #add-to-cart-modal .add-to-cart-modal-variant-options .sr-only {
273
303
  position: absolute;
274
304
  width: 1px;
@@ -278,7 +308,6 @@
278
308
  overflow: hidden;
279
309
  clip: rect(0, 0, 0, 0);
280
310
  white-space: nowrap;
281
- border-width: 0;
282
311
  }
283
312
 
284
313
  #add-to-cart-modal .add-to-cart-modal-variant-options .product-option-btn:disabled,
@@ -290,19 +319,15 @@
290
319
  #add-to-cart-modal .add-to-cart-modal-price {
291
320
  display: flex;
292
321
  align-items: center;
293
- gap: 12px;
294
- font-size: 24px;
322
+ gap: var(--space-3);
323
+ font-size: var(--text-3xl);
295
324
  font-weight: 700;
296
- color: #111827;
297
- }
298
-
299
- #add-to-cart-modal .add-to-cart-modal-price-current {
300
- color: #111827;
325
+ color: var(--color-gray-900);
301
326
  }
302
327
 
303
328
  #add-to-cart-modal .add-to-cart-modal-price-original {
304
- font-size: 18px;
305
- color: #9ca3af;
329
+ font-size: var(--text-xl);
330
+ color: var(--color-gray-400);
306
331
  text-decoration: line-through;
307
332
  font-weight: 400;
308
333
  }
@@ -310,48 +335,49 @@
310
335
  #add-to-cart-modal .add-to-cart-modal-quantity {
311
336
  display: flex;
312
337
  align-items: center;
313
- gap: 16px;
338
+ gap: var(--space-4);
314
339
  }
315
340
 
316
341
  #add-to-cart-modal .add-to-cart-modal-quantity-label {
317
- font-size: 13px;
342
+ font-size: var(--text-xs);
318
343
  font-weight: 500;
319
- color: #111;
344
+ color: var(--color-gray-900);
320
345
  text-transform: uppercase;
321
- letter-spacing: 0.5px;
346
+ letter-spacing: var(--tracking-wider);
322
347
  }
323
348
 
324
349
  #add-to-cart-modal .add-to-cart-modal-quantity-controls {
325
350
  display: flex;
326
351
  align-items: center;
327
- border: 1px solid #e5e7eb;
328
- border-radius: 8px;
352
+ border: 2px solid var(--color-gray-300);
353
+ border-radius: var(--radius-sm);
329
354
  overflow: hidden;
355
+ background: var(--color-white);
330
356
  }
331
357
 
332
358
  #add-to-cart-modal .add-to-cart-modal-qty-btn {
333
- background: white;
359
+ background: var(--color-white);
334
360
  border: none;
335
- width: 40px;
336
- height: 40px;
361
+ width: 3.5rem;
362
+ height: 3.5rem;
337
363
  display: flex;
338
364
  align-items: center;
339
365
  justify-content: center;
340
366
  cursor: pointer;
341
- font-size: 20px;
367
+ font-size: 1.5rem;
342
368
  font-weight: 600;
343
- color: #111827;
344
- transition: background 0.2s ease;
345
- border-right: 1px solid #e5e7eb;
369
+ color: var(--color-gray-900);
370
+ transition: background var(--transition);
371
+ border-right: 2px solid var(--color-gray-300);
346
372
  }
347
373
 
348
374
  .add-to-cart-modal-qty-btn:last-child {
349
375
  border-right: none;
350
- border-left: 1px solid #e5e7eb;
376
+ border-left: 2px solid var(--color-gray-300);
351
377
  }
352
378
 
353
379
  .add-to-cart-modal-qty-btn:hover:not(:disabled) {
354
- background: #f9fafb;
380
+ background: var(--color-gray-100);
355
381
  }
356
382
 
357
383
  .add-to-cart-modal-qty-btn:disabled {
@@ -360,14 +386,14 @@
360
386
  }
361
387
 
362
388
  #add-to-cart-modal .add-to-cart-modal-qty-input {
363
- width: 60px;
364
- height: 40px;
389
+ width: 80px;
390
+ height: 3.5rem;
365
391
  border: none;
366
392
  text-align: center;
367
- font-size: 16px;
393
+ font-size: 1.25rem;
368
394
  font-weight: 600;
369
- color: #111827;
370
- background: white;
395
+ color: var(--color-gray-900);
396
+ background: var(--color-white);
371
397
  -moz-appearance: textfield;
372
398
  }
373
399
 
@@ -379,22 +405,29 @@
379
405
 
380
406
  #add-to-cart-modal .add-to-cart-modal-confirm-btn {
381
407
  width: 100%;
382
- padding: 14px 24px;
383
- background: #111827;
408
+ padding: 16px 24px;
409
+ background: var(--color-primary);
384
410
  color: white;
385
411
  border: none;
386
- border-radius: 8px;
387
- font-size: 14px;
412
+ border-radius: var(--radius-sm);
413
+ font-size: 15px;
388
414
  font-weight: 600;
389
- text-transform: uppercase;
390
- letter-spacing: 0.5px;
391
415
  cursor: pointer;
392
- transition: background 0.2s ease;
393
- margin-top: 8px;
416
+ transition: all var(--transition);
417
+ margin-top: var(--space-5);
418
+ text-transform: uppercase;
419
+ letter-spacing: 0.05em;
420
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
394
421
  }
395
422
 
396
423
  .add-to-cart-modal-confirm-btn:hover:not(:disabled) {
397
- background: #374151;
424
+ background: var(--color-primary-hover);
425
+ transform: translateY(-1px);
426
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
427
+ }
428
+
429
+ .add-to-cart-modal-confirm-btn:active:not(:disabled) {
430
+ transform: translateY(0);
398
431
  }
399
432
 
400
433
  .add-to-cart-modal-confirm-btn:disabled {
@@ -402,83 +435,102 @@
402
435
  cursor: not-allowed;
403
436
  }
404
437
 
405
- /* Mobile adjustments - switch back to vertical layout on small screens */
406
- @media (max-width: 768px) {
438
+ @media (max-width: 900px) {
407
439
  #add-to-cart-modal .add-to-cart-modal-content {
408
- flex-direction: column !important;
409
- gap: 20px;
440
+ gap: 1.5rem;
410
441
  }
411
-
412
442
  #add-to-cart-modal .add-to-cart-modal-image-container {
413
- flex: 1 !important;
414
- max-width: 100% !important;
415
- width: 100% !important;
443
+ flex: 0 0 42%;
444
+ max-width: 42%;
445
+ }
446
+ }
447
+
448
+ @media (max-width: 768px) {
449
+ #add-to-cart-modal .add-to-cart-modal-content {
450
+ flex-direction: column;
451
+ min-height: auto;
416
452
  }
417
-
418
- #add-to-cart-modal .add-to-cart-modal-details {
419
- padding-left: 0;
453
+ #add-to-cart-modal .add-to-cart-modal-image-container {
454
+ flex: 0 0 auto;
455
+ max-width: 100%;
420
456
  width: 100%;
421
457
  }
458
+ #add-to-cart-modal .add-to-cart-modal-qty-btn {
459
+ width: 3rem;
460
+ height: 3rem;
461
+ }
462
+ #add-to-cart-modal .add-to-cart-modal-qty-input {
463
+ width: 70px;
464
+ height: 3rem;
465
+ font-size: 1.125rem;
466
+ }
422
467
  }
423
468
 
424
469
  @media (max-width: 640px) {
425
470
  #add-to-cart-modal.add-to-cart-modal {
426
- padding: 10px;
471
+ padding: var(--space-2-5);
427
472
  }
428
-
429
- #add-to-cart-modal .add-to-cart-modal-panel {
430
- max-width: 100%;
431
- border-radius: 12px;
473
+ .add-to-cart-modal-panel {
474
+ border-radius: var(--radius-lg);
475
+ max-height: 95vh;
432
476
  }
433
-
434
477
  #add-to-cart-modal .add-to-cart-modal-content {
435
- padding: 20px;
436
- flex-direction: column !important;
478
+ padding: var(--space-5);
437
479
  }
438
-
439
480
  #add-to-cart-modal .add-to-cart-modal-title {
440
- font-size: 18px;
481
+ font-size: var(--text-xl);
441
482
  }
442
-
443
483
  #add-to-cart-modal .add-to-cart-modal-price {
444
- font-size: 20px;
484
+ font-size: var(--text-2xl);
445
485
  }
446
-
447
- #add-to-cart-modal .add-to-cart-modal-price-original {
448
- font-size: 16px;
486
+ #add-to-cart-modal .add-to-cart-modal-qty-btn {
487
+ width: 2.75rem;
488
+ height: 2.75rem;
449
489
  }
450
-
451
- #add-to-cart-modal .add-to-cart-modal-quantity {
452
- flex-direction: column;
453
- align-items: flex-start;
454
- gap: 12px;
490
+ #add-to-cart-modal .add-to-cart-modal-qty-input {
491
+ width: 65px;
492
+ height: 2.75rem;
455
493
  }
456
-
457
494
  #add-to-cart-modal .add-to-cart-modal-confirm-btn {
458
- padding: 12px 20px;
459
- font-size: 15px;
495
+ padding: 14px 20px;
496
+ font-size: 14px;
460
497
  }
461
498
  }
462
499
 
463
500
  @media (max-width: 480px) {
464
501
  #add-to-cart-modal .add-to-cart-modal-content {
465
- padding: 16px;
466
- flex-direction: column !important;
502
+ padding: var(--space-4);
467
503
  }
468
-
469
- #add-to-cart-modal .add-to-cart-modal-image-container {
470
- margin-bottom: 16px;
471
- width: 100% !important;
472
- max-width: 100% !important;
473
- }
474
-
475
504
  #add-to-cart-modal .add-to-cart-modal-title {
476
- font-size: 16px;
505
+ font-size: var(--text-lg);
477
506
  }
478
-
479
507
  #add-to-cart-modal .add-to-cart-modal-price {
480
- font-size: 18px;
508
+ font-size: var(--text-xl);
509
+ }
510
+ #add-to-cart-modal .add-to-cart-modal-qty-btn {
511
+ width: 2.5rem;
512
+ height: 2.5rem;
513
+ }
514
+ #add-to-cart-modal .add-to-cart-modal-qty-input {
515
+ width: 60px;
516
+ height: 2.5rem;
517
+ }
518
+ #add-to-cart-modal .add-to-cart-modal-confirm-btn {
519
+ padding: 12px 18px;
520
+ font-size: 13px;
481
521
  }
482
522
  }
483
- </style>
484
523
 
524
+ @media (max-width: 360px) {
525
+ #add-to-cart-modal .add-to-cart-modal-qty-btn {
526
+ width: 2.25rem;
527
+ height: 2.25rem;
528
+ font-size: 1.25rem;
529
+ }
530
+ #add-to-cart-modal .add-to-cart-modal-qty-input {
531
+ width: 55px;
532
+ height: 2.25rem;
533
+ font-size: 0.9rem;
534
+ }
535
+ }
536
+ </style>