【SASS】SASSとは?CSSを効率化するプリプロセッサの基本

PUBLISHED 2026-02-04

SASSは、CSSを効率的に書くためのプリプロセッサです。変数やネスト、ミックスインなどの機能を使って、より保守性の高いスタイルシートを作成できます。

SASSとは

SASS(Syntactically Awesome Style Sheets)は、CSSを拡張したメタ言語です。SASSで書いたコードは、コンパイルして通常のCSSに変換されます。

SASSとSCSSの違い

構文特徴
SASSインデントベース、中括弧・セミコロン不要
SCSSCSS互換、中括弧・セミコロンを使用

現在は SCSS が主流です。既存のCSSファイルをそのままSCSSとして使用できます。

主な機能

変数

色やサイズなどの値を変数として定義できます。

// 変数の定義
$primary-color: #3498db;
$font-size-base: 16px;
$spacing: 8px;

// 変数の使用
.button {
  background-color: $primary-color;
  font-size: $font-size-base;
  padding: $spacing * 2;
}

ネスト

セレクタをネストして、階層構造を表現できます。

.nav {
  background: #333;

  ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  li {
    display: inline-block;
  }

  a {
    color: white;
    text-decoration: none;

    &:hover {
      color: #3498db;
    }
  }
}

& は親セレクタを参照します。上記の &:hover.nav a:hover にコンパイルされます。

ミックスイン

再利用可能なスタイルのブロックを定義できます。

// ミックスインの定義
@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

@mixin button-style($bg-color, $text-color: white) {
  background-color: $bg-color;
  color: $text-color;
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;

  &:hover {
    opacity: 0.9;
  }
}

// ミックスインの使用
.container {
  @include flex-center;
  height: 100vh;
}

.btn-primary {
  @include button-style(#3498db);
}

.btn-danger {
  @include button-style(#e74c3c);
}

継承(@extend)

他のセレクタのスタイルを継承できます。

%button-base {
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.btn-primary {
  @extend %button-base;
  background: #3498db;
  color: white;
}

.btn-secondary {
  @extend %button-base;
  background: #95a5a6;
  color: white;
}

% で始まるセレクタはプレースホルダーセレクタと呼ばれ、単体ではCSSに出力されません。

パーシャルとインポート

ファイルを分割して管理できます。

// _variables.scss(アンダースコアで始まるファイルはパーシャル)
$primary-color: #3498db;
$secondary-color: #2ecc71;

// _mixins.scss
@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

// main.scss
@use 'variables';
@use 'mixins';

.container {
  background: variables.$primary-color;
  @include mixins.flex-center;
}

演算

数値の計算ができます。

$base-size: 16px;

.container {
  width: 100% - 20px;
  padding: $base-size / 2;
  margin: $base-size * 2;
}

条件分岐とループ

// 条件分岐
@mixin theme($dark: false) {
  @if $dark {
    background: #333;
    color: white;
  } @else {
    background: white;
    color: #333;
  }
}

// ループ
@for $i from 1 through 5 {
  .mt-#{$i} {
    margin-top: $i * 8px;
  }
}

// 結果: .mt-1 { margin-top: 8px; } ... .mt-5 { margin-top: 40px; }

導入方法

npm でインストール

npm install -D sass

Vite / Astro での使用

Viteベースのプロジェクトでは、sassをインストールするだけで自動的にSCSSファイルを処理できます。

<style lang="scss">
  $primary: #3498db;

  .card {
    border: 1px solid $primary;

    &:hover {
      box-shadow: 0 4px 8px rgba($primary, 0.3);
    }
  }
</style>

参考文献

まとめ

SASSを使うことで、CSSの記述を効率化し、保守性を向上させることができます。特に大規模なプロジェクトでは、変数やミックスインによるスタイルの一元管理が重要です。SCSSはCSS互換なので、既存のプロジェクトにも導入しやすいのが特徴です。

CATEGORY
TAGS
円