create-brainerce-store 1.51.0 → 1.52.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 (173) hide show
  1. package/README.md +71 -0
  2. package/dist/index.js +24 -80
  3. package/messages/en.json +32 -0
  4. package/messages/he.json +32 -0
  5. package/package.json +1 -1
  6. package/templates/nextjs/base/.claude/commands/design.md +9 -0
  7. package/templates/nextjs/base/AI-GUIDE.md +52 -3
  8. package/templates/nextjs/base/CLAUDE.md +10 -0
  9. package/templates/nextjs/base/package.json.ejs +52 -39
  10. package/templates/nextjs/base/src/app/globals.css +36 -30
  11. package/templates/nextjs/base/src/components/checkout/payment-step.tsx +14 -10
  12. package/templates/nextjs/base/src/components/ui/accordion.tsx +53 -0
  13. package/templates/nextjs/base/src/components/ui/badge.tsx +32 -0
  14. package/templates/nextjs/base/src/components/ui/button.tsx +49 -0
  15. package/templates/nextjs/base/src/components/ui/card.tsx +55 -0
  16. package/templates/nextjs/base/src/components/ui/checkbox.tsx +28 -0
  17. package/templates/nextjs/base/src/components/ui/dialog.tsx +107 -0
  18. package/templates/nextjs/base/src/components/ui/input.tsx +22 -0
  19. package/templates/nextjs/base/src/components/ui/label.tsx +21 -0
  20. package/templates/nextjs/base/src/components/ui/radio-group.tsx +38 -0
  21. package/templates/nextjs/base/src/components/ui/select.tsx +153 -0
  22. package/templates/nextjs/base/src/components/ui/separator.tsx +26 -0
  23. package/templates/nextjs/base/src/components/ui/sheet.tsx +125 -0
  24. package/templates/nextjs/base/src/components/ui/skeleton.tsx +7 -0
  25. package/templates/nextjs/base/src/components/ui/tabs.tsx +55 -0
  26. package/templates/nextjs/base/src/components/ui/textarea.tsx +21 -0
  27. package/templates/nextjs/base/src/components/ui/tooltip.tsx +32 -0
  28. package/templates/nextjs/base/src/ui/cart/cart-bundle-offer.tsx +17 -11
  29. package/templates/nextjs/base/src/ui/cart/cart-item.tsx +2 -8
  30. package/templates/nextjs/base/src/ui/cart/cart-nudges.tsx +28 -39
  31. package/templates/nextjs/base/src/ui/cart/cart-summary.tsx +3 -1
  32. package/templates/nextjs/base/src/ui/cart/cart-upgrade-banner.tsx +8 -23
  33. package/templates/nextjs/base/src/ui/cart/cart-view.tsx +18 -27
  34. package/templates/nextjs/base/src/ui/cart/coupon-input.tsx +10 -21
  35. package/templates/nextjs/base/src/ui/cart/free-shipping-bar.tsx +2 -3
  36. package/templates/nextjs/base/src/ui/cart/reservation-countdown.tsx +95 -103
  37. package/templates/nextjs/base/src/ui/home/hero-section.tsx +4 -6
  38. package/templates/nextjs/base/src/ui/layout/announcement-bar.tsx.ejs +116 -125
  39. package/templates/nextjs/base/src/ui/layout/faq-section.tsx.ejs +90 -103
  40. package/templates/nextjs/base/src/ui/layout/header-account.tsx +2 -17
  41. package/templates/nextjs/base/src/ui/layout/language-switcher.tsx.ejs +80 -70
  42. package/templates/nextjs/base/src/ui/layout/site-footer.tsx.ejs +144 -164
  43. package/templates/nextjs/base/src/ui/layout/site-header.tsx.ejs +152 -182
  44. package/templates/nextjs/base/src/ui/product/customization-fields.tsx +456 -444
  45. package/templates/nextjs/base/src/ui/product/discount-badge.tsx +18 -22
  46. package/templates/nextjs/base/src/ui/product/frequently-bought-together.tsx +15 -27
  47. package/templates/nextjs/base/src/ui/product/modifier-group-selector.tsx +206 -175
  48. package/templates/nextjs/base/src/ui/product/price-display.tsx +3 -2
  49. package/templates/nextjs/base/src/ui/product/product-card.tsx +238 -271
  50. package/templates/nextjs/base/src/ui/product/product-client-section.tsx +455 -470
  51. package/templates/nextjs/base/src/ui/product/product-listing.tsx +96 -79
  52. package/templates/nextjs/base/src/ui/product/recommendation-section.tsx +102 -107
  53. package/templates/nextjs/base/src/ui/product/review-form.tsx +44 -43
  54. package/templates/nextjs/{designs/passepartout → base/src}/ui/product/reviews-section.tsx.ejs +108 -96
  55. package/templates/nextjs/base/src/ui/product/stock-badge.tsx +61 -63
  56. package/templates/nextjs/base/tailwind.config.ts +69 -42
  57. package/templates/nextjs/designs/{passepartout → atelier}/app-overlay/layout.tsx.ejs +23 -25
  58. package/templates/nextjs/designs/atelier/globals.css +396 -0
  59. package/templates/nextjs/designs/atelier/messages-patch/en.json +99 -0
  60. package/templates/nextjs/designs/atelier/messages-patch/he.json +99 -0
  61. package/templates/nextjs/designs/{passepartout → atelier}/ui/cart/cart-bundle-offer.tsx +110 -111
  62. package/templates/nextjs/designs/atelier/ui/cart/cart-drawer.tsx +163 -0
  63. package/templates/nextjs/designs/atelier/ui/cart/cart-item.tsx +140 -0
  64. package/templates/nextjs/designs/atelier/ui/cart/cart-nudges.tsx +34 -0
  65. package/templates/nextjs/designs/atelier/ui/cart/cart-summary.tsx +107 -0
  66. package/templates/nextjs/designs/{passepartout → atelier}/ui/cart/cart-upgrade-banner.tsx +123 -141
  67. package/templates/nextjs/designs/atelier/ui/cart/cart-view.tsx +147 -0
  68. package/templates/nextjs/designs/atelier/ui/cart/coupon-input.tsx +142 -0
  69. package/templates/nextjs/designs/{passepartout → atelier}/ui/cart/free-shipping-bar.tsx +77 -62
  70. package/templates/nextjs/designs/{passepartout → atelier}/ui/cart/reservation-countdown.tsx +89 -103
  71. package/templates/nextjs/designs/atelier/ui/home/benefits-band.tsx +34 -0
  72. package/templates/nextjs/designs/atelier/ui/home/category-tiles.tsx +148 -0
  73. package/templates/nextjs/designs/atelier/ui/home/discount-banner-strip.tsx +27 -0
  74. package/templates/nextjs/designs/atelier/ui/home/editorial-band.tsx +73 -0
  75. package/templates/nextjs/designs/atelier/ui/home/featured-products-section.tsx +36 -0
  76. package/templates/nextjs/designs/atelier/ui/home/hero-section.tsx +148 -0
  77. package/templates/nextjs/designs/atelier/ui/home/home-client.tsx +54 -0
  78. package/templates/nextjs/designs/atelier/ui/home/newsletter-section.tsx +78 -0
  79. package/templates/nextjs/designs/atelier/ui/home/testimonials-band.tsx +46 -0
  80. package/templates/nextjs/designs/atelier/ui/layout/announcement-bar.tsx +118 -0
  81. package/templates/nextjs/designs/atelier/ui/layout/faq-section.tsx +96 -0
  82. package/templates/nextjs/designs/atelier/ui/layout/header-account.tsx +36 -0
  83. package/templates/nextjs/designs/atelier/ui/layout/header-cart.tsx +36 -0
  84. package/templates/nextjs/designs/atelier/ui/layout/language-switcher.tsx.ejs +137 -0
  85. package/templates/nextjs/designs/atelier/ui/layout/nav-url.ts +14 -0
  86. package/templates/nextjs/designs/atelier/ui/layout/rich-text-block.tsx +34 -0
  87. package/templates/nextjs/designs/atelier/ui/layout/site-footer.tsx.ejs +141 -0
  88. package/templates/nextjs/designs/atelier/ui/layout/site-header.tsx.ejs +138 -0
  89. package/templates/nextjs/designs/atelier/ui/product/customization-fields.tsx +466 -0
  90. package/templates/nextjs/designs/{passepartout → atelier}/ui/product/discount-badge.tsx +17 -22
  91. package/templates/nextjs/designs/{passepartout → atelier}/ui/product/frequently-bought-together.tsx +196 -205
  92. package/templates/nextjs/designs/atelier/ui/product/modifier-group-selector.tsx +193 -0
  93. package/templates/nextjs/designs/atelier/ui/product/price-display.tsx +69 -0
  94. package/templates/nextjs/designs/atelier/ui/product/product-card.tsx +260 -0
  95. package/templates/nextjs/designs/atelier/ui/product/product-client-section.tsx +471 -0
  96. package/templates/nextjs/designs/atelier/ui/product/product-grid.tsx +47 -0
  97. package/templates/nextjs/designs/atelier/ui/product/product-listing.tsx +260 -0
  98. package/templates/nextjs/designs/atelier/ui/product/recommendation-section.tsx +95 -0
  99. package/templates/nextjs/designs/{passepartout → atelier}/ui/product/review-form.tsx +267 -294
  100. package/templates/nextjs/designs/atelier/ui/product/reviews-section.tsx.ejs +148 -0
  101. package/templates/nextjs/designs/atelier/ui/product/stock-badge.tsx +66 -0
  102. package/templates/nextjs/designs/atelier/ui/product/variant-selector.tsx +206 -0
  103. package/templates/nextjs/designs/atelier/ui/shared/cdn-image.tsx +29 -0
  104. package/templates/nextjs/designs/{passepartout → atelier}/ui/shared/fly-to-cart.ts +86 -85
  105. package/templates/nextjs/designs/atelier/ui/shared/icons.tsx +269 -0
  106. package/templates/nextjs/designs/atelier/ui/shared/loading-spinner.tsx +64 -0
  107. package/templates/nextjs/designs/atelier/ui/shared/reveal.tsx +71 -0
  108. package/templates/nextjs/designs/atelier/ui/shared/select-menu.tsx +125 -0
  109. package/templates/nextjs/ui-canvas/cart/cart-bundle-offer.tsx +2 -0
  110. package/templates/nextjs/ui-canvas/cart/cart-item.tsx +2 -0
  111. package/templates/nextjs/ui-canvas/cart/cart-nudges.tsx +2 -0
  112. package/templates/nextjs/ui-canvas/cart/cart-summary.tsx +2 -0
  113. package/templates/nextjs/ui-canvas/cart/cart-upgrade-banner.tsx +2 -0
  114. package/templates/nextjs/ui-canvas/cart/cart-view.tsx +2 -2
  115. package/templates/nextjs/ui-canvas/cart/coupon-input.tsx +2 -0
  116. package/templates/nextjs/ui-canvas/cart/free-shipping-bar.tsx +2 -0
  117. package/templates/nextjs/ui-canvas/cart/reservation-countdown.tsx +2 -0
  118. package/templates/nextjs/ui-canvas/home/discount-banner-strip.tsx +1 -1
  119. package/templates/nextjs/ui-canvas/home/featured-products-section.tsx +1 -1
  120. package/templates/nextjs/ui-canvas/home/hero-section.tsx +1 -1
  121. package/templates/nextjs/ui-canvas/home/home-client.tsx +1 -1
  122. package/templates/nextjs/ui-canvas/layout/announcement-bar.tsx.ejs +1 -1
  123. package/templates/nextjs/ui-canvas/layout/faq-section.tsx.ejs +2 -2
  124. package/templates/nextjs/ui-canvas/layout/header-account.tsx +1 -1
  125. package/templates/nextjs/ui-canvas/layout/language-switcher.tsx.ejs +2 -0
  126. package/templates/nextjs/ui-canvas/layout/rich-text-block.tsx.ejs +2 -0
  127. package/templates/nextjs/ui-canvas/layout/site-footer.tsx.ejs +2 -2
  128. package/templates/nextjs/ui-canvas/layout/site-header.tsx.ejs +2 -2
  129. package/templates/nextjs/ui-canvas/product/customization-fields.tsx +2 -0
  130. package/templates/nextjs/ui-canvas/product/discount-badge.tsx +2 -0
  131. package/templates/nextjs/ui-canvas/product/frequently-bought-together.tsx +2 -0
  132. package/templates/nextjs/ui-canvas/product/modifier-group-selector.tsx +2 -0
  133. package/templates/nextjs/ui-canvas/product/price-display.tsx +2 -0
  134. package/templates/nextjs/ui-canvas/product/product-card.tsx +1 -1
  135. package/templates/nextjs/ui-canvas/product/product-client-section.tsx +1 -1
  136. package/templates/nextjs/ui-canvas/product/product-grid.tsx +1 -1
  137. package/templates/nextjs/ui-canvas/product/product-listing.tsx +1 -1
  138. package/templates/nextjs/ui-canvas/product/recommendation-section.tsx +4 -0
  139. package/templates/nextjs/ui-canvas/product/review-form.tsx +29 -32
  140. package/templates/nextjs/ui-canvas/product/{reviews-section.tsx → reviews-section.tsx.ejs} +26 -8
  141. package/templates/nextjs/ui-canvas/product/stock-badge.tsx +2 -0
  142. package/templates/nextjs/ui-canvas/product/variant-selector.tsx +2 -0
  143. package/templates/nextjs/ui-canvas/shared/cdn-image.tsx +2 -0
  144. package/templates/nextjs/ui-canvas/shared/loading-spinner.tsx +2 -0
  145. package/templates/nextjs/base/src/ui/product/reviews-section.tsx +0 -85
  146. package/templates/nextjs/designs/passepartout/globals.css +0 -412
  147. package/templates/nextjs/designs/passepartout/messages-patch/en.json +0 -87
  148. package/templates/nextjs/designs/passepartout/messages-patch/he.json +0 -87
  149. package/templates/nextjs/designs/passepartout/ui/cart/cart-nudges.tsx +0 -39
  150. package/templates/nextjs/designs/passepartout/ui/cart/cart-view.tsx +0 -149
  151. package/templates/nextjs/designs/passepartout/ui/home/home-client.tsx +0 -401
  152. package/templates/nextjs/designs/passepartout/ui/layout/announcement-bar.tsx +0 -139
  153. package/templates/nextjs/designs/passepartout/ui/layout/cart-link.tsx +0 -45
  154. package/templates/nextjs/designs/passepartout/ui/layout/faq-section.tsx +0 -103
  155. package/templates/nextjs/designs/passepartout/ui/layout/site-footer.tsx +0 -159
  156. package/templates/nextjs/designs/passepartout/ui/layout/site-header.tsx.ejs +0 -155
  157. package/templates/nextjs/designs/passepartout/ui/layout/trust-icons.tsx +0 -60
  158. package/templates/nextjs/designs/passepartout/ui/layout/whatsapp-button.tsx +0 -34
  159. package/templates/nextjs/designs/passepartout/ui/product/price-display.tsx +0 -111
  160. package/templates/nextjs/designs/passepartout/ui/product/product-card.tsx +0 -265
  161. package/templates/nextjs/designs/passepartout/ui/product/product-client-section.tsx +0 -667
  162. package/templates/nextjs/designs/passepartout/ui/product/product-grid.tsx +0 -35
  163. package/templates/nextjs/designs/passepartout/ui/product/product-listing.tsx +0 -427
  164. package/templates/nextjs/designs/passepartout/ui/product/recommendation-section.tsx +0 -113
  165. package/templates/nextjs/designs/passepartout/ui/product/stock-badge.tsx +0 -52
  166. package/templates/nextjs/designs/passepartout/ui/product/variant-selector.tsx +0 -307
  167. package/templates/nextjs/designs/passepartout/ui/shared/loading-spinner.tsx +0 -33
  168. package/templates/nextjs/themes/luxury/globals.css +0 -399
  169. package/templates/nextjs/themes/luxury/theme.json +0 -23
  170. package/templates/nextjs/themes/minimal/globals.css +0 -30
  171. package/templates/nextjs/themes/minimal/theme.json +0 -23
  172. package/templates/nextjs/themes/playful/globals.css +0 -400
  173. package/templates/nextjs/themes/playful/theme.json +0 -23
@@ -1,399 +0,0 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- @layer base {
6
- :root {
7
- --background: 20 14% 4%;
8
- --foreground: 38 25% 86%;
9
- --primary: 38 60% 55%;
10
- --primary-foreground: 20 14% 4%;
11
- --secondary: 20 10% 10%;
12
- --secondary-foreground: 38 25% 86%;
13
- --muted: 20 10% 12%;
14
- --muted-foreground: 30 10% 50%;
15
- --accent: 38 60% 55%;
16
- --accent-foreground: 20 14% 4%;
17
- --destructive: 0 72% 51%;
18
- --destructive-foreground: 38 25% 86%;
19
- --border: 30 10% 16%;
20
- --radius: 0.25rem;
21
-
22
- /* Luxury-specific tokens */
23
- --gold: 38 60% 55%;
24
- --gold-light: 38 50% 72%;
25
- --gold-dark: 38 70% 40%;
26
- --surface: 20 12% 7%;
27
- --surface-elevated: 20 10% 10%;
28
- }
29
-
30
- * {
31
- @apply border-border;
32
- }
33
-
34
- body {
35
- @apply bg-background text-foreground antialiased;
36
- letter-spacing: 0.01em;
37
- line-height: 1.7;
38
- }
39
-
40
- /* Luxury typography — editorial serif hierarchy */
41
- h1,
42
- h2,
43
- h3,
44
- h4 {
45
- letter-spacing: 0.04em;
46
- font-weight: 500;
47
- line-height: 1.2;
48
- }
49
-
50
- h1 {
51
- text-transform: uppercase;
52
- letter-spacing: 0.1em;
53
- font-weight: 400;
54
- line-height: 1.1;
55
- }
56
-
57
- h2 {
58
- text-transform: uppercase;
59
- letter-spacing: 0.06em;
60
- }
61
-
62
- /* Elegant link underline animation */
63
- a:not([class*="bg-"]) {
64
- position: relative;
65
- transition: color 0.3s ease, opacity 0.3s ease;
66
- }
67
-
68
- main a:not([class*="bg-"]):not([class*="group"])::after {
69
- content: '';
70
- position: absolute;
71
- bottom: -1px;
72
- left: 0;
73
- width: 0;
74
- height: 1px;
75
- background: hsl(var(--gold));
76
- transition: width 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
77
- }
78
-
79
- main a:not([class*="bg-"]):not([class*="group"]):hover::after {
80
- width: 100%;
81
- }
82
-
83
- /* Refined text selection */
84
- ::selection {
85
- background: hsl(var(--gold) / 0.3);
86
- color: hsl(38 25% 96%);
87
- }
88
-
89
- /* Subtle body texture overlay */
90
- body::before {
91
- content: '';
92
- position: fixed;
93
- inset: 0;
94
- background: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.015'/%3E%3C/svg%3E");
95
- pointer-events: none;
96
- z-index: 9999;
97
- }
98
-
99
- /* Custom scrollbar */
100
- ::-webkit-scrollbar {
101
- width: 5px;
102
- }
103
-
104
- ::-webkit-scrollbar-track {
105
- background: hsl(20 14% 4%);
106
- }
107
-
108
- ::-webkit-scrollbar-thumb {
109
- background: hsl(30 10% 18%);
110
- border-radius: 3px;
111
- }
112
-
113
- ::-webkit-scrollbar-thumb:hover {
114
- background: hsl(var(--gold) / 0.5);
115
- }
116
-
117
- /* Smooth focus states */
118
- :focus-visible {
119
- outline: 1px solid hsl(var(--gold) / 0.5);
120
- outline-offset: 3px;
121
- }
122
- }
123
-
124
- @layer components {
125
- /* ─── Buttons ─── */
126
-
127
- /* Primary CTA — gold with shimmer sweep */
128
- button[class*="bg-primary"],
129
- a[class*="bg-primary"] {
130
- position: relative;
131
- overflow: hidden;
132
- font-weight: 500;
133
- letter-spacing: 0.08em;
134
- text-transform: uppercase;
135
- font-size: 0.78rem;
136
- border: 1px solid hsl(var(--gold) / 0.3);
137
- transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
138
- }
139
-
140
- button[class*="bg-primary"]:hover,
141
- a[class*="bg-primary"]:hover {
142
- box-shadow:
143
- 0 0 20px hsl(var(--gold) / 0.2),
144
- 0 4px 16px hsl(0 0% 0% / 0.3);
145
- border-color: hsl(var(--gold) / 0.6);
146
- opacity: 1 !important;
147
- }
148
-
149
- button[class*="bg-primary"]::after,
150
- a[class*="bg-primary"]::after {
151
- content: '';
152
- position: absolute;
153
- top: -50%;
154
- left: -75%;
155
- width: 50%;
156
- height: 200%;
157
- background: linear-gradient(
158
- 90deg,
159
- transparent,
160
- hsl(var(--gold-light) / 0.12),
161
- hsl(var(--gold-light) / 0.2),
162
- transparent
163
- );
164
- transform: skewX(-20deg);
165
- transition: left 0.7s ease;
166
- pointer-events: none;
167
- }
168
-
169
- button[class*="bg-primary"]:hover::after,
170
- a[class*="bg-primary"]:hover::after {
171
- left: 130%;
172
- }
173
-
174
- /* Secondary/ghost buttons — thin border, minimal */
175
- [class*="bg-secondary"] {
176
- border: 1px solid hsl(var(--border));
177
- transition: all 0.3s ease;
178
- letter-spacing: 0.04em;
179
- text-transform: uppercase;
180
- font-size: 0.8rem;
181
- }
182
-
183
- [class*="bg-secondary"]:hover {
184
- border-color: hsl(var(--gold) / 0.4);
185
- background: hsl(var(--surface-elevated)) !important;
186
- }
187
-
188
- /* ─── Product Cards ─── */
189
-
190
- [class*="group"][class*="border"] {
191
- transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
192
- border-color: hsl(var(--border) / 0.5);
193
- background: hsl(var(--surface));
194
- }
195
-
196
- [class*="group"][class*="border"]:hover {
197
- border-color: hsl(var(--gold) / 0.25);
198
- box-shadow:
199
- 0 8px 40px hsl(0 0% 0% / 0.5),
200
- 0 0 0 1px hsl(var(--gold) / 0.08);
201
- }
202
-
203
- /* Product image — slow cinematic zoom */
204
- [class*="group-hover\\:scale-105"] {
205
- transition: transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
206
- }
207
-
208
- /* Product image overlay on hover — subtle dark gradient */
209
- [class*="group"] [class*="aspect-square"] {
210
- position: relative;
211
- }
212
-
213
- [class*="group"]:hover [class*="aspect-square"]::after {
214
- content: '';
215
- position: absolute;
216
- inset: 0;
217
- background: linear-gradient(
218
- to top,
219
- hsl(20 14% 4% / 0.3),
220
- transparent 50%
221
- );
222
- pointer-events: none;
223
- transition: opacity 0.5s ease;
224
- }
225
-
226
- /* ─── Form Elements ─── */
227
-
228
- input[class*="border-border"],
229
- select[class*="border-border"],
230
- textarea[class*="border-border"] {
231
- background: hsl(var(--surface)) !important;
232
- transition: all 0.3s ease;
233
- }
234
-
235
- input[class*="border-border"]:focus,
236
- select[class*="border-border"]:focus,
237
- textarea[class*="border-border"]:focus {
238
- border-color: hsl(var(--gold) / 0.5) !important;
239
- box-shadow: 0 0 0 3px hsl(var(--gold) / 0.08);
240
- background: hsl(var(--surface-elevated)) !important;
241
- }
242
-
243
- /* Placeholder text */
244
- input::placeholder,
245
- textarea::placeholder {
246
- letter-spacing: 0.03em;
247
- font-size: 0.85rem;
248
- }
249
-
250
- /* ─── Navigation & Header ─── */
251
-
252
- header[class*="sticky"] {
253
- backdrop-filter: blur(16px) saturate(1.2);
254
- background: hsl(20 14% 4% / 0.8) !important;
255
- border-bottom: 1px solid hsl(var(--gold) / 0.08) !important;
256
- }
257
-
258
- /* Nav links */
259
- nav a {
260
- letter-spacing: 0.06em;
261
- text-transform: uppercase;
262
- font-size: 0.75rem;
263
- font-weight: 500;
264
- }
265
-
266
- /* ─── Badges & Tags ─── */
267
-
268
- [class*="bg-muted"][class*="text-xs"] {
269
- text-transform: uppercase;
270
- letter-spacing: 0.1em;
271
- font-size: 0.6rem;
272
- font-weight: 600;
273
- border: 1px solid hsl(var(--border));
274
- }
275
-
276
- /* Sale badges — dark red, refined */
277
- [class*="bg-destructive"] {
278
- background: hsl(0 60% 38%) !important;
279
- font-weight: 600;
280
- letter-spacing: 0.06em;
281
- text-transform: uppercase;
282
- font-size: 0.65rem;
283
- }
284
-
285
- /* ─── Price Display ─── */
286
-
287
- /* Gold gradient on prices */
288
- [class*="font-bold"][class*="text-lg"],
289
- [class*="font-bold"][class*="text-xl"],
290
- [class*="font-bold"][class*="text-2xl"] {
291
- background: linear-gradient(
292
- 135deg,
293
- hsl(var(--gold-light)),
294
- hsl(var(--gold)),
295
- hsl(var(--gold-dark))
296
- );
297
- -webkit-background-clip: text;
298
- -webkit-text-fill-color: transparent;
299
- background-clip: text;
300
- }
301
-
302
- /* Strikethrough original prices */
303
- [class*="line-through"] {
304
- opacity: 0.4;
305
- }
306
-
307
- /* ─── Dividers & Separators ─── */
308
-
309
- hr {
310
- border-color: hsl(var(--border) / 0.3);
311
- }
312
-
313
- /* Decorative gold separator */
314
- main > section + section {
315
- border-top: 1px solid hsl(var(--gold) / 0.06);
316
- }
317
-
318
- /* ─── Cart & Checkout ─── */
319
-
320
- /* Sticky summary panel */
321
- [class*="sticky"][class*="top-"] {
322
- background: hsl(var(--surface));
323
- border: 1px solid hsl(var(--border) / 0.5);
324
- }
325
- }
326
-
327
- /* ─── Animations ─── */
328
-
329
- /* Elegant fade-in-up */
330
- @keyframes luxury-fade-in {
331
- from {
332
- opacity: 0;
333
- transform: translateY(16px);
334
- }
335
- to {
336
- opacity: 1;
337
- transform: translateY(0);
338
- }
339
- }
340
-
341
- main > * {
342
- animation: luxury-fade-in 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
343
- }
344
-
345
- main > *:nth-child(2) {
346
- animation-delay: 0.1s;
347
- }
348
-
349
- main > *:nth-child(3) {
350
- animation-delay: 0.2s;
351
- }
352
-
353
- main > *:nth-child(4) {
354
- animation-delay: 0.3s;
355
- }
356
-
357
- /* Staggered grid item reveal */
358
- @keyframes luxury-grid-item {
359
- from {
360
- opacity: 0;
361
- transform: translateY(12px) scale(0.98);
362
- }
363
- to {
364
- opacity: 1;
365
- transform: translateY(0) scale(1);
366
- }
367
- }
368
-
369
- [class*="grid"] > [class*="group"] {
370
- animation: luxury-grid-item 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
371
- }
372
-
373
- [class*="grid"] > [class*="group"]:nth-child(2) {
374
- animation-delay: 0.08s;
375
- }
376
-
377
- [class*="grid"] > [class*="group"]:nth-child(3) {
378
- animation-delay: 0.16s;
379
- }
380
-
381
- [class*="grid"] > [class*="group"]:nth-child(4) {
382
- animation-delay: 0.24s;
383
- }
384
-
385
- [class*="grid"] > [class*="group"]:nth-child(5) {
386
- animation-delay: 0.32s;
387
- }
388
-
389
- [class*="grid"] > [class*="group"]:nth-child(6) {
390
- animation-delay: 0.4s;
391
- }
392
-
393
- [class*="grid"] > [class*="group"]:nth-child(7) {
394
- animation-delay: 0.48s;
395
- }
396
-
397
- [class*="grid"] > [class*="group"]:nth-child(8) {
398
- animation-delay: 0.56s;
399
- }
@@ -1,23 +0,0 @@
1
- {
2
- "name": "Luxury",
3
- "description": "Dark, sophisticated design with Cormorant Garamond serif font and warm gold accents",
4
- "font": {
5
- "family": "Cormorant Garamond",
6
- "import": "next/font/google"
7
- },
8
- "colors": {
9
- "background": "20 14% 4%",
10
- "foreground": "38 25% 86%",
11
- "primary": "38 60% 55%",
12
- "primary-foreground": "20 14% 4%",
13
- "secondary": "20 10% 10%",
14
- "secondary-foreground": "38 25% 86%",
15
- "muted": "20 10% 12%",
16
- "muted-foreground": "30 10% 50%",
17
- "accent": "38 60% 55%",
18
- "accent-foreground": "20 14% 4%",
19
- "destructive": "0 72% 51%",
20
- "border": "30 10% 16%"
21
- },
22
- "radius": "0.25rem"
23
- }
@@ -1,30 +0,0 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- @layer base {
6
- :root {
7
- --background: 0 0% 100%;
8
- --foreground: 0 0% 9%;
9
- --primary: 0 0% 9%;
10
- --primary-foreground: 0 0% 98%;
11
- --secondary: 0 0% 96%;
12
- --secondary-foreground: 0 0% 9%;
13
- --muted: 0 0% 96%;
14
- --muted-foreground: 0 0% 45%;
15
- --accent: 0 0% 96%;
16
- --accent-foreground: 0 0% 9%;
17
- --destructive: 0 84% 60%;
18
- --destructive-foreground: 0 0% 98%;
19
- --border: 0 0% 90%;
20
- --radius: 0.5rem;
21
- }
22
-
23
- * {
24
- @apply border-border;
25
- }
26
-
27
- body {
28
- @apply bg-background text-foreground antialiased;
29
- }
30
- }
@@ -1,23 +0,0 @@
1
- {
2
- "name": "Minimal",
3
- "description": "Clean, neutral design with Inter font and medium radius",
4
- "font": {
5
- "family": "Inter",
6
- "import": "next/font/google"
7
- },
8
- "colors": {
9
- "background": "0 0% 100%",
10
- "foreground": "0 0% 9%",
11
- "primary": "0 0% 9%",
12
- "primary-foreground": "0 0% 98%",
13
- "secondary": "0 0% 96%",
14
- "secondary-foreground": "0 0% 9%",
15
- "muted": "0 0% 96%",
16
- "muted-foreground": "0 0% 45%",
17
- "accent": "0 0% 96%",
18
- "accent-foreground": "0 0% 9%",
19
- "destructive": "0 84% 60%",
20
- "border": "0 0% 90%"
21
- },
22
- "radius": "0.5rem"
23
- }