This commit is contained in:
Vula Builder
2026-08-01 17:20:21 +00:00
parent 91f45b8d43
commit fa7afe8f5a
+576
View File
@@ -0,0 +1,576 @@
{
"projectName": "Kasi Drip",
"businessType": "ecommerce",
"industry": "ecommerce",
"tone": "",
"tier": 3,
"generatedAt": "2026-08-01T16:48:18.380Z",
"sections": [
{
"name": "HeroSection",
"importPath": "@/components/sections/HeroSection",
"position": 0,
"role": "hero",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "flex-row",
"headings": [
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"hero_banners",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"hero",
"relative overflow-hidden bg-gray-900 text-white",
"relative min-h-[480px] flex items-center",
"object-cover opacity-40",
"relative z-10 max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-24",
"text-4xl sm:text-5xl font-bold mb-4 max-w-2xl",
"text-xl text-gray-200 mb-8 max-w-xl",
"inline-flex items-center px-8 py-3 bg-white text-gray-900 font-bold rounded-full hover:bg-gray-100 transition-colors"
],
"cmsCollection": "hero_banners"
},
{
"name": "DropBannerHypeSection",
"importPath": "@/components/sections/DropBannerHypeSection",
"position": 1,
"role": "hero",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"next/link",
"lucide-react",
"@/hooks/useVulaContent",
"advert_banners",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"drop-banner-hype",
"dropbannerhype",
"bg-[#ea580c] text-[#18181b]",
"mx-auto max-w-7xl px-4 py-12 sm:px-6 lg:py-16",
"grid overflow-hidden border-2 border-[#18181b] bg-[#18181b] shadow-[8px_8px_0_0_#fbbf24] lg:grid-cols-[1fr_auto]",
"p-6 text-white lg:p-10",
"text-sm font-black uppercase tracking-[0.3em] text-[#fbbf24]",
"Exclusive drop",
"mt-3 text-4xl font-black uppercase leading-none sm:text-5xl",
"mt-4 max-w-xl text-white/80",
"mt-6 flex flex-wrap items-center gap-4",
"border-2 border-[#fbbf24] bg-[#fbbf24] px-4 py-2 text-lg font-black text-[#18181b]",
"inline-flex items-center gap-2 border-2 border-[#fbbf24] px-6 py-3 text-sm font-black uppercase text-[#fbbf24] transition-all duration-200 ease-out hover:bg-[#fbbf24] hover:text-[#18181b]",
"Shop the drop",
"h-4 w-4",
"relative min-h-[220px] w-full border-t-2 border-[#fbbf24] lg:min-h-[260px] lg:w-[380px] lg:border-l-2 lg:border-t-0",
"Kasi Drip drop",
"(max-width: 1024px) 100vw, 380px",
"object-cover",
"h-full w-full bg-[#fbbf24]"
],
"cmsCollection": "advert_banners"
},
{
"name": "FeaturedProductsSection",
"importPath": "@/components/sections/FeaturedProductsSection",
"position": 2,
"role": "services",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"{title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"featured_products",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"featuredproducts",
"py-16 bg-white",
"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8",
"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6",
"bg-white rounded-xl overflow-hidden shadow-md hover:shadow-lg transition-shadow border border-gray-100",
"relative h-48",
"object-cover",
"p-5",
"font-semibold text-gray-900 mb-2",
"text-gray-600 text-sm"
],
"cmsCollection": "featured_products"
},
{
"name": "MostPopularSection",
"importPath": "@/components/sections/MostPopularSection",
"position": 3,
"role": "unknown",
"hasImage": false,
"hasForm": false,
"itemCount": 12,
"layout": "grid",
"headings": [
"Most Popular"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"@/hooks/useVulaCart",
"@/hooks/useProducts",
"next/link",
"lucide-react",
"KSh",
"py-20",
"container mx-auto px-4",
"grid grid-cols-2 md:grid-cols-4 gap-6",
"aspect-square rounded-xl bg-muted animate-pulse",
"mostpopular",
"flex items-center justify-between mb-10",
"flex items-center gap-3",
"h-6 w-6 text-primary",
"text-xs uppercase tracking-widest text-primary font-semibold mb-1",
"Best Sellers",
"text-3xl font-bold text-foreground",
"Most Popular",
"text-sm font-semibold text-primary hover:underline underline-offset-4 hidden md:inline-flex items-center gap-1",
"View all →",
"grid grid-cols-2 lg:grid-cols-4 gap-6",
"group bg-card rounded-xl overflow-hidden border border-border hover:shadow-md transition-all relative",
"absolute top-2 left-2 z-10 bg-primary text-primary-foreground text-xs font-semibold px-2 py-0.5 rounded-full",
"Best Seller",
"block overflow-hidden",
"relative aspect-square bg-muted",
"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300",
"w-full h-full flex items-center justify-center",
"h-8 w-8 text-muted-foreground/30",
"p-4",
"text-sm font-semibold text-foreground line-clamp-2 mb-1 hover:text-primary transition-colors",
"text-sm font-bold text-primary mb-3",
"cart-drawer-open",
"w-full text-xs bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground py-2 rounded-lg transition-colors font-medium disabled:opacity-40",
"Add to Cart"
]
},
{
"name": "CampaignLookbookSection",
"importPath": "@/components/sections/CampaignLookbookSection",
"position": 4,
"role": "cms-campaigns",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"lucide-react",
"campaigns",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"campaign-lookbook",
"campaignlookbook",
"bg-[#18181b] py-20",
"mx-auto max-w-7xl px-4",
"mb-10 flex flex-col gap-4 border-l-4 border-[#fbbf24] pl-4",
"text-sm font-bold uppercase tracking-[0.3em] text-[#fbbf24]",
"Lookbook / Durban",
"max-w-2xl text-4xl font-black uppercase text-white md:text-6xl",
"Shoots that",
"text-[#fbbf24]",
"hit",
"different.",
"grid gap-8 md:grid-cols-2",
"group border-2 border-white bg-white shadow-[6px_6px_0_0_#fbbf24] transition-all duration-200 ease-out hover:-translate-x-1 hover:-translate-y-1",
"relative h-72 overflow-hidden border-b-2 border-white md:h-80",
"Kasi Drip campaign",
"(max-width: 768px) 100vw, 50vw",
"object-cover transition-transform duration-500 ease-out group-hover:scale-105",
"flex h-full items-center justify-center bg-[#fbbf24] text-4xl font-black text-black",
"KD",
"p-5",
"text-sm font-bold uppercase tracking-widest text-[#ea580c]",
"mt-1 text-2xl font-black uppercase text-black",
"mt-2 text-sm text-zinc-700",
"mt-4 inline-flex items-center gap-2 bg-[#18181b] px-4 py-2 text-sm font-bold uppercase text-[#fbbf24]",
"h-4 w-4"
],
"cmsCollection": "campaigns"
},
{
"name": "GallerySection",
"importPath": "@/components/sections/GallerySection",
"position": 5,
"role": "gallery",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"You copped. Now show off.",
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"gallery",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"bg-[#fbbf24] py-20",
"mx-auto max-w-7xl px-4",
"mb-10 flex flex-col gap-4 border-l-4 border-[#18181b] pl-4",
"text-sm font-bold uppercase tracking-[0.3em] text-[#18181b]",
"Raw feed / #KasiDripFam",
"max-w-2xl text-4xl font-black uppercase text-[#18181b] md:text-6xl",
"You copped. Now show off.",
"grid grid-cols-2 gap-4 md:grid-cols-3",
"md:col-span-2 md:row-span-2",
"Kasi Drip gallery",
"(max-width: 768px) 100vw, 33vw",
"object-cover transition-transform duration-500 ease-out group-hover:scale-105",
"flex h-full items-center justify-center bg-[#18181b] text-4xl font-black text-[#fbbf24]",
"KD",
"absolute inset-0 flex items-end bg-gradient-to-t from-black/80 via-black/20 to-transparent opacity-0 transition-opacity duration-200 ease-out group-hover:opacity-100",
"p-4",
"text-lg font-black uppercase text-white",
"mt-1 text-sm text-white/80",
"mt-10 text-center text-sm font-bold uppercase tracking-widest text-[#18181b]",
"Tag @kasidrip — you might make the feed."
],
"cmsCollection": "gallery"
},
{
"name": "CommunityHighlightsSection",
"importPath": "@/components/sections/CommunityHighlightsSection",
"position": 6,
"role": "blog",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"posts",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"community-highlights",
"communityhighlights",
"bg-[#18181b] py-20",
"mx-auto max-w-7xl px-4",
"mb-10 flex flex-col gap-4 border-l-4 border-[#ea580c] pl-4",
"text-sm font-bold uppercase tracking-[0.3em] text-[#ea580c]",
"Community / Hype",
"max-w-2xl text-4xl font-black uppercase text-white md:text-6xl",
"The family",
"text-[#fbbf24]",
"talks",
"grid gap-6 md:grid-cols-3",
"group border-2 border-[#fbbf24] bg-[#18181b] shadow-[6px_6px_0_0_#fbbf24] transition-all duration-200 ease-out hover:-translate-x-1 hover:-translate-y-1",
"relative h-52 overflow-hidden border-b-2 border-[#fbbf24]",
"Kasi Drip community post",
"(max-width: 768px) 100vw, 33vw",
"object-cover transition-transform duration-500 ease-out group-hover:scale-105",
"flex h-full items-center justify-center bg-[#fbbf24] text-4xl font-black text-[#18181b]",
"KD",
"p-5",
"bg-[#ea580c] px-2 py-1 text-xs font-black uppercase text-white",
"mt-3 text-xl font-black uppercase text-white",
"mt-2 text-sm text-zinc-400",
"mt-4 text-xs font-bold uppercase tracking-widest text-[#fbbf24]"
],
"cmsCollection": "posts"
},
{
"name": "AboutKasiDripSection",
"importPath": "@/components/sections/AboutKasiDripSection",
"position": 7,
"role": "about",
"hasImage": true,
"hasForm": false,
"itemCount": 6,
"layout": "grid",
"headings": [
"From kasi streets to streetwear statement."
],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"next/link",
"aboutkasidrip",
"about-kasi-drip",
"bg-white text-[#18181b]",
"grid lg:grid-cols-2",
"relative min-h-[50vh] border-b-4 border-[#18181b] lg:min-h-[70vh] lg:border-b-0 lg:border-r-4",
"Kasi Drip crew in Durban",
"(max-width: 1024px) 100vw, 50vw",
"object-cover",
"flex flex-col justify-center bg-[#18181b] px-6 py-14 text-white lg:px-14",
"mb-4 text-sm font-black uppercase tracking-[0.3em] text-[#fbbf24]",
"Born in Durban",
"text-4xl font-black uppercase leading-none sm:text-5xl",
"From kasi streets to streetwear statement.",
"mt-5 max-w-xl text-lg text-white/80",
"Kasi Drip started in Durban's townships, where style is survival and every corner has a story. We print those stories on heavyweight tees, oversized hoodies and caps that move from the block to the global front row.",
"mt-4 max-w-xl text-white/70",
"Limited numbered drops. No restocks. When it's gone, it's gone — same as the moment.",
"mt-8 flex flex-wrap gap-3",
"border-2 border-[#fbbf24] bg-[#fbbf24] px-4 py-3 font-black uppercase text-[#18181b]",
"Durban, KZN",
"border-2 border-white px-4 py-3 font-black uppercase",
"Est. 2019",
"mt-8 inline-flex w-fit items-center justify-center border-2 border-[#fbbf24] bg-[#fbbf24] px-8 py-4 text-sm font-black uppercase tracking-wider text-[#18181b] shadow-[6px_6px_0_0_#ea580c] transition-all duration-200 ease-out hover:-translate-y-0.5 hover:shadow-[8px_8px_0_0_#ea580c]",
"Shop the story"
]
},
{
"name": "CTAShopDropsSection",
"importPath": "@/components/sections/CTAShopDropsSection",
"position": 8,
"role": "cta",
"hasImage": false,
"hasForm": false,
"itemCount": 3,
"layout": "grid",
"headings": [],
"buttonLabels": [],
"people": [],
"allText": [
"next/link",
"ctashopdrops",
"shop-drops",
"bg-[#fbbf24] border-y-[3px] border-[#18181b]",
"grid md:grid-cols-2 min-h-[420px]",
"bg-[#18181b] text-[#fbbf24] p-8 md:p-14 flex flex-col justify-center border-b-[3px] md:border-b-0 md:border-r-[3px] border-[#18181b]",
"text-xs md:text-sm font-black uppercase tracking-[0.2em] text-[#fbbf24] mb-4",
"Drop 04 — Live now",
"font-black uppercase leading-[0.9] text-4xl md:text-6xl text-white",
"Copped the",
"text-[#fbbf24]",
"drop",
"yet?",
"mt-5 text-white/80 font-medium max-w-md",
"Limited pieces, no restocks. Free delivery over R750 to every kasi in SA.",
"mt-8 inline-flex items-center justify-center bg-[#fbbf24] text-[#18181b] font-black uppercase tracking-wide text-lg px-8 py-5 border-[3px] border-[#fbbf24] shadow-[6px_6px_0_0_#fbbf24] hover:shadow-[2px_2px_0_0_#fbbf24] hover:translate-x-1 hover:translate-y-1 transition-all duration-200 ease-out w-fit",
"SHOP THE DROP",
"bg-[#fbbf24] text-[#18181b] p-8 md:p-14 flex flex-col justify-center",
"text-xs md:text-sm font-black uppercase tracking-[0.2em] mb-4",
"No restocks. No warning.",
"font-black uppercase leading-[0.9] text-4xl md:text-7xl text-[#18181b]",
"2px #18181b",
"transparent",
"JOIN",
"THE MOVEMENT",
"mt-5 font-semibold max-w-md text-[#18181b]/80",
"100% Durban street culture printed loud. Your fit should say it before you do.",
"mt-8 inline-flex items-center justify-center bg-[#18181b] text-[#fbbf24] font-black uppercase text-lg px-8 py-5 border-[3px] border-[#18181b] shadow-[6px_6px_0_0_#18181b] hover:shadow-[2px_2px_0_0_#18181b] hover:translate-x-1 hover:translate-y-1 transition-all duration-200 ease-out w-fit",
"Browse latest"
]
},
{
"name": "CollabEnquirySection",
"importPath": "@/components/sections/CollabEnquirySection",
"position": 9,
"role": "contact",
"hasImage": false,
"hasForm": true,
"itemCount": 10,
"layout": "grid",
"headings": [
"Message received. Aweh.",
"Tell us about the collab"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"lucide-react",
"@/components/ui/Button",
"@/components/ui/Input",
"collabenquiry",
"collab-enquiry",
"bg-[#18181b] text-white",
"grid lg:grid-cols-2",
"p-8 md:p-14 border-b-[3px] lg:border-b-0 lg:border-r-[3px] border-[#fbbf24]",
"text-xs md:text-sm font-black uppercase tracking-[0.2em] text-[#fbbf24] mb-4",
"Collab Enquiry",
"font-black uppercase leading-[0.9] text-4xl md:text-6xl",
"Let's build",
"2px #fbbf24",
"transparent",
"together",
"mt-5 text-white/70 font-medium max-w-md",
"Brands, wholesalers, creators, DJs, photographers — if your energy matches the kasi, let's talk.",
"mt-8 space-y-4",
"mailto:collab@kasidrip.co.za",
"flex items-center gap-3 font-bold text-[#fbbf24] hover:text-white transition-all duration-200 ease-out",
"w-5 h-5",
"collab@kasidrip.co.za",
"_blank",
"noreferrer",
"WhatsApp +27 82 555 0132",
"mt-6 text-sm text-white/50 font-medium",
"Kasi Drip HQ // Durban — shipping nationwide.",
"p-8 md:p-14 bg-[#fbbf24] text-[#18181b]",
"h-full flex flex-col justify-center",
"bg-[#18181b] text-[#fbbf24] p-8 border-[3px] border-[#18181b] shadow-[8px_8px_0_0_#18181b]",
"w-8 h-8 mb-4",
"font-black uppercase text-2xl",
"Message received. Aweh.",
"mt-3 font-semibold",
"We reply within 48 hours. Keep an eye on your inbox.",
"space-y-5",
"Tell us about the collab",
"name",
"text-xs font-black uppercase tracking-widest",
"Your name",
"Thabo M.",
"mt-2 bg-white border-[#18181b]",
"brand",
"Brand / crew",
"Your brand or collective",
"email",
"Email",
"you@email.com"
]
},
{
"name": "AdvertBannerSection",
"importPath": "@/components/sections/AdvertBannerSection",
"position": 99,
"role": "hero",
"hasImage": true,
"hasForm": false,
"itemCount": 4,
"layout": "flex-row",
"headings": [
"{headline}"
],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"next/link",
"@/lib/cms",
"relative w-full overflow-hidden rounded-2xl my-8 mx-auto max-w-7xl px-4",
"relative h-64 md:h-80 w-full",
"object-cover rounded-2xl",
"absolute inset-0 bg-black/45 rounded-2xl",
"absolute inset-0 flex flex-col items-center justify-center text-center px-6 gap-3",
"text-2xl md:text-4xl font-bold text-white drop-shadow",
"text-sm md:text-base text-white/90",
"mt-2 inline-block bg-white text-black font-semibold px-6 py-2 rounded-full hover:bg-primary hover:text-white transition-colors text-sm",
"flex flex-col items-center justify-center gap-3 py-16 px-6 text-center bg-primary/10 rounded-2xl",
"text-2xl md:text-3xl font-bold",
"text-muted-foreground",
"inline-block bg-primary text-white font-semibold px-6 py-2 rounded-full hover:bg-primary/80 transition-colors text-sm"
]
},
{
"name": "BrandCarouselSection",
"importPath": "@/components/sections/BrandCarouselSection",
"position": 99,
"role": "partners",
"hasImage": false,
"hasForm": false,
"itemCount": 3,
"layout": "flex-row",
"headings": [
"Shop by Category"
],
"buttonLabels": [],
"people": [],
"allText": [
"next/link",
"py-10 px-4",
"max-w-7xl mx-auto",
"text-xl font-bold mb-5",
"Shop by Category",
"flex gap-4 overflow-x-auto pb-3 scrollbar-hide snap-x snap-mandatory",
"flex-none snap-start w-36 group",
"relative h-36 w-36 rounded-2xl overflow-hidden bg-muted mb-2 group-hover:shadow-md transition-shadow flex items-center justify-center",
"text-3xl font-bold text-primary/30 uppercase",
"text-xs font-medium text-center line-clamp-2 group-hover:text-primary transition-colors"
]
},
{
"name": "ProductCarouselSection",
"importPath": "@/components/sections/ProductCarouselSection",
"position": 99,
"role": "services",
"hasImage": true,
"hasForm": false,
"itemCount": 4,
"layout": "flex-row",
"headings": [
"{section.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"next/link",
"@/lib/cms",
"KSh",
"py-8 px-4",
"max-w-7xl mx-auto",
"text-xl font-bold mb-5",
"flex gap-4 overflow-x-auto pb-3 scrollbar-hide snap-x snap-mandatory",
"flex-none snap-start w-44 group",
"relative h-44 w-44 rounded-xl overflow-hidden bg-muted mb-2 group-hover:shadow-md transition-shadow",
"object-cover group-hover:scale-105 transition-transform duration-300",
"w-full h-full flex items-center justify-center text-muted-foreground text-xs",
"No image",
"text-xs font-medium line-clamp-2 group-hover:text-primary transition-colors mb-1",
"text-xs font-bold text-primary"
]
}
],
"navigationLinks": [
"Kasi Drip",
"Home",
"About Kasi Drip",
"Campaign Lookbook",
"Gallery",
"C T A Shop Drops",
"Collab Enquiry",
"Products",
"My Account"
]
}