RGBAカラーコードとは?RGBにalphaを加えた色指定
RGBAは、R(Red・赤)、G(Green・緑)、B(Blue・青)の3成分に、A(Alpha・アルファ)を加えた色指定です。RGBが色の組み合わせだけを表すのに対し、RGBAはその色をどの程度不透明に描画するかも指定できます。
alpha値は通常0〜1で表します。0は完全に透明、1は完全に不透明、0.5は不透明度50%です。値が同じでも、白い背景、写真、濃い背景の上では見え方が変わるため、実際のレイアウトに置いて確認することが大切です。
| 指定方法 | 例 | 向いている用途 |
|---|---|---|
| RGBAの従来記法 | rgba(255, 99, 71, 0.5) | 既存のCSSや説明資料でalphaを明示したいとき |
| 現行のrgb()記法 | rgb(255 99 71 / 50%) | 色とalphaを同じ関数で統一したいとき |
| 8桁HEX | #FF634780 | デザインツールやカラーコード一覧から値を受け取ったとき |
| opacityプロパティ | opacity: 0.5; | 要素全体と子要素をまとめて透過したいとき |
RGBAの書き方:3つの記法を使い分ける
1. rgba()でalpha値を0〜1で指定する
最も見慣れた書き方は、RGBの3つの数値とalpha値をカンマで区切る形式です。RGBの各値は0〜255、alphaは0〜1を使います。
.panel {
background-color: rgba(20, 55, 90, 0.72);
color: #ffffff;
}
この例では背景だけが72%の不透明度になります。文字色を別に指定しているため、文字まで一緒に薄くなるわけではありません。
2. rgb()でスラッシュの後ろにalphaを置く
現在のCSSカラー仕様では、rgb()にalpha成分を加える記法も使えます。rgb(20 55 90 / 72%)のように、RGBの値を空白で並べ、スラッシュの後ろに割合または数値を置きます。
rgba()とrgb()は完全に別の色空間ではありません。既存コードではrgba()がよく使われますが、新しいコードで表記をそろえたい場合はrgb()記法を採用してもよいでしょう。
3. 8桁HEXの末尾にalphaを追加する
8桁HEXでは、通常の#RRGGBBの後ろにAAを追加し、#RRGGBBAAとして指定します。末尾のAAは00〜FFの16進数で、00が完全透明、FFが完全不透明です。
RGBAカラーコードの透明度一覧と8桁HEX変換
alpha値から8桁HEXへ変換するときは、alphaに255を掛け、その数値を2桁の16進数へ直します。丸め方によって1段階ほど差が出ることがあるため、最終表示はブラウザーで確認してください。
| alpha | 不透明度 | 透明度の目安 | HEX末尾 |
|---|---|---|---|
0 | 0% | 100% | 00 |
0.1 | 10% | 90% | 1A |
0.3 | 30% | 70% | 4D |
0.5 | 50% | 50% | 80 |
0.8 | 80% | 20% | CC |
1 | 100% | 0% | FF |
たとえばrgba(255, 99, 71, 0.5)は、RGB部分の#FF6347にalphaの80を加えて、#FF634780と書けます。逆に#336699CCをRGBAへ戻すなら、#336699をRGBに変換し、CCを約0.8としてrgba(51, 102, 153, 0.8)と読めます。
RGBAとopacityの違い:背景だけ透かすか、要素全体を透かすか
RGBAとopacityはどちらも透過表現に使えますが、影響する範囲が違います。背景色や枠線の色にRGBAを使うと、その色だけが半透明になり、同じ要素の文字やアイコンは不透明のまま保てます。
/* 背景だけを半透明にする */
.card {
background-color: rgb(255 255 255 / 82%);
color: #172033;
}
/* 文字や子要素も含めて要素全体を透過する */
.card.is-muted {
opacity: 0.82;
}
写真の上に読めるカードを重ねたい、という場面ではRGBAが扱いやすいでしょう。一方、無効状態のボタンなど、文字やアイコンも含めて全体を薄く見せたい場合はopacityが候補になります。親要素にopacityを指定すると子要素にも影響する点に注意してください。
実務で使いやすいRGBAカラーコードの例
画像の上に半透明の背景を重ねる
ヒーロー画像やカードの上に見出しを置く場合、黒やネイビーのRGBA背景を薄く重ねると、画像の雰囲気を残しながら文字の読みやすさを補えます。
.hero-title {
background: rgba(10, 22, 40, 0.72);
color: #fff;
padding: 1rem 1.25rem;
}
枠線やホバー状態に淡い色を使う
通常時は弱い枠線、ホバー時は少し濃い枠線というように、同じ色のalphaだけを変えると状態差を作りやすくなります。色相を増やしすぎず、既存のブランドカラーを保てるのが利点です。
.tag {
border: 1px solid rgb(47 93 140 / 35%);
}
.tag:hover {
border-color: rgb(47 93 140 / 72%);
}
ボックスシャドウを強くしすぎない
影にRGBAを使うと、黒をそのまま置くより自然な奥行きを作れます。rgba(0, 0, 0, 0.12)のようにalphaを低く始め、背景色と境界が見える範囲で調整してください。
ベースとなるRGBやHEXをまだ決めていない場合は、カラーコード変換ツールでRGB・HSL・CMYKの値を確認してからalphaを加えると、既存の色管理とつなげやすくなります。
RGBAカラーコードを使うときの注意点
- 透明度と不透明度を混同しない:
alpha: 0.3は不透明度30%、背後が見える割合の目安は70%です。デザイン担当者との会話では、どちらの意味で話しているか確認します。 - 背景によって見た目が変わる:同じRGBAでも白、写真、濃色背景の上では合成結果が変わります。コードだけで判断せず、実際の配置で確認します。
- 半透明文字は読みやすさを失いやすい:文字色そのものを薄くすると背景とのコントラストが下がります。文字を読みやすく保ちたい場合は、背景側にRGBAを使う方法から検討してください。
- 8桁HEXは並び順を確認する:一般的なCSSの8桁HEXは
#RRGGBBAAです。デザインツールによってはARGB表記が出る場合があるため、#AARRGGBBと混同しないようにします。
色の組み合わせを決めたあと、文字色と背景色の読みやすさを数値で確認したいときは、コントラスト比 チェッカーを使うと確認手順を短くできます。半透明色は背景との合成後に見える色で判断するのが安全です。
RGBAカラーコードのFAQ
RGBAカラーコードとは何ですか?
RGBの赤・緑・青にalpha値を加え、色の不透明度まで指定する書き方です。rgba(0, 0, 0, 0.5)なら黒を50%の不透明度で描画します。
rgba()のalpha値0.5は何パーセントですか?
不透明度50%です。背景が見える割合を説明するときは透明度50%とも言えますが、コード上のalpha値は0.5として扱います。
rgba()とopacityは何が違いますか?
RGBAは指定した色にalphaを適用します。opacityは要素全体と子要素を透過するため、文字を不透明のまま背景だけを透かしたいときはRGBAやrgb()のalpha指定が向いています。
RGBAを8桁のカラーコードに変換できますか?
できます。通常の6桁HEXの後ろにalphaを00〜FFで表す2桁を足します。alpha 0.5なら末尾はおおむね80です。
rgba()とrgb()は別の色形式ですか?
現在のCSSでは、rgb()もalpha成分を受け取れるため、rgba()はrgb()の別名として扱われます。既存のコードではrgba()を使い、新しいコードではrgb(0 0 0 / 50%)にそろえるなど、プロジェクト内で表記を統一すると管理しやすくなります。
RGBAの色を選ぶとき、先に何を決めればよいですか?
まずRGBまたはHEXで元の色を決め、次に背景、文字、枠線、影のどれに使うかを決めます。最後にalphaを少しずつ変え、実際の背景上で読みやすさと境界の見え方を確認します。
まとめ
RGBAカラーコードは、RGBの色にalpha値を加えて、色と不透明度を一緒に指定する方法です。基本形はrgba(R, G, B, A)で、0は透明、1は不透明。現行のCSSではrgb(R G B / A)や8桁HEXも使えるため、既存コードやデザインツールから受け取る形式に合わせて選べます。
背景だけを透かしたいときはRGBA、要素全体を薄くしたいときはopacityという役割分担を意識し、alpha値は実際の背景上で確認してください。RGBやHEXの元色を探す場合はカラーコード検索・活用ガイドや16進数カラーコード変換術も合わせて参照できます。
参考情報
CSSの色関数とalpha値の仕様は、MDNのCSS rgb()関数、MDNのopacityプロパティ、W3C CSS Color Module Level 4を確認してください。画面上の見え方は背景色や表示環境によって変わるため、最終デザインでは実際のレイアウトで確認します。