CSS vs Sass: どちらのスタイリング手法を選ぶか
素のCSSは今や変数・ネスト・レイヤーをネイティブに備えており、Sassはmixin・関数・より広範なコンパイル時の機能を追加するプリプロセッサです。
モダンなCSSは、かつてSass固有だった多くの機能を取り込みました。カスタムプロパティ、ネイティブなネスト、カスケードレイヤー、コンテナクエリなどで、多くの場合プリプロセッサの必要をなくします。Sassは依然として、ネイティブCSSにはないコンパイル時のmixin・関数・ループ・partial、そして成熟したモジュールツールを追加します。CSSはシンプルさとビルドステップ不要で優れ、Sassは高度なコンパイル時の抽象化と大規模なスタイルシートの整理で優れます。
| CSS | Sass | |
|---|---|---|
| ビルドステップ | なし | 必須(コンパイル) |
| 変数 | ネイティブなカスタムプロパティ | コンパイル時 + ランタイム |
| ネスト | ネイティブ(モダンブラウザ) | あり(コンパイル) |
| mixin/関数 | なし | あり |
| 最適な用途 | シンプルでビルド不要のスタイリング | 大規模で抽象化されたスタイルシート |
ユースケースとツール
素のCSSは、スタイルにビルドを一切求めず、モダンなネイティブ機能に頼れるプロジェクトに向いています。Sassは、複雑なスタイルシートをDRYで整理された状態に保つためにmixin・関数・ループ・partialを求める大規模なコードベースに向いています。CSSがネストとレイヤーを採用するにつれ、その差は縮まっています。
ビルドとCI
Sassはコンパイルステップを追加し、素のCSSは追加しません。どちらもマネージドrunner上でビルドでき、より高速なrunnerはフロントエンドのビルドの一部としてSassのコンパイルを短縮します。
結論
モダンなネイティブ機能でシンプルかつビルド不要のスタイリングが欲しいなら: 素のCSS。コンパイル時のmixin・関数・大規模な整理が欲しいなら: Sass。ネイティブCSSの成長に伴い多くのチームがSassをやめていますが、大規模なレガシーや抽象化の多いスタイルシートは依然としてその恩恵を受けます。
関連ガイド
Sass vs Less: Which CSS Preprocessor?Sass vs Less: the dominant CSS preprocessor vs a lighter JavaScript-based one. Features, ecosystem, tooling,…
PostCSS vs Sass: Which CSS Tool?PostCSS vs Sass: a plugin-based CSS transformer vs a full preprocessor. Architecture, plugins, autoprefixing,…
Tailwind vs Bootstrap: Which CSS Framework?Tailwind CSS vs Bootstrap: a utility-first framework vs a component-first framework. Customization, bundle si…