色を決める
この場面の困り事と、そのまま使えるコード。全15件。 足りなければ、行末のページへ進む。
このページの中だけを絞ります。ページは移りません。
色が決まらない、多すぎる
地・文字・強調の3役だけ先に決める。強調は1色で、面積は画面の5%以下。配色の型
:root {
--color-bg: #fbfaf8;
--color-text: #1c1a17;
--color-accent-text: #a1601f;
}配色の組み方が分からない
1つの色相を決め、明度で5〜9段の階段を作る。色相を増やすのは、意味が増えるときだけ。配色の型
:root {
--color-bg: #fbfaf8;
--color-surface: #f3efe8;
--color-text: #1c1a17;
--color-text-muted: #6f6a62;
--color-accent: #b4713a;
}ブランドカラーが強すぎて画面が持たない
面で使うのをやめる。線・小さい面積・文字だけに使い、地は無彩色に近づける。配色の型
.brand { color: var(--color-accent-text); }
.brand-bg { background: var(--color-bg); }文字が背景に沈んで読めない
明度差を広げる。彩度や色相をいじっても比率は上がらない。本文4.5:1、大きい文字とUI部品は3:1。コントラストと色覚
body { color: var(--color-text); background: var(--color-bg); }
/* 本文4.5:1以上 */補助テキストをどこまで薄くしてよいか
4.5:1を下回らない範囲まで。白地なら #767676 が4.54:1、#595959 が7.00:1。これより薄いと割る。コントラストと色覚
.muted { color: var(--color-text-muted); } /* #6f6a62 = 5.1:1 */写真の上の文字が場所によって読めない
写真側にスクリムを敷くか、文字側に不透明のパネルを置く。文字色だけで解こうとしない。コントラストと色覚
文字色だけで解かない。写真側にスクリムを敷く。
HTML
<div class="hero"><p class="hero__t">見出し</p></div>
CSS
.hero {
background: linear-gradient(to top, rgba(0,0,0,.65), transparent),
url(photo.jpg);
color: #fff;
}半透明の要素の上の文字を測りたい
ダークモードで色が破綻する
色を反転させない。役割ごとの変数を2組持ち、暗い地では彩度を10〜20%落とす。役割で色を持つ
色を反転させない。役割ごとの変数を2組持つ。
HTML
<!-- prefers-color-scheme で変数を切り替える -->
CSS
@media (prefers-color-scheme: dark) {
:root {
--color-bg: #171614;
--color-text: #e9e6e1;
--color-accent-text: #d99356;
}
}ダークモードで影が効かない
暗い地では影が見えない。影の代わりに面の明度を上げて手前を表す。役割で色を持つ
.card {
background: var(--color-surface);
border: 1px solid var(--color-border);
}色の変数名をどう付けるか
値ではなく役割で持つ。--color-brand-500 ではなく --color-text-muted や --color-surface。役割で色を持つ
:root {
--color-text: #1c1a17;
--color-text-muted: #6f6a62;
--color-surface: #f3efe8;
}状態(成功・警告・エラー)の色を決めたい
色だけで区別しない。アイコンか文言を必ず併用する。色は補助と考える。役割で色を持つ
.alert--error {
color: var(--color-danger);
border-inline-start: 4px solid var(--color-danger);
padding-inline-start: var(--space-3);
}赤と緑で区別したが伝わっているか不安
日本人男性のおよそ20人に1人が区別しにくい。形と文言を足せば、色が伝わらなくても通じる。コントラストと色覚
.status--ok::before { content: "✓ "; }
.status--ng::before { content: "✕ "; }HSLで明度を揃えたのに揃って見えない
HSLの明度は知覚と一致しない。OKLCHを使うと、同じLの色が同じ明るさに見える。色空間
:root {
--color-accent: oklch(62% 0.12 55);
--color-accent-text: oklch(52% 0.14 55);
}グレーが濁って見える
複数の色相が混ざっている。地の色相に彩度を少しだけ残した1系統でグレーを作り直す。色の3属性
:root {
--color-bg: #fbfaf8;
--color-text-muted: #6f6a62;
--color-border: #d8d2c7;
}印刷したら色が違った
画面はRGB、印刷はCMYK。彩度の高い色ほど落ちる。重要な色は印刷見本で確かめる。色空間
@media print {
body { background: #fff; color: #000; }
* { box-shadow: none !important; }
}この場面の値をまとめて決めるなら作業台へ。和文の予約ページに載せて、幅と明暗を替えて確かめてから CSS を持ち帰る: 色と階段
この場面で貼れるもの#
答えを読んだら、ここから完成形を持ち帰れます。