透明度
opacityrgba()color-mix()
透明度を指定する方法は主に2つあります。opacityプロパティは要素全体(子要素を含む)に透明度を適用し、rgba()などのアルファ付き色指定は色だけに透明度を適用します。
デモ:opacity の段階(0〜1)
テキスト
1テキスト
0.8テキスト
0.6テキスト
0.4テキスト
0.2テキスト
0デモ:opacity vs rgba — 子要素への影響の違い
opacity: 0.4 — 子要素も透明になる
子要素(白背景)も透明になる
子テキストも影響を受ける
rgba() — 背景色だけ半透明、子要素は通常
子要素(白背景)は通常のまま
子テキストも影響を受けない
デモ:アルファ付き色記法の段階
/ 0.9
/ 0.7
/ 0.5
/ 0.3
/ 0.1
rgba(255,255,255, 0.9〜0.1) — 背景色だけ半透明に
コード例
/* opacity: 要素全体(テキスト・子要素含む)が透明に */
.card-disabled {
opacity: 0.4;
}
/* rgba(): 背景色だけ半透明(子要素に影響なし) */
.glass-card {
background-color: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(8px);
}
/* hsla()でも同様に透明度指定可能 */
.overlay {
background-color: hsla(220, 80%, 20%, 0.6);
}
/* モダンな記法: / でアルファ値を指定 */
.modern {
background-color: rgb(59 130 246 / 0.3);
color: oklch(55% 0.22 260 / 0.8);
}
/* グラスモーフィズム(よく使う組み合わせ) */
.glass {
background-color: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
}比較:opacity vs rgba/hsla — どちらを使うべきか
| 観点 | opacity | rgba() / hsla() |
|---|---|---|
| 子要素への影響 | ⚠️ 子要素もすべて透明になる | ✅ 色指定した要素の背景のみ |
| テキストへの影響 | ⚠️ テキストも透明になる | ✅ テキストは通常のまま可能 |
| 使い方 | opacity: 0.5 | background: rgba(0,0,0,0.5) |
| 用途 | ホバー効果、無効化状態、フェードイン | 半透明背景、オーバーレイ、グラスUI |
| アニメーション | GPU最適化されており高速 | 背景色変化はやや重い場合あり |
NEWcolor-mix() によるアルファチャンネルの混合(2023年〜)
color-mix()を使うと、透明度を含む色の混合をCSSだけで実現できます。デザイントークンと組み合わせると、透明度バリアントを動的に生成できます。
10%
30%
60%
90%
/* color-mix() でアルファバリアントを生成 */
:root {
--brand: #3b82f6;
--brand-10: color-mix(in srgb, var(--brand) 10%, transparent);
--brand-30: color-mix(in srgb, var(--brand) 30%, transparent);
--brand-60: color-mix(in srgb, var(--brand) 60%, transparent);
}
.badge-subtle {
background-color: var(--brand-10);
border: 1px solid var(--brand-30);
color: var(--brand);
}🤖 AIプロンプトテンプレート
CSSの透明度(opacity・rgba・color-mix)を使った実装例をReact + Tailwind CSSで作成してください。 要件: - opacityの0〜1の段階変化を視覚的に比較するデモ - opacity(子要素も透明になる)とrgba()(背景のみ透明)の違いをサイドバイサイドで比較するデモ - スライダーでopacityを動的に変更できるインタラクティブUI - グラスモーフィズム(rgba背景 + backdrop-filter: blur)の実装例 - color-mix()を使ったアルファバリアントの動的生成(10% / 30% / 60% / 90%) - ホバー時のopacity変化トランジションを使ったカードUI
⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。