@thorprovider/create-storefront 0.1.1

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 (75) hide show
  1. package/README.md +119 -0
  2. package/bin/install.js +116 -0
  3. package/commands/sf-add-view.md +21 -0
  4. package/commands/sf-init.md +16 -0
  5. package/commands/sf-theme.md +15 -0
  6. package/commands/sf-view.md +20 -0
  7. package/package.json +40 -0
  8. package/recipes/archetype.schema.json +39 -0
  9. package/recipes/archetypes.json +148 -0
  10. package/recipes/recipe.schema.json +59 -0
  11. package/recipes/recipes.json +90 -0
  12. package/recipes/sections.json +46 -0
  13. package/recipes/validate.mjs +190 -0
  14. package/skills/building-storefronts/SKILL.md +178 -0
  15. package/skills/building-storefronts/references/frontend-integration.md +229 -0
  16. package/skills/json-render-core/SKILL.md +291 -0
  17. package/skills/json-render-next/SKILL.md +194 -0
  18. package/skills/json-render-react/SKILL.md +298 -0
  19. package/skills/json-render-remotion/SKILL.md +111 -0
  20. package/skills/json-render-shadcn/SKILL.md +159 -0
  21. package/skills/json-render-solid/SKILL.md +204 -0
  22. package/skills/nextjs-shadcn/SKILL.md +303 -0
  23. package/skills/nextjs-shadcn/references/architecture.md +499 -0
  24. package/skills/nextjs-shadcn/references/project-setup.md +127 -0
  25. package/skills/nextjs-shadcn/references/shadcn-platform.md +258 -0
  26. package/skills/nextjs-shadcn/references/sidebar.md +274 -0
  27. package/skills/nextjs-shadcn/references/styling.md +555 -0
  28. package/skills/sf-scaffold/SKILL.md +118 -0
  29. package/skills/sf-theme-gen/SKILL.md +44 -0
  30. package/skills/sf-view-gen/SKILL.md +94 -0
  31. package/skills/shadcn-component-discovery/SKILL.md +273 -0
  32. package/skills/shadcn-component-discovery/references/registries.md +226 -0
  33. package/skills/shadcn-theming/SKILL.md +104 -0
  34. package/skills/shadcn-theming/references/templates/theme-setup.md +109 -0
  35. package/skills/shadcn-theming/references/theming-guide.md +90 -0
  36. package/skills/storefront-best-practices/SKILL.md +421 -0
  37. package/skills/storefront-best-practices/reference/components/breadcrumbs.md +123 -0
  38. package/skills/storefront-best-practices/reference/components/cart-popup.md +189 -0
  39. package/skills/storefront-best-practices/reference/components/country-selector.md +298 -0
  40. package/skills/storefront-best-practices/reference/components/footer.md +112 -0
  41. package/skills/storefront-best-practices/reference/components/hero.md +241 -0
  42. package/skills/storefront-best-practices/reference/components/megamenu.md +239 -0
  43. package/skills/storefront-best-practices/reference/components/navbar.md +397 -0
  44. package/skills/storefront-best-practices/reference/components/popups.md +221 -0
  45. package/skills/storefront-best-practices/reference/components/product-card.md +125 -0
  46. package/skills/storefront-best-practices/reference/components/product-reviews.md +217 -0
  47. package/skills/storefront-best-practices/reference/components/product-slider.md +174 -0
  48. package/skills/storefront-best-practices/reference/components/search.md +101 -0
  49. package/skills/storefront-best-practices/reference/connecting-to-backend.md +391 -0
  50. package/skills/storefront-best-practices/reference/design.md +388 -0
  51. package/skills/storefront-best-practices/reference/features/promotions.md +307 -0
  52. package/skills/storefront-best-practices/reference/features/wishlist.md +230 -0
  53. package/skills/storefront-best-practices/reference/layouts/account.md +380 -0
  54. package/skills/storefront-best-practices/reference/layouts/cart.md +316 -0
  55. package/skills/storefront-best-practices/reference/layouts/checkout.md +486 -0
  56. package/skills/storefront-best-practices/reference/layouts/home-page.md +264 -0
  57. package/skills/storefront-best-practices/reference/layouts/order-confirmation.md +231 -0
  58. package/skills/storefront-best-practices/reference/layouts/product-details.md +527 -0
  59. package/skills/storefront-best-practices/reference/layouts/product-listing.md +520 -0
  60. package/skills/storefront-best-practices/reference/layouts/static-pages.md +356 -0
  61. package/skills/storefront-best-practices/reference/medusa.md +307 -0
  62. package/skills/storefront-best-practices/reference/mobile-responsiveness.md +183 -0
  63. package/skills/storefront-best-practices/reference/seo.md +195 -0
  64. package/templates/app/app/[[...slug]]/page.tsx +17 -0
  65. package/templates/app/app/[[...slug]]/renderer.tsx +10 -0
  66. package/templates/app/app/globals.css +101 -0
  67. package/templates/app/app/layout.tsx +35 -0
  68. package/templates/app/lib/__STOREFRONT__/catalog.ts +132 -0
  69. package/templates/app/lib/__STOREFRONT__/handlers.ts +33 -0
  70. package/templates/app/lib/__STOREFRONT__/registry.tsx +134 -0
  71. package/templates/app/lib/__STOREFRONT__/runtime.ts +25 -0
  72. package/templates/app/lib/__STOREFRONT__/spec/home.ts +62 -0
  73. package/templates/app/lib/__STOREFRONT__/spec/index.ts +59 -0
  74. package/templates/app/lib/__STOREFRONT__/spec/types.ts +14 -0
  75. package/templates/app/lib/__STOREFRONT__/state.ts +35 -0
@@ -0,0 +1,264 @@
1
+ # Homepage Layout
2
+
3
+ ## Contents
4
+
5
+ - [Overview](#overview)
6
+ - [Essential Homepage Sections](#essential-homepage-sections)
7
+ - [Hero Section](#hero-section)
8
+ - [Featured Categories](#featured-categories)
9
+ - [Product Sections](#product-sections)
10
+ - [Value Propositions](#value-propositions)
11
+ - [Newsletter Signup](#newsletter-signup)
12
+ - [Content Hierarchy](#content-hierarchy)
13
+ - [Mobile Considerations](#mobile-considerations)
14
+ - [Checklist](#checklist)
15
+
16
+ ## Overview
17
+
18
+ The homepage is the primary landing page for an ecommerce store. Purpose: Strong first impression, guide users to products, communicate value, drive conversions.
19
+
20
+ **Backend Integration (CRITICAL):**
21
+
22
+ All content (categories, products, promotions) must be fetched from the ecommerce backend. Do this based on backend integrated. Never hardcode homepage content. Fetch featured products, bestsellers, new arrivals, and categories dynamically.
23
+
24
+ ### Key Ecommerce Functions
25
+
26
+ - Create strong first impression (builds trust)
27
+ - Guide users to products they want (reduce bounce rate)
28
+ - Showcase featured products and promotions (increase conversion)
29
+ - Communicate value propositions (free shipping, returns)
30
+ - Capture email addresses (build marketing list)
31
+ - Drive conversions and sales
32
+
33
+ ## Essential Homepage Sections
34
+
35
+ ### Must-Have Sections
36
+
37
+ **Critical for every homepage:**
38
+ 1. Hero section (above the fold)
39
+ 2. Category navigation (product discovery)
40
+ 3. Featured/bestselling products (social proof)
41
+ 4. Footer (contact, legal, navigation)
42
+
43
+ **Strongly recommended:**
44
+ 1. Value propositions (free shipping, returns, etc.)
45
+ 2. Social proof (reviews, testimonials, trust badges)
46
+ 3. New arrivals or sale section
47
+ 4. Newsletter signup
48
+
49
+ ### Content Hierarchy Decision
50
+
51
+ **Above the fold (first screen):**
52
+ - Hero section with main message
53
+ - Primary call-to-action
54
+ - Key value propositions (optional)
55
+
56
+ **Middle sections:**
57
+ - Featured categories
58
+ - Product sections (bestsellers, new arrivals, sale)
59
+ - Promotional banners
60
+ - Social proof
61
+
62
+ **Bottom sections:**
63
+ - Newsletter signup
64
+ - Footer
65
+
66
+ ## Hero Section
67
+
68
+ Large banner at top of homepage, first thing users see (above the fold). Communicates main message or promotion.
69
+
70
+ **Content options:**
71
+ - Seasonal campaign or sale
72
+ - New product arrivals
73
+ - Brand message or value proposition
74
+ - Featured product category
75
+ - Multiple rotating slides (carousel) - max 3-4 slides
76
+
77
+ **See also:** [hero.md](../components/hero.md) for detailed hero section guidelines including carousel patterns, mobile optimization, and performance.
78
+
79
+ ## Featured Categories
80
+
81
+ ### Purpose and Display
82
+
83
+ **Purpose**: Help users browse by category, reduce clicks to reach products, quick access to main product types.
84
+
85
+ **Category selection:**
86
+ - 4-8 main categories
87
+ - Most popular or seasonal categories
88
+ - Balanced representation
89
+ - **Fetch from backend dynamically** (never hardcode)
90
+
91
+ ### Display Patterns
92
+
93
+ **Pattern 1: Category Grid with Images**
94
+ 3-6 category tiles with images, category name overlay, click to navigate. Equal-sized tiles in grid layout (3-4 columns desktop, 2 mobile).
95
+
96
+ **Pattern 2: Category Cards**
97
+ Card layout with category image, name, and item count ("120 products"). "Shop [Category]" button on each card. 2-4 columns on desktop, 2 on mobile.
98
+
99
+ **Pattern 3: Category Slider**
100
+ Horizontal scrollable categories showing 4-6 at once. Arrows for navigation. See [product-slider.md](../components/product-slider.md).
101
+
102
+ ## Product Sections
103
+
104
+ ### Bestsellers Section (CRITICAL)
105
+
106
+ **Purpose**: Showcase popular products, build social proof, guide uncertain shoppers.
107
+
108
+ **Product selection (backend-driven):**
109
+ - Sort by total sales volume
110
+ - Update regularly (weekly or monthly)
111
+ - Mix of categories (not all one type)
112
+ - Show 8-15 products
113
+
114
+ **Layout:**
115
+ Product slider or grid, product cards with image, title, price, rating (if available). "View All" link to full bestsellers page.
116
+
117
+ ### New Arrivals Section
118
+
119
+ **Purpose**: Highlight latest products, create sense of freshness, encourage repeat visits.
120
+
121
+ **Product selection:**
122
+ - Most recently added products (last 30 days)
123
+ - Sorted by newest first
124
+ - Exclude out-of-stock items
125
+ - Show 10-20 products
126
+
127
+ **Layout:**
128
+ Product slider, optional "New" badge on products. "Shop New Arrivals" link.
129
+
130
+ ### Sale/Promotional Products
131
+
132
+ **Purpose**: Drive urgency and conversions, clear excess inventory.
133
+
134
+ **Product selection:**
135
+ - Products with active sale prices from backend
136
+ - Sorted by discount percentage
137
+ - Limited time or seasonal sales
138
+
139
+ **Display:**
140
+ Product slider with sale badges, strikethrough pricing, optional countdown timer (if time-limited sale).
141
+
142
+ ## Value Propositions
143
+
144
+ ### Trust & Convenience Features
145
+
146
+ **Purpose**: Build trust quickly, address common concerns (shipping cost, returns), differentiate from competitors.
147
+
148
+ **Common value propositions:**
149
+ - Free shipping (over threshold or always)
150
+ - Free returns (30/60/90 days)
151
+ - Secure checkout
152
+ - Customer support (24/7, phone, chat)
153
+ - Fast shipping (2-day, same-day)
154
+ - Quality guarantee or warranty
155
+
156
+ ### Display Pattern
157
+
158
+ **Icon Row (most common):**
159
+ 3-4 icons with text below hero section. Icon + short text (truck icon + "Free Shipping"). Single row, centered. 100-150px per item.
160
+
161
+ **Placement:**
162
+ Below hero section (most common) or above footer.
163
+
164
+ ## Newsletter Signup
165
+
166
+ ### Email Capture Section
167
+
168
+ **⚠️ IMPORTANT: Check footer first - don't duplicate newsletter forms.**
169
+
170
+ If your footer already includes a newsletter signup form, **do NOT add another newsletter section on the homepage**. Two newsletter forms on the same page:
171
+ - Creates confusion (which one to use?)
172
+ - Looks unprofessional and repetitive
173
+ - Reduces conversion (decision fatigue)
174
+ - Wastes valuable homepage space
175
+
176
+ **Decision:**
177
+ - Footer has newsletter? → Skip homepage newsletter section, use that space for other content
178
+ - Footer doesn't have newsletter? → Add homepage newsletter section (recommended placement: mid-page)
179
+ - Want both? → Only if they serve different purposes (e.g., footer = general newsletter, homepage = specific campaign/offer)
180
+
181
+ **Purpose**: Grow email list for marketing, offer incentive to build relationship.
182
+
183
+ **Design essentials:**
184
+ - Heading: "Stay in the Loop", "Get 10% Off"
185
+ - Subheading: Benefit of subscribing (don't just say "subscribe")
186
+ - Email input field
187
+ - Submit button
188
+ - Privacy note (optional): "We respect your privacy"
189
+
190
+ **Incentive (CRITICAL):**
191
+ - 10% off first order (most common)
192
+ - Early access to sales
193
+ - Exclusive content or products
194
+ - Free shipping code
195
+
196
+ **Layout options:**
197
+ - Full-width section (dedicated section, background color, centered)
198
+ - Inline form (between sections, smaller)
199
+ - Footer newsletter (part of footer) - see footer.md
200
+
201
+ **Placement:**
202
+ Mid-page (after 2-3 sections) or above footer.
203
+
204
+ ## Content Hierarchy
205
+
206
+ ### Section Order Recommendation
207
+
208
+ **Typical homepage structure:**
209
+ 1. Hero section
210
+ 2. Value propositions (free shipping, returns)
211
+ 3. Featured categories
212
+ 4. Bestsellers or Featured Products
213
+ 5. Promotional banner (mid-page, optional)
214
+ 6. New Arrivals
215
+ 7. Newsletter signup (skip if footer already has newsletter form)
216
+ 8. Footer
217
+
218
+ ### Visual Rhythm
219
+
220
+ **Vary section types:**
221
+ Product section → Banner → Product section. Avoid monotony (all product sections in a row). Mix text-heavy and image-heavy sections.
222
+
223
+ **Spacing:**
224
+ Generous padding between sections (64-120px desktop, 40-60px mobile). Consistent spacing. Section backgrounds to create separation.
225
+
226
+ ## Mobile Considerations
227
+
228
+ **Responsive layout:**
229
+ Single column for most sections, stack elements vertically, larger touch targets (44px minimum), simplified navigation.
230
+
231
+ **Product sections:**
232
+ Horizontal sliders with swipe gestures, or stacked product grids (2 columns). Smaller product cards optimized for mobile.
233
+
234
+ **Hero section:**
235
+ Portrait aspect ratio (2:3 or 3:4), vertical text placement (center/bottom). See [hero.md](../components/hero.md) for mobile hero details.
236
+
237
+ **Performance:**
238
+ Lazy load below-fold images, optimize hero image (<200KB), use WebP format. Mobile-first approach.
239
+
240
+ ## Checklist
241
+
242
+ **Essential elements:**
243
+
244
+ - [ ] Hero section with clear message and CTA
245
+ - [ ] Featured categories (4-8 categories with images)
246
+ - [ ] Categories fetched from backend dynamically
247
+ - [ ] Bestsellers or Featured Products section
248
+ - [ ] New Arrivals section
249
+ - [ ] Value propositions (free shipping, returns, etc.)
250
+ - [ ] Social proof (reviews, ratings, testimonials)
251
+ - [ ] Newsletter signup form (only if footer doesn't have one - check footer first)
252
+ - [ ] No duplicate newsletter forms (homepage + footer)
253
+ - [ ] Footer with navigation and legal links
254
+ - [ ] Mobile-responsive layout (single column, 44px touch targets)
255
+ - [ ] Fast loading time (<3 seconds)
256
+ - [ ] Optimized images (<200KB, WebP format)
257
+ - [ ] Lazy loading for below-fold content
258
+ - [ ] Backend integration (all content fetched from API)
259
+ - [ ] Semantic HTML (main, section, h1, h2)
260
+ - [ ] Proper heading hierarchy (h1 → h2 → h3)
261
+ - [ ] Keyboard accessible
262
+ - [ ] ARIA labels on sections
263
+ - [ ] High contrast text (4.5:1 minimum)
264
+ - [ ] Clear CTAs on every section
@@ -0,0 +1,231 @@
1
+ # Order Confirmation Page
2
+
3
+ ## Contents
4
+
5
+ - [Overview](#overview)
6
+ - [Essential Information](#essential-information)
7
+ - [Order Details Display](#order-details-display)
8
+ - [Next Steps Section](#next-steps-section)
9
+ - [Layout Patterns](#layout-patterns)
10
+ - [Call-to-Action Buttons](#call-to-action-buttons)
11
+ - [Mobile Considerations](#mobile-considerations)
12
+ - [Checklist](#checklist)
13
+
14
+ ## Overview
15
+
16
+ The order confirmation page displays immediately after successful checkout. Purpose: Confirm purchase, provide order details, guide customers on next steps, build post-purchase confidence.
17
+
18
+ **Backend Integration:**
19
+
20
+ Fetch order details from backend API immediately after checkout completes. Do this based on backend integrated. Never hardcode or mock order data.
21
+
22
+ ### Key Ecommerce Functions
23
+
24
+ - Confirm successful purchase (reduces anxiety)
25
+ - Provide order reference number (for tracking and support)
26
+ - Set delivery expectations (reduces "where's my order" inquiries)
27
+ - Guide customer on next steps (reduces support load)
28
+ - Encourage repeat purchases (continue shopping CTA)
29
+ - Build post-purchase confidence (reduces buyer's remorse)
30
+
31
+ ## Essential Information
32
+
33
+ ### Success Message (CRITICAL)
34
+
35
+ **Confirmation headline:**
36
+ Large, prominent heading, positive reassuring message, success icon (green checkmark), immediately visible above fold.
37
+
38
+ **Example messages:**
39
+ - "Order Confirmed!"
40
+ - "Thank you for your order!"
41
+ - "Success! Your order is confirmed"
42
+
43
+ **Subheading:**
44
+ Brief reassurance, email confirmation mention, delivery timeframe preview.
45
+
46
+ **Example:**
47
+ ```
48
+ ✓ Order Confirmed!
49
+
50
+ Thank you for your purchase! We've sent a confirmation
51
+ email to customer@example.com with your order details.
52
+ ```
53
+
54
+ ### Order Number
55
+
56
+ **Display requirements:**
57
+ - Very prominent
58
+ - Clearly labeled "Order Number:" or "Order #"
59
+ - Easy to select and copy (selectable text)
60
+ - Monospace or sans-serif font
61
+ - High contrast for visibility
62
+ - Optional: Copy button next to number
63
+
64
+ **Example:**
65
+ ```
66
+ Order Number: #ORD-123456789
67
+ ```
68
+
69
+ ### Email Confirmation Notice
70
+
71
+ Confirmation email was sent, email address used, check spam folder reminder (optional), resend email option (optional).
72
+
73
+ ## Order Details Display
74
+
75
+ ### Ordered Items List
76
+
77
+ Display per item:
78
+ - Product image (thumbnail, 60-80px)
79
+ - Product title (full name)
80
+ - Variant information (size, color, etc.)
81
+ - Quantity ("× 2")
82
+ - Unit price
83
+ - Line total (quantity × price)
84
+
85
+ ### Order Summary (Pricing)
86
+
87
+ **Price breakdown:**
88
+ - Subtotal (sum of items)
89
+ - Shipping cost (with method name)
90
+ - Tax (if applicable)
91
+ - Discount/promo code (if used, show savings)
92
+ - **Order Total** (bold, larger font)
93
+
94
+ **Medusa pricing note:**
95
+ Medusa stores prices as-is (not in cents). Display prices directly without dividing by 100. Example: If backend returns 49.99, display $49.99.
96
+
97
+ **Example:**
98
+ ```
99
+ Subtotal: $139.97
100
+ Shipping (Express): $5.99
101
+ Tax: $11.20
102
+ Discount (SAVE10): -$14.00
103
+ ─────────────────────────────
104
+ Order Total: $143.16
105
+ ```
106
+
107
+ ### Shipping and Billing Information
108
+
109
+ **Shipping address:**
110
+ Recipient name, complete address, phone number, shipping method selected, estimated delivery date.
111
+
112
+ **Billing address:**
113
+ If same as shipping: "Same as shipping address". If different: Show full billing address.
114
+
115
+ **Payment information:**
116
+ Payment method type, last 4 digits (if card), alternative methods (PayPal email, Apple Pay). **Never show full card number.**
117
+
118
+ ## Next Steps Section
119
+
120
+ ### What Happens Next (CRITICAL)
121
+
122
+ **Timeline guidance:**
123
+ Order processing information, shipment timeline, when tracking becomes available, expected delivery date.
124
+
125
+ **Example:**
126
+ ```
127
+ What's Next?
128
+
129
+ 1. Order Processing (1-2 business days)
130
+ We're carefully preparing your items for shipment.
131
+
132
+ 2. Shipment Notification
133
+ You'll receive an email with tracking information
134
+ when your order ships.
135
+
136
+ 3. Delivery (By January 30)
137
+ Your package will arrive at your address.
138
+ ```
139
+
140
+ **Benefits:**
141
+ Sets clear expectations, reduces "where's my order" inquiries, builds confidence in process.
142
+
143
+ ## Layout Patterns
144
+
145
+ ### Single Column Layout (Recommended)
146
+
147
+ Full-width content, centered on page, all sections stacked vertically. Mobile-friendly by default.
148
+
149
+ **Section order:**
150
+ 1. Success message and order number
151
+ 2. Email confirmation notice
152
+ 3. Order items list
153
+ 4. Order summary (pricing)
154
+ 5. Shipping address
155
+ 6. Billing address
156
+ 7. Payment method
157
+ 8. Next steps/timeline
158
+ 9. CTAs (continue shopping, print, track)
159
+
160
+ ### Two-Column Layout (Desktop Alternative)
161
+
162
+ - Left column (60-70%): Main content (success, order number, items, addresses, next steps)
163
+ - Right column (30-40%): Sidebar (order summary, CTAs, tracking)
164
+ - Mobile: Collapses to single column
165
+
166
+ ## Call-to-Action Buttons
167
+
168
+ ### Primary Actions
169
+
170
+ **Continue Shopping (MOST IMPORTANT):**
171
+ Large, prominent button (primary color), returns to homepage or shop page. Text: "Continue Shopping" or "Back to Store". Encourages repeat visits.
172
+
173
+ ### Secondary Actions
174
+
175
+ **Create Account (for guest orders):**
176
+ Encourage account creation, pre-fill email from order, benefits messaging ("Track orders easily"). Optional, not required.
177
+
178
+ **Print Receipt:**
179
+ Print-friendly CSS, button to print page.
180
+
181
+ **Contact Support:**
182
+ Link to support page or contact form, phone number (if available), help with order questions.
183
+
184
+ **Button layout:**
185
+ Primary action prominent (filled button), secondary actions less prominent (outline or link), adequate spacing (16-24px), mobile full-width.
186
+
187
+ ## Mobile Considerations
188
+
189
+ **Single column only:**
190
+ Full-width sections, generous padding (16-20px), larger text for important info, touch-friendly buttons.
191
+
192
+ **Order number:**
193
+ Extra large (28-36px), highly visible, easy to read and reference, tap to copy (if implemented).
194
+
195
+ **Buttons:**
196
+ Full-width or near full-width (min 90%), 48-56px height (touch-friendly), 16px spacing between buttons.
197
+
198
+ **Quick actions:**
199
+ - Tap phone number to call support
200
+ - Tap to copy order number
201
+ - Add delivery date to calendar
202
+ - Share order details
203
+
204
+ ## Checklist
205
+
206
+ **Essential elements:**
207
+
208
+ - [ ] Large success message (32-48px heading)
209
+ - [ ] Green checkmark or success icon
210
+ - [ ] Prominent order number (24-32px, selectable)
211
+ - [ ] Email confirmation notice
212
+ - [ ] Order items list with images
213
+ - [ ] Item details (title, variant, quantity, price)
214
+ - [ ] Order summary (subtotal, shipping, tax, total)
215
+ - [ ] Shipping address displayed
216
+ - [ ] Billing address (or "same as shipping")
217
+ - [ ] Payment method (last 4 digits only)
218
+ - [ ] Estimated delivery date
219
+ - [ ] Shipping method name
220
+ - [ ] "What's Next" section (timeline)
221
+ - [ ] Continue Shopping button (primary CTA)
222
+ - [ ] Print receipt button
223
+ - [ ] Contact support link
224
+ - [ ] Guest orders: Create account CTA (optional)
225
+ - [ ] Backend integration (fetch order from API)
226
+ - [ ] Mobile-responsive (single column, full-width buttons)
227
+ - [ ] Semantic HTML (main, section, h1, h2)
228
+ - [ ] ARIA labels on sections
229
+ - [ ] Live region announcing success
230
+ - [ ] Keyboard navigation supported
231
+ - [ ] High contrast text (4.5:1 minimum)