fashion-styling

Fashion Boutique Theme

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fashion-styling" with this command: npx skills add nikojuu/hienohelma/nikojuu-hienohelma-fashion-styling

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)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

neo

Browse websites, read web pages, interact with web apps, call website APIs, and automate web tasks. Use Neo when: user asks to check a website, read a web page, post on social media (Twitter/X), interact with any web app, look up information on a specific site, scrape data from websites, automate browser tasks, or when you need to call any website's API. Keywords: website, web page, browse, URL, http, API, twitter, tweet, post, scrape, web app, open site, check site, read page, social media, online service.

Archived SourceRecently Updated
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated
General

asr

Transcribe audio files to text using local speech recognition. Triggers on: "转录", "transcribe", "语音转文字", "ASR", "识别音频", "把这段音频转成文字".

Archived SourceRecently Updated