ウェブ制作

コーディング

【CSS効率化】
Sass(SCSS)の基本から
使い方までわかりやすく解説!

そらまめ@プログラマー

そらまめ@プログラマー

#Oookey_blog_024

Sass(SCSS)の基本から使い方までわかりやすく解説!

こんにちは!プログラマーのそらまめです。
CSSを書いていて、
・同じ色を何度も書いている
・セレクターが長くなりすぎて分かりづらい
・ファイルが肥大化して管理しづらい
こんな経験、ありませんか?
そんな悩みを解決してくれるのが「Sass(サス)」です。
この記事では、Sassの基本から実務で使える考え方までを、初心者向けにわかりやすく解説します。

目次

1.Sassとは?
2.Sass / SCSS / SASS の違い
3.SCSSとSASSの記法の違い
4.Sassの始め方(VSCode)
5.Sassの特徴
6.ファイル構造(小規模〜中規模)
7.main.scss の役割
8.実務でよく使うSass Tips
9.Sassを使うときの注意点
10.終わりに

1.Sassとは?

Sassは「CSSの拡張言語」です。
よく「CSSのメタ言語」と言われますが、
正確には CSSをより効率的に書くための拡張機能だと考えてください。
・CSSでは使えない変数
・ネスト(入れ子)構造
・ファイル分割と再利用
が可能になり、保守性・可読性・作業効率が大幅に向上します。

★補足
Sassで書いたコードは、そのままではブラウザでは動きません。
一度「CSSに変換(コンパイル)」してから使う必要があります。
その変換作業を自動で行ってくれるのが、後述するツールです。
ちなみに Sass は
Syntactically Awesome Style Sheets(構文的にイケてるスタイルシート)の略です。

2. Sass / SCSS / SASS の違い

この3つは似ていますが役割が違います。
・Sass:言語の名称
・SCSS / SASS:Sassの「記法(書き方)」
つまり「Sassを使っている」と言っても、
どの記法を使っているかを意識する必要があります。

★補足
ネットの記事や現場では「Sass(SCSS)」という表現がよく使われます。
これは「Sassという言語を、SCSS記法で使っている」という意味です。

3. SCSSとSASSの記法の違い

【SASS(インデント記法)】

・{} を使わない
・; を書かない
・インデントで構造を表現

【コード例】

Copied!

copyBtn
div
    width:300px
    ul
        background-color:black
        li
            width:25%
            p
                font-size:16px

CSS未経験の人には、意外とこちらの方が読みやすい場合もあります。

【SCSS(CSS互換記法)】

・{} と ; を使う
・CSSにほぼそのまま書き足せる

【コード例】

Copied!

copyBtn
                        div {
    width:300px;
    ul {
    background-color:black;
    li {
        width:25%;
        p {
        font-size:16px;
        }
    }
    }
}
                    

CSS経験者にはこちらがおすすめです。 実務でもSCSSが主流なので、基本はSCSSでOKです。

4. Sassの始め方(VSCode)

Sassを使うにはコンパイル環境が必要ですが、
VSCodeなら拡張機能で簡単に始められます。
手順
  1. Live Sass Compiler をインストール
  2. 拡張子が .scss のファイルを作成
  3. 右下の「Watch Sass」をクリック
  4. 自動でcssファイルが生成される
以降は、scssに書くだけで自動的にcssへ変換されます。

★補足
生成されたCSSファイルを、HTMLから読み込むのを忘れないようにしましょう。
実際にブラウザが参照しているのは「CSSファイル」です。

5. Sassの特徴

① ネスト構造(入れ子)

HTML構造に沿って書けるため、関係性が一目で分かります。

Copied!

copyBtn
ul {
  display: flex;
  li {
    p {
      font-size:1.6rem;
      &:hover {
        font-size:3rem;
      }
      &.active {
        font-size:2rem;
      }
    }
  }
}

「&」はこれまでのセレクターを呼び出す記号です。
ul li p:hover を省略して書けるのが特徴です。

★補足
ネストが深くなりすぎると、逆にCSSが読みにくくなることもあります。
目安としては「3〜4階層まで」に抑えるのがおすすめです。

② 変数

Sassでは変数が使えます。

Copied!

copyBtn
$defaultColor: #ffffff;

div {
  background-color: $defaultColor;
}

色やサイズを変数化することで、修正が一瞬で終わります。

★補足
特に以下は変数化しておくと便利です。
・メインカラー
・フォントサイズ
・ブレークポイント(SP / PC)

③ extend / mixin

・extend:既存クラスを継承
・mixin:引数付きで再利用可能

【extendの例】

Copied!

copyBtn
.button {
  width:300px;
  height:75px;
  background-color:black;
}

div {
  @extend .button;
}

【mixinの例】

Copied!

copyBtn
@mixin btn($background-color:black) {
  width:300px;
  height:75px;
  background-color:$background-color;
}

div {
  @include btn(red);
}

★補足
extendはスタイルを「コピー」する機能ではなく、 セレクタを結合して1つのルールとして出力する仕組みです。
そのため、たまたま見た目が似ている要素に使うと、 予期しないスタイル変更が起きやすくなります。
extendは「意味・役割が同じクラス同士」で使うのが前提です。
最近の実務では mixin の方が使われることが多いです。

④ use / import

どちらもファイルを読み込む際に使いますが、基本的には use を使ってください。

Copied!

copyBtn
@use 'button';
div {
  color: button.$main-color;
}

import は変数の競合が起きやすいため、基本は use を使いましょう。

6. ファイル構造(小規模〜大規模)

scss
├ _base.scss
├ _layout.scss
├ _components.scss
├ _utils.scss
└ main.scss

ファイル名の先頭に「_」を付けることで、 CSSに直接出力されない部品ファイルとして扱えます。

★補足
この構成を使うことで、 「どこに何が書いてあるか」がすぐ分かるようになります。

7. main.scss の役割

main.scss は読み込み専用のファイルです。
基本的には、「_」を付けたファイルを読み込みます。

これにより、HTMLで読み込むCSSファイルを1つにまとめることができ、 読み込み順トラブル防止、HTTPリクエスト削減に繋がります。

Copied!

copyBtn
@use 'base/reset';
@use 'base/variables';
@use 'components/buttons';

スタイルは基本的に各ファイルに書き、 main.scss には直接スタイルを書かないのが一般的です。

8. 実務でよく使うSass Tips

Tips① @media を整理する

Copied!

copyBtn
.button {
  width: 300px;
  @media screen and (max-width: 768px) {
    width: 100%;
  }
}

Tips② ブレークポイントをmixin化

Copied!

copyBtn
@mixin sp {
  @media screen and (max-width: 768px) {
    @content;
  }
}

.button {
  width: 300px;
  @include sp {
    width: 100%;
  }
}

Tips③ %プレースホルダー

Copied!

copyBtn
%btn-base {
  width: 300px;
  height: 75px;
  border-radius: 8px;
}

.button-primary {
  @extend %btn-base;
  background-color: blue;
}

.button-secondary {
  @extend %btn-base;
  background-color: gray;
}

9. Sassを使うときの注意点(実務目線)

・ネストは深くしすぎない(3〜4階層まで)
・何でも mixin にしない(使い回すものだけ)
・変数名は「役割」で命名する
❌ $red → ⭕ $main-color

10. 終わりに

Sassを使うことで、
・CSSが読みやすくなる
・修正が楽になる
・ファイル管理が圧倒的に楽になる

一度慣れると、素のCSSには戻れなくなります。
ぜひ次の制作からSassを導入してみてください!