css-coder について
標準、アクセシビリティ、パフォーマンス、保守性を重視する開発者向けの CSS コーディングスキルです。セレクター、レイアウト、レスポンシブスタイル、カスタムプロパティ、ユーザー設定の実践的な指針を提供します。
主な機能
- 01ネイティブ CSS 標準を優先
- 02アクセシビリティとユーザー設定に配慮
- 03レンダリング性能の改善
- 04読みやすく特異性の低いセレクター
- 05論理プロパティとカスタム変数の適用
- 06レスポンシブレイアウトとメディアクエリーの構成
活用シーン
- 01フォーカス表示を維持するスタイルの作成
- 02Grid または Flexbox によるレイアウト構築
- 03動きやコントラストの設定に応じたスタイル調整
- 04セレクターの複雑さと高コストなアニメーションの削減
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ schalkneethling/ webdev-agent-skills --skill css-coderインストール後、Claude Code で/css-coderを入力して読み込まれたか確認します。
同梱ファイルreferences/patterns.md
詳細
CSS コーダー
ウェブ標準、アクセシビリティ、パフォーマンス、保守性を優先して CSS を記述するためのガイダンスです。
基本原則
- ウェブ標準を最優先する — ライブラリやフレームワークに頼る前に、ネイティブの CSS 機能を使います。明示的に依頼された場合を除き、Tailwind や CSS-in-JS は使いません。
- アクセシビリティを必須要件とする — スタイルが支援技術を妨げず、適切にサポートするようにします。ユーザー設定(動き、カラースキーム、コントラスト)を尊重します。
- パフォーマンスを重視する — 再描画を最小限に抑え、レイアウトスラッシングを避け、効率的なセレクターを使います。
- 巧妙さより読みやすさを優先する — 将来のメンテナー(作者自身を含む)が、コードをひと目で理解できるようにします。
- 暗黙的なものより明示的なものを優先する — マジックナンバーや説明のない値は避けます。共有する値にはカスタムプロパティを使います。
ワークフロー
- まずリファレンスを確認する — CSS を書く前に、確立されたパターンやスニペットについて
references/patterns.mdを参照します。 - 仕様に照らして検証する — 判断に迷った場合は、MDN Web Docs または CSS の仕様を参照します。
- 代替案を提案する — 適切であれば、このスキルのパターン以外のアイデアも提示します。ただし、必ず上記の基本原則に沿うようにします。
記述ガイドライン
セレクター
- スタイル指定には、要素セレクターや ID セレクターよりクラスセレクターを優先します。
- 詳細度を低く、予測しやすく保ちます。
- 深いネストは避けます(最大 2~3 階層を目安にします)。
カスタムプロパティ
- 色、余白、タイポグラフィなど、繰り返し使う値には
--で始まるカスタムプロパティを使います。 :rootまたは適切なスコープで定義します。--color-primary、--spacing-md、--font-size-bodyのように、内容が分かる名前を付けます。
論理プロパティ
- 物理プロパティ(
margin-left、padding-top、left、heightなど)ではなく、常に論理プロパティ(margin-inline、padding-block、inset-inline-start、block-sizeなど)を使います。 - 論理プロパティは、国際化やさまざまな書字方向に自動的に対応します。
- 論理プロパティに相当するものがまだ存在しない場合に限り、物理プロパティを代わりに使います。
単位
- タイポグラフィと余白には
remを使います(ユーザーのフォントサイズ設定を尊重できます)。 - 適切な場合は、コンポーネントに対する相対サイズに
emを使います。 - ビューポート単位(
vw、vh、dvh)は必要に応じてフォールバックを用意し、慎重に使います。 - フォントサイズに
pxを使うのは避けます。ボーダー、シャドウ、細部には使用できます。
色
- すべての色関数(
rgb()、hsl()、oklch())には、スペース区切りのモダンな構文を使います。 - 鮮やかな色や広色域の色には、
oklch()を推奨します。 - 既存の変数からホバー状態や透明度違いを導き出すには、相対カラー構文を使います。
- 構文の例については
references/patterns.mdを参照してください。
レイアウト
- 2 次元のレイアウト、または追加の宣言なしで垂直方向のフローが必要な場合は、CSS Grid を使います。
- 1 次元の配置には Flexbox を使います。デフォルトの方向は
rowである点に注意してください。 - レイアウトに float を使うのは避けます(レガシーな用途に限ります)。
メディアクエリー
- モダンな範囲構文を使います:
@media (width < 48rem)、@media (width >= 48rem)。 - モバイルファーストではなく、共有スタイルを先に定義します。共通スタイルはクエリーの外に定義し、ビューポート固有のスタイルは範囲を限定したクエリー内に記述します。
- ブレークポイントは最小限に抑え、明確な必要性がある場合にのみ追加します。
- 詳しい例については
references/patterns.mdを参照してください。
アクセシビリティ
- スクリーンリーダーからアクセスできる状態に保つべきコンテンツを隠すために、
display: noneやvisibility: hiddenは決して使わないでください。リファレンスにある適切な手法を使います。 prefers-reduced-motion、prefers-color-scheme、prefers-contrastを尊重します。- 十分な色コントラストを確保します(WCAG AA を最低基準とし、AAA を推奨します)。
- フォーカスインジケーターを常に表示します。代わりのスタイルを用意せずに
:focusのスタイルを削除してはいけません。
パフォーマンス
- アニメーションでは、負荷の高いプロパティを避けます(
transformとopacityを優先します)。 will-changeは必要な場合に限り、控えめに使います。*セレクターの使用を最小限に抑えます。- 大規模なコードベースでカスケードを管理する場合は、
@layerを優先します。
参考資料
以下については、references/patterns.md を参照してください。
- 視覚的に非表示にするユーティリティ
- ユーザー設定のクエリ(動き、配色、コントラスト)
- モダンな色の構文と相対色
- Shared First のレスポンシブパターン
- プロジェクト固有の規約
パターンの追加に伴い、このファイルは拡充されていきます。必要なパターンが見つからない場合は、コア原則に沿ったパターンを提案してください。
コメント
Markdown 対応