いくつかの課題と注意事項があります
通常、人々はdarken()
最終的に行きたいことがわかっている色を取得するような関数を使用しません (彼らは、自分が欲しいとわかっている色の値を入力するだけです)。ただし、この質問の背後にはそれ以上のものがあると思います。
darken()
機能_
darken()
LESSのhsl
機能は、設定 (色相、彩度、明度)の観点から考慮された、色の「明度」または「明度」の部分に影響を与えます。そのビューから考慮された2つの色は次のとおりです(このサイトに基づいて、サイト間でいくつかの違いがあることに気付きました-いくつかはおそらく他のものより正確です):
#952262 = hsl(327, 63%, 36%)
#681744 = hsl(327, 64%, 25%)
したがって、あなたが求める暗さの値は、そのサイトから減算するだけで手動で計算できます36% - 25% = 11%
。それを関数にプラグインします:
darken(@base_color, 11%);
収量
#671844 /* not 681744! */
おい!それは私の目標と一致しませんでした!
s
上記の (彩度) 値は、ベースからターゲットまでの差が示されていることに注意して1%
ください。これは、技術的には、関数だけではベース カラーからターゲット カラーに到達できないことを意味しますdarken()
。代わりに、別の関数を使用してs
値を微調整するか、ターゲットを次のようにわずかに調整する必要があります (これは を維持s
します63%
)。
#681844 = hsl(327, 63%, 25%)
しかし、その数 ( #681844
) はまだ LESS 出力 ( ) と一致しません#671844
。Web サイトでは、LESS 出力が次のように表示されますhsl(327, 62%, 25%)
(飽和値が に低下していることに注意して62%
ください)。これが意味することは、Web サイトの計算と LESS 関数の計算の丸め計算の違いだと思います。1%
これが、使用したプログラムがウェブサイトとは異なる方法で丸められたとしても、元の数値が飽和状態でオフになった理由である可能性があります. 目標値に近づくため、これはおそらく大きな問題ではありません。
LESS を使用して計算する
ここで、実際に何をしているかに応じて、lightness()
関数を使用して手動で計算する代わりに、LESS を使用してそのパーセンテージを計算できます。#681844
ウェブサイトに基づいてターゲットを調整したとします。次に、これは必要なパーセンテージを取得する例です (計算を表示するために偽のプロパティを使用しますcolor-calc
:
@base_color: #952262; /* Base #952262 = hsl(327, 63%, 36%) */
@real_target_color: #681844; /* Real Target #681844 = hsl(327, 63%, 25%) */
@color_calc: (lightness(@base_color) - lightness(@real_target_color));
.test {
color-calc: @color_calc;
color: darken(@base_color, 11%);
}
出力:
.test {
color-calc: 11%;
color: #671844;
}
11%
暗さの違いを計算したことに注意してください。また、丸めの問題により、ターゲットとはわずかに異なる値になることに注意してください。LESS が生成する最終値 ( #671844
) を差し込むと、ターゲットは依然として に対して同じ11%
値を生成しますdarken()
。