Communitygithub.com

JairoBg03/skills

プロフェッショナルなランディングページを、カスタムデザイン、アニメーション、エージェンシーレベルのエフェクトで作成。企画からデザイン、構築、監査、デプロイまでの全フローをカバーし、AIテンプレートのような画一的な見た目を回避します。

skills とは?

このスキルは、Astro 5、Tailwind CSS v4、GSAP、Lenisを使用して、プロフェッショナルでユニークなランディングページをゼロから構築するための包括的なワークフローを提供します。AIテンプレートのような凡庸なデザインを避け、企画(ブリーフィング)、デザイン方向性の策定、モバイルファーストでの構築、アクセシビリティとパフォーマンスの監査、そしてデプロイまでを順を追って実行します。このスキルの核心は、単なるコード生成ではなく、まずユーザーと深くヒアリングして目的とメッセージを明確にし、独自のデザインシステム(カスタムカラー、タイポグラフィ、アニメーション)を構築することにあります。GSAPとLenisによる高度なスクロールアニメーションやマイクロインタラクションを実装しつつ、パフォーマンス(Lighthouseモバイル95以上)とアクセシビリティ(AAコントラスト、キーボードナビゲーション)を徹底的に重視します。また、prefers-reduced-motionへの対応や単一のCTAへの集中など、プロフェッショナルなランディングページ制作のベストプラクティスを網羅しています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JairoBg03/skills/tree/HEAD/landing-pages

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

使用するタイミング

  • ユーザーが新しいランディングページ(製品、サービス、イベント、ポートフォリオ、ウェイトリスト)を必要としている場合
  • 既存のランディングページをプロフェッショナルでユニークなデザインにリニューアルしたい場合
  • マーケティングページにアニメーション、スクロールエフェクト、マイクロインタラクションを求めている場合
  • どのセクションを設けるか、どのようなメッセージを伝えるか、どのような構造にするか、計画段階にある場合

スタック(とその選定理由)

要素選択肢理由却下した代替案
フレームワークAstro 5デフォルトで静的(JSベースは0)、コンポーネント、astro:assetsによる画像最適化、デプロイはdist/をアップロードするだけNext.js(ランディングにはオーバーキル、デプロイが複雑)、プレーンHTML(コンポーネントも最適化もなし)
スタイルTailwind CSS v4CSS内で@themeを使った独自トークン、JS設定ファイル不要、自動パージUIキット(shadcn/DaisyUI/Flowbite → 凡庸な見た目)、プレーンCSS(反復に時間がかかる)
アニメーションGSAP 3.13+(ScrollTrigger、SplitText)スクロール/タイムラインにおける業界標準。v3.13以降、すべてのプラグインが無料Framer Motion(Reactに依存)、AOS(機能が限定的で「テンプレート感」がある)
スムーススクロールLenis軽量(約4kb)、ScrollTriggerとの統合がドキュメント化されているLocomotive Scroll(より重く、メンテナンスが少ない)
デプロイNetlify / Cloudflare Pages / Vercelリポジトリを接続 → プッシュ → デプロイ。サーバーレスな静的出力VPS(静的サイトには不要)

厳格なルール: UIコンポーネントライブラリをインストールしない。デザインは独自のもの。これこそが、このスキルをテンプレートから差別化する点です。

ワークフロー(必須、この順序で)

決してコードから始めてはいけません。ブリーフィングなしのランディングは、単なる名前の違うテンプレートです。

  1. ブリーフィング — ユーザーと一緒に assets/brief-template.md を埋めます。目標、ターゲットオーディエンス、CTAが不足している場合は、先に進む前に質問してください。
  2. デザイン方向性 — references/design-direction.md に従います。ペルソナ → タイポグラフィ → カラー → レイアウト → ビジュアルアイデンティティ。これを assets/design-tokens.css に具体化します。
  3. セクションアーキテクチャ — ナラティブアーク(下記の表)と見出しのコピーを、マークアップの前に定義します。
  4. 構築 — セクションごとに、モバイルファースト(まず390pxから)で行います。アニメーションは references/animation-recipes.md に従います。
  5. 監査 — 納品チェックリスト(後述)を確認します。これに合格しなければ納品しません。
  6. デプロイ — 静的ビルド + ホスティング(コマンドは後述)。

ナラティブアーク(基本構造)

#セクション役割
1ヒーロー5秒以内に理解できる価値提案 + プライマリCTA
2問題 / コンテキスト訪問者が共感する課題を明確にする
3解決策 / メリットどのように解決するか。機能ではなくベネフィット
4社会的証明実際の顧客の声、ロゴ、実績数値
5仕組みステップ、デモ、スクリーンショット
6反論への対応FAQ、保証、価格
7最終CTAヒーローと同じ単一のアクションを再度促す

ブリーフィングに応じてセクションを調整、統合、削除してください。すべてのランディングが7セクションすべてを必要とするわけではありません。

重要なパターン

  • 単一のコンバージョン: ページ全体が一つのアクションに誘導されます。2つの異なるCTAがある場合、それはブリーフィングが不十分であることを示します。
  • 真のモバイルファースト: 最初に390pxでデザイン・構築します。デスクトップはその拡張であり、その逆ではありません。
  • LCPを触らない: LCP要素(ヒーローの見出しや画像)は、CSSで決して opacity: 0 にしないでください。エントリーは gsap.from() で行います(JavaScriptがなくてもページは完全に見える状態)。合計で1秒以内に完了します。
  • prefers-reduced-motion: すべてのアニメーションは gsap.matchMedia() 内に配置します。例外はありません。
  • 最小限のアイランド: JavaScriptは実際のインタラクションがある場所にのみ使用します。FAQのアコーディオンは<details>要素であり、ハイドレートされたコンポーネントではありません。
  • 画像: 常に astro:assets(<Image>)を使用し、AVIF/WebP形式、明示的な寸法、ヒーロー以外は loading="lazy" とします。
  • フォント: セルフホスト(ローカルのwoff2またはFontsource)、font-display: swap、最大2ファミリー、表示用フォントはプリロードします。

納品前チェックリスト

  • Lighthouse モバイルでパフォーマンス、アクセシビリティ、SEOがすべて95以上
  • CLS = 0(画像に寸法指定、フォントのフォールバック調整済み)
  • prefers-reduced-motion: reduce でアニメーションが無効になる
  • コントラスト比 AA: テキスト4.5:1、大きなUI要素3:1
  • キーボードで操作可能、フォーカス可視、h1は1つのみ
  • メタディスクリプション、OGタグ、ファビコン、ユニークなタイトル
  • 390px、768px、1440pxでテスト済み
  • ブランドテスト:ロゴを隠したとき、他の会社のページに見えるか? もしそうなら、フェーズ2に戻る

コマンド

# プロジェクト作成
pnpm create astro@latest mi-landing -- --template minimal --typescript strict
cd mi-landing
pnpm astro add tailwind
pnpm add gsap lenis

# 開発とビルド
pnpm dev
pnpm build && pnpm preview

# デプロイ(いずれかを選択。Netlify/Vercel/Cloudflareの場合: ビルドコマンド "pnpm build"、出力ディレクトリ "dist")
npx wrangler pages deploy dist        # Cloudflare Pages 直接デプロイ
npx netlify deploy --prod --dir=dist  # Netlify 直接デプロイ

リソース

関連スキル