【2026年7月最新】CSS background-color完全ガイド|背景色の指定・hover・ダークモード・アクセシビリティまで徹底解説
この記事の内容
Webサイトやブログのデザインで、セクションの背景を変えたい・ボタンの背景色を設定したい・カードに色をつけたい——そんな場面は毎日のようにあります。
CSSにはbackground-color(バックグラウンドカラー)という、要素の背景色を自由に設定できるプロパティがあります。
「CSSの書き方がよくわからない」「カラーコードって何?」「backgroundとbackground-colorの違いは?」
そんな疑問を持っている非エンジニアの方でも、この記事を読み終えればbackground-colorプロパティを使いこなせるようになります。
カラー名・HEX・RGB・RGBA・HSLの5種類の指定方法から、hover時の色変化・グラデーションとの違い・セクション設計・ダークモード対応・アクセシビリティ・Claude Codeによる一括変更まで、
現場で使える知識を段階的に解説します。
01 WHAT IS BG-COLOR background-colorプロパティとは 背景色を設定するCSSの基本プロパティ
📚 用語解説
background-colorプロパティ:HTML要素の背景色を指定するCSSプロパティ。「background-color: 色の値;」の形式で記述し、要素のコンテンツ領域とパディング領域を塗りつぶします。テキスト色を変えるcolorプロパティとは異なり、要素の背景(後ろ側)の色を変えます。デフォルト値はtransparent(透明)で、親要素の背景が透けて見える状態になっています。
CSSのbackground-colorプロパティは、HTML要素の「背景」の色を設定します。
文字色を変えるcolorプロパティとは異なり、要素の「後ろ側」の色を塗りつぶすプロパティです。
基本的な書き方はとてもシンプルです。セレクター(対象要素)に対して「background-color: 色;」と書くだけで背景色が設定されます。
/* 基本的な使い方 */
div { background-color: #f8f9fa; }
section { background-color: rgba(220, 38, 38, 0.1); }
button:hover { background-color: #dc2626; }上の3行を見てください。
div要素の背景を薄いグレー(#f8f9fa)に設定し、
section要素の背景を赤の10%透過に設定し、
button要素にマウスが乗ったとき(:hover)の背景を赤(#dc2626)に設定しています。
これだけでWebサイトのデザインに大きな変化をもたらせます。
| プロパティ | 対象 | デフォルト値 | 主な用途 |
|---|---|---|---|
| color | テキスト(文字)の色 | ブラウザ既定(黒系) | 本文・見出し・リンクの文字色 |
| background-color | 要素の背景色 | transparent(透明) | セクション背景・カード・ボタン |
| border-color | 枠線の色 | currentColor | ボーダーの色指定 |
| outline-color | アウトラインの色 | currentColor | フォーカスリング・デバッグ用 |
background-colorが影響する範囲は、要素のコンテンツ領域とパディング領域です。
マージン(margin)は透明なまま、ボーダーは別途border-colorで管理されます。
この「どこまで塗られるか」を理解しておくと、レイアウト崩れを防げます。
colorプロパティはデフォルトで親から子へ継承されますが、background-colorは継承されません。各要素に個別に指定するか、背景色を持つ親の中に配置することで視覚的に見せます。子要素のbackground-colorはデフォルトtransparent(透明)なので、親の背景色が透けて見えます。
background-colorは単独で使うだけでなく、padding・border-radius・box-shadowなどと組み合わせることでカード型デザインやハイライトボックスなど、幅広いUIコンポーネントを作れます。
02 COLOR FORMATS カラー名・HEX・RGB・HSLでの指定 4つの色指定方法を使いこなす
📚 用語解説
CSSの色指定形式:background-colorで使える色の値は大きく4種類。①カラー名(red, blue, white等の英語名)、②HEXコード(#ff0000のような16進数形式)、③RGB(rgb(255,0,0)のように赤緑青の強度を指定)、④HSL(hsl(0, 100%, 50%)のように色相・彩度・明度で指定)があります。それぞれ得意な場面が異なります。
background-colorで使える色の指定方法は4種類あります。
どれを使っても同じ「背景色の設定」ができますが、場面によって使い分けると効率的です。
まずはカラー名(英語での色指定)から見てみましょう。
red・blue・green・white・blackなど、色の英語名をそのまま書ける最もシンプルな方法です。
/* カラー名での背景色指定 */
body { background-color: white; }
.header { background-color: navy; }
.alert { background-color: red; }
.success { background-color: lightgreen; }
.warning { background-color: gold; }
.sidebar { background-color: ghostwhite; }カラー名はシンプルですが、147種類以上の名前が定義されており、ghostwhite・aliceblue・lavenderblushなど詩的な名前もあります。
ただし、デザインの精度を求める場合はHEXやRGBを使うほうが確実です。
次にHEXコード(16進数)での指定を見てみます。
Webデザインで最も広く使われる形式で、#の後に6桁の英数字で色を表現します。
/* HEXコードでの背景色指定 */
body { background-color: #ffffff; } /* 白 */
.hero { background-color: #1a1a1a; } /* ほぼ黒(ダークセクション) */
.card { background-color: #f8f9fa; } /* 薄いグレー(カード背景) */
.cta { background-color: #dc2626; } /* 赤(CTA背景) */
.highlight { background-color: #fef9c3; } /* 薄い黄色(ハイライト) */
.code { background-color: #1e1e1e; } /* 濃いグレー(コードブロック) */HEXコードの読み方:#RRGGBBの形式で、最初の2桁が赤(Red)、次の2桁が緑(Green)、最後の2桁が青(Blue)の強さを16進数(00〜FF)で表します。
#dc2626の場合、dc=220(赤強)、26=38(緑弱)、26=38(青弱)→ 赤系の色になります。
記号
赤 00〜FF
緑 00〜FF
青 00〜FF
続いてRGB形式です。赤・緑・青それぞれの強さを0〜255の数値で指定します。
HEXコードと内部的には同じ色を表しており、数値を直感的に調整できるのが特徴です。
/* RGBでの背景色指定 */
.section-a { background-color: rgb(248, 249, 250); } /* 薄いグレー */
.section-b { background-color: rgb(220, 38, 38); } /* 赤 */
.section-c { background-color: rgb(37, 99, 235); } /* 青 */
.section-d { background-color: rgb(22, 163, 74); } /* 緑 */
.section-e { background-color: rgb(0, 0, 0); } /* 黒 */
.section-f { background-color: rgb(255, 255, 255); } /* 白 */最後にHSL形式です。色相(H: 0〜360度)・彩度(S: 0〜100%)・明度(L: 0〜100%)で色を指定します。
デザイン的な直感と対応しているため、バリエーション展開がしやすいのが特徴です。
/* HSLでの背景色指定 */
.brand-bg { background-color: hsl(0, 72%, 51%); } /* ブランド赤 */
.brand-light { background-color: hsl(0, 72%, 95%); } /* 薄い赤(明度アップ) */
.brand-dark { background-color: hsl(0, 72%, 30%); } /* 濃い赤(明度ダウン) */
.neutral { background-color: hsl(220, 9%, 97%); } /* 薄いグレー背景 */
.info { background-color: hsl(217, 91%, 95%); } /* 薄い青(インフォ背景) */| 形式 | 書き方例 | 特徴 | おすすめ場面 |
|---|---|---|---|
| カラー名 | background-color: white | シンプル・直感的 | プロトタイプ・テスト用 |
| HEX | background-color: #f8f9fa | デザインツールと連携しやすい | 本番コード・デザイン共有 |
| RGB | background-color: rgb(248,249,250) | 数値計算しやすい | 動的に色を変える場合 |
| HSL | background-color: hsl(220,9%,97%) | バリエーション展開しやすい | カラーパレット設計時 |
Figmaなどのデザインツールでは、要素を選択すると右パネルにHEXコードが表示されます。そのままコピーしてCSSに貼り付けるだけでOKです。「デザインとコードの色が違う」というトラブルを防ぐためにも、デザインツールのHEX値をそのまま使いましょう。
03 RGBA TRANSPARENT rgba()で半透明背景を作る 透明度を使ったオーバーレイ・フロスト効果
📚 用語解説
rgba()(Red Green Blue Alpha):RGBに透明度(Alpha)を加えた色指定関数。rgba(赤, 緑, 青, 透明度)の4引数で指定し、透明度(アルファ値)は0(完全透明)〜1(完全不透明)の小数で設定します。背景色に透明度を持たせることで、後ろのコンテンツを透過させながら色を重ねるオーバーレイ効果が作れます。
background-colorの値にrgba()を使うと、半透明の背景色を作れます。
4番目の引数(アルファ値)が透明度で、0が完全透明・1が完全不透明です。
半透明背景の代表的な使い方を見てみましょう。
/* rgba()で半透明背景 */
/* ヒーロー画像の上のテキストボックス */
.hero-text-box {
background-color: rgba(0, 0, 0, 0.6); /* 黒60%透過 */
padding: 32px;
border-radius: 8px;
}
/* 注意喚起ボックス(赤の薄い背景) */
.alert-box {
background-color: rgba(220, 38, 38, 0.1); /* 赤10%透過 */
border: 1px solid rgba(220, 38, 38, 0.3);
border-radius: 8px;
padding: 16px;
}
/* 成功メッセージ(緑の薄い背景) */
.success-box {
background-color: rgba(22, 163, 74, 0.1); /* 緑10%透過 */
border: 1px solid rgba(22, 163, 74, 0.3);
}
/* モーダルオーバーレイ(ページ全体を薄暗くする) */
.modal-overlay {
background-color: rgba(0, 0, 0, 0.5); /* 黒50%透過 */
position: fixed;
inset: 0;
z-index: 100;
}アルファ値の使い分けを覚えておきましょう。
| アルファ値 | 透明度 | 見え方 | 主な用途 |
|---|---|---|---|
| 0 | 完全透明 | 背景が完全に透けて見える | 色を非表示にしたいとき |
| 0.05〜0.1 | ほぼ透明 | うっすら色がつく程度 | インフォ・成功・警告ボックスの背景 |
| 0.3〜0.4 | 薄め | うっすら透けながら色がわかる | タグ・バッジ・ラベルの背景 |
| 0.5 | 半透明 | 背景と色が均等に混ざる | オーバーレイ・フロスト効果 |
| 0.6〜0.7 | やや不透明 | 色が主体でうっすら透ける | ヒーロー上のテキスト背景 |
| 0.85〜0.95 | ほぼ不透明 | わずかに透ける程度 | モダンなフロスト/ガラス効果 |
| 1 | 完全不透明 | 完全に塗りつぶされる | 通常の背景色指定 |
rgba()を使ったモダンなデザインテクニック「グラスモーフィズム」も人気です。
/* グラスモーフィズム(フロストガラス風) */
.glass-card {
background-color: rgba(255, 255, 255, 0.15); /* 白15%透過 */
backdrop-filter: blur(10px); /* 背景をぼかす */
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.25);
border-radius: 16px;
padding: 32px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}backdrop-filter(背景ぼかし)は主要ブラウザ(Chrome・Firefox・Safari)で対応していますが、古いブラウザでは動作しません。グラスモーフィズムを使う場合は、backdrop-filterが効かないブラウザでも読めるよう、rgba()の不透明度を高めにしておくのが安全です。
rgba()と同様にhsla()でも透明度を指定できます。hsla(0, 72%, 51%, 0.1)のように書きます。HSL形式で配色を設計している場合はhsla()を使うと統一感が出ます。また、現代のCSSでは「rgb(220 38 38 / 10%)」のようなスペース区切り新書式も使えます。
rgb(R,G,B)
0〜1の小数
4引数
04 GRADIENT DIFF グラデーション(background: linear-gradient)との違い 単色背景とグラデーション背景の使い分け
📚 用語解説
linear-gradient(線形グラデーション):CSSのグラデーション関数。background(またはbackground-image)プロパティに指定し、2色以上の色が滑らかに変化する背景を作ります。background-colorはあくまで「単色の背景色」なのに対し、グラデーションはbackground-imageとして扱われます。そのためbackground-colorとlinear-gradientを組み合わせてフォールバックを作ることもできます。
background-colorは単色の背景色を設定しますが、
「2色を滑らかにつなぎたい」「グラデーションにしたい」という場合はlinear-gradient(グラデーション関数)を使います。
background-colorとlinear-gradientは混同しやすいので、違いをしっかり理解しましょう。
| 比較項目 | background-color | linear-gradient |
|---|---|---|
| プロパティ | background-color | background または background-image |
| 色数 | 1色のみ | 2色以上(無制限) |
| グラデーション | 不可(単色のみ) | 可能(方向・角度も指定可) |
| フォールバック | グラデーション非対応時の代替として使用可 | background-colorが下にある場合に透けて見える |
| 典型的な用途 | ヘッダー背景・カード背景・ボタン背景 | ヒーローセクション・CTAバナー・アイコン背景 |
/* background-colorは単色 */
.single-color {
background-color: #dc2626; /* 赤一色 */
}
/* linear-gradientはグラデーション */
.gradient-bg {
background: linear-gradient(135deg, #dc2626 0%, #991b1b 100%);
/* 左上の明るい赤から右下の濃い赤へ */
}
/* 上から下へ */
.top-to-bottom {
background: linear-gradient(to bottom, #ffffff 0%, #f8f9fa 100%);
}
/* 左から右へ(3色) */
.three-color {
background: linear-gradient(to right, #dc2626, #f97316, #facc15);
}linear-gradientはbackgroundプロパティ(background-colorではなく)に指定するのが正しい書き方です。
background-imageにも指定できますが、backgroundが最もシンプルです。
また、background-colorをフォールバックとして使うテクニックがあります。
グラデーションが表示されない古いブラウザでも、単色の背景が見えるようにする方法です。
/* グラデーション非対応ブラウザ向けフォールバック */
.hero-section {
background-color: #dc2626; /* フォールバック(グラデーション非対応時) */
background: linear-gradient(135deg, #dc2626 0%, #991b1b 100%);
/* 対応ブラウザではグラデーションが適用される */
}radialtual-gradient(放射状グラデーション)やconic-gradient(円錐グラデーション)もbackgroundプロパティで使えます。
/* 放射状グラデーション */
.radial-bg {
background: radial-gradient(circle at center, #ffffff 0%, #f8f9fa 100%);
}
/* 円錐グラデーション(ドーナツ状) */
.conic-bg {
background: conic-gradient(from 0deg, #dc2626, #f97316, #facc15, #dc2626);
}
/* グラデーション + background-color の重ね */
.overlay-gradient {
background-color: #1a1a1a;
background-image: linear-gradient(rgba(220,38,38,0.3) 0%, transparent 100%);
}グラデーションのコードを手書きするのは大変です。cssgradient.io や CSS Gradient Generator(https://cssgradient.io/)などのオンラインツールを使えば、ビジュアルで色を選んでコードを自動生成できます。生成されたコードをそのままコピーするだけでOKです。
05 BOX STYLING ボックス全体への背景色設定 カード・ヘッダー・フッター・サイドバーへの応用
📚 用語解説
CSSボックスモデル:HTMLの各要素は「ボックス」として扱われ、コンテンツ領域・パディング・ボーダー・マージンの4層で構成されます。background-colorはコンテンツ領域とパディング領域を塗りつぶします(マージンとボーダーは含まない)。paddingを広げると塗りつぶされる範囲も広がります。
background-colorはWebサイトのあらゆる「ボックス(箱型要素)」に使えます。
ヘッダー・フッター・カード・サイドバー・モーダル——これらすべての背景色を設定できます。
実際のWebサイトで使われる代表的なパターンを見てみましょう。
/* サイト全体のデフォルト背景 */
body {
background-color: #ffffff; /* 白背景 */
}
/* ヘッダー */
header {
background-color: #1a1a1a; /* ダークヘッダー */
color: #ffffff;
padding: 16px 32px;
}
/* ナビゲーション */
nav {
background-color: #f8f9fa; /* 薄いグレー */
border-bottom: 1px solid #e5e7eb;
}
/* メインコンテンツエリア */
main {
background-color: #ffffff;
}
/* サイドバー */
aside {
background-color: #f9fafb; /* 白よりわずかに薄い */
}
/* フッター */
footer {
background-color: #111827; /* 非常に濃いネイビー */
color: #e5e7eb;
padding: 48px 32px;
}カードコンポーネント(情報を囲むボックス)の実装例も見てみましょう。
background-colorにborder-radius・box-shadowを組み合わせると、浮き上がったカードデザインになります。
/* カードコンポーネント */
.card {
background-color: #ffffff;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
padding: 24px;
margin: 16px 0;
}
/* カードバリエーション */
.card-primary {
background-color: #dc2626; /* 赤背景 */
color: #ffffff;
}
.card-info {
background-color: rgba(37, 99, 235, 0.05); /* 薄い青 */
border: 1px solid rgba(37, 99, 235, 0.2);
}
.card-success {
background-color: rgba(22, 163, 74, 0.05); /* 薄い緑 */
border: 1px solid rgba(22, 163, 74, 0.2);
}
.card-warning {
background-color: rgba(217, 119, 6, 0.05); /* 薄いオレンジ */
border: 1px solid rgba(217, 119, 6, 0.2);
}背景色はpadding(内側の余白)と組み合わせることで「塗られている範囲」が広がります。
paddingを0にすると背景はテキストの後ろだけに収まりますが、paddingを広げるとボックス全体が色づきます。
/* paddingで背景の広がりをコントロール */
.narrow-bg {
background-color: #fef9c3;
padding: 0; /* テキスト幅分だけ背景が見える */
}
.wide-bg {
background-color: #fef9c3;
padding: 16px 24px; /* 上下16px 左右24pxの余白分も背景が広がる */
border-radius: 8px;
}
/* インラインハイライト */
mark {
background-color: #fef08a; /* 黄色(マーカー風) */
padding: 2px 4px;
border-radius: 3px;
}| UI要素 | 推奨背景色 | 理由 |
|---|---|---|
| ページ全体(body) | #ffffff または #fafafa | 白・白に近いグレーで読みやすく |
| ヘッダー | #1a1a1a または #dc2626 | ダークまたはブランドカラーで存在感 |
| カード | #ffffff + shadow | 白に影をつけて浮き上がり感 |
| コードブロック | #1e1e1e | 濃いグレーでコードが際立つ |
| ヒーローセクション | グラデーションまたはブランドカラー | 最初に目に入るセクション |
| フッター | #111827 または #1a1a1a | ダークで締まりのある印象 |
| 注意ボックス | rgba(220,38,38,0.05〜0.1) | ソフトな赤で目立たせる |
| 成功ボックス | rgba(22,163,74,0.05〜0.1) | ソフトな緑でポジティブに |
background-colorにborder-radiusを組み合わせると、角が丸いボックスになります。border-radius: 4pxで小さく丸く、8〜12pxでモダンなカード風、50%または9999pxで完全な円/カプセル型になります。CTAボタンやバッジ・タグのデザインに欠かせないテクニックです。
06 HOVER EFFECT hover時に背景色を変える(:hover) マウスオーバーで色が変わるインタラクティブUI
📚 用語解説
:hover 擬似クラス:CSSセレクターの一種で、マウスカーソルが要素の上に乗っているときだけ適用されます。「セレクター:hover { スタイル }」の形式で記述します。background-colorと組み合わせることで「マウスを乗せると背景色が変わる」インタラクティブな効果を作れます。ボタン・リンク・ナビゲーション・カードなどのUX向上に必須のテクニックです。
Webサイトで「ボタンにマウスを乗せると色が変わる」という動作を見たことはあるでしょうか。
これはCSSの:hover擬似クラスを使って実現しています。
background-colorと:hoverを組み合わせることで、簡単にインタラクティブなUIが作れます。
/* 基本のhoverエフェクト */
button {
background-color: #dc2626; /* 通常時:赤 */
color: #ffffff;
padding: 12px 24px;
border: none;
border-radius: 8px;
cursor: pointer;
}
button:hover {
background-color: #b91c1c; /* ホバー時:濃い赤 */
}
/* transitionで滑らかに */
button {
background-color: #dc2626;
color: #ffffff;
padding: 12px 24px;
border: none;
border-radius: 8px;
cursor: pointer;
transition: background-color 0.2s ease; /* 0.2秒でなめらかに変化 */
}
button:hover {
background-color: #b91c1c;
}transitionプロパティを追加すると、色の変化がなめらかなアニメーションになります。
「0.2s ease」は「0.2秒かけてイージング(自然な加速・減速)で変化する」という意味です。
これだけでUIの完成度が大きく上がります。
ボタン以外にもホバーエフェクトはさまざまな場面で使えます。
/* ナビゲーションリンク */
nav a {
background-color: transparent;
color: #1a1a1a;
padding: 8px 16px;
text-decoration: none;
border-radius: 6px;
transition: background-color 0.15s ease;
}
nav a:hover {
background-color: rgba(0, 0, 0, 0.06); /* 薄い黒で浮き上がり感 */
}
/* テーブル行のhover */
tr {
transition: background-color 0.15s ease;
}
tr:hover {
background-color: rgba(37, 99, 235, 0.04); /* 薄い青 */
}
/* カードのhover */
.card {
background-color: #ffffff;
border-radius: 12px;
padding: 24px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
transition: background-color 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
background-color: #fafafa; /* わずかに暗く */
box-shadow: 0 8px 24px rgba(0,0,0,0.15); /* 影を強く */
}アウトラインスタイル(外枠だけのボタン)のhoverパターンも見てみましょう。
通常時は透明背景・有色ボーダーで、ホバー時に背景色が塗られるデザインです。
/* アウトラインボタンのhover */
.btn-outline {
background-color: transparent; /* 通常時:透明 */
color: #dc2626;
border: 2px solid #dc2626;
padding: 12px 24px;
border-radius: 8px;
cursor: pointer;
transition: background-color 0.2s ease, color 0.2s ease;
}
.btn-outline:hover {
background-color: #dc2626; /* ホバー時:赤で塗りつぶす */
color: #ffffff; /* 文字色も白に切り替え */
}| パターン | 通常時 | ホバー時 | 用途 |
|---|---|---|---|
| 通常ボタン(filled) | 塗りつぶし色 | より濃い同系色 | 主要CTA・送信ボタン |
| アウトラインボタン | 透明背景 | 塗りつぶし色 | サブアクション・キャンセル |
| テキストリンク | 透明背景 | 薄い背景色 | ナビ・アンカー |
| カード | 白背景 | 薄いグレー背景 | クリッカブルなカード |
| テーブル行 | 白背景 | 薄い青背景 | 選択可能な行 |
hoverで色を変えるだけでは「パッ」と瞬時に変わってしまい、少し野暮ったい印象になります。transition: background-color 0.2s ease; を元のスタイルに追加するだけで、なめらかなアニメーション付きの洗練されたホバーエフェクトになります。0.15〜0.25秒が自然に見えるおすすめの時間です。
:hoverの背景色変化はマウスを使うPCでは快適ですが、スマートフォン・タブレットなどのタッチデバイスではホバー状態が発生しません(タップ時に一瞬適用される場合もありますが安定しません)。タッチデバイス向けのアクティブ状態には:activeを使いましょう。
07 SECTION DESIGN セクション別の背景色でデザインにメリハリ 情報を区切り視覚的なリズムを生み出す
Webサイトの縦スクロールで「情報の区切り」を視覚的に伝える方法として、
セクションごとに背景色を変えるテクニックがあります。
白・薄いグレー・ブランドカラー・ダークを交互に使うことで、自然なリズムが生まれます。
代表的なセクション配色パターンを見てみましょう。
/* セクション別背景色の典型パターン */
/* ヒーローセクション */
.section-hero {
background-color: #1a1a1a; /* ダーク */
color: #ffffff;
}
/* 特徴紹介セクション */
.section-features {
background-color: #ffffff; /* 白(デフォルト) */
}
/* 実績・数字セクション */
.section-stats {
background-color: #f9fafb; /* 薄いグレー */
}
/* CTAセクション */
.section-cta {
background-color: #dc2626; /* ブランドカラー(赤) */
color: #ffffff;
}
/* 料金プランセクション */
.section-pricing {
background-color: #ffffff;
}
/* FAQセクション */
.section-faq {
background-color: #f9fafb;
}
/* フッター */
footer {
background-color: #111827; /* ダークネイビー */
color: #e5e7eb;
}セクション配色を設計するときの基本ルールがあります。
「白→グレー→白→カラー→白」というリズムを繰り返すだけでも、まとまったデザインになります。
ダーク/カラー
白
薄グレー
ブランドカラー
薄グレー
ダーク
CSS変数(カスタムプロパティ)でセクション背景色を管理すると、
あとから一括変更しやすくなります。
/* CSS変数でセクション背景を管理 */
:root {
--bg-page: #ffffff;
--bg-subtle: #f9fafb;
--bg-dark: #111827;
--bg-brand: #dc2626;
--bg-brand-subtle: rgba(220, 38, 38, 0.05);
}
.section-features { background-color: var(--bg-page); }
.section-stats { background-color: var(--bg-subtle); }
.section-cta { background-color: var(--bg-brand); color: #fff; }
.section-faq { background-color: var(--bg-subtle); }
footer { background-color: var(--bg-dark); color: #e5e7eb; }
/* テーマカラーを変えたいときは:rootの変数だけ修正すればOK */
/* --bg-brand: #2563eb; に変えると全セクションのブランドカラーが青に切り替わる */ダークセクションではテキストの色も同時に変える必要があります。
背景が暗い場合は文字を白系に、背景が明るい場合は文字を黒系にします。
/* ダークセクション内のテキスト色 */
.section-dark {
background-color: #111827;
color: #e5e7eb; /* テキストを白系に */
}
.section-dark h2 {
color: #f9fafb; /* 見出しはより明るく */
}
.section-dark p {
color: #d1d5db; /* 本文は少し落ち着いた白 */
}
.section-dark a {
color: #60a5fa; /* リンクは青より明るく */
}| セクションタイプ | 推奨背景色 | 文字色 | 効果 |
|---|---|---|---|
| ヒーロー(FV) | #1a1a1a または グラデーション | #ffffff | 最初のインパクト |
| 特徴説明 | #ffffff | #1f2937 | 清潔感・読みやすさ |
| 数値・実績 | #f9fafb | #1f2937 | 軽い区切り |
| CTA・訴求 | #dc2626(ブランドカラー) | #ffffff | 行動を促す強調 |
| お客様の声 | #f8f9fa または #fafafa | #1f2937 | 中立的・信頼感 |
| FAQ | #f9fafb | #1f2937 | コンテンツ区切り |
| フッター | #111827 または #1a1a1a | #e5e7eb | 締まった終わり感 |
すべてのセクションに背景色をつける必要はありません。白(#ffffff)のままのセクションを意図的に挟むことで、カラーセクションが際立ちます。「白→グレー→白→カラー」のリズムが、メリハリのあるページデザインの基本です。
08 DARK MODE ダークモード対応 prefers-color-schemeで自動切り替え
📚 用語解説
prefers-color-scheme メディアクエリ:ユーザーのOSまたはブラウザのカラーモード設定(ライト/ダーク)を検知するCSSのメディアクエリ。@media (prefers-color-scheme: dark) ブロック内にスタイルを書くと、ダークモードに設定しているユーザーに自動でそのスタイルが適用されます。現代のWebサイトでは必須の対応となっています。
スマートフォンやパソコンのOSには「ダークモード」設定があり、
このモードをONにしているユーザーは増え続けています。
background-colorをダークモードに対応させることで、すべてのユーザーに快適な閲覧体験を提供できます。
ダークモード対応のCSSを書いてみましょう。
/* ライトモード(デフォルト) */
body {
background-color: #ffffff;
color: #1f2937;
}
.card {
background-color: #ffffff;
border: 1px solid #e5e7eb;
}
.hero {
background-color: #f9fafb;
}
/* ダークモード(OSがダークモードの場合に自動適用) */
@media (prefers-color-scheme: dark) {
body {
background-color: #111827; /* 濃いネイビー */
color: #f3f4f6;
}
.card {
background-color: #1f2937; /* 少し明るいネイビー */
border: 1px solid #374151;
}
.hero {
background-color: #0f172a; /* より濃いネイビー */
}
}CSS変数(カスタムプロパティ)を使うと、ダークモード対応がよりシンプルに書けます。
ライト/ダークモードの切り替えは変数の値だけを変えて、本文スタイルでは変数を参照するだけです。
/* CSS変数によるダークモード対応(推奨パターン) */
:root {
/* ライトモードのデフォルト値 */
--bg-page: #ffffff;
--bg-card: #ffffff;
--bg-subtle: #f9fafb;
--bg-header: #1a1a1a;
--text-primary: #1f2937;
--text-secondary: #6b7280;
--border-color: #e5e7eb;
}
@media (prefers-color-scheme: dark) {
:root {
/* ダークモードの値に上書き */
--bg-page: #111827;
--bg-card: #1f2937;
--bg-subtle: #0f172a;
--bg-header: #0f172a;
--text-primary: #f3f4f6;
--text-secondary: #9ca3af;
--border-color: #374151;
}
}
/* 本文スタイルでは変数を参照するだけ */
body {
background-color: var(--bg-page);
color: var(--text-primary);
}
.card {
background-color: var(--bg-card);
border: 1px solid var(--border-color);
}
header {
background-color: var(--bg-header);
}ダークモードのカラーパレット設計にはコツがあります。
ライトモードの「黒〜白のグラデーション」を、
ダークモードでは「白〜黒のグラデーション」に反転させるイメージです。
| 用途 | ライトモード | ダークモード | 役割 |
|---|---|---|---|
| ページ背景 | #ffffff(純白) | #111827(濃いネイビー) | ベース背景 |
| カード・モジュール | #ffffff + shadow | #1f2937(やや明るいネイビー) | 背景より一段明るく |
| サイドバー・サブ背景 | #f9fafb | #0f172a(より濃い) | 背景より一段暗く |
| ボーダー | #e5e7eb | #374151 | 境界線 |
| 本文テキスト | #1f2937(濃いグレー) | #f3f4f6(薄いグレー) | 読みやすい対比 |
| 補足テキスト | #6b7280 | #9ca3af | サブ情報 |
background-colorはCSSで対応できますが、imgタグで埋め込んだ画像はそのまま表示されます。ロゴや図解がライトモード用の白背景前提のデザインの場合、ダークモードで見づらくなることがあります。SVG画像であればCSSでfillを変更できます。JPG/PNGはメディアクエリでpicture要素を切り替えるか、透過PNGを使うのが一般的な対応策です。
09 BG VS BG-COLOR background-colorとbackgroundの違い 混同しやすい2つのプロパティを正しく理解する
📚 用語解説
backgroundショートハンドプロパティ:background-color・background-image・background-position・background-size・background-repeat・background-attachment・background-originなどのbackground関連プロパティを一括で指定できるショートハンド(省略形)プロパティ。background: #dc2626 url(image.jpg) no-repeat center/cover のように書けますが、単色の背景色だけを設定したい場合はbackground-colorを使うのが明確で安全です。
CSSにはbackground-color(背景色のみ)とbackground(背景に関するすべての設定)という似た2つのプロパティがあります。混同しやすいので違いを理解しておきましょう。
| 比較項目 | background-color | background(ショートハンド) |
|---|---|---|
| 設定できるもの | 背景色のみ | 背景色・画像・位置・サイズ・繰り返しなど |
| 書き方例 | background-color: #dc2626 | background: #dc2626 url(img.jpg) no-repeat center/cover |
| 上書きの影響 | 色だけを上書き | 他の背景設定も上書きしてしまうことがある |
| 読みやすさ | 意図が明確でわかりやすい | 複数設定をまとめて書けるが複雑になりやすい |
| 推奨場面 | 背景色だけ設定するとき | 背景画像と色を同時に設定するとき |
backgroundショートハンドで背景色を設定した場合の落とし穴を見てみましょう。
/* 落とし穴の例 */
.card {
/* 背景色と画像を両方設定 */
background: #f8f9fa url("pattern.svg") repeat;
}
.card.active {
/* これはbackground-colorだけでなく
background-imageやbackground-repeatも
"なし"(初期値)にリセットしてしまう! */
background: #dc2626;
}
/* 正しい書き方 */
.card.active {
background-color: #dc2626; /* 色だけを上書き。画像設定は維持される */
}backgroundを上書きすると、前に設定した背景画像や繰り返し設定が消えてしまう場合があります。
背景色だけを変えたいときはbackground-colorを使うのが安全です。
/* backgroundショートハンドの書き方例 */
/* 背景色のみ(background-colorと同じ効果) */
.simple { background: #f8f9fa; }
/* 背景画像のみ(色は透明のまま) */
.with-image { background: url("hero.jpg") no-repeat center/cover; }
/* 色 + 画像(色はフォールバック) */
.with-both {
background: #1a1a1a url("hero.jpg") no-repeat center/cover;
/* 画像が読めない場合に#1a1a1aが表示される */
}
/* グラデーション(background-imageとして動作) */
.gradient { background: linear-gradient(135deg, #dc2626, #991b1b); }
/* グラデーション + background-color のフォールバック */
.gradient-safe {
background-color: #dc2626; /* まずcolor指定 */
background-image: linear-gradient(135deg, #dc2626, #991b1b); /* 対応ブラウザはこちらが適用 */
}一般的なルールとして覚えておきましょう。
background: #dc2626; と書くと、background-imageは初期値の「none」に、background-repeatは「repeat」に、background-positionは「0% 0%」にリセットされます。前に設定していた背景画像などの設定が消えてしまうので注意が必要です。意図的に消したいのでなければ background-color: #dc2626; と書きましょう。
10 ACCESSIBILITY アクセシビリティ(コントラスト比) すべての人に見やすいデザインを作る
📚 用語解説
コントラスト比(Contrast Ratio):テキスト色と背景色の輝度(明るさ)の比率。数値が大きいほど見やすい。WCAG(Webコンテンツアクセシビリティガイドライン)では通常テキスト(18px未満)に4.5:1以上を推奨(AA基準)。大きいテキスト(18px以上または14px太字)は3:1以上でOK。高齢者・視力が弱い方・色覚多様性がある方への配慮として重要です。
Webサイトのbackground-colorを設定するとき、見落としがちな重要な要素がコントラスト比です。
おしゃれで薄いグレーのテキストをグレーがかった背景に配置する——よく見るデザインですが、高齢者や視力の弱い方には読みにくいことがあります。
コントラスト比はテキスト色と背景色の輝度の比率で計算されます。
たとえば白背景(#ffffff)に黒文字(#000000)は21:1という最高のコントラスト比です。
逆に白背景に薄いグレー文字は2:1や3:1になり、WCAGの基準を下回ることがあります。
/* コントラスト不足の例(NG) */
.low-contrast {
background-color: #f5f5f5; /* 薄いグレー背景 */
color: #c0c0c0; /* 薄いグレー文字 */
/* コントラスト比: 約1.6:1 — 非常に低い */
}
/* よく見るNG例 */
.muted-bad {
background-color: #ffffff; /* 白背景 */
color: #bbbbbb; /* 薄いグレー文字 */
/* コントラスト比: 約2.5:1 — WCAAを大きく下回る */
}
/* 十分なコントラストの例(OK) */
.good-contrast {
background-color: #ffffff; /* 白背景 */
color: #595959; /* ダークグレー文字 */
/* コントラスト比: 7.0:1 — WCAG AAA適合 */
}
/* 本文テキストの定番 */
body {
background-color: #ffffff;
color: #1f2937; /* コントラスト比: 約16:1 — 非常に高い */
}| WCAG基準 | テキストサイズ | 必要コントラスト比 | 適合レベル |
|---|---|---|---|
| AA(推奨最低基準) | 通常テキスト(18px未満) | 4.5:1以上 | AA適合 |
| AA | 大きいテキスト(18px以上) | 3:1以上 | AA適合 |
| AA | 14px以上の太字テキスト | 3:1以上 | AA適合 |
| AAA(最高基準) | 通常テキスト | 7:1以上 | AAA適合 |
| AAA | 大きいテキスト | 4.5:1以上 | AAA適合 |
| 非適合 | 全サイズ | 4.5:1未満(通常) | 改善が必要 |
背景色と文字色の組み合わせを選ぶときは、事前にコントラスト比を確認しましょう。
無料のオンラインツールで簡単にチェックできます。
/* 白背景での文字色コントラスト比の目安 */
/* コントラスト比が高い(良い)順 */
.text-black { color: #000000; } /* 21:1 — 最高 */
.text-900 { color: #1a1a1a; } /* 約18:1 — 非常に高い */
.text-800 { color: #333333; } /* 約12.6:1 — WCAG AAA適合 */
.text-700 { color: #595959; } /* 約7:1 — WCAG AAA適合 */
/* コントラスト比がAA基準ギリギリ */
.text-600 { color: #767676; } /* 4.54:1 — WCAG AA適合(ギリギリ) */
/* コントラスト比がAA基準未満(NG) */
.text-500 { color: #909090; } /* 3.5:1 — AA不適合 */
.text-400 { color: #aaaaaa; } /* 2.3:1 — AA不適合 */
.text-300 { color: #cccccc; } /* 1.6:1 — 非常に低い */
/* 白背景で使う「補足テキスト」の安全な下限 */
.text-muted-safe { color: #6b7280; } /* 4.6:1 — AA適合 */
/* NG:よくやりがちなミス */
.text-muted-bad { color: #9ca3af; } /* 2.9:1 — AA不適合 */薄いグレーのテキストはおしゃれに見えますが、アクセシビリティの観点では問題があります。#6b7280(グレー)と#ffffff(白背景)のコントラスト比は4.6:1でギリギリAA適合です。これより薄い色はデザイン上「読めているように見えても」アクセシビリティ基準を下回ります。#6b7280を補足テキストの最薄ラインとして覚えておきましょう。
赤(#dc2626)や青(#2563eb)など濃いブランドカラーの背景に白いテキストを置く場合も、コントラスト比を確認しましょう。#dc2626背景 + 白文字は約5.1:1でAA適合ですが、薄いブランドカラー(#fca5a5など)の背景には白文字では不適合になります。
11 AI AUTOMATION Claude Codeでテーマカラーを一括変更 AIに指示するだけでCSSを丸ごとリファクタリング
📚 用語解説
Claude Code(クロードコード):Anthropicが提供するAIコーディングアシスタント。チャット形式でCSSのリファクタリング・カラーパレット設計・ダークモード対応・アクセシビリティチェックをAIに依頼できます。「このCSSのbackground-colorを全部CSS変数に置き換えて」のような日本語の指示だけで、数百行のCSSを自動リファクタリングします。非エンジニアでも使えるレベルのシンプルな指示で、プロレベルのCSS改善が実現します。
background-colorを使いこなすための知識はひととおり解説しました。
ただ「既存のサイトのテーマカラーを変えたい」「CSS変数を使って整理したい」
「ダークモード対応を追加したい」——そんな作業を全部AIに任せる方法があります。
それがClaude Code(クロードコード)です。
たとえば、サイト全体のbackground-colorが#dc2626(赤)で統一されていたものを#2563eb(青)に変えたい場合を考えてみましょう。
手動ではCSSファイルを開いてすべての#dc2626を探して置換する作業が必要ですが、Claude Codeなら一行の指示でできます。
# Claude Codeへの指示例(プロンプト) """ 以下のCSSファイルのテーマカラーを変更してください。 現在: #dc2626(赤系) 変更後: #2563eb(青系) ・background-colorに使われているテーマカラーをすべて変更 ・ホバー色(より濃い色)も自動で調整 ・CSS変数(--bg-brand など)があればそちらも更新 ・コントラスト比がWCAG AA基準(4.5:1)を下回る場合は警告を出して 対象ファイル: style.css """
Claude Codeは上のような指示を受け取ると、CSSファイルを分析して自動でテーマカラーを変更します。
さらに「ホバー色が明るすぎてコントラスト比が足りない」などの問題も自動で検出・修正します。
もっと大規模なリファクタリングも可能です。
# CSS変数への一括移行指示 """ このCSSファイルのbackground-colorを全部CSS変数に移行してください。 手順: 1. ユニークな背景色の値を一覧化する 2. 意味のある変数名をつける(例: --bg-primary, --bg-card, --bg-hero等) 3. :rootに変数を定義する 4. 既存のbackground-colorの値を変数参照(var())に置き換える 5. ダークモード対応の@media (prefers-color-scheme: dark)も追加する ファイル: style.css(300行) """
このような指示を出すと、Claude Codeは300行のCSSを分析して変数化し、ダークモード対応を追加したコードを生成します。
Claude Codeに渡す
(テーマ変更・変数化等)
・自動リファクタリング
・コピーして使う
Claude Codeに依頼できるbackground-color関連のタスクをまとめました。
# Claude Codeが生成するカラーパレットの例
:root {
/* ========== Light Mode ========== */
/* Brand Colors */
--bg-brand: #dc2626; /* メインブランドカラー */
--bg-brand-hover: #b91c1c; /* ホバー時(より濃い) */
--bg-brand-light: #fef2f2; /* 薄い赤(アラートボックス等) */
--bg-brand-subtle: rgba(220, 38, 38, 0.08); /* 非常に薄い赤 */
/* Page Backgrounds */
--bg-page: #ffffff; /* ページ背景 */
--bg-card: #ffffff; /* カード背景 */
--bg-subtle: #f9fafb; /* サブセクション背景 */
--bg-header: #1a1a1a; /* ヘッダー背景 */
--bg-footer: #111827; /* フッター背景 */
/* Semantic Colors */
--bg-success: rgba(22, 163, 74, 0.08);
--bg-warning: rgba(217, 119, 6, 0.08);
--bg-error: rgba(220, 38, 38, 0.08);
--bg-info: rgba(37, 99, 235, 0.08);
/* Text Colors */
--text-primary: #1f2937;
--text-secondary: #6b7280; /* 最薄ライン(WCAG AA適合) */
--text-muted: #9ca3af; /* 装飾用のみ(本文には使わない) */
/* Border */
--border: #e5e7eb;
}
@media (prefers-color-scheme: dark) {
:root {
--bg-brand: #f87171;
--bg-brand-hover: #fca5a5;
--bg-brand-light: #450a0a;
--bg-brand-subtle: rgba(248, 113, 113, 0.12);
--bg-page: #111827;
--bg-card: #1f2937;
--bg-subtle: #0f172a;
--bg-header: #0f172a;
--bg-footer: #030712;
--bg-success: rgba(74, 222, 128, 0.12);
--bg-warning: rgba(251, 191, 36, 0.12);
--bg-error: rgba(248, 113, 113, 0.12);
--bg-info: rgba(96, 165, 250, 0.12);
--text-primary: #f3f4f6;
--text-secondary: #9ca3af;
--text-muted: #6b7280;
--border: #374151;
}
}このようなカラーパレットを一から手書きしようとすると相当な時間がかかりますが、
Claude Codeへの指示なら数十秒で完成します。
コントラスト比の計算もAIが自動でチェックしてくれます。
CSSの文法を完全に理解していなくても、「この色にしたい」「こういうデザインにしたい」という要望を日本語で伝えるだけでClaudeがCSSを生成します。生成されたコードをコピーしてCSSファイルに貼り付けるだけで、すぐに反映できます。AI鬼管理の講座でも、CSS設定はClaude Codeで生成するのが最速・最安全と推奨しています。
Claude Codeが生成したCSSは高品質ですが、サイト固有の構造に依存する部分は手動確認が必要です。本番環境に適用する前に、開発環境またはステージング環境で動作確認を行いましょう。特にbackground-colorの上書き競合(Specificity)は実際にブラウザで確認するのが確実です。
background-colorプロパティの基本から応用まで、セクション別配色・ダークモード・アクセシビリティ・Claude Codeによる一括変更まで徹底解説しました。
「Webサイトの背景色を自分で変えられるようになりたい」「CSSが難しくてWebデザインに踏み出せない」——そんな方に向けて、AI鬼管理ではClaude Codeを活用した実践的なWeb制作・業務自動化の支援を提供しています。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
AI活用を自社で回せるようになりたい方へ
AI鬼管理
Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。
よくある質問
Q. CSS background-colorとは何ですか?
A. CSSのbackground-colorプロパティは、HTML要素の背景色を設定するプロパティです。「background-color: #f8f9fa;」のように書くと、その要素のコンテンツ領域とパディング領域が指定した色で塗りつぶされます。デフォルト値はtransparent(透明)で、文字色を変えるcolorプロパティとは別に使います。
Q. background-colorで使える色の指定方法は何種類ありますか?
A. 主に4種類あります。①カラー名(red, white, navy等)、②HEXコード(#dc2626等の16進数)、③RGB(rgb(220,38,38)等の0〜255指定)、④HSL(hsl(0,72%,51%)等の色相・彩度・明度指定)です。半透明にしたい場合はRGBAやHSLA(アルファ値付き)を使います。本番コードにはHEXが最もよく使われます。
Q. background-colorで半透明の背景色にするにはどうすればいいですか?
A. rgba()関数を使います。rgba(赤, 緑, 青, 透明度)の形式で、透明度は0(完全透明)〜1(完全不透明)の小数で指定します。例えばreba(220,38,38,0.1)は赤を10%の透明度(ほぼ透明)で適用します。警告ボックスの背景にreba(220,38,38,0.08)のような薄い赤を使うのがよくあるパターンです。
Q. background-colorとbackgroundプロパティの違いは何ですか?
A. background-colorは背景色だけを設定するプロパティです。backgroundはショートハンドプロパティで、背景色・背景画像・位置・サイズなどを一括で設定できます。背景色だけを変えたい場合はbackground-colorを使うのが安全です。backgroundで上書きすると、以前設定した背景画像などの設定が消えてしまうことがあります。
Q. ホバー時にbackground-colorを変えるにはどうすればいいですか?
A. CSS擬似クラスの:hoverを使います。「.btn:hover { background-color: #b91c1c; }」のように通常のbackground-colorとは別に書きます。さらにtransition: background-color 0.2s ease; を元のスタイルに追加すると、色の変化がなめらかなアニメーションになり、UIの完成度が上がります。
Q. ダークモードでbackground-colorを自動切り替えするにはどうすればいいですか?
A. CSSの@media (prefers-color-scheme: dark) を使います。このメディアクエリのブロック内にダークモード用の色を書くと、ユーザーのOS設定がダークモードの場合に自動で適用されます。CSS変数(--bg-page: #111827 等)と組み合わせると管理しやすくなります。Claude Codeにダークモード対応CSSの生成を依頼することもできます。
Q. background-colorを設定するときのアクセシビリティの注意点は何ですか?
A. テキスト色と背景色のコントラスト比がWCAG AA基準(通常テキストで4.5:1以上)を満たしているか確認することが重要です。白背景(#ffffff)では#767676よりも薄い色はAA基準を下回ります。補足テキストに使う最薄ラインは#6b7280(コントラスト比4.6:1)が目安です。WebAIM Contrast Checkerなどのツールで無料チェックできます。
Q. Claude Codeを使うとbackground-colorの設定がどう変わりますか?
A. Claude Codeに「このCSSのテーマカラーを変えて」「background-colorをCSS変数に移行して」「ダークモード対応を追加して」など日本語で指示するだけで、AIがCSSを自動的に書き直します。手動では数時間かかるリファクタリングが数十秒で完了し、コントラスト比のチェックまでAIがやってくれます。非エンジニアでも活用できるツールです。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
Claude Code を業務に落とし込む
専門研修コース一覧
受講者本人の業務を題材に、「使いこなせる」状態になるまで伴走する研修プログラム。1対1特化型・ハンズオン・法人講座の3コースを展開中。業務特化・実装まで踏み込むタイプのClaude Code研修です。
研修コース一覧を見る →AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。




