mcpField
G
gestalt-ui-organisation

gestalt-ui-organisation

github.com/dembrandt设计与 UI174896 次安装1 周前更新
代码仓库

关于 gestalt-ui-organisation

Gestalt UI Organisation 是一套基于格式塔原则组织界面的设计指南,帮助设计人员用距离、相似性、共同区域等视觉线索表达元素关系。它提供布局建议、审查清单和反模式,适用于界面设计与评审。

主要功能

  1. 01以邻近关系组织控件
  2. 02用相似样式表达功能分组
  3. 03以共同区域体现内容层级
  4. 04让点击结果靠近触发位置
  5. 05提供布局审查清单与反模式

适用场景

  1. 01整理工具栏中的相关操作
  2. 02设计菜单、列表与详情布局
  3. 03检查分隔线和留白的使用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dembrandt/dembrandt-skills --skill gestalt-ui-organisation

安装后在 Claude Code 中输入/gestalt-ui-organisation确认已加载。

详细介绍

Gestalt UI 组织原则

UI 的组织方式应让视觉结构传达元素之间的关系——哪些命令、控件和元素属于同一组——而无需用户阅读标签或文档。

UI 布局的核心 Gestalt 原则

1. 接近性

彼此靠近的元素会被视为一组。

  • 将相关控件(例如 Bold / Italic / Underline)紧挨着放置,尽量缩小它们之间的间距
  • 用更大的留白分隔不相关的组
  • 不要把线条或边框作为主要的分组手段——仅靠接近性就应能传达关系

示例: 工具栏中将 [Cut] [Copy] [Paste] 紧密分组,并在它们与 [Undo] [Redo] 之间留出更大的间距,即可传达两个不同的命令组,无需任何视觉分隔线。

优先使用留白,而非分隔线

默认使用留白,而非分隔线进行分组。大多数分隔线能实现的效果,间距做得更好——分隔线会增加杂乱感和“被框住”的感觉,却没有带来更多信息。移除大部分分隔线,让接近性来划分组别。

注意:线条几乎不占空间,移除后会让各组靠得太近。移除分隔线通常意味着要增加间距——合理规划留白(偶尔也可使用淡色背景或标题),而不是只删除线条,让布局变得拥挤。

距离越远,越需要分隔

紧密排列的元素会自然分开;距离较远的元素则需要辅助。行距较短的紧凑型表格即使没有任何线条也很易读,因为每一行都紧挨着与之相关的内容。相同的表格如果占满整个宽度,或行高较大,就需要行线或斑马纹,否则视线横跨表格时容易迷失位置。

因此,问题不在于“要不要线条”,而在于元素之间相距多远。选择能弥合间隔的最轻量手段,优先级如下:间距、淡色填充或条纹、细线、边框区域。按尺寸分别设置:宽表格可以保留行线,而侧边栏中的紧凑版本则可以去掉行线。

让起因和结果保持接近

接近性也适用于时间:点击所产生的内容应出现在点击位置附近。若左侧菜单打开的内容从最右侧开始显示,用户每次选择都要让视线横跨整个屏幕,并重新定位。

  • 将内容对齐到窗格左边缘,而不是居中。内容应从菜单结束的位置开始。
  • 将页面标题和主要操作放在窗格左上角,与选中的菜单行对齐。这样,用户点击后只需短距离移动视线即可看到落点。
  • 在宽屏上优先采用三个窄列(菜单、列表、详情),而非一个窄菜单加一个宽内容区。每一步只需将视线移到相邻列,而不必横跨整个屏幕。
  • 高亮选中的行,并让内容从左侧轻微滑入,以引导视线。
  • 在每个视图中都采用相同的方式。如果一个屏幕在点击位置附近显示响应结果,另一个却在远处显示,用户就无法学到可复用的规律。
2. 相似性

外观相似的元素会被视为相关。

  • 在同一功能组中使用一致的颜色、形状、尺寸和图标
  • 通过视觉对比(形状、填充、尺寸)区分不同组,而不只是依靠位置
  • 主要操作和次要操作的视觉样式应有所区别

示例: 删除类操作(Delete、Remove)使用与创建类操作(Save、Add)不同的颜色,以表明它们属于不同的意图组。

3. 共同区域

被共同区域包围的元素会被视为一个组。

  • 使用卡片、面板或背景填充来包围逻辑相关的内容
  • 避免将无关元素放入同一个容器
  • 嵌套区域应体现嵌套的逻辑层级

区域不需要边框——但没有边框就需要留白。 包围效果可以来自边框/填充,也可以仅靠留白。卡片没有边框或背景时,充足的内部边距以及与相邻卡片之间明确的间隔,才能让它看起来像一个区域;没有边框发挥作用,就必须留足空隙,否则分开的卡片会混成一片。没有边框没问题——但没有边框又拥挤就不行。

示例: 将表单分区放在带边框的卡片中,可以表明每张卡片内的字段构成一个逻辑单元。

4. 连通性

由线条或视觉链接连接的元素会被视为彼此相关。

  • 仅在确实存在关联时使用连接符、线条或流程箭头
  • 在导航树或基于节点的编辑器中,可见连接应与数据关系完全一致
5. 图形/背景

用户会区分前景中的可交互元素与背景上下文。

  • 交互控件与背景之间应有足够的对比度
  • 禁用状态或上下文信息应在视觉上弱化(降低对比度、减小字重)
  • 模态框和叠加层必须与下方内容层清晰区分
6. 连续性

视线会沿着平滑的路径和线条移动。

  • 将相关控件沿一致的轴线对齐(左边缘、基线或中心线)
  • 避免破坏逻辑分组内部的对齐
  • 与网格对齐的布局可通过共用轴线的连续性强化分组

审查清单

审查 UI 布局是否符合格式塔原则时:

  • 新用户能否在不阅读标签的情况下识别哪些控件属于同一组?
  • 是否主要通过邻近性传递分组信号(而非只依赖边框/线条)?
  • 视觉上相似的元素是否具有相同的功能用途?
  • 无关的分组之间是否以有意义的留白隔开?
  • 点击后出现的结果是否靠近点击位置,并且在每个视图中的位置都一致?
  • 是否已移除不必要的分隔线并改用留白(同时增加间距作为补偿)?
  • 视觉层级是否与交互层级一致(主要 > 次要 > 第三级)?
  • 破坏性或不可逆操作是否与建设性操作在视觉上有所区别?
  • 所有交互元素的图形/背景对比度是否足够?

常见反模式

反模式问题修正方法
所有按钮无论功能如何,尺寸和颜色都相同违背相似性原则——暗示所有操作都同等重要通过视觉差异区分主要、次要和破坏性操作
相关控件分散在屏幕上相距甚远的区域违背邻近性原则——用户无法感知它们之间的关系将相关控件放在一起
菜单位于左侧,内容却从很远的右侧开始每次选择时,视线都要横跨整个屏幕将内容锚定在左侧,标题与选中行对齐;宽屏上增加一列中间栏
过度使用分隔线来分组元素依赖装饰,而非空间逻辑改用留白和邻近性
所有元素之间的留白都相同没有分组信号——所有内容看起来都像一张平铺的列表采用 8pt/4pt 间距尺度:组内紧凑,组间宽松
同一工具栏中混用不同风格的图标相似性被破坏——暗示它们属于不同的功能类别每个工具栏使用一套风格和字重一致的图标

评论

支持 Markdown