mcpField
G
global-toolbar-controls

global-toolbar-controls

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

关于 global-toolbar-controls

这项设计技能介绍如何放置和呈现影响整个产品的控件,例如语言、货币、地区和主题选择器,涵盖分组、紧凑下拉交互与检查要点。

主要功能

  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 global-toolbar-controls

安装后在 Claude Code 中输入/global-toolbar-controls确认已加载。

详细介绍

全局工具栏控件

适合放在这里的内容

全局控件会影响整个产品体验,但不是用户的主要任务。用户偶尔才会用到——每次会话至多一次——因此不应在视觉上与主导航或内容争夺注意力。

常见的全局工具栏控件:

  • 货币选择器(电子商务、金融工具)
  • 语言/区域设置切换器
  • 地区或市场选择器
  • 度量单位制(公制/英制)
  • 主题切换(浅色/深色)
  • 无障碍偏好设置(字体大小、对比度)

这些控件不同于用户账户设置(位于个人资料菜单中),也不同于上下文设置(位于其影响的功能旁边)。

这份列表中有两类控件:一类改变显示的内容(地区、市场、租户),另一类改变内容的呈现方式(语言、主题、单位)。应将两类控件分开排列。将偏好设置横向排列,而不是纵向堆叠。每增加一项偏好设置,纵向堆叠都会变高,还会让个人设置与数据选择控件具有同等权重。横向排列则可以容纳后续偏好设置,而不增加高度。

放置位置

页眉工具栏

位于主页眉上方或其中的次级行,靠右对齐。电子商务和国际化网站上很常见。

[Logo]                    [EN | EUR | 🌍]  [Account]  [Cart]
────────────────────────────────────────────────────────────
[Main navigation]
页眉右侧——紧凑布局

与主页眉内联,放在最右侧,使用较小字号和尽量低的视觉权重。

[Logo]  [Nav items ...]              [EUR ▾]  [EN ▾]  [Account ▾]
页脚

适用于用户设置一次后很少再调整的控件。大型国际化网站(Airbnb、Apple)的页脚中经常会出现语言和地区选择器。如果控件确实很少使用,这种放置方式就很合适。

专属设置区域

对于较复杂的偏好设置,与其把所有内容都塞进工具栏,不如使用设置页面或面板。工具栏应提供通往该页面的链接,而不是包含设置本身。

字体排印与视觉呈现

全局工具栏控件属于次要 UI,不应将用户的注意力从主要内容上引开。

  • 字号:13–14px——刻意小于正文(根据字号比例,正文最大为 14px)
  • 颜色:弱化——使用次级文本颜色(--color-text-secondary),而非主要文本颜色
  • 不加粗——仅使用常规字重
  • 紧凑间距——内边距小于主导航项
  • 分隔符——相邻控件之间用 | 或细竖线(语言 | 货币)隔开,既能保持分组,又无需使用完整的按钮样式
.toolbar-control {
  font-size: var(--text-sm);       /* 13–14px */
  color: var(--color-text-secondary);
  font-weight: 400;
  padding: 4px 8px;
}

交互模式

全局控件通常使用紧凑下拉菜单——点击标签后,会打开一个小型弹出层或选择器,显示可选项。

  • 将当前值显示为触发标签:EUR ▾、EN ▾
  • 语言控件应以代码或名称显示当前语言,不能只显示地球图标或旗帜。地球图标代表类别,而非当前状态;旗帜代表国家。选项应使用语言的自称名称(如“Suomi”“Deutsch”):需要使用此控件的读者可能看不懂控件所翻译成的语言
  • 货币:符号 + 代码
  • 地区和语言是相互独立的维度。每个链接和地区切换都应保留当前语言。地区默认值仅作为入口的回退选项
  • 选项列表应保持精简——如果超过约 20 项,应在下拉菜单中添加搜索输入框
  • 选择后立即应用;如果变更会产生可见效果,则通过简短状态提示(Toast 或内联更新)予以确认
  • 持久化的偏好设置也应在所有打开的标签页之间同步。监听 storage 事件并重新加载状态。该事件会在其他标签页触发,而不会在写入数据的标签页触发,因此开发者正在查看的标签页始终会显示正确状态。如果该值会控制首次请求,则应等状态完成水合后再发起请求

切勿扭曲旗帜

若要将旗帜放入圆形或方形图标中,应进行裁切,或使用专为该形状绘制的图案。为图标框明确设置相等的宽度和高度,避免边框、行高或 Flex 容器调整其中一个轴的尺寸;并分别检查渲染后的宽度和高度。

审查清单

  • 所有页面上的全局控件是否都一致地放在同一位置?
  • 其文字样式是否比主导航更小、更柔和?
  • 控件是否将当前值显示为标签?对于语言,是否直接显示语言名称,并使用其本族语名称?
  • 用于选择显示内容的控件(地区、租户)是否与用于选择显示方式的偏好设置分开分组,且偏好设置是否横向排列?
  • 链接和地区切换是否保留当前语言?
  • 持久化的偏好设置是否在各标签页间同步,并在依赖该设置的首次请求发起前生效?
  • 下拉菜单或弹出框是否紧凑且可通过键盘操作?
  • 全局控件是否与用户账户设置分开?
  • 在移动设备上,是否可以访问全局控件,同时又不让它们过于显眼?(在小屏幕上通常会将其移至菜单或页脚)
  • 旗帜图标是否经过裁剪或采用特定形状,置于边长明确且相等的方框中,并且从不进行非等比缩放?

评论

支持 Markdown