カテゴリ: Bootstrap 更新日: 2026/01/06

BootstrapのCSS変数とSass変数を完全解説!初心者でもわかる即時切替とビルド時変更の違い

CSS変数とSass変数の使い分け:即時切替とビルド時変更の違い
CSS変数とSass変数の使い分け:即時切替とビルド時変更の違い

先生と生徒の会話形式で理解しよう

生徒

「Bootstrapを勉強していたら、CSS変数とSass変数っていう言葉が出てきたんですが、どう違うんですか?」

先生

「とても大事なポイントですね。CSS変数とSass変数は似ているようで役割が違うんです。簡単に言うと、CSS変数はブラウザ上で即時に切り替えできる変数で、Sass変数はビルド時に決まる変数です。」

生徒

「なるほど。でもそれってどういう場面で使い分けるんですか?」

先生

「それをこれから具体的に説明します。Bootstrapのカスタマイズをするうえでとても重要な知識ですよ。」

1. CSS変数とは?即時切替が可能な特徴

1. CSS変数とは?即時切替が可能な特徴
1. CSS変数とは?即時切替が可能な特徴

CSS変数は、ブラウザ上でそのまま利用できる変数です。例えば色を --bs-primary という名前で定義すると、どの要素でも呼び出して使えます。CSS変数の大きな特徴は、ページを読み込んだ後でもJavaScriptなどを使って即座に値を変更できることです。

これは「テーマの切り替え」や「ダークモードの即時変更」にとても便利です。ボタンを押した瞬間に背景色や文字色を切り替える、といった仕組みはCSS変数のおかげで簡単に実現できます。


<style>
:root {
    --bs-primary: #0d6efd;
}

h1 {
    color: var(--bs-primary);
}
</style>

<h1>これはCSS変数を使った見出しです</h1>
ブラウザ表示

2. Sass変数とは?ビルド時に決まる仕組み

2. Sass変数とは?ビルド時に決まる仕組み
2. Sass変数とは?ビルド時に決まる仕組み

Sass変数は、開発中にスタイルをまとめて管理するための変数です。Bootstrapの多くのデザインは $primary$font-size-base といったSass変数で定義されています。

ただしSass変数はあくまで「ビルド時」に反映されるので、ブラウザ上で後から即時に切り替えることはできません。その代わりに、コードの可読性が上がり、サイト全体のデザインを統一するのに役立ちます。

3. CSS変数とSass変数の違いを整理しよう

3. CSS変数とSass変数の違いを整理しよう
3. CSS変数とSass変数の違いを整理しよう

ここで二つの違いを分かりやすく整理してみましょう。

  • CSS変数:ブラウザ上で即時に変更可能。JavaScriptで操作できる。テーマ切り替えや動的変更に強い。
  • Sass変数:ビルド時に決定される。開発中の管理や全体統一に便利。ただし即時変更はできない。

イメージとしては「CSS変数は電気のスイッチ(その場でオンオフ可能)」、「Sass変数は設計図の寸法(工事が終わったら変えられない)」のような違いがあります。

4. Bootstrapでの具体的な使い分け

4. Bootstrapでの具体的な使い分け
4. Bootstrapでの具体的な使い分け

Bootstrapでは、Sass変数をカスタマイズしてデフォルトデザインを変更しつつ、CSS変数を活用して動的な切り替えを行うのが一般的です。

例えば、ボタンの色を全体的に青から緑にしたい場合は、Sass変数 $primary を変更します。一方で、ユーザーがワンクリックで「ライトモード/ダークモード」を切り替えられるようにする場合は、CSS変数を利用して --bs-body-bg の値を切り替えます。

5. 実際に切り替えてみるイメージ

5. 実際に切り替えてみるイメージ
5. 実際に切り替えてみるイメージ

次のコードでは、ボタンを押すと背景色がCSS変数で即時に切り替わる仕組みを表しています。


<style>
:root {
    --bs-body-bg: white;
}

body {
    background-color: var(--bs-body-bg);
}
.dark-mode {
    --bs-body-bg: black;
}
</style>

<body class="dark-mode">
    <h2>ダークモードに切り替わった背景</h2>
</body>

6. 使い分けのコツ

6. 使い分けのコツ
6. 使い分けのコツ

基本的なルールとして、次のように考えるとわかりやすいです。

  • サイト全体のデザイン基盤を決めたい → Sass変数
  • ユーザーが操作して変わる動きに対応したい → CSS変数

Bootstrapの強みは、この両方を柔軟に使える点にあります。CSS変数でダークモードを即時切り替え、Sass変数で一括したデザイン統一を行えば、効率的に美しいサイトを構築できます。

まとめ

まとめ
まとめ

BootstrapにおけるCSS変数とSass変数の理解を深めよう

ここまで、Bootstrapで利用されているCSS変数とSass変数について、仕組みや役割、使い分けの考え方を詳しく見てきました。 Bootstrapは単なるCSSフレームワークではなく、柔軟なカスタマイズ性を持つ点が大きな魅力です。 その柔軟性を支えているのが、CSS変数とSass変数という二つの変数の存在です。

CSS変数は、ブラウザがHTMLとCSSを読み込んだあとでも値を変更できるという特徴があります。 そのため、ユーザー操作によって見た目が変わる機能、たとえばダークモード切り替えやテーマカラー変更などに非常に向いています。 Bootstrapでは --bs-primary--bs-body-bg など、多くのCSS変数が定義されており、 これらを活用することで、JavaScriptを組み合わせた動的なデザイン変更が可能になります。

一方で、Sass変数は開発段階で使われる変数です。 BootstrapをSassでビルドする際に、$primary$font-size-base などを変更することで、 サイト全体の配色や文字サイズ、余白設計などを一括で調整できます。 ただし、Sass変数はビルド時にCSSとして確定するため、ブラウザ上で即座に切り替えることはできません。 その代わり、設計段階での一貫性や保守性を高める役割を担っています。

CSS変数を使った簡単なまとめサンプル

ここでは、記事の内容を振り返るために、CSS変数を使った簡単なサンプルをもう一度確認してみましょう。 Bootstrapと同じ考え方で、色を変数として管理し、HTML要素に適用しています。


<style>
:root {
    --bs-summary-color: #198754;
}

.summary-title {
    color: var(--bs-summary-color);
}
</style>

<h2 class="summary-title">Bootstrapの変数を理解するまとめ見出し</h2>
<p>CSS変数を使うことで、後から色を柔軟に変更できます。</p>
ブラウザ表示

このように、CSS変数を使えば、クラスやHTML構造を変えずに見た目だけを切り替えられます。 Bootstrapが提供しているCSS変数も、同じ仕組みで動いています。 仕組みを理解しておくことで、既存のBootstrapクラスを壊さずにカスタマイズできるようになります。

Sass変数と組み合わせた設計の考え方

実務では、CSS変数とSass変数のどちらか一方だけを使うのではなく、両方を組み合わせて使うケースが多くなります。 たとえば、企業サイトやサービスサイトでは、ブランドカラーや基本フォントサイズはSass変数で固定し、 ユーザーが切り替えるダークモードや配色テーマはCSS変数で対応するといった設計がよく採用されます。

このような役割分担を意識することで、Bootstrapのカスタマイズは格段に分かりやすくなります。 「どこまでが設計で、どこからが動的変更なのか」を考えることが、CSS設計の第一歩とも言えます。

先生と生徒の振り返り会話

生徒

「最初はCSS変数とSass変数の違いがよく分からなかったんですが、 ブラウザで変えられるかどうか、という視点で考えるとスッと理解できました。」

先生

「それはとても大切な理解ですね。 Bootstrapを使うときは、見た目を後から切り替えたいのか、 それとも最初から全体のデザインを決めたいのかを考えると、 CSS変数とSass変数の使い分けが自然に見えてきます。」

生徒

「ダークモードみたいな機能はCSS変数、 サイト全体の色設計はSass変数、というイメージですね。」

先生

「その通りです。 Bootstrapは最初からその考え方で作られているので、 変数の仕組みを理解すれば、公式ドキュメントも読みやすくなりますよ。」

生徒

「これからは、ただクラスを当てるだけじゃなくて、 変数を意識しながらBootstrapを使ってみます。」

先生

「それができるようになると、Bootstrapを一段深く使いこなせるようになります。 今日学んだ内容は、実務でも必ず役立ちますから、ぜひ活用してください。」

カテゴリの一覧へ
新着記事
New1
CSS
CSS Gridテンプレート集!よく使うWebレイアウトの作り方
New2
HTML
HTML head要素とは?meta・titleの役割と基本を解説
New3
Bootstrap
Bootstrap固定比率カラム完全ガイド!.col-6・.col-md-4の使い方とベストプラクティスを初心者向けに解説
New4
CSS
CSS Gridとメディアクエリで作る!レスポンシブデザイン完全入門
人気記事
No.1
Java&Spring記事人気No1
HTML
HTMLでできること・できないこと|初心者が迷う点を整理
No.2
Java&Spring記事人気No2
CSS
CSSの入れ子構造セレクタ完全ガイド!初心者でもわかる書き方と使い方
No.3
Java&Spring記事人気No3
CSS
CSS Gridの配置を視覚的にデザイン!grid-template-areasの設計方法
No.4
Java&Spring記事人気No4
CSS
CSSの文字色と背景色の組み合わせで読みやすさアップ!初心者でもわかる可読性の改善方法
No.5
Java&Spring記事人気No5
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrap5グリッドとは?12分割の基本とrow・col・gutterを初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
HTML
HTML html/head/bodyタグの役割|文書構造の基本を整理
No.8
Java&Spring記事人気No8
CSS
CSS Gridレイアウト設計術!固定幅・自動幅・割合幅を組み合わせる方法