modern-css-html について
HTML と CSS を記述する開発者向けのスキルです。ネイティブ機能を優先し、Safari と Chrome/Edge の対応状況に応じた段階的な拡張を案内します。
主な機能
- 01ネイティブ HTML 要素とセマンティック構造
- 02モダン CSS のレイアウトとレスポンシブ設計
- 03カラーとテーマの指針
- 04アニメーションとスクロール連動効果
- 05ブラウザー対応とフォールバック方針
活用シーン
- 01フォームや操作部品に適した HTML 要素の選択
- 02CSS によるレスポンシブレイアウトと動きの実装
- 03新しい CSS 機能のフォールバック計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ kemiljk/ skills --skill modern-css-htmlインストール後、Claude Code で/modern-css-htmlを入力して読み込まれたか確認します。
同梱ファイルreferences/features.mdreferences/recipes.md
詳細
モダン CSS と HTML
現在のプラットフォーム機能を使って CSS と HTML を記述します。レガシーなハックや不要な JavaScript ではなく、ネイティブ機能を優先してください。
ほかのスキルとの役割分担
- このスキルはネイティブな実装方法を担当します。
fluid-designは、物理演算、中断、ジェスチャーの要件が CSS の範囲を超える場合に、インタラクションの感触を担当します。semantic-html-firstは、要素と ARIA の境界を担当します。- 要件を満たせるネイティブな CSS/HTML 機能があり、サポート状況に問題がなければ、それを使ってください。
ブラウザーのサポート方針
タスクで単一エンジンの実験が明示的に許可されていない限り、WebKit(Safari)と Blink(Chrome/Edge)の両方で利用できる機能を対象とします。
- 両エンジンで広く利用可能: デフォルトで採用します。
- 両エンジンで新たに利用可能:
@supportsを使って段階的に機能を強化します。 - 単一エンジンのみ、または不安定: オプションとして説明し、クロスエンジンで使える方法も提示します。
推奨事項に変動しやすい全体の対応率を固定値で記載しないでください。対応状況に確信がない場合は再確認し、「両エンジン対応/機能強化/フォールバック」の形で判断を示してください。
基本方針
HTML
- ARIA ウィジェットよりも、ネイティブ要素(
button、a、details、dialog、select、フォームコントロール)を優先します。 - div だらけの構造ではなく、セマンティックな構造(
main、nav、section、見出し)を優先します。 - サポート状況に問題がなければ、独自のフローティング要素の積み重ねより Popover API と CSS Anchor Positioning を優先します。
レイアウト
- マージンのハックではなく
gapを、4 方向の物理的なオフセットではなくinsetを、パディングのハックではなくaspect-ratioを使います。 - モバイルの全画面表示には
100dvhを使い、方向に応じた余白には論理プロパティを使います。 - コンポーネントのレスポンシブ対応にはコンテナクエリを、メディアクエリには範囲構文を使います。
- JavaScript の代替になる場合は、
subgrid、grid-template-areas、position: sticky、スクロールスナップを使います。
色とテーマ
oklch()でパレットを作成します。color-mix()と相対色構文で状態ごとの色を導出します。- 重複する配色ブロックより、
color-schemeと組み合わせたlight-dark()を優先します。
モーション
translate、rotate、scale、opacityのアニメーションを優先します。- サポートされている場合は、表示/非表示の切り替えに
@starting-styleとtransition-behavior: allow-discreteを使います。 - サポート状況に問題がなければ、Intersection Observer によるクラスの切り替えより CSS のスクロール駆動タイムラインを優先します。
- スプリング、ジェスチャー、中断可能な物理演算については
fluid-designを参照してください。
レビューチェックリスト
- このコントロールに適したネイティブ HTML 要素はありますか?
- レイアウト、色、モーションをライブラリなしで CSS だけで実現できますか?
- 色は場当たり的な 16 進数ではなく、トークンや
oklchで指定されていますか? - 必要なフォールバックは
@supportsで記述されていますか? - モーションを軽減する設定に対して、実質的な代替手段がありますか?
- 方向に依存する UI で、物理的な left/right プロパティを避けていますか?
- JavaScript が残っている場合、CSS/HTML では補えない部分を担っていますか?
参考資料
コメント
Markdown 対応