CSSで任意の色から、背景色・文字色を決める方法
CSS の色に関する Tip を 2 つ紹介します。
- 1つの文字色から、薄い背景色を決める
- 1つの背景色から、文字色を決める
APIなどで色が1つ決まっている際に、文字色や背景色を決めるのに便利なテクニックです。
1つの文字色から、薄い背景色を決める
CSS の color-mix() を使うと、1つの色をベースにして
自動で ちょっと薄い背景色 を作ることができます。
たとえば、青色の10%を混ぜた背景色にする例です。
<div>薄い背景色</div>
<style>
div {
display: inline-block;
padding: 8px 12px;
color: blue;
background-color: color-mix(in srgb, blue 10%, transparent);
}
</style>
color-mix() が使える環境なら、淡い背景を作るときにとても便利です。
薄い背景色
1つの背景色から、文字色を決める
背景色だけ指定して、自動的に読みやすい文字色に調整したい場合は、invert + grayscale + contrast を使う方法があります。
以下の記事が参考になりました。
<div>
<span>読みやすい文字色</span>
</div>
<style>
div {
display: inline-block;
padding: 8px 12px;
background-color: blue;
}
span {
color: inherit;
filter: invert(100%) grayscale(100%) contrast(100%);
}
</style>
背景色が濃くても薄くても、適度に読みやすい文字色になります。
読みやすい文字色
終わりに
以上、CSS だけで、1つの色から他の色を決める方法を紹介しました。