css命名色中“darkgray”(#a9a9a9)比“gray”(#808080)更亮而非更暗,因名称源于历史标准而非明度逻辑;dimgray(#696969)才真正更暗,命名语义不可靠,开发应以色值为准。

它不是更深,是更浅——gray 是 #808080,darkgray 是 #a9a9a9,后者实际更亮、更接近浅灰。
命名颜色的“dark”前缀不总是表示更暗
CSS 命名颜色来自多个历史来源(HTML4、X11 系统),没有统一的明度排序逻辑。比如:
-
gray(#808080)是中性灰,亮度 50% -
darkgray(#a9a9a9)亮度约 66%,比gray明显更亮 -
dimgray(#696969)才是真正更暗的灰(亮度约 41%)
这种反直觉现象不是 bug,而是标准继承的结果。浏览器照单全收,不会“修正”名称与视觉的偏差。
开发时别靠名字猜明暗,直接看色值
肉眼分辨 darkgray 和 lightgray 几乎不可能,但它们的十六进制值差得很真实:
-
darkgray→ #a9a9a9 -
lightgray→ #d3d3d3(更亮) -
dimgray→ #696969(更暗)
Chrome DevTools 里用取色器点出来的永远是 #RRGGBB,不会显示你写的 darkgray —— 它只认计算结果。所以调试深色 UI 时,如果文字用 darkgray 在深背景上糊成一片,别怪浏览器,怪名字误导。
Tailwind 或现代设计系统为何不用这些命名色
像 gray-50 到 gray-900 这样的色阶,数值越大越深,可预测、可推演、可自动化生成。而原生命名色:
-
gray和grey等价(都是 #808080),但拼写不同 -
darkgray和darkgrey也等价,但和dimgray完全不同 - 没有
gray-700那种线性梯度,无法插值或 scale
生产环境里,哪怕只用 gray 和 black,也建议把它们定义为 CSS 变量,显式绑定到确定的色值,避免依赖名字语义。
真正容易被忽略的点:不是所有“darkXX”都比“XX”暗,也不是所有“lightXX”都比“XX”亮;CSS 命名色的语义是历史包袱,不是设计契约。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











