在深入构建你的产品之前,应该写出一个简短的产品设计原则列表。
原因在于:你的价值观越独特、越明确,它们在以后作为决策工具就越有用。
作为一个设计师或者程序员最难的部分不是设计或者代码——而是说服人们,理解并回应他们的关注和批评。
这些原则应该引导和约束你创造性地思考以及如何处理复杂性。
下面是一个小工具(kinopio.club)的创作者的原则,工具就他一个人设计并实现。
- Embrace smallness
- Build for fidget-ability
- Embrace plain text
- A single interface for mobile and desktop
- Refine by pruning
拥抱小的
Embrace Smallness by Embracing Code as a Living Design System
当您感到受到限制时,您会自然而然地被简单和基本的工具和流程所吸引。
在计划新特性时,我不用设计软件来绘制和排列按钮、输入和对话框窗口,
而是跳过所有这些步骤,直接跳到具有 < 按钮 > 、 < 输入 > 和 < 对话框 > 元素的实际代码中。
本着保持简单的精神,UI 主要使用常规的 HTML 标记进行描述,布局基本上是自行设计的。
与此相关的是,制造高效、小巧、快速的东西是一件非常令人满意的事情。
拥抱小型化也意味着要勤奋地只添加小型的第三方依赖项和实用程序库,
这些实用程序库只做一件简单的事情,比如日期操作或生成随机颜色。
部分由于这个原因,Kinopio 只有约220kb 的重量和资产。
因此,在另一个维度,我们没有互联网,但仍然有 HTML, Kinopio 可以运行在3.5毫米软盘上。
为中间态设计
Build for fidget-ability
软件设计通常侧重于捕获用户输入和显示输出。
但是实际上我们大部分时间都处于这两种状态之间,我称之为“hmmm”状态。
比如
“hmmm,接下来我该写什么?”
“hmmm,我在高亮显示这条短信的同时阅读它来帮助我集中注意力”
“hmmm,我在我的手机主屏幕上来回滑动,而我想要做什么”,
这段时间是烦躁,坐立不安。
Kinopio 优先为这些时机进行设计。
Kinopio 的设计中,当你悬停在卡片上时,卡片会“粘住”你的光标。
一旦你离得太远,它们就会反弹回来。
有一些小细节可以让这个过程变得有趣而不会妨碍到你。
- 只有当你的鼠标停留在一张卡片上约 200 毫秒后才开始粘,以防止感觉太粘。
- 当你靠近卡片上的一个可点击按钮时,卡片就会停止粘连
- 比如标签、链接或者待办事项复选框,所以当它重要的时候,你仍然可以保持精确。
这也恰好是一个不能通过模型构思的特性的例子,
并且需要用真实的代码进行大量的微调,以使工作顺利并且感觉良好。
为计算的原子性设计
Embrace Plain Text
文本和完整 URL 是计算的原子单位::它是可复制的、可粘贴的,并且是最灵活的共享方式。
接受纯文本还有助于将普通人转变为高级用户,
因为他们可以在已有技能(如 ctrl-c、 ctrl-v)的基础上进行构建。
在 Kinopio,一张卡片上的几乎所有东西都是支持基本标记的文本,以及其他一些自定义语法
当卡片名称发生变化时,
一个超快的自定义解析器(比如一大堆正则表达式)
会根据文本是纯文本还是特殊内容类型(如粗体文本、标签、图片 URL 或任何其他类型的 URL)
将文本分割成 html 片段,使用这些片段来渲染卡片的正面。
这个解析器和分段系统是这个应用程序中最复杂的代码之一,
但是我喜欢这种效果,因为构建好之后,这对于其他人来说将是毫不费力的。
去他的极简主义,为整体设计
A Single Interface for Mobile and Desktop
即不是 mobile first 也不是 only desktop/web
我最讨厌的一点是,如果你在手机上看东西,那就意味着你需要一个“干净”的最小体验。
去他的极简主义,我想在任何我想做的地方做真正的工作。
这就是它应该是什么样子.
构建一个可以在任何地方工作的界面需要从第一天开始考虑这个原则意味着你不能依赖于悬停来显示控件。
您需要键盘驱动命令的可点击替代品。
当然,这里的空间更小——尤其是当屏幕上的键盘已经打开的时候。
剪枝提纯
养过植物的都知道生物的顶端效应,修剪掉多余的枝叶,将养分供给一个。
我在 Glitch 养成的另一个习惯是把旧的原型和截图上传到某个我可以以后参考的地方。
Removed: Minimap [2 Weeks of Work]
Removed: Save Twitter/X Threads [3 Weeks of Work]
这两个功能演示得非常好,在社交媒体上得到了很多赞。
但是在现实世界中,他们所做的只是占用了宝贵的 UI 空间,他们的代码将不可避免地成为维护负担。
处理复杂性最令人满意和直接的方法就是像切除肿瘤一样切除它。
当然,删除功能特性的问题在于,每个特性都至少有一个人依赖它。
所以不可能只是移除一些东西而不让人感到不舒服。
使问题更加复杂的是,事物保持不变的时间越长,人们就越依赖于它们以同样的方式工作。
因此,一个工具越老,越先进,自然而然地变得越难。
这使得修剪工作变得非常困难,
但这也是围绕一个工具构建和加强社区的一个机会。
Q&A
- 我看到 Kinopio 有5个设计原则,独一无二的从主流软件景观。为什么会有这个哲学?
虽然没有明确说明,但是如果要我描述一个普通软件公司的生存哲学,它看起来应该是这样的:
1. Go big, or go home
2. Low-friction above all else
3. Design for the lowest common denominator
4. Many teams, in many silos
5. No time for refinement, this will be someone else's problem
这种哲学是铁一般的,但从来没有明确宣布过,因为它从来没有受到质疑。
大多数领导者只是假设事情就是这样,或者需要这样。
当你在里面的时候,每个单独的这些听起来都很合理。
但是走得太远,没有细微的差别,没有理解为什么,最终导致产品的 Enshittification 。
- “简洁”、MVP体验是当今 UI 用户体验的一个设计原则, 你在 Kinopio 拒绝了这一原则。这对用户有什么影响?还有其他你不赞同的 UI 用户体验设计原则吗?
我们的灵感塑造了我们建造的东西。
如果你所看到的只是简洁的产品设计,那么你将不可避免地做出同样的产品。
我认为这就是为什么艺术学校在第一年教艺术史,
因为了解不同的历史和风格的媒介,真的有助于扩大你的视角什么是可能的,有趣的,和酷的。
极简主义作为一种艺术风格是一种非常严格的约束。
但是如果你认为“更少”只是许多可能的技术之一,用来不压倒或迷惑用户,
那么你就在正确的地方问自己这样的问题,为什么这是令人困惑的?
从那里,也许你可以使用其他技术,如上下文相关性,或更直观的布局,
使重要的选项少混淆,而不是隐藏它们。
我喜欢把 Kinopio 想象成一个专业的工具,就像键盘合成器,或者赛车。
如果你的速度是200英里/小时,你会选择在一个干净/简洁/美观的菜单中找到你的控制器,
还是只是按一些前面的按钮和表盘?
It’s all a journey I guess~
就像任何一种生长一样,这是一个缓慢而持续的过程。
我有一些大的功能想法,和一些小的生活质量的改善。
关于如何让社区感觉更像一个社区,我也有一些想法。
我也知道我需要尝试新的东西,让更多的人了解 Kinopio。
推荐:
