最近,我一直在探索颜色设计原理,从亚当·瓦森(Adam Wathan)和史蒂夫·施罗格(Steve Schroger)的作品中汲取灵感。他们的建议强调了除了一些美学上令人愉悦的十六进制代码之外,需要进行全面的调色板。构建强大的应用需要更广泛的范围,包括许多灰色和几种原色,每种颜色都具有不同的亮度和饱和度。
我的开发工作流程通常涉及十六进制代码或RGB颜色,但手动调节轻度和饱和度很麻烦。要简化此过程并防止恒定彩色选择器调整的重复应变伤害,让我们探索一些代码以有效操纵颜色。
利用HSL值
HSL(色调,饱和度,轻度)提供了定义网络颜色的优越方法,尤其是当预计手动颜色调整时。 HSL表示色调为数字(0-360),饱和度和轻度为百分比。例如:
div { 背景色:HSL(155,30%,80%); }
这会产生淡淡的薄荷绿色。要添加深色文字,保持一致性,我们可以调整轻度:
div { 背景色:HSL(155,30%,80%); 颜色:HSL(155,30%,5%); }
这会创建一个与背景协调的黑暗文本。对于通话行动按钮,我们可能会增加饱和度和略低的亮度:
.call-to-action { 背景色:HSL(155,80%,60%); 颜色:HSL(155,30%,5%); }
通过减少饱和度和增加亮度,可以进一步强调文本不太重要的文本:
div { 背景色:HSL(155,30%,80%); 颜色:HSL(155,30%,5%); } 。 颜色:HSL(155,15%,40%); }
HSL的浏览器兼容性和声明性的性质使其比RGB更可取。但是,现有的RGB项目或传统浏览器支持问题可能需要采取其他方法。
利用颜色库
许多彩色操纵库简化了HSL-TO-RGB/十六进制转换,并提供高级配色方案。一些值得注意的例子包括:
- Colvertize(Philipp Mildenberger):具有转换和操纵功能的轻质库。
- 颜色(Josh Junon):颜色声明,处理和提取的流利界面。
- TinyColor(Brian Grinstead):处理各种输入类型并提供方案生成实用程序。
CSS-Tricks还提供了有关颜色格式转换的宝贵资源。
颜色网格工具
对于更互动的方法,请考虑颜色网格工具。正如重构UI强调的那样,仅数学精度并不能保证最佳的调色板。我开发的React应用程序Color Grid会根据选定的色调生成一个调色板,提供了100种饱和度和轻度变化。用户可以直接从接口复制十六进制代码或CSS自定义属性。
RGB颜色操纵技术
以下技术着重于RGB颜色处理。
确定RGB轻度
注意:此方法无法说明色调的固有亮度(例如,黄色比紫色更高的亮度)。它测量混合黑色或白色的量。视觉评估对于准确的轻度判断仍然至关重要。
轻度是通过平均最高和最低的RGB值来计算的,然后除以255:
函数getlightnessofrgb(rgbString){ const rgbintArray =(rgbString.replace( / / g,'').slice(4,-1).split(',',')。map(e => parseint(e))); const最高= math.max(... rgbintarray); const最低= Math.min(... rgbintarray); 返回(最低) / 2/255; }
饱和RGB而不会影响轻度或色调
饱和RGB提出挑战:灰色缺乏色调信息,而实现纯色则需要50%的轻度。此示例保持轻度:
要饱和,增加最低和最高RGB值之间的差异。保持轻度需要等于0-255限制的最高和最低值的同等增加/减小。可用的饱和范围由以下确定。
- 灰色(相同的轻度)和255之间的差异。
- 灰色(相同的轻度)和0之间的差异。
// ...(从上方开始getlightnessofrgb函数)... const grayval = getlightnessofrgb('rgb(205,228,219)') * 255; // 217 const饱和度= MATH.ROUND(MATH.MIN(255 -GRAYVAL,GRAYVAL)); // 38 // ...(饱和计算的其余)...
中间值的调整与最高和最低值的变化成正比。完整的饱和功能非常涉及并省略了简洁,但核心概念已提出。
去饱和的RGB颜色
去饱和逆转饱和过程,向灰色值转向。完整的去饱和导致灰色值相等的灰色。部分饱和度涉及比例减少最高和最低RGB值之间的差异。简洁起见,还省略了完整的饱和函数。
闪电和变暗的RGB,同时保持色调
闪电涉及将RGB值按比例增加到255,而变暗会按比例地降低为0。这两个过程逐渐降低饱和度。简洁起见,省略了闪电和变暗的完整功能。
这些功能为RGB颜色操纵提供了基础。但是,HSL,颜色库和颜色网格工具提供了替代方案,可能会根据您的需求和项目限制提供更有效的解决方案。
以上是使用JavaScript调整RGB颜色的饱和度和亮度的详细内容。更多信息请关注PHP中文网其他相关文章!

我最近找到了一种动态更新任何产品图像的颜色的解决方案。因此,只有一种产品之一,我们可以以不同的方式对其进行着色以显示

在本周的综述中,灯塔在第三方脚本上阐明了灯光,不安全的资源将在安全站点上被阻止,许多国家连接速度

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

文档负责人可能不是网站上最迷人的部分,但是其中所处的内容对于您的网站的成功也一样重要

当您看到一些称为super()的JavaScript时,在子类中,您会使用super()调用其父母的构造函数和超级。访问它的


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。