任何主题都是别人的口味。Codeshot 内置了 30 款,每款都有浅色和深色两种,总有一款差不多够用——但在一张署着你名字的图上,"差不多够用"其实是个奇怪的标准。
在 Mac 上你不必再将就了。设置 → 主题给你一款属于自己的主题:十三种颜色、随选随变的预览,还有一个可以交给别人的文件。
在哪里
打开 Codeshot 的设置,选择主题标签页。左边是你的主题列表,+ 新建一款,− 删除选中的那款。
右边是当前选中主题下的示例代码,下面是名称输入框,再往下是颜色列表。这个面板全都是实时的:改一个颜色,上面的示例立刻重绘。
有两处操作要留意。名称框用来重命名主题。Use This Theme 才是把它设为应用真正用来绘制的主题——编辑主题并不会切换过去,这一步最容易被忘掉。
十三种颜色
一款语法主题不是十三个分量相同的决定。两个定调子,十一个干活。
| 颜色 | 作用范围 |
|---|---|
| Background | 代码背后的纸 |
| Plain Text | 高亮没有认领的一切——标点、括号、运算符 |
| Keywords | let、var、struct、func、return |
| Strings | 引号里的文本 |
| Numbers | 数字字面量 |
| Comments | 注释与文档 |
| Declared Types | 代码里自己定义的类型 |
| Library Types | 来自框架的类型——String、View、CGFloat |
| Functions | 函数名与方法名 |
| Members | 在别的东西上访问到的属性和成员 |
| Variables | 变量名 |
| Annotations | 属性包装器与注解,@State 之类 |
| Attributes | 属性名,主要出现在标记语言里 |
不必给十三项都配上不同的颜色。读起来舒服的主题通常只用四五种色相,然后重复使用:类型和函数共用一种,关键字和注解共用另一种。十三种各不相同的颜色不是主题,是一盘水果。
一个管用的顺序
先定 Background 和 Plain Text,把这一对定好再动别的。其余每个决定都要放在这两者上判断,把它们留到最后,等于所有颜色都要重挑一遍。
接着定 Comments,而且要压暗。注释是唯一应该往后退的记号——它是上下文,不是代码。注释和关键字一样响亮的主题,无论其余配色多好,读起来都是噪音。
然后是关键字、字符串和数字,真实代码里大部分颜色都落在这几项上。类型、函数、成员放在后面,最后几项完全可以重复用已经选好的颜色。
每改一步就看一眼预览,别留到最后。这个面板存在的意义就是让你在真实代码上判断配色——取色器会骗人,代码不会。
选色之前值得知道的事
对比度不是可选项。 代码图会在信息流里被缩小,在白天的手机上被看到,还会被你发布的平台再压缩一遍。原尺寸下显得考究的低对比配色,到读者眼前时已经看不清了。预览里就难读的颜色,进了信息流就等于没有。
别用纯黑背景,除非你要导出透明底或放在深色背景上。在明亮的壁纸前,#000000 像一个洞。好用的深色主题大多落在 #1F1F24 到 #282C34 之间,原因正在这里。
注释和正文要拉开差距。 两者亮度接近时,文字和代码会糊成一整块灰,代码本身的形状就消失了。
想照搬编辑器可以,但要脱离编辑器再看一眼。 Xcode 主题是为桌面上的大窗口调的。同样的颜色变成别人手机上一张 1000 像素宽的图,就是另一回事了,通常需要比原来更强一些的对比。
分享一款主题
主题列表底部的 ⋯ 菜单负责导入和导出主题文件。
导出把主题写成文件,导入再读回来。主题就是这样从你的一台 Mac 到另一台 Mac、进入备份,或者交给团队里的某个人——一套统一的配色能给不止一个人用,靠的就是这个。
什么时候内置的 30 款才是更好的答案
自己做主题值得的场景是:你在持续产出图片,并且希望它们看上去成套——一系列帖子、一份产品文档、一场演讲的幻灯片。
只是随手发一段代码就不必了。应用自带的 30 款都经过认真设计,都有浅色和深色,两次点击就能选中。并排比一比,挑一款配得上这段代码的就好。
主题编辑器是为这种情况准备的:你已经这么比过了,答案依然只是"差一点"。