Mole 如何做到安静、不打扰
我用一天重新设计了 mole.fit,也就是你正在阅读的这个网站。发布时只写了一句话:安静、可靠,不打扰你,和应用本身一样。
从最初那份 shell 脚本开始,这一直是 Mole 的全部设计要求。下面说说它在实际中意味着什么。
安静是一项约束
安静听起来像一种气氛,对工具而言却是一组很硬的规则。
一个区域要么完整显示,要么隐藏,不能出现只画了一半的卡片,也不能让结果页面逐块拼起来。扫描完成后,界面才进入结果状态。很短的等待不显示任何东西,较长等待只显示一种平静的工作状态。完成页会在数据到来前预留空间,窗口不会突然跳动。
这些是工程约束,不是装饰。它们需要明确的操作状态、延迟出现的加载提示、稳定容器大小和可取消路径。没有这些底层机制,加入过渡动画只是在把不确定性动起来。用户看到的平静,来自异步工作在下面变得可预测。
所有这些努力,都是为了做一款不需要盯着看的工具。你让它做一件事,它完成,再把屏幕还给你。不断闪烁和重排的软件,在索取它尚未赢得的注意力。维护工具尤其没有资格要求用户一直看着,它应该更像一件做工精良的家电,而不是一款需要经常查看的应用。
在触碰任何东西前,先展示将要做什么
Mole 最重要的设计决定,是展示包含大小的删除计划,并等待用户确认。普通用户文件会进入废纸篓,仍可恢复。个人目录等导航根路径不会出现删除选项。
界面负责建立用户意图,但服务层会在实际执行时再次校验每条路径。单独一个警告页面不能构成安全边界。
安全是整个应用的形状,不是最后临时贴上的确认弹窗。发现阶段不能删除。确认后形成一个范围明确的计划。执行阶段重新检查身份和保护路径,结果再分别报告已删除、已跳过和失败项目。
操作前检查是可见的一半,彼此独立的底层校验是不可见的一半。
为什么一款清理工具会有太阳系
这款工具完全可以只做成一个带清理按钮的菜单栏图标,销量大概也不会差。但世界上已经有太多自动生成、随手丢弃的软件。如果真的投入时间,我希望最后的东西能让人舒服地坐在它面前。
所以我给它做了五颗行星。每项功能都有与工作相对应的性格:
- 「清理」是地球。
- 「软件」是火星。
- 「优化」是水星。
- 「分析」是木星。
- 「状态」是太阳。
约束在于,它们必须属于同一套系统,不能只是五件装饰。纹理来自天文影像,其中地球以 NASA 的蓝色弹珠为基础;旋转方向和相对速度参照真实天体;全部行星由同一套代码以少量固定尺寸绘制。
工具可以很美,前提是美感也像其他功能一样被系统化构建。行星怎样一步步出现的更长故事,写在另一篇文章中。
把克制做进系统
Mole 大部分设计工作都在做减法。
应用只提供深色模式,这是有意决定。菜单栏面板会像 HUD 一样浮在桌面壁纸上,深色玻璃能减少眩光。因此不需要维护浅色模式,也不需要再增加主题开关。
整个应用只有一套字号层级,网站也只有一套。任何元素都不能临时拥有一项自己的大小或颜色,所有值来自共享 token。这正是页面看起来均匀,却没有任何东西大声抢夺注意力的原因。
许多好功能最终也不会发布。Mac 有很多很有趣的能力,Mole 完全可以加入,却不应该加入。因为一款被信任去删除文件的工具,必须小到可以被用户理解。
对一个好主意说不,比把它做出来更难,也是让应用保持平静最重要的工作。我另外写了一篇关于怎样决定不做什么。
克制同样适用于无障碍。焦点随意跳动、控件标签含糊,或动画让 VoiceOver 无法理解状态时,视觉上安静并没有意义。朗读顺序、键盘可达性、减少动态效果和稳定焦点,都属于同一项承诺:界面只能占用完成任务所必需的最少注意力。
这条规则也会改变行星。开启「减少动态效果」后,装饰旋转会停止,状态变化也会避免空间移动。行星仍能提供身份,但不必要求用户接受动态刺激。任何操作都不会依赖用户看懂动画。
安静不是某一种固定视觉风格,而是尊重用户愿意接受多少刺激。
一种理念,三个表面
Mole 同时是一款命令行工具、一款 Mac 应用和这个网站,三者使用同一份设计要求。
命令行版可以深入挖掘,但始终有边界、有保护。Mac 应用让这些工作变得可见,却不让它变得喧闹。网站只想说明应用做什么,然后尽快退出视线。所以重做网站只花了一天,而不是一个月:需要增加的东西很少,需要移除的东西很多。
Mole 只想做一位安静的 Mac 管家,不再添加多余的东西。
给自己的 Mac,也给朋友的 Mac。愿时间仍然属于你自己。