カテゴリ: 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
Bootstrap
Bootstrapのガターをマスター!g-0〜g-5とgx/gyの使い分けコツ
New2
CSS
CSSグリッド完全解説!auto-fitとauto-fillの違いとレスポンシブ設計での正しい使い分け
New3
Bootstrap
Bootstrapブレークポイントの設計図!sm/md/lg/xlの選び方と実務基準
New4
CSS
CSSグリッド入門!grid-areaで名前付き領域を使ったレイアウトの作り方をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSグリッドレイアウト完全入門!display: grid の基本と使い方を初心者向けにやさしく解説
No.2
Java&Spring記事人気No2
CSS
CSSでテキストの折り返しを完全解説!初心者でもわかる基本と注意点
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
CSSの複数セレクタ指定を完全解説!初心者でもわかるカンマ区切りの使い方
No.5
Java&Spring記事人気No5
CSS
CSSのフレックスボックスで要素を左右に寄せる方法を完全ガイド!初心者でもわかるjustify-content: space-between
No.6
Java&Spring記事人気No6
CSS
CSSフレックスボックス完全解説|Gridとの違いとFlexboxが得意なレイアウトパターンを初心者向けに理解しよう
No.7
Java&Spring記事人気No7
CSS
CSSの斜体文字を完全解説!初心者でもわかるfont-style: italicの使い方
No.8
Java&Spring記事人気No8
CSS
CSS Flexbox入門!display: flexの基本と適用方法を初心者向けに解説