fashion-styling について
ファッションブティックのテーマをストアプロジェクトに段階的に適用するスタイリングスキルです。基盤スタイル、ナビゲーション、商品ページ、チェックアウト、ダッシュボード、静的ページの色、書体、コンポーネントパターン、対象ファイルを指定します。
主な機能
- 01順序に沿った5段階のスタイリング
- 02配色と書体の指定
- 03ナビゲーションとフッターのパターン
- 04ストアフロントと商品のスタイル
- 05カート、チェックアウト、ダッシュボードのパターン
活用シーン
- 01ストア全体に統一したブティックテーマを適用
- 02ナビゲーションと共通レイアウトを整える
- 03商品、カート、チェックアウトページを更新
- 04顧客ダッシュボードと静的ページを整える
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nikojuu/ hienohelma --skill fashion-stylingインストール後、Claude Code で/fashion-stylingを入力して読み込まれたか確認します。
詳細
ファッションブティックテーマ
ブランドの声: モダン、洗練、自信に満ちた、フェミニン、エディトリアル 目指す雰囲気: 高級ファッション誌と親しみやすいブティックの融合
使用方法
次のフェーズを順番に適用します。
- 「Apply fashion-styling phase 1」→ 基盤
- 「Apply fashion-styling phase 2」→ レイアウト
- 「Apply fashion-styling phase 3」→ ホームページと商品
- 「Apply fashion-styling phase 4」→ カート、チェックアウト、認証
- 「Apply fashion-styling phase 5」→ ダッシュボードと静的ページ
必要に応じて、フェーズ間でコンテキストをクリアしてください。
フェーズ 1:基盤
ファイル:
src/app/globals.css
src/lib/fonts.ts
tailwind.config.ts
色(globals.css)
次の CSS 変数を追加します。
| 名前 | HSL | 役割 |
|---|---|---|
| blush | 350 60% 75% | プライマリーアクセント |
| champagne-gold | 45 50% 70% | セカンダリーアクセント |
| soft-ivory | 40 30% 98% | 背景 |
| pearl | 40 20% 96% | カードの背景 |
| midnight | 220 25% 15% | テキスト、暗色のセクション |
| whisper-pink | 350 40% 95% | 控えめな背景 |
| wine | 350 50% 35% | セール、エラー |
| stone | 30 10% 50% | セカンダリーテキスト |
フォント(fonts.ts)
| 役割 | フォント | 用途 |
|---|---|---|
| プライマリー | Cormorant Garamond | 見出し、タイトル |
| セカンダリー | Inter | 本文、ボタン |
Tailwind 設定
- すべての色変数をマッピングします
- border-radius を 2px に設定します(最小限の角丸)
- font-primary と font-secondary を追加します
CSS ユーティリティ(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;
}
フェーズ 2:レイアウトとナビゲーション
ファイル:
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
スタイリングルール
背景: bg-soft-ivory または bg-pearl
テキスト: 見出しには text-midnight、本文には text-midnight/70
ボーダー: border-blush/20 または border-stone/20
ホバー: blush または champagne-gold に遷移
ナビゲーションパターン
{/* 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 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>
ダッシュボードのサイドバー
<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>
フェーズ 3:ホームページと商品
ファイル:
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
セクション見出しパターン
<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>
ヒーローパターン
<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>
商品カードパターン
<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>
カテゴリーカードパターン
<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>
フェーズ 4:カート、チェックアウト、認証
ファイル:
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
ボタンパターン
{/* 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>
フォーム入力パターン
<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>
コーナーアクセント付きカード
<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>
チェックアウト手順パターン
<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>
トーストのスタイル
{/* Success */}
className="bg-blush/10 border border-blush/30 text-midnight"
{/* Error */}
className="bg-wine/10 border border-wine/30 text-wine"
フェーズ 5:ダッシュボードと静的ページ
ファイル:
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
ページヘッダーパターン
<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>
ステータスバッジ
{/* 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>
空の状態のパターン
<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 ページのブロック
{/* 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>
クイックリファレンス
タイポグラフィ
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)
背景
bg-soft-ivory → Main background
bg-pearl → Cards, sections
bg-midnight → Dark sections
bg-blush/10 → Subtle highlight
アクセント
border-blush/20 → Subtle borders
border-blush/40 → Corner accents
bg-blush → Hover states
bg-wine → Sale badges
bg-champagne-gold → Premium accents
装飾
{/* 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" />
チェックリスト
- フェーズ 1:基盤(3 ファイル)
- フェーズ 2:レイアウトとナビゲーション(7 ファイル)
- フェーズ 3:ホームページと商品(17 ファイル)
- フェーズ 4:カート、チェックアウト、認証(20 ファイル)
- フェーズ 5:ダッシュボードと静的ページ(14 ファイル)
コメント
Markdown 対応