R1.07.2expression-layer confinement设计
差异应集中在少数表达层
别名: 表达层收敛 · 结构与表达分离 · confine difference
概念解释
界面可以拆成两层来看:一层是结构——栅格、组件解剖、交互模型、内容层级;一层是表达——字体、颜色、动效曲线、插画语气。表达层收敛(expression-layer confinement)说的是:品牌要的「不像」应该几乎全部发生在后一层,前一层保持共享。它不管差异花在启动页还是列表行上,只管差异落在哪一种决策上。把「不像」写进结构,等于为每一个流程另做一副骨架。
字体、色板、运动节奏可以换而不改任务怎么完成。改骨架则每个任务都要重走一遍。
机制
结构被所有流程坐在上面。一次改导航层级、一次把「确认」从对话框改成行内,调用点按产品广度爆炸。表达层的替换是赋值:同一解剖,换一套语义别名、换一条缓动、换一个字族,流程图不用重画。差异若漏进结构——每个品牌自己的导航模式、自己的表单分步哲学、自己的列表手势——共享维修的对象消失,系统只剩下一个仓库名字。把差异关进表达层,是让「不像」走可替换的通道,让「能用」走被许多表面共用的通道。通道选错,后面的改版不是换皮,是拆楼。
边界
强平台惯例的产品(系统设置、文件管理)结构层几乎被操作系统占满,表达层也所剩无几,这时「收敛到表达」的空间本来就窄,硬做差异会撞上惯例。游戏、创作工具的核心画布本身就是表达,结构与表达分不开,不能把画布强行降成「换个色板」。无障碍对比度把颜色从纯表达拉回结构约束:不是所有色板替换都合法。表达层内部也要有上限:每个组件都允许私有动效曲线,表达层会变成另一处结构。收敛的意思是少数共享的表达变量,不是「结构以外人人随便」。
怎么落地
- 列一张两栏表:结构决策(解剖、交互、层级)和表达决策(字族、色板、运动、插画)。品牌需求只能进右栏;进左栏的必须单独论证为什么现有骨架无法承载。
- 语义别名承担颜色与字号的品牌替换;组件解剖和状态机不开放品牌分叉。发现某品牌在产品仓库里重写了导航模型,记为结构泄漏,而不是「个性」。
- 验证:做一个「只换表达、不改结构」的主题包,套到主路径上。任务完成方式应不变,可识别的品牌变化应只来自字、色、运动和插画。若必须改组件树或交互步骤才能「看起来像该品牌」,差异已经不在表达层。再反向抽一页被说成「很有品牌」的界面,抹掉颜色字体动效:若骨架已无法与其他产品对上,泄漏发生在结构。