よりよいCSSを書くための、CSS / Sass (SCSS) 30のルールとその理由

86366 ワード

Webエンジニアを始めて丸2年が経ちました。
複数プロジェクトを進める中で、CSSコーディングを行うときの「こうしておくと便利」「このほうが管理しやすい」といった知見が溜まってきたのでまとめます。

はじめに

  • 長くなってしまった細かい説明はところどころ折りたたんでいます。概要だけで理解できたら飛ばしていただき、詳しい話が気になったら開いて読んでください。
  • これらは「自分がよく取り入れている手法」であって、必ずしもどのプロジェクトにも当てはまるものではないと思います。
    各項目について、自分がその判断に至った 「理由」 を説明していますので、
    理由を読んだ上で自分のプロジェクトに取り入れるか判断いただくと良いと思います。
  • この記事は、すでにCSSコーディングをしていてアイデアがほしい人に向けた記事で、
    CSSをこれから学び始めるような 初学者向けではない ことご了承ください。
    一般的と思われるキーワードについては説明を省略しています。

環境構築編

1. メタ言語にはSassのSCSS記法を使う

理由

  1. 素のCSSの記法もそのまま使える (SCSSがCSSのスーパーセットである)から。
  2. シェアが高い から。
詳しい選定理由

CSSを書くときの言語としては、

が選択肢になります。

素のCSSは管理がしにくいため、メタ言語は当然使いたくなります。
ここで、Sassインデント記法やStylusは独自記法のため、素のCSS記述を流用しようとした場合にも変換が必要になりますが、SCSS記法ではその必要がありません。
この点においてはLessでも問題ないのですが、最初に使い始めたのがSassで慣れていることや、Sass(SCSS)のほうがシェアが高いということも理由にSassを使用しています(シェアが高いということは情報が見つかりやすいので)。

また、Sassの機能をPostCSSのプラグインで代替することも一度考えましたが、Sassで使っていた機能が置き換えきれないことや、他のメンバーが一見しただけではどの機能が使える環境なのかわかりにくいことなどを理由に断念しました。
(自分は採用しませんでしたが、)PostCSSで置き換える方法については以下の記事などが参考になります。
Sassを使わずにPostCSSだけでCSSを書く理由

2. LibSass (node-sass) ではなく Dart Sass (sass) を使う

理由

  1. LibSassはすでに 非推奨 となっているから。

「LibSass, Dart Sassとはなにか」や、「Dart Sassへの移行」については以下の記事などを参照してください。
node-sassからDartSassへsassコンパイラの移行 / 開発者向けブログ・イベント | GMO Developers

3. SassのビルドにはViteを使う

gulpなどのタスクランナーを使用せず、JSのビルド環境である Vite を使用してSassをビルドする。