言葉で説明するのが難しいけど、rgba(255,0,0,0.5)
を #ff7f7f
に変換する関数を作りました。
Stylusのビルトイン関数 transparentify
の逆バージョンみたいなやつ。
背景色を指定すると、その背景色に重ね合わせたときに実際に目に見える色に変換されます。
// color: 変換したい透過色
// background: 透過色の背景
untransparentify(color, background = #fff)
if alpha(color) == 1
return color
else
if alpha(background) < 1
background = untransparentify(background)
base = alpha(color, 1)
percentage = alpha(color) * 100%
return mix(base, background, percentage)