Communitygithub.com

ランディングページスキル / cskwork/landing-page-skill

製品ランディングページ、マーケティングサイト、ドキュメントサイトの構築に使用します。バンドルされたプレーンなHTML/CSS/JSデザインシステムを活用します。既存のフレームワークへの移行や任意のフロントエンド作業には使用しません。

cskwork/landing-page-skill とは?

このスキルは、純粋なHTML/CSS/JSで構成された完全なデザインシステムとコンポーネントライブラリを提供し、フレームワークやビルド手順を必要とせずに、美しくインタラクティブなランディングページを構築できます。プロジェクトには、デザイントークン(CSS変数)、スクロールアニメーションやツールチップ、テーマ切り替えなどのインタラクションを実現するJavaScript、そしてコピー&ペーストで再利用可能なHTMLコンポーネントテンプレートが含まれています。製品紹介、マーケティングサイト、ドキュメントサイトなど、静的なWebページを作成する場合に最適です。アクセシビリティ、ダーク/ライトテーマ、多言語対応(i18n)も組み込まれており、GitHub PagesやNetlifyなどの静的ホスティングにそのままデプロイできます。使用時は、`design-system.css`、`app-template.js`、`templates/landing-template.html`の3ファイルをプロジェクトにコピーし、`components-reference.html`から必要なセクションを追加してデザイントークンをカスタマイズするだけです。

対応~Claude Code~Codex CLI~Cursor
npx skills add cskwork/landing-page-skill

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

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

ドキュメント

ランディングページビルダー

概要

美しくインタラクティブなランディングページを、フレームワークやビルド手順なしで、プレーンなHTML/CSS/JSで構築するための、完全なデザインシステム + コンポーネントライブラリです。再利用可能なCSSデザイントークン、JSインタラクションパターン、HTMLコンポーネントテンプレートとして提供されます。

基本原則: デザインシステムファイルをコピーし、コンポーネントテンプレートからセクションを構成し、トークンをカスタマイズします。すべてがゼロ依存で動作します(オプション: Google Fonts CDN)。

使用すべきケース

  • 製品ランディングページ、マーケティングサイト、またはショーケースの構築
  • インタラクティブ要素を含むドキュメントサイトの作成
  • GitHub Pages、Netlify、または任意の静的ホストへのデプロイ
  • ダーク/ライトテーマ切り替え、スクロールアニメーション、ツールチップが必要な場合
  • React/Vue/ビルドツールを使わずに洗練されたデザインを実現したい場合

使用すべきでないケース:

  • 状態管理を伴う複雑なWebアプリケーション(フレームワークを使用してください)
  • サーバーサイドレンダリングページ(これは静的専用です)
  • 内部管理ダッシュボード(過剰です)

クイックリファレンス

コンポーネントファイル主要クラス
デザイントークンdesign-system/design-system.css:root 変数、--accent-*、--gradient-*
ナビゲーションバーcomponents-reference.html.navbar、.nav-links、.lang-toggle
ヒーローcomponents-reference.html.hero、.hero-title、.gradient-text、.hero-stats
機能カードcomponents-reference.html.feature-grid、.feature-card、.reveal
コードブロックcomponents-reference.html.code-block、.code-header、.code-copy
ツールチップcomponents-reference.html.tooltip-trigger、[data-tooltip]
タブcomponents-reference.html.tab-list、.tab-btn、.tab-panel
テーマ切り替えdesign-system.css + app-template.js[data-theme]、.icon-btn[data-toggle="theme"]
言語ボタンdesign-system.css.lang-toggle、.lang-btn[data-lang]
スクロールリビールapp-template.js.reveal → .visible(IntersectionObserver経由)
i18napp-template.js[data-i18n] + 翻訳辞書

デザインシステム

design-system.css は、両方のテーマの完全なトークンセットを提供します。ブランドに合わせてこれらを調整してください。詳細はファイルを参照してください。

維持しているダーク/ライトトークンについては design-system/design-system.css を参照し、ここに2つ目のトークンリストを維持するのではなく、要求されたブランドに合わせて調整してください。

ファイル

ファイル目的
design-system/design-system.css完全なCSS: トークン、ナビゲーションバー、ヒーロー、カード、コードブロック、ツールチップ、タブ、フッター、レスポンシブ
design-system/app-template.jsJS: スクロールリビール、ナビゲーションバースクロール、コードコピー、タブ、テーマ切り替え、モバイルメニュー、i18n
design-system/components-reference.htmlコピー&ペースト可能なHTMLスニペットを含むすべてのコンポーネント
templates/landing-template.html完全な開始用テンプレート — すべてのセクションを含むワイヤーフレーム

ツールチップパターン

ツールチップは、デスクトップ(ホバー)およびモバイル/タッチ(タップで切り替え)で動作します。タッチサポートには app-template.js が必要です。

<!-- 上方向に開く(デフォルト) -->
<span class="tooltip-trigger" data-tooltip="役立つ説明はこちら">
    ホバーしてね
</span>

<!-- 下方向に開く(ページ上部近くのトリガー用) -->
<span class="tooltip-trigger tooltip-bottom" data-tooltip="説明">
    ホバーしてね
</span>

<!-- 長いテキスト用のワイドバリアント(モバイルで折り返し) -->
<span class="tooltip-trigger tooltip-wide" data-tooltip="長い複数行の説明...">
    ホバーしてね
</span>

デスクトップ: CSS :hover でツールチップを表示します。モバイル/タブレット: JS がタップで切り替え、外側クリックで閉じる機能を追加します。キーボード: Tab でフォーカス、Enter/Space で切り替え、Escape で閉じます。

タッチおよびキーボードパスは、トリガーに .tooltip-active をトグルすることで機能します。手書きのツールチップCSSは、.tooltip-trigger:hover::after と .tooltip-trigger.tooltip-active::after を一緒にスタイリングする必要があります。そうしないとタップが機能しません。独自のツールチップを記述する前に、design-system/design-system.css のセクション10(ツールチップ)を読んでください。

重ね合わせ: ツールチップは、.feature-card:hover、.code-block:hover、および .callout:hover の z-index:10 によってコンテナから逃れます。これらのルールを維持し、子要素(.feature-card::before が行うように)に border-radius で角丸をクリップしてください。コンテナに overflow:hidden があるとツールチップがクリップされ、どんなz-indexでも救えません。

ビルドワークフロー

  1. design-system.css、app-template.js、templates/landing-template.html(index.htmlにリネーム)をプロジェクトに コピー します。テンプレートがファイル名でリンクしているため、3つのファイルはすべて同じ場所に置きます。
  2. components-reference.html から セクションを追加 します(機能、コードブロック、タブ、コールアウト、フッター)をワイヤーフレームに追加します。
  3. :root 内の トークンをカスタマイズ します(色、フォント、グラデーション)。
  4. HTMLに コンテンツを追加 し、多言語の場合は data-i18n キーを設定します。
  5. ローカルでテスト — ブラウザで index.html を開き、以下の「よくある間違い」のすべての行を確認します。各行が問題なければ完了です。
  6. 確認済みの ファイルを納品 します。要求された場合にのみ、合意されたホストとリポジトリワークフローを使用してデプロイします。

GitHub Pagesへのデプロイ

公開が要求された場合は、既存のリポジトリとPages設定を確認し、レビュー済みのファイルを準備し、そのデプロイワークフローに従います。許可があった場合のみ、パブリックリポジトリを作成するか可視性を変更します。指定された出力ファイルをステージングし、無関係な作業を保持します。公開URLを報告する前に、デプロイされたリビジョンとライブコンテンツを確認します。HTTP 200だけでは視覚的な証明にはなりません。

よくある間違い

間違い修正
meta viewportがない<meta name="viewport" content="width=device-width, initial-scale=1.0"> を追加
<html> に [data-theme] がないデフォルトテーマとして <html data-theme="dark"> を設定
リビール要素が非表示app-template.js がロードされ、.reveal に対応する .visible ロジックがあることを確認
非表示のタブパネル内のリビールタブ切り替えで自動リビール。または、タブコンテンツから .reveal を削除
ツールチップが上部で切れるビューポート上部近くのトリガーには .tooltip-bottom バリアントを使用
読み込み時のテーマフラッシュレンダリング前に localStorage.getItem('lp-theme') を data-theme に読み込む <head> 内のインライン <script> — すでに templates/landing-template.html にあり
JSなしでコンテンツが非表示<html> に class="no-js" + .no-js .reveal { opacity:1 } フォールバック
コードコピーが動作しない.code-copy ボタンが存在し、JSがロードされていることを確認
スタイル未適用コンテンツのフラッシュスタイルシートの前に <head> にフォント <link> を配置
フォーカススタイルがないすべてのインタラクティブ要素には組み込みの :focus-visible アウトラインあり

アクセシビリティ

デザインシステムには以下が含まれます:

  • すべてのインタラクティブ要素に :focus-visible アウトライン(キーボードナビゲーション)
  • prefers-reduced-motion メディアクエリ(アニメーション無効化)
  • .no-js フォールバック(JavaScriptなしでコンテンツ表示可能)
  • アイコンのみのボタンに対するARIAラベル
  • セマンティックHTML構造(適切な見出し階層)
  • テーマのコントラストトークン。WCAG準拠を主張する前に、カスタマイズ後にコントラストを確認してください。

関連スキル