color highlight 插件默认不显示色块,是因为 vscode 内置的 editor.colordecorators 设置被关闭;该设置是控制颜色块显示的总开关,插件本身只负责识别颜色值。

Color Highlight 插件装完默认不显示色块,大概率是 editor.colorDecorators 被关了,不是插件没装好,也不是颜色写错了。
为什么 #ff6b6b 旁边没色块?先查这个开关
VSCode 内置的 editor.colorDecorators 才是控制“所有颜色值是否渲染色块”的总闸门。Color Highlight 只负责识别和提供颜色值,它不控制显示本身。
- 打开设置(
Cmd + ,或Ctrl + ,),搜索colorDecorators - 确认
Editor > Color Decorators已勾选(对应 JSON 是"editor.colorDecorators": true) - 检查是不是在
.vscode/settings.json里写了"editor.colorDecorators": false—— 工作区设置会覆盖全局 - 如果用的是远程开发(SSH/Containers),这个设置需在远程端生效,本地设置无效
十六进制能高亮,但 rgb()/hsl()/var() 不行?这是设计如此
Color Highlight 默认只匹配基础格式:#fff、#ffffff、red、transparent。它不解析函数或变量——这不是 bug,是轻量级定位决定的。
-
rgb(255, 0, 0)和hsl(0, 100%, 50%)永远不会被原生支持,除非你手动加正则规则(见下一条) -
var(--primary)无法静态推导出颜色值,任何插件都做不到实时渲染;它依赖运行时计算,编辑器层面只能靠 CSS IntelliSense 做跳转,不是预览 - 想真正支持函数式颜色,换
Colorize插件更直接,但得先禁用 Color Highlight,二者冲突
想让 JS/TS 字符串里的 "#00ff00" 也高亮?可以,但要小心副作用
插件默认只在 css、scss、html 等语言中激活。JS/TS 字符串属于“无上下文”区域,需显式开启,且容易误标。
- 在
settings.json中添加:"colorHighlight.languages": ["css", "scss", "javascript", "typescript"] - 加上
"colorHighlight.occurrencesInStrings": true才会扫描字符串内容 - 但注意:日志语句、错误消息、URL 参数里也可能含
#开头文本(如"error: #404"),会被误标为颜色,干扰阅读 - 大文件中开启此选项可能明显卡顿,因为插件会对每行做正则全扫;建议仅在明确需要的项目中启用
色块太淡看不清?别调主题,改插件透明度就行
默认色块是半透明叠加(例如 rgba(0, 255, 0, 0.2)),在浅色主题下极易被淹没,在深色主题下又可能过重。这不是缺陷,是留给用户的调节入口。
- 搜索
colorHighlight.defaultAlpha,设为0.4~0.6更稳妥 - 避免用
colorHighlight.customColors单独配每个颜色——维护成本高,且对新颜色无效 - 如果用了高对比度主题(如 High Contrast),色块边框可能消失;此时开
"colorHighlight.border": true强制加细边框 - 真正难搞的是嵌套模板字符串 + CSS 变量 + 多层 import 的场景——这时候色块不是帮手,是噪音源,关掉比调参更省心











