Sass記法(SCSS)を使ってCSS管理する

Sass(Syntactically Awesome Style Sheets)は、CSSの拡張言語であり、CSSの書き方をより効率的かつ強力にするための機能を提供します。変数、ネスト、ミックスイン(関数のようなもの)、継承、インポートなどの機能を使って、CSSの管理と再利用を簡単にすることができます。Sassには主に2つの構文があります。SCSS(Sassy CSS)と呼ばれるCSSに近い構文と、インデント(空白)に依存する簡潔な構文のSassです。ここでは、より広く使用されているSCSSを使えるように、macOSの開発環境を整えていきます。

開発環境

ソフトウェアバージョン備考
macOS14.2
rbenv1.2.0この記事でインストール
ruby3.2.2この記事でインストール
sass3.7.4この記事でインストール

Sassを動かすためにはRubyが必要なため、まずはRubyの開発環境をインストールしていきます。

rbenvのインストール

bash
$ brew install rbenv ruby-build
$ echo 'eval "$(rbenv init -)"' >>  ~/.zshrc
source ~/.zshrc

Rubyのインストール

インストール可能なRubyのバージョンを確認:

bash
$ rbenv install --list
3.0.6
3.1.4
3.2.2
jruby-9.4.5.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.1.1
truffleruby+graalvm-23.1.1

この中から最新のバージョンを選んでインストール:

bash
$ rbenv install 3.2.2
$ rbenv global 3.2.2
$ sudo gem update --system

Sassのインストール

bash
$ sudo gem install sass

$ sass -v
Ruby Sass 3.7.4

これでSassの開発環境が整いました。

記法

SCSS記法を使うと、ネストできたり、変数が使えたり、インポートでファイルを分割管理できたりと便利です。

ネストの使用例

scss
article {
  iframe { // YouTube埋め込み
    aspect-ratio: 16/9;
    width: 100%;
    height: 100%;
    min-height:194px;
  }
  iframe.wiki_sounds {
    width: 220px;
    height: 40px;
  }

  .h2-gray {
    pre.code code, .codeInline {
      background: #f2f2f2;
    }
  }
}

変数の使用例

scss
$default-button-bg: #444;
$default-button-hover-bg: #777;
$default-button-color: #fff;

@mixin default-button-base {
  display: block;
  width: 180px;
  margin: 0.8em 0 3.0em 0;
  padding: 6px;
  background: $default-button-bg;
  font-size: 1.0em;
  text-align: center;
  color: $default-button-color;
  text-decoration: none;

  a {
    &:hover {
      background: $default-button-hover-bg;
    }
  }
}

インポートの使用例

scss
@import 'cm2h.scss';
@import 'variables';
@import 'utilities';
@import 'index_list';
@import 'base';
@import 'layout';
@import 'grid';
@import 'buttons';
@import 'cards';

/* MathJax */
.MJXc-display {
  overflow-x: auto;
  text-align: left !important;
  margin: 1em 0 1em 2em !important;
}

.mjx-box {
  text-align: left !important;
}

Sassのコンパイル

説明実行コマンド
各セレクタのCSSルールを1行にまとめて出力$ sass main.scss:main.css --style compact
余分な空白やコメントを削除し、CSSを最小化してコンパイル$ sass main.scss:main.css --style compressed
変更を監視し、自動的にコンパイル$ sass --watch main.scss:../css/main.css

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム