CSSカラー記法・sRGB・透明度
HEXカラーコードの仕組み
6桁を赤・緑・青のペアとして読み、3桁の短縮形と8桁のアルファを理解し、記法だけを見た目やアクセシビリティ判定と混同せずに使うための実践ガイドです。
HEXカラーコード
HEXカラーコードは何を意味するのか
HEXカラーコードは、sRGBの成分を短く書くための命令です。#RRGGBBではRRが赤、GGが緑、BBが青を表し、各ペアは00からFF、10進数では0から255まで動きます。CSSは#RGBの短縮形、透明度を含む#RGBA、完全なアルファのペアを持つ#RRGGBBAAも受け付けます。HEXカラーコードが示すのは数値のチャンネルであり、塗料の普遍的な名前、校正済み画面での見え方、アクセシビリティの合格を自動で保証するものではありません。値を正確に読み、保存し、実際の背景や用途で試すことが大切です。
覚えておきたい4つの基本
- HEXカラーコード: 6桁はsRGB空間の赤・緑・青を2桁ずつ並べたものです
- HEXカラーコード: 3桁は各桁を複製して展開するため、#3A7は#33AA77と完全に同じです
- HEXカラーコード: 4桁と8桁ではアルファが最後に付き、00は完全な透明、FFは完全な不透明です
- HEXカラーコード: 同じ値でも画面、背景、周囲の色で見え方が変わるため、記法は判断材料の一部です
CSSで使える4種類のHEX表記
CSS Color Module Level 4は有効な長さを4種類定義しています。次の表でチャンネル順、精度、透明度を分けて確認すると、似たHEXカラーコードを誤って同じ形式として扱わずに済みます。
| 形式 | チャンネル順 | 例 | 同じ値 | 表現できる状態 |
|---|---|---|---|---|
| #RGB · HEXカラーコード | 赤・緑・青 | #3A7 | #33AA77 | 4,096色 |
| #RGBA · HEXカラーコード | 赤・緑・青・アルファ | #3A7C | #33AA77CC | 4,096色×16段階のアルファ |
| #RRGGBB · HEXカラーコード | 赤・緑・青 | #33AA77 | rgb(51 170 119) | 16,777,216色 |
| #RRGGBBAA · HEXカラーコード | 赤・緑・青・アルファ | #33AA77CC | rgb(51 170 119 / 80%) | 16,777,216色×256段階のアルファ |
HEXカラーコード: 各チャンネルを16進数として読む
16進数は0から9に加え、10から15をAからFで表す合計16個の記号を使います。2個の記号で16×16、つまり256通りを記録できます。6桁のHEXカラーコードでは最初のペアが赤、次が緑、最後が青です。00は最小、FFは10進数255の最大です。#2468ACなら赤は0x24で36、緑は0x68で104、青は0xACで172となり、rgb(36 104 172)は同じsRGB座標を別の書式で表します。HEXカラーコードを読むときは、最初から2桁ずつ区切ると順序を間違えにくくなります。
すべてのペアを暗算できなくても、HEXカラーコードは十分に扱えます。00に近いペアはそのチャンネルが弱く、FFに近いペアは強いと読めます。#777777のように3つのペアが同じなら、赤・緑・青が等しいので中立なグレーです。ただしコード、デザイントークン、コントラスト計算、他者への引き渡しでは正確な変換が必要です。ハッシュ記号と6桁全体をコピーし、プロジェクトの規則に合わせて大文字か小文字を統一し、色名の印象だけで判断せずにツールでRGB値を確認してください。
HEXカラーコード: 短くする前に短縮形の条件を確認する
3桁のHEXカラーコードは、6桁から好きな文字を省いたものではありません。各桁を複製して展開します。#F09は#FF0099、#ABCは#AABBCC、#123は#112233です。6桁を短くできるのは、赤・緑・青の各ペアで2文字が同じ場合だけです。#33AA77は#3A7にできますが、#32AA77の32は1文字の複製で表せません。3桁は各チャンネル16段階なので16³、合計4,096色です。6桁のHEXカラーコードは各チャンネル256段階で、256³、合計16,777,216色を表せます。
短いHEXカラーコードは完全に同じ値になる場合には便利ですが、3文字を節約するためにブランド色やUIの指定を変えるべきではありません。トークンの原本には6桁を残し、短縮がチームの意図的な規約である場合だけ利用すると安全です。AからFの大文字と小文字は色を変えないため、#00ff88と#00FF88は等価です。それでも表記を統一すると検索、差分レビュー、重複確認が容易になります。受け渡しで確認すべきなのは、ハッシュ、3・4・6・8の有効な長さ、チャンネル順、そして正確な文字です。
HEXカラーコード: アルファは青の後ろに置く
8桁のHEXカラーコードは#RRGGBBAAの順です。最後のAAがアルファで、00は完全な透明、FFは完全な不透明、中間は部分的な不透明度です。たとえば#0000FFCCは青にCCのアルファを加えた値で、W3Cの例では80%の不透明度に相当します。4桁の#RGBAは3桁と同じ複製規則なので、#05ACは#0055AACCへ展開されます。古いAPIや一部のグラフィックス環境はパックされた整数を別のバイト順で見せることがありますが、現代のCSSに書くHEXカラーコードではアルファを最後に置きます。
HEXカラーコード: HEXが保持できる情報と限界を知る
CSSのHEXカラーコードはsRGBを直接指定します。短く広く通用しますが、Display P3の広色域、デバイス非依存のLab、印刷用CMYKの配合、測色した物体の反射特性までは記録しません。広色域の原色を6桁のHEXカラーコードへ変換すると、sRGB内へ色域マッピングまたはクリッピングされる場合があります。スクリーンショット、ブラウザのスポイト、デザインファイルが違う値に見えるときは、カラープロファイル、画面能力、書き出し処理も確認してください。重要な案件では元の色空間を保存し、sRGBが納品先のときにHEXを使います。
正確に受け渡すための確認リスト
CSS、パレット、デザイントークンへ入れる前に、記法と利用条件の両方を確認します。
- HEXカラーコード: ハッシュの後ろが3・4・6・8桁の16進文字だけで構成されているか確認します
- HEXカラーコード: 精密なレビューでは短縮形を展開し、赤・緑・青・アルファを見える状態にします
- HEXカラーコード: アルファが意図的かを記録し、評価に使った背景も特定します
- HEXカラーコード: 値を万能な測色値として扱わず、前提の色空間をsRGBとして残します
- HEXカラーコード: 色名、コントラスト、実際の見え方を、それぞれ目的に合う別の方法で試します
1つのHEX値を3段階で使う
短い手順で、コードの追跡可能性を保ちながら、解読、説明、検証を分離できます。
HEXカラーコード: 1. 解読して表記を整える
HEXカラーコード: 値全体を貼り付け、有効な長さを確認し、必要なら短縮形を展開してアルファを保持します。編集前にRGBの数値が意図した値か確かめます。
HEXカラーコード: 2. 名前を探すか画像から採る
HEXカラーコード: 説明しやすいラベルが必要ならColor Name Finder、元がローカル画像のピクセルならImage Color Pickerを使います。色名は近い候補であり、公式な固有名とは限りません。
HEXカラーコード: 3. 実際の組み合わせを試す
HEXカラーコード: 前景を予定の背景に重ね、透明度を反映してコントラストを確認します。両方の値、利用状態、判断の根拠をトークンや実装メモへ保存します。
公式資料から確認できる事実
2026年7月31日時点で公開中の仕様と文書を確認しています。ここで示す数値は記法と検証条件であり、検索順位や見え方の保証ではありません。
- HEXカラーコード: CSS Color Module Level 4は3・4・6・8桁を定義し、順序を説明し、3桁で4,096色、6桁で約1,700万色を表せると記載しています。 W3CのHEX記法を読む
- HEXカラーコード: MDNは4種類の構文、0からFFの範囲、桁の複製、大文字小文字の等価性、透明から不透明までのアルファ端点を説明しています。 MDNの<hex-color>資料を読む
- HEXカラーコード: WCAG 2.2の解説は通常テキスト4.5:1、大きなテキスト3:1などのコントラスト条件を示しており、単独の色値だけでは比率を計算できません。 WCAGのコントラスト解説を読む
“The number of hex digits given determines how to decode the hex notation into an RGB color.”
HEXカラーコードのよくある質問
HEXとRGBは別の色になりますか?
HEXカラーコード: 座標と色空間が同じなら別の色ではありません。6桁のHEXカラーコードとrgb()は同じsRGBチャンネルを表せるため、#33AA77とrgb(51 170 119)は等価です。変わるのは書式です。ただし新しいCSS関数は別の色空間も表せるため、すべてのRGB風表記を6桁へ変換できるとは限りません。
#RGBAの透明度は最初ですか、最後ですか?
HEXカラーコード: 最後です。CSSの4桁と8桁のHEXカラーコードは#RGBAと#RRGGBBAAを使い、Aは青の後ろです。#3A7Cは#33AA77CCへ展開されます。CSS以外のAPIは別のバイト順を見せる場合があるため、値をスタイルシートへ貼る前に由来と順序を確認してください。
同じHEXなのに違って見えるのはなぜですか?
HEXカラーコード: 同じHEXカラーコードでも、周囲の色、合成する背景、画面のプロファイルや色域、見る環境が違えば印象は変わります。コードが固定するのはsRGB座標と任意のアルファであり、表示系全体ではありません。実際のUI内で比較し、背景や状態も一緒に記録してください。
HEX値だけでWCAGコントラストを証明できますか?
HEXカラーコード: できません。前景と背景の少なくとも2色、透明度の合成、状態の扱いが必要です。HEXカラーコードは入力として使えますが、結果は相対輝度の比較から得ます。通常、ホバー、無効、フォーカスなど該当する状態の実際の組み合わせを検証してください。