css
CSSレイアウト手法(FlexboxやGrid)、命名規則、テーマ設定、保守しやすいスタイルシート設計など、CSS開発のベストプラクティスを提供します。モダンなスタイリング技術と構造化されたアーキテクチャを活用したい際に役立ちます。
description の原文を見る
Best practices for CSS development including modern layout techniques, naming conventions, theming, and maintainable stylesheet architecture
SKILL.md 本文
CSS開発ガイドライン
コア原則
- セマンティックなHTMLを記述してアクセシビリティとSEOを向上させる
- インラインスタイルを避けてCSSでスタイリングする
- メディアクエリとフレキシブルレイアウトを使用してレスポンシブデザインを実現する
- インラインまたは埋め込みスタイルより外部スタイルシートを優先する
レイアウト技法
Flexbox
- 1次元レイアウト(行または列)にはFlexboxを使用する
justify-contentとalign-itemsをアラインメントに活用するflex-wrapでレスポンシブなラッピング動作を実現する- 一貫性のある間隔のためにマージンより
gapプロパティを優先する
Grid
- 2次元レイアウトにはCSS Gridを使用する
grid-template-columnsとgrid-template-rowsでグリッドテンプレートを定義するgrid-areaで名前付きテンプレート領域を使用するauto-fitとauto-fillを活用してレスポンシブグリッドを実現する
ユニットとタイポグラフィ
- タイポグラフィには
remユニットを使用してユーザー設定を尊重する - コンポーネント相対サイジングには
emユニットを使用する - フォントサイズに
pxを使用しない。ボーダーと固定要素用に取っておく - 必要に応じて
clamp()で流動的なタイポグラフィを実装する - ビューポートユニット(
vw、vh)は全画面レイアウトで慎重に使用する
CSSカスタムプロパティ(CSS変数)
:rootでデザイントークンをCSS変数として定義する- 色、スペーシング、タイポグラフィ、シャドウに変数を使用する
- 異なるコンテキストで変数をオーバーライドしてテーマ機能を実装する
- セマンティックに変数を命名する(例:
--color-primary、--spacing-md)
命名規則
BEM方法論
- Block: スタンドアロンコンポーネント(例:
.card) - Element: Blockの一部(例:
.card__title) - Modifier: BlockまたはElementのバリエーション(例:
.card--featured)
ベストプラクティス
- クラス名に小文字とハイフンを使用する
- IDをスタイリングに使用しない。JavaScript フックに取っておく
- 単一クラスセレクタを使用して詳細度を低く保つ
- コンフリクトを防ぐためにスタイルをコンポーネントでスコープする
詳細度管理
- 可能な限り詳細度を0-1-0(単一クラス)に保つ
!important宣言を避ける- 偶然ではなく意図的にカスケードを使用する
- 詳細度制御のためにCSS Layers(
@layer)を検討する
レスポンシブデザイン
- モバイルファーストのメディアクエリを実装する
- フレキシブルレイアウトに相対ユニットを使用する
- 複数のビューポートサイズでテストする
- コンポーネントレベルの応答性にコンテナクエリを検討する
パフォーマンス
- セレクタの複雑さを最小化する
- 深くネストされたセレクタを避ける
- 効率的なセレクタを使用する(要素より クラス)
- コンポーネント分離のためにCSS containmentを活用する
- ファーストビュー表示領域に必要なクリティカルCSSを検討する
モダンCSS機能
- 比率を維持するために
aspect-ratioを使用する - FlexboxとGridで
gapを活用する - 論理プロパティを使用する(
margin-inline、padding-block) transitionプロパティでスムーズなトランジションを実装する- 機能検出に
@supportsを使用する
構成
- スタイルシートを論理的に構成する(base、layout、components、utilities)
- ファイルはモジュール化して焦点を絞った状態に保つ
- 複雑なスタイルはコメントで文書化する
- 宣言内で一貫性のあるプロパティ順を使用する
ブラウザ互換性
- 必要に応じてベンダープレフィックスを使用する(Autoprefixerを検討)
- ターゲットブラウザ全体でテストする
- 新しい機能のフォールバックを提供する
- プログレッシブエンハンスメントアプローチを使用する
アクセシビリティ
- 十分な色コントラストを確保する(WCAG AA最小基準)
- キーボードナビゲーション用に表示されたフォーカススタイルを提供する
- スクリーンリーダーに影響する方法でコンテンツを非表示にしない
- アニメーションに
prefers-reduced-motionメディアクエリを使用する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。