| name | fashion-styling |
| description | Complete styling guide for women's fashion boutique theme. Apply phase by phase for complete restyling. Modern editorial aesthetic with elegant typography, geometric accents, and sophisticated animations. (project) |
| invocation | user |
Fashion Boutique Theme
Brand Voice: Modern, sophisticated, confident, feminine, editorial Target Feel: High-end fashion magazine meets accessible boutique
Usage
Apply phases in order:
- "Apply fashion-styling phase 1" → Foundation
- "Apply fashion-styling phase 2" → Layout
- "Apply fashion-styling phase 3" → Homepage & Products
- "Apply fashion-styling phase 4" → Cart, Checkout & Auth
- "Apply fashion-styling phase 5" → Dashboard & Static Pages
Clear context between phases if needed.
Phase 1: Foundation
Files:
src/app/globals.css
src/lib/fonts.ts
tailwind.config.ts
Colors (globals.css)
Add these CSS variables:
| Name | HSL | Role |
|---|---|---|
| blush | 350 60% 75% | Primary accent |
| champagne-gold | 45 50% 70% | Secondary accent |
| soft-ivory | 40 30% 98% | Background |
| pearl | 40 20% 96% | Card backgrounds |
| midnight | 220 25% 15% | Text, dark sections |
| whisper-pink | 350 40% 95% | Subtle backgrounds |
| wine | 350 50% 35% | Sale, errors |
| stone | 30 10% 50% | Secondary text |
Fonts (fonts.ts)
| Role | Font | Usage |
|---|---|---|
| Primary | Cormorant Garamond | Headings, titles |
| Secondary | Inter | Body, buttons |
Tailwind Config
- Map all color variables
- Set border-radius to 2px (minimal rounding)
- Add font-primary and font-secondary
CSS Utilities (globals.css)
.text-gradient-fashion {
background: linear-gradient(135deg, hsl(350 60% 65%), hsl(45 50% 70%), hsl(350 60% 75%));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.shimmer-fashion {
background: linear-gradient(110deg, transparent 20%, hsl(45 60% 85% / 0.3) 40%, hsl(350 60% 90% / 0.4) 50%, hsl(45 60% 85% / 0.3) 60%, transparent 80%);
background-size: 200% 100%;
animation: shimmer 3s ease-in-out infinite;
}
Phase 2: Layout & Navigation
Files:
src/components/Navigation/StickyNavbar.tsx
src/components/Navigation/Navbar.tsx
src/components/Navigation/NavbarLinks.tsx
src/components/Navigation/MobileLinks.tsx
src/components/Navigation/CustomerDropdown.tsx
src/components/Footer.tsx
src/app/(auth)/(dashboard)/layout.tsx
Styling Rules
Backgrounds: bg-soft-ivory or bg-pearl
Text: text-midnight headings, text-midnight/70 body
Borders: border-blush/20 or border-stone/20
Hovers: Transition to blush or champagne-gold
Navigation Pattern
{/* Link with underline animation */}
<a className="relative font-secondary text-sm text-midnight hover:text-blush transition-colors">
Link Text
<span className="absolute bottom-0 left-1/2 w-0 h-[1px] bg-blush transition-all duration-300 group-hover:w-full group-hover:left-0" />
</a>
Footer Pattern
<footer className="bg-soft-ivory border-t border-blush/20">
<div className="h-[1px] bg-gradient-to-r from-transparent via-blush/30 to-transparent" />
{/* Content */}
</footer>
Dashboard Sidebar
<aside className="bg-pearl border border-blush/10 p-6">
<h2 className="font-primary text-xl text-midnight mb-4">My Account</h2>
<div className="h-[1px] bg-gradient-to-r from-blush/40 to-transparent mb-4" />
{/* Nav links */}
</aside>
Phase 3: Homepage & Products
Files:
src/app/(storefront)/page.tsx
src/components/Hero.tsx
src/components/subtitle.tsx
src/components/Homepage/CategorySection.tsx
src/components/Homepage/AboutMeSection.tsx
src/components/Product/ProductCarousel.tsx
src/components/ProductCard.tsx
src/components/PriceDisplay.tsx
src/components/ImageSlider.tsx
src/components/imageSliderWithZoom.tsx
src/components/Product/ProductDetail.tsx
src/components/Product/WishlistButton.tsx
src/components/Product/Breadcrumbs.tsx
src/components/Product/SortOptions.tsx
src/components/Product/Pagination.tsx
src/app/(storefront)/products/[...slug]/page.tsx
src/app/(storefront)/product/[slug]/page.tsx
Section Header Pattern
<div className="flex items-center justify-center gap-4 mb-6">
<div className="w-16 h-[1px] bg-gradient-to-r from-transparent to-blush/60" />
<div className="w-2 h-2 rounded-full border border-blush/60" />
<div className="w-16 h-[1px] bg-gradient-to-l from-transparent to-blush/60" />
</div>
<h2 className="text-3xl md:text-4xl font-primary text-midnight text-center">
Section Title
</h2>
Hero Pattern
<section className="relative min-h-[70vh] bg-soft-ivory">
{/* Image with overlay */}
<div className="absolute inset-0 bg-gradient-to-t from-midnight/40 via-transparent to-transparent" />
<div className="relative z-10">
<h1 className="text-5xl md:text-7xl font-primary text-soft-ivory tracking-tight">
Headline
</h1>
<button className="px-8 py-4 bg-soft-ivory text-midnight font-secondary text-sm tracking-wider uppercase hover:bg-blush transition-colors">
Shop Now
</button>
</div>
</section>
Product Card Pattern
<div className="group relative bg-soft-ivory overflow-hidden">
{/* Image */}
<div className="aspect-[3/4] overflow-hidden">
<img className="w-full h-full object-cover transition-transform duration-500 group-hover:scale-105" />
</div>
{/* Sale badge */}
<span className="absolute top-3 left-3 px-2 py-1 bg-wine text-soft-ivory text-xs font-secondary uppercase">
-30%
</span>
{/* Wishlist button */}
<button className="absolute top-3 right-3 p-2 bg-soft-ivory/80 text-midnight hover:text-blush transition-colors">
<Heart className="w-5 h-5" />
</button>
{/* Content */}
<div className="p-4">
<h3 className="font-primary text-lg text-midnight">Product Name</h3>
<p className="text-sm font-secondary text-stone">Brand</p>
<div className="mt-2 flex items-center gap-2">
<span className="font-secondary text-midnight">€99.00</span>
<span className="font-secondary text-stone line-through text-sm">€129.00</span>
</div>
</div>
</div>
Category Card Pattern
<a className="group relative aspect-[3/4] overflow-hidden">
<img className="w-full h-full object-cover transition-transform duration-700 group-hover:scale-110" />
<div className="absolute inset-0 bg-gradient-to-t from-midnight/70 via-midnight/20 to-transparent" />
<div className="absolute bottom-6 left-6">
<h3 className="font-primary text-2xl text-soft-ivory">Category</h3>
<span className="text-sm font-secondary text-soft-ivory/70">24 products</span>
</div>
</a>
Phase 4: Cart, Checkout & Auth
Files:
src/app/(storefront)/cart/page.tsx
src/components/Cart/Cart.tsx
src/components/Cart/CartItem.tsx
src/components/Cart/CartPage.tsx
src/components/Cart/AddToCartButton.tsx
src/components/Cart/CheckoutButton.tsx
src/components/Cart/CampaignAddedCartItems.tsx
src/components/Checkout/CheckoutSteps.tsx
src/components/Checkout/CustomerDataForm.tsx
src/components/Checkout/SelectShipmentMethod.tsx
src/components/Checkout/StripeCheckoutPage.tsx
src/components/Checkout/PaytrailCheckoutPage.tsx
src/components/Checkout/PaytrailPaymentSelection.tsx
src/app/(storefront)/payment/success/[orderId]/page.tsx
src/app/(auth)/login/page.tsx
src/app/(auth)/register/page.tsx
src/components/Auth/Loginform.tsx
src/components/Auth/RegisterForm.tsx
src/components/Auth/ForgotPasswordForm.tsx
src/components/Auth/ResetPasswordForm.tsx
Button Patterns
{/* Primary CTA */}
<button className="w-full px-8 py-4 bg-midnight text-soft-ivory font-secondary text-sm tracking-wider uppercase transition-all duration-300 hover:bg-blush hover:text-midnight">
Add to Cart
</button>
{/* Secondary */}
<button className="px-8 py-4 border border-midnight/30 text-midnight font-secondary text-sm tracking-wider uppercase hover:border-blush hover:bg-blush/10 transition-all">
Continue Shopping
</button>
Form Input Pattern
<div className="space-y-2">
<label className="text-sm font-secondary text-midnight">Email</label>
<input className="w-full px-4 py-3 bg-pearl border border-stone/20 text-midnight placeholder:text-stone/50 focus:outline-none focus:ring-2 focus:ring-blush/50 transition-all" />
</div>
Card with Corner Accents
<div className="group relative bg-soft-ivory p-6">
{/* Border */}
<div className="absolute inset-0 border border-blush/10 pointer-events-none group-hover:border-blush/25 transition-colors" />
{/* Corner accents */}
<div className="absolute top-0 left-0 w-4 h-4 border-l border-t border-blush/20 group-hover:w-6 group-hover:h-6 transition-all duration-300" />
<div className="absolute top-0 right-0 w-4 h-4 border-r border-t border-blush/20 group-hover:w-6 group-hover:h-6 transition-all duration-300" />
<div className="absolute bottom-0 left-0 w-4 h-4 border-l border-b border-blush/20 group-hover:w-6 group-hover:h-6 transition-all duration-300" />
<div className="absolute bottom-0 right-0 w-4 h-4 border-r border-b border-blush/20 group-hover:w-6 group-hover:h-6 transition-all duration-300" />
{/* Content */}
</div>
Checkout Steps Pattern
<div className="flex items-center justify-center gap-4">
{/* Completed step */}
<div className="w-8 h-8 rounded-full bg-blush text-midnight flex items-center justify-center">
<Check className="w-4 h-4" />
</div>
{/* Line */}
<div className="w-12 h-[1px] bg-blush/50" />
{/* Current step */}
<div className="w-8 h-8 rounded-full border-2 border-blush text-midnight flex items-center justify-center font-secondary text-sm">
2
</div>
{/* Line */}
<div className="w-12 h-[1px] bg-stone/30" />
{/* Future step */}
<div className="w-8 h-8 rounded-full border border-stone/30 text-stone flex items-center justify-center font-secondary text-sm">
3
</div>
</div>
Toast Styling
{/* Success */}
className="bg-blush/10 border border-blush/30 text-midnight"
{/* Error */}
className="bg-wine/10 border border-wine/30 text-wine"
Phase 5: Dashboard & Static Pages
Files:
src/app/(auth)/(dashboard)/mypage/page.tsx
src/app/(auth)/(dashboard)/myorders/page.tsx
src/app/(auth)/(dashboard)/mywishlist/page.tsx
src/app/(auth)/(dashboard)/myinfo/page.tsx
src/components/CustomerDashboard/EditCustomerForm.tsx
src/app/(storefront)/about/page.tsx
src/components/Aboutpage/AboutHero.tsx
src/components/Aboutpage/AboutBlock.tsx
src/components/Aboutpage/AboutCTA.tsx
src/app/(storefront)/contact/page.tsx
src/components/Contactpage/ContactForm.tsx
src/app/(storefront)/privacy-policy/page.tsx
src/app/(storefront)/terms/page.tsx
src/app/(storefront)/gallery/page.tsx
Page Header Pattern
<div className="mb-8">
<div className="flex items-center gap-3 mb-2">
<div className="w-2 h-2 rounded-full border border-blush/60" />
<h1 className="text-2xl md:text-3xl font-primary text-midnight">Page Title</h1>
</div>
<p className="font-secondary text-midnight/60 ml-5">Page description</p>
</div>
Status Badges
{/* Pending */}
<span className="px-3 py-1 bg-champagne-gold/20 text-midnight border border-champagne-gold/40 text-xs font-secondary uppercase">
Pending
</span>
{/* Paid/Success */}
<span className="px-3 py-1 bg-blush/20 text-midnight border border-blush/40 text-xs font-secondary uppercase">
Paid
</span>
{/* Shipped */}
<span className="px-3 py-1 bg-blush/30 text-midnight border border-blush/50 text-xs font-secondary uppercase">
Shipped
</span>
Empty State Pattern
<div className="relative bg-soft-ivory p-12 text-center">
{/* Border */}
<div className="absolute inset-0 border border-blush/10 pointer-events-none" />
{/* Corner accents */}
<div className="absolute top-0 left-0 w-8 h-8 border-l border-t border-blush/30" />
<div className="absolute top-0 right-0 w-8 h-8 border-r border-t border-blush/30" />
<div className="absolute bottom-0 left-0 w-8 h-8 border-l border-b border-blush/30" />
<div className="absolute bottom-0 right-0 w-8 h-8 border-r border-b border-blush/30" />
<Icon className="w-16 h-16 text-midnight/20 mx-auto mb-6" />
<h3 className="text-xl font-primary text-midnight mb-3">No items yet</h3>
<p className="text-sm font-secondary text-midnight/60 mb-6">Description text</p>
<a href="/products" className="inline-flex px-8 py-3 bg-midnight text-soft-ivory font-secondary text-sm tracking-wider uppercase hover:bg-blush hover:text-midnight transition-all">
Start Shopping
</a>
</div>
About Page Blocks
{/* Alternating layout */}
<div className="grid md:grid-cols-2 gap-12 items-center">
<div className={reverse ? "md:order-2" : ""}>
<img className="w-full aspect-[4/5] object-cover" />
</div>
<div>
<span className="text-xs tracking-[0.2em] uppercase font-secondary text-stone">Our Story</span>
<h2 className="mt-2 text-3xl font-primary text-midnight">Headline</h2>
<div className="mt-2 w-12 h-[1px] bg-gradient-to-r from-blush to-transparent" />
<p className="mt-6 font-secondary text-midnight/70 leading-relaxed">Content</p>
</div>
</div>
Quick Reference
Typography
font-primary → Headings (Cormorant Garamond)
font-secondary → Body/buttons (Inter)
text-midnight → Dark text
text-midnight/70 → Body text
text-stone → Muted text
text-soft-ivory → Light text (on dark bg)
Backgrounds
bg-soft-ivory → Main background
bg-pearl → Cards, sections
bg-midnight → Dark sections
bg-blush/10 → Subtle highlight
Accents
border-blush/20 → Subtle borders
border-blush/40 → Corner accents
bg-blush → Hover states
bg-wine → Sale badges
bg-champagne-gold → Premium accents
Decorative
{/* Circle */}
<div className="w-2 h-2 rounded-full border border-blush/60" />
{/* Gradient line */}
<div className="h-[1px] bg-gradient-to-r from-blush/40 to-transparent" />
{/* Center line */}
<div className="h-[1px] bg-gradient-to-r from-transparent via-blush/30 to-transparent" />
Checklist
- Phase 1: Foundation (3 files)
- Phase 2: Layout & Navigation (7 files)
- Phase 3: Homepage & Products (17 files)
- Phase 4: Cart, Checkout & Auth (20 files)
- Phase 5: Dashboard & Static (14 files)