在不使用透明度的情况下获取彩色十六进制值的50%

问题描述 投票:1回答:1

我需要获取现有颜色十六进制的50%浅色版本的颜色值。但是它必须是100%不透明的,我不能使用opacityrgbahexahsla

场景:

我基于48个可能的十六进制值的硬编码数组在地图上绘制路线,每个路线都有不同的颜色。

当编辑这些路径之一时,应显示为“禁用”(原始颜色的50%。)>

在屏幕设计中,对于路线颜色(阵列中的一种颜色),参考值为#9775fa;对于disabled

颜色,参考值为#d5c7fd。通过设计师在基础颜色之上绘制具有50%不透明度的白色层来获得第二种颜色。

我试图通过JS获得相同的值,首先使用lighten函数,然后使用HSL函数,最后手动对基础颜色的每个RGB值进行光照。他们没有一个真正起作用。

使用减光,加上62的光,我得到了接近的价值,但不是精确的值。手动使用HSL并以50%减亮效果也不起作用。

这些是我得到的值:

 Base color: #9775fa
 "Disabled color": #d5c7fd
 Lighten by 62: #d5b3ff
 HSL 50%: #e3b0ff
 Ligheting 50% by hand: #e3b0ff

所以,最后,真正的问题是,是否有可能实现?

Here is a "playground" and the full code of my experiments(第二列是参考“ disabled”

颜色。

非常感谢!

我需要获取现有颜色十六进制的50%浅色版本的颜色值。但是它必须是100%不透明的,我不能使用不透明度,rgba,hexa或hsla。场景:我在地图上绘制路线,...

javascript css colors rgb hsl
1个回答
0
投票

我设法通过按给定百分比将颜色与白色混合来获得更准确的结果。

© www.soinside.com 2019 - 2024. All rights reserved.