create-brainerce-store 1.52.1 → 1.52.2
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
CHANGED
|
@@ -14,7 +14,7 @@ Run it with no flags for a fully interactive setup. The CLI fetches your store's
|
|
|
14
14
|
|
|
15
15
|
Every scaffold ships **Atelier** — a complete, AI-built storefront look (not just a color theme): warm editorial gallery with soft washes + glass surfaces, a floating hero collage, near-full-bleed product grid, styled popover dropdowns, a mini-cart drawer that opens on add-to-cart, and an RTL-safe fly-to-cart micro-interaction. Fully de-branded — driven by your store's name, catalog and dashboard content.
|
|
16
16
|
|
|
17
|
-
It's a starting point, not a lock-in: the entire look lives in `src/ui/` + `globals.css` and is designed to be rewritten (see below).
|
|
17
|
+
It's a starting point, not a lock-in: the entire look lives in `src/ui/` + `globals.css` and is designed to be rewritten (see below). The shipped texts are **example content** (a boutique voice, like any template's sample copy) — your catalog replaces the imagery automatically, and the copy lives in `messages/` ready to be rewritten by you or an AI session. On a brand-new store with no products yet, the homepage hero shows a designed placeholder that swaps for your first published products.
|
|
18
18
|
|
|
19
19
|
## Blank-canvas mode
|
|
20
20
|
|
package/dist/index.js
CHANGED
|
@@ -31,7 +31,7 @@ var require_package = __commonJS({
|
|
|
31
31
|
"package.json"(exports2, module2) {
|
|
32
32
|
module2.exports = {
|
|
33
33
|
name: "create-brainerce-store",
|
|
34
|
-
version: "1.52.
|
|
34
|
+
version: "1.52.2",
|
|
35
35
|
description: "Scaffold a production-ready e-commerce storefront connected to Brainerce",
|
|
36
36
|
bin: {
|
|
37
37
|
"create-brainerce-store": "dist/index.js"
|
|
@@ -963,6 +963,12 @@ Your store will be running at http://localhost:3000
|
|
|
963
963
|
Your store will be running at http://localhost:3000`);
|
|
964
964
|
logger.info(
|
|
965
965
|
`
|
|
966
|
+
The storefront ships with example boutique copy as a starting point \u2014
|
|
967
|
+
your real products replace the imagery automatically, and the texts
|
|
968
|
+
live in messages/ (or let an AI session rewrite them).`
|
|
969
|
+
);
|
|
970
|
+
logger.info(
|
|
971
|
+
`
|
|
966
972
|
Want a unique design? Open this folder in Claude Code and run:
|
|
967
973
|
/design <your art-direction brief>
|
|
968
974
|
(commerce stays intact \u2014 see AI-GUIDE.md)`
|
package/package.json
CHANGED
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"newsletterPlaceholder": "Your email address",
|
|
56
56
|
"newsletterCta": "Subscribe",
|
|
57
57
|
"newsletterSuccess": "You are in! We promise to send only beautiful things.",
|
|
58
|
-
"newsletterPrivacy": "No spam. Unsubscribe anytime."
|
|
58
|
+
"newsletterPrivacy": "No spam. Unsubscribe anytime.",
|
|
59
|
+
"heroEmptyHint": "Your first published products will appear here"
|
|
59
60
|
},
|
|
60
61
|
"products": {
|
|
61
62
|
"listingSubtitle": "Our full collection — handmade, genuine materials and love for detail.",
|
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"newsletterPlaceholder": "כתובת האימייל שלך",
|
|
56
56
|
"newsletterCta": "הרשמה",
|
|
57
57
|
"newsletterSuccess": "נרשמת בהצלחה! מבטיחים לשלוח רק דברים יפים.",
|
|
58
|
-
"newsletterPrivacy": "בלי ספאם. אפשר להסיר את ההרשמה בכל רגע."
|
|
58
|
+
"newsletterPrivacy": "בלי ספאם. אפשר להסיר את ההרשמה בכל רגע.",
|
|
59
|
+
"heroEmptyHint": "המוצרים הראשונים שתפרסמו לחנות יופיעו כאן"
|
|
59
60
|
},
|
|
60
61
|
"products": {
|
|
61
62
|
"listingSubtitle": "הקולקציה המלאה שלנו — עבודת יד, חומרים אמיתיים ואהבה לפרטים.",
|
|
@@ -130,6 +130,32 @@ export function HeroSection({
|
|
|
130
130
|
</span>
|
|
131
131
|
</div>
|
|
132
132
|
)}
|
|
133
|
+
|
|
134
|
+
{/* Empty catalog — the same floating composition as designed washes,
|
|
135
|
+
so a brand-new store still opens rich instead of half-blank. The
|
|
136
|
+
first two published products replace these automatically. */}
|
|
137
|
+
{!heroImage && (
|
|
138
|
+
<div
|
|
139
|
+
aria-hidden="true"
|
|
140
|
+
className="reveal reveal-delay-1 relative mx-auto h-[26rem] w-full max-w-md sm:h-[30rem] lg:col-span-6 lg:h-[34rem] lg:max-w-none"
|
|
141
|
+
>
|
|
142
|
+
<div
|
|
143
|
+
className="float-slow wash-forest absolute inset-y-0 start-[4%] flex w-[72%] -rotate-2 items-center justify-center overflow-hidden rounded-3xl border-4 border-background shadow-[0_36px_80px_-30px_hsl(var(--primary)/0.45)]"
|
|
144
|
+
style={{ '--float-rotate': '-2deg' } as React.CSSProperties}
|
|
145
|
+
>
|
|
146
|
+
<IconSparkle size={56} className="text-primary/25" />
|
|
147
|
+
<span className="glass absolute bottom-5 end-5 start-5 px-4 py-3 text-center text-sm font-medium text-muted-foreground">
|
|
148
|
+
{t('heroEmptyHint')}
|
|
149
|
+
</span>
|
|
150
|
+
</div>
|
|
151
|
+
<div
|
|
152
|
+
className="float-slower wash-sand absolute -end-2 top-[54%] flex aspect-[3/4] w-[38%] rotate-3 items-center justify-center rounded-3xl border-4 border-background shadow-[0_28px_60px_-24px_hsl(var(--primary)/0.4)] sm:end-0"
|
|
153
|
+
style={{ '--float-rotate': '3deg' } as React.CSSProperties}
|
|
154
|
+
>
|
|
155
|
+
<IconStar size={32} filled className="text-primary/20" />
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
)}
|
|
133
159
|
</div>
|
|
134
160
|
</section>
|
|
135
161
|
);
|