共计 2444 个字符,预计需要花费 7 分钟才能阅读完成。
灵感的源泉来源于一直的承受陈腐事物。
Chrome 89 新性能一览,性能晋升显著,大量 DevTools 新个性!
文章中的新个性,把握了对日常开发,很受害,连忙更新浏览器版本吧。
谈谈其中提到的:新的色彩对比度算法 - 先进感知对比度算法 (APCA)。
启用该性能设置:选中 Settings > Experiments 下的 Enable new Advanced Perceptual Contrast Algorithm (APCA) replacing previous contrast ratio and AA/AAA guidelines 复选框。
能帮忙开发者验证文本是否满足倡议的对比度比率 。
对比度
在构建页面或应用程序时须要思考对比度,这一点很重要。对比度是页面上相邻显示的色彩之间的差别。
对比度差的页面很难浏览,并且元素也不突出。具备良好对比度的页面,不仅看起来更好,而且对用户更加敌对和具备高可拜访性。
某些视力较差的人看不到十分亮堂或十分暗的区域。所有内容往往都看起来简直雷同,这使辨别轮廓和边缘变得很艰难。
对比度比率测量文本前景和背景之间的亮度差别。如果文本的对比度较低,则这些视力较差的用户可能会以空白屏幕的模式体验您的网站。
为了帮忙开发者正确地取得对比度,WCAG(Web 内容可拜访性指南)倡议最小(AA)对比度至多为 4.5:1,对于大文本,则为 3:1,或者加强(AAA)对比度为 7:1 或 4.5:1(大文本)。
最小对比度(AA):
加强对比度(AAA):
在控制台查看
good
bad
色彩选取器可帮忙你验证文本是否满足倡议的对比度比率:
查看拾色器的 ” 对比度比率 ” 局部。一个复选标记示意该元素满足 最低倡议。两个复选标记示意它合乎 加强的倡议。
单击 ” 对比度比率 ” 局部可查看详细信息。可视选取器中的色彩选取器顶部会显示一条线。如果以后色彩满足倡议,则行的同一侧的任何内容也满足倡议。如果以后色彩不合乎倡议,则同一侧的任何内容也不能满足倡议。
插件或网站
有很多插件或网站能够进行查看,比方:https://contrast-ratio.com/。
感知对比度算法(APCA)
感知对比度算法(APCA)正在取代色彩选择器中的 AA/AAA 对比度。
APCA 是在古代色觉钻研的根底上倒退起来的一种新的计算对比度的办法。与 AA/AAA 相比,APCA 更依赖于上下文。对比度是依据文本的空间、色彩和上下文的空间属性来计算的。
- 文本的空间属性,包含字体粗细和大小
- 色彩的空间属性,包含文本和背景之间的感知对比度
- 上下文的空间属性,包含环境光、四周和预期用处
APCA Math 原理
APCA is the Advanced Perceptual Contrast Algorithm。
更多请看 resiurces
js 实现的 SAPC
const sRGBtrc = 2.218;
const Rco = 0.2126; // sRGB Red Coefficient
const Gco = 0.7156; // sRGB Green Coefficient
const Bco = 0.0722; // sRGB Blue Coefficient
const scaleBoW = 161.8; // Scaling for dark text on light (phi * 100)
const scaleWoB = 161.8; // Scaling for light text on dark —same as BoW, but
const normBGExp = 0.38; // Constants for Power Curve Exponents.
const normTXTExp = 0.43; // One pair for normal text,and one for REVERSE
const revBGExp = 0.5; // FUTURE: These will eventually be dynamic
const revTXTExp = 0.43; // as a function of light adaptation and context
const blkThrs = 0.02; // Level that triggers the soft black clamp
const blkClmp = 1.75; // Exponent for the soft black clamp curve
function SAPCbasic(Rbg,Gbg,Bbg,Rtxt,Gtxt,Btxt) {
var SAPC = 0.0;
// Find Y by applying coefficients and sum.
var Ybg = Rbg*Rco + Gbg*Gco + Bbg*Bco;
var Ytxt = Rtxt*Rco + Gtxt*Gco + Btxt*Bco;
if (Ybg > Ytxt) { ///// For normal polarity, black text on white
// soft clamp darkest color if near black.
Ytxt = (Ytxt > blkThrs) ? Ytxt : Ytxt + Math.abs(Ytxt - blkThrs) ** blkClmp;
SAPC = (Ybg ** normBGExp - Ytxt ** normTXTExp) * scaleBoW;
return (SAPC < 15) ? "0%" : SAPC.toPrecision(3) + "%";
} else { ///// For reverse polarity, white text on black
Ybg = (Ybg > blkThrs) ? Ybg : Ybg + Math.abs(Ybg - blkThrs) ** blkClmp;
SAPC = (Ybg ** revBGExp - Ytxt ** revTXTExp) * scaleWoB;
return (SAPC > -15) ? "0%" : SAPC.toPrecision(3) + "%";
}
}
// 其余省略,具体可看 code samples
最初
前端开发,把握一些色调搭配是十分有必要的。好的色调搭配,能吸引用户的眼球。人人都喜爱美的事物。
google 搜寻了一下,edge 89 也反对了呢,Microsoft Edge 89 (DevTools 中的新增)。
edge
你应用过这个性能了吗?