设计师同事丢了个 .sketchpalette 给我,没装 Sketch 怎么打开?OpenFiles 桌面版三十秒搞定
「这是上个项目用过的配色,你看看能不能复用。」 设计师把一个
.sketchpalette文件甩到群里。 我双击——macOS 跳出"无法打开"。 强制用文本编辑器打开——满屏 JSON。 装 Sketch 试试——又不想装一整个 Mac 设计软件就为了看一组颜色。
如果你也遇到过这种"我不是设计师但我得看一眼这套配色"的尴尬时刻,这篇文章帮你彻底解决问题。本期主角是 OpenFiles 桌面版,一款专门用来快速预览各种小众文件格式的轻量工具,对 .sketchpalette 格式提供了非常完整的可视化支持——三十秒内就能看到色板列表、3D 色彩空间分布、图表配色预览、颜色距离矩阵,甚至还有色盲模拟。
文章会从格式底层讲起,带着你看清楚 OpenFiles 在这个场景下到底干了什么,最后给一份能直接抄走用到 Figma / Tailwind / CSS 工程里的实战流程。
一、.sketchpalette 到底是个什么东西?
.sketchpalette 是 Sketch Palettes 插件保存色板时使用的文件格式。Sketch 这个 macOS 上最流行的设计软件本身没有内置"导出色板成文件"的功能,但有个非常活跃的第三方插件 Sketch Palettes by Andrew Fiorillo——把它装进 Sketch 之后,你可以从色板面板把当前色板一键导出,文件后缀就是 .sketchpalette。
这个格式本质上就是带元数据的 JSON。我们打开一个最小化的样例瞧瞧:
{
"compatibleVersion": "2.0",
"pluginVersion": "2.22",
"colors": [
{"red": 0.96, "green": 0.26, "blue": 0.21, "alpha": 1},
{"red": 0.95, "green": 0.45, "blue": 0.13, "alpha": 1},
{"red": 0.99, "green": 0.65, "blue": 0.16, "alpha": 1},
{"red": 1.00, "green": 0.84, "blue": 0.20, "alpha": 1}
]
}
三个关键字段:
| 字段 | 含义 |
|---|---|
compatibleVersion |
文件格式版本,目前主流是 "2.0" |
pluginVersion |
生成它的插件版本,常见 "2.22" |
colors |
颜色数组,每个颜色是 {red, green, blue, alpha},值域 0–1(不是 0–255) |
为什么 macOS 默认打不开
Sketch Palettes 是社区插件,从来没进 macOS 的 UTI(Uniform Type Identifier)注册表,QuickLook 也没有官方的预览扩展。结果就是:
- 双击 → 弹"无法打开"或者跳到一个不相关的应用
- QuickLook(空格键)→ 显示为通用文件图标
- 用 TextEdit 打开 → 看到的是上面那段 JSON 源码
对设计师同事来说,"想看眼配色还得复制 hex 一个一个粘到取色器里"是非常消耗专注力的。这就是 OpenFiles 出场的位置。
二、OpenFiles 是什么?
OpenFiles 桌面版 是一款 macOS(同时支持 Windows)下的轻量文件预览器,专门用来用一个工具预览所有小众格式。它原生认识的格式包括:
- 设计类:
.sketchpalette、.ai、.psd、.fig局部 - 3D 类:
.glb、.gltf、.stl、.obj、.fbx、.dae - 数据类:
.csv、.tsv、.parquet、.ipynb - 工程类:
.dwg、.dxf、.step、.iges - 文档类:
.md、.docx、.pptx、.xlsx、.epub - 各类代码源文件:58 种主流编程语言
而且不只是"能打开"——很多格式它都做了可视化层,你看到的不是文本源码,是真正可读、可玩的视图。.sketchpalette 就是它做得最深入的格式之一。
三、三种打开 .sketchpalette 的姿势
OpenFiles 装好之后,一般会自动注册自己作为 .sketchpalette 的默认应用。这时候三种打开姿势随便挑:
- 双击 —— 最直接
- 拖入 —— 把文件从 Finder 拖进 OpenFiles 主窗口
- 右键 → 打开方式 → OpenFiles —— 万一系统没自动关联,手动指定即可
打开后的整体长这样:

界面分成三栏:
| 区域 | 内容 |
|---|---|
| 左栏 | 最近打开的文件列表,方便在多个调色板之间切换 |
| 中栏 | 当前调色板的色板条 + 16 色清单(含 Hex 码) |
| 右栏 | 主舞台:4 个可视化标签页 + 6 种色彩空间切换 |
下面挨个拆解右栏的四个标签页——这是 OpenFiles 这个格式预览器最值钱的部分。
四、功能拆解:4 个标签页 × 6 种色彩空间
4.1 色彩空间可视化(核心功能)
打开文件默认进入「色彩空间可视化」标签。你能在右侧看到一个可拖动旋转的 3D 散点图,每个颜色都被放置在它在选中色彩空间里的真实坐标上。顶部有 6 个色彩空间按钮:
LAB RGB HSL HCL HSV CMYK
每种色彩空间能告诉你这套配色不一样的事情:
- LAB:以"人眼感知"为基准。两个颜色在 LAB 空间里离得近 = 你眼睛会觉得它们像。这是判断"这两个颜色会不会被用户混淆"最准的视角。
- RGB:屏幕原色空间。一组颜色在 RGB 立方体里的分布,能告诉你这套调色板偏向哪个原色通道。
- HSL / HSV:把颜色拆成"色相 + 饱和度 + 明度"。如果你在做品牌色板,关心"色相是不是均匀分布、饱和度统一",看这两个色彩空间最直观。
- HCL:跟 LAB 是一家人,但用极坐标表达,更适合给数据可视化挑配色(D3.js 用户应该熟悉)。
- CMYK:印刷场景必看,能告诉你哪些颜色出印刷品的时候会"偏色"。

中间的色板列表里,每个颜色右侧的 Hex 码是 一键复制 的——这点对前端工程师极其友好,等下我们到工作流环节再展开。
4.2 图表配色预览
点第二个标签「图表配色预览」,OpenFiles 把你的 16 色直接拿去渲染成柱状图、折线图、饼图、堆叠图等常见数据可视化形态。


这个功能的意义在于:调色板拿在手里的时候你只看得到孤立的色块,真正用到图表里才知道香不香。 比如有些"看起来很高级"的暗色板,画出来的细线在背景上根本看不清——图表预览能在你做决策之前就告诉你这件事。
4.3 颜色距离矩阵
第三个标签是 N×N 的热力矩阵,矩阵的每个格子表示对应两个颜色的"感知距离"(基于 CIE76 / CIEDE2000 之类的色差公式)。

颜色越深的格子 = 两个颜色离得越近 = 可能会被用户混淆。这个功能我个人非常爱用——做数据可视化的时候,"两个分类色撞色"是头号差评源,距离矩阵直接告诉你哪两个颜色组合是雷区。
4.4 色盲模拟(无障碍场景必备)
最后一个标签也是最容易被忽略但最重要的:色盲模拟。

OpenFiles 同时给你看 5 种视图:
- 正常视觉
- 红色盲(Protanopia)
- 绿色盲(Deuteranopia)
- 蓝色盲(Tritanopia)
- 红色弱(Protanomaly)
世界上约 8% 的男性、0.5% 的女性有不同程度的色觉障碍。如果你做的是 toC 产品、医疗仪表盘、教育软件,"红绿配色"在色盲模拟下可能直接糊成一团——一眼就看出来是不是要换配色。
五、实战工作流:从 .sketchpalette 到生产环境
讲了这么多功能,最关键的还是怎么把这套预览能力嵌进你日常的工作流。给你一套可抄的:
5.1 设计 → Figma 同步
OpenFiles 里每个色块右侧的 Hex 码都是单击复制。粘到 Figma:
- Figma 打开你的设计文件
- 选中需要上色的元素
- 在 Fill 面板贴上从 OpenFiles 复制来的 Hex
- 重复 16 次(或者用 Figma 的 Color Style 一次性建好 16 个 Style)
5.2 前端 → CSS Variables
直接抄成 CSS 变量:
:root {
--color-primary-1: #f54236;
--color-primary-2: #f27321;
--color-primary-3: #fca629;
--color-primary-4: #ffd633;
--color-primary-5: #8cc24a;
--color-primary-6: #2ea6b5;
--color-primary-7: #2163b5;
--color-primary-8: #663bb8;
--color-accent-1: #e81f63;
--color-accent-2: #e84d82;
--color-accent-3: #9c26b0;
--color-accent-4: #4db04f;
--color-accent-5: #2196f2;
--color-neutral-1: #4d4d4d;
--color-neutral-2: #9e9e9e;
--color-neutral-3: #f5f5f5;
}
5.3 Tailwind 配置
如果你用 Tailwind,把它注入 tailwind.config.js:
/** @type {import('tailwindcss').Config} */
module.exports = {
theme: {
extend: {
colors: {
brand: {
50: '#f5f5f5',
100: '#9e9e9e',
200: '#4d4d4d',
300: '#2196f2',
400: '#4db04f',
500: '#9c26b0',
600: '#e84d82',
700: '#e81f63',
800: '#663bb8',
900: '#2163b5',
},
accent: {
red: '#f54236',
orange: '#f27321',
amber: '#fca629',
yellow: '#ffd633',
lime: '#8cc24a',
teal: '#2ea6b5',
},
},
},
},
};
5.4 数据可视化 → ECharts / D3
ECharts 直接可以传一个颜色数组:
option = {
color: [
'#f54236', '#f27321', '#fca629', '#ffd633',
'#8cc24a', '#2ea6b5', '#2163b5', '#663bb8',
'#e81f63', '#e84d82', '#9c26b0', '#4db04f',
'#2196f2', '#4d4d4d', '#9e9e9e', '#f5f5f5',
],
// ... 其余 option
};
D3 用 d3.scaleOrdinal:
const palette = d3.scaleOrdinal()
.domain(d3.range(16))
.range([
'#f54236', '#f27321', '#fca629', '#ffd633',
'#8cc24a', '#2ea6b5', '#2163b5', '#663bb8',
'#e81f63', '#e84d82', '#9c26b0', '#4db04f',
'#2196f2', '#4d4d4d', '#9e9e9e', '#f5f5f5',
]);
工作流走通之后,OpenFiles 在你这套链路里只承担一个角色:30 秒内决定一套颜色到底要不要用、好不好用。决策做完之后 Hex 一复制,直接进生产。
六、进阶:用 Python 自己生成 .sketchpalette
既然格式是 JSON,那自动化生成是顺手的事。下面这段 Python 接收一组 Hex 字符串,吐一个标准的 .sketchpalette 文件:
import json
from pathlib import Path
def hex_to_rgba(hex_str: str, alpha: float = 1.0) -> dict:
"""把 '#f54236' 转成 sketchpalette 需要的 0-1 浮点 RGBA"""
hex_str = hex_str.lstrip("#")
if len(hex_str) == 3:
hex_str = "".join(c * 2 for c in hex_str)
r, g, b = (int(hex_str[i:i + 2], 16) / 255.0 for i in (0, 2, 4))
return {"red": r, "green": g, "blue": b, "alpha": alpha}
def build_sketchpalette(hex_list, output_path: str | Path) -> Path:
payload = {
"compatibleVersion": "2.0",
"pluginVersion": "2.22",
"colors": [hex_to_rgba(h) for h in hex_list],
}
out = Path(output_path)
out.write_text(json.dumps(payload, indent=4, ensure_ascii=False), encoding="utf-8")
return out
if __name__ == "__main__":
palette = [
"#f54236", "#f27321", "#fca629", "#ffd633",
"#8cc24a", "#2ea6b5", "#2163b5", "#663bb8",
"#e81f63", "#e84d82", "#9c26b0", "#4db04f",
"#2196f2", "#4d4d4d", "#9e9e9e", "#f5f5f5",
]
path = build_sketchpalette(palette, "sunset-vibes.sketchpalette")
print(f"已生成 → {path.resolve()}")
应用场景:
- 从设计 Token JSON / Figma Variables / Style Dictionary 自动批量导出
.sketchpalette,方便设计师在 Sketch 里维护 - 给设计师准备"开箱即用"的色板礼包
- 在 CI 里把品牌色板做成产物,每次改色都同步
生成出来的文件可以直接拖进 OpenFiles 验证,闭环。
七、几个使用上的小贴士
- 窗口大小:色彩空间可视化的 3D 散点图依赖屏幕空间,把 OpenFiles 拉到至少 1280px 宽体验最好。
- 多文件对比:在左栏依次双击不同的
.sketchpalette,OpenFiles 会保留最近列表,可以快速来回切换看哪套配色更顺眼。 - 截图分享:截图发到群里给同事看比"我口述这套色挺好看"靠谱多了。
- Windows 用户:OpenFiles 也有 Windows 版本,体验一致,文件关联通过右键「打开方式」设置即可。
八、总结
.sketchpalette 这个格式存在很多年了,但因为它依附于一个第三方插件,长期处在"设计师之间流通但没工具能正经预览"的尴尬地带。OpenFiles 桌面版补上的就是这一块拼图——它没去解决任何"全新的"问题,但把一个高频的小问题解得非常彻底:
- ✅ 色彩一目了然 + Hex 一键复制
- ✅ 6 种色彩空间 3D 视图,看清楚配色"长什么样"
- ✅ 图表预览,提前知道"用起来怎么样"
- ✅ 距离矩阵 + 色盲模拟,无障碍 + 防撞色双保险
- ✅ 配套 Hex 直接进生产,零切换成本
如果你是设计师,OpenFiles 让你不再为了打开同事的调色板而装一整套 Sketch;如果你是前端 / 数据 / 移动开发,OpenFiles 让你三十秒判断这套色到底能不能落到代码里。
如果你也觉得 macOS 上确实缺这么一个轻量预览器,点赞 + 收藏 + 关注 三连一下吧,后续我会陆续介绍 OpenFiles 对其他小众格式(.glb 3D 模型 / .dwg CAD 图纸 / .parquet 列存数据)的支持,欢迎留言告诉我你最想看哪个格式的深度评测。
相关链接:
- OpenFiles 官网:openfiles.pansysoft.app
- Sketch Palettes 插件源码:https://github.com/andrewfiorillo/sketch-palettes
- Sketch 应用:https://www.sketch.com
标签: OpenFiles Sketch sketchpalette 调色板 色彩管理 设计师工具 CIE LAB 色盲模拟 Tailwind ECharts macOS
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)