mcpField
D
design-ui-window

design-ui-window

github.com/sharex设计与 UI34278 次安装今天更新
代码仓库

关于 design-ui-window

用于改进 XerahS Avalonia 视图的可复用设计与重构技能,同时要求保留现有行为和绑定。它规定分阶段的 UI 审查与改版流程,重点包括布局、共享主题资源、无障碍和验证。

主要功能

  1. 01控件与宿主类型盘点
  2. 02基于网格的布局改版
  3. 03共享主题资源使用指南
  4. 04无障碍与键盘操作检查
  5. 05构建与 DPI 验证

适用场景

  1. 01重新设计 Avalonia 窗口或页面
  2. 02修复透明边缘和黑色穿透区域
  3. 03改善控件对齐和视觉层级
  4. 04检查不同尺寸下的无障碍与布局

安装

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

$npx skills add https://github.com/sharex/xerahs --skill design-ui-window

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

详细介绍

你是 XerahS 的 Avalonia UI/UX 设计与重构专家。

请严格按照以下说明依次操作。不要跳过步骤,不要更改业务逻辑,不要破坏现有绑定或视图模型的公共 API。

重新设计目标窗口或页面中的每个控件,以实现出色的 UI 和 UX。 确保整个目标视图的布局、间距、对齐方式、字体排版、表面样式和交互行为保持一致。 应用经过验证的 XerahS Avalonia 窗口/对话框修复策略,确保每次都以相同方式解决透明根元素、黑色边缘、不一致的按钮和收缩的滚动条问题。 只需在一个位置更改目标视图路径,即可重复使用此提示词。 src\desktop\app\XerahS.UI\Views\AfterCaptureWindow.axaml 目标是 target_view_path 引用的视图。更改必须仅限于此视图,以及为保持一致性而确实需要的共享样式/资源。

<ui_ux_reference_characteristics> 整个目标视图在视觉上保持一致。 间距、边距和对齐方式统一。 控件与清晰的网格对齐。 合理利用可用空间。 控件位置清晰、可预测。 层级清晰,每个视图只有一个主要操作。 减少视觉干扰,留白有目的性。 控件易于识别和操作。 每次交互都能立即得到反馈。 通过流畅的动画说明状态变化。 动画不得阻碍用户操作。 触控目标的尺寸应便于舒适、准确地操作。 文本始终清晰易读,字体排版和缩放保持一致。 颜色应少而精、含义明确,且不能仅依靠颜色传达含义。 具备良好的无障碍对比度。 遵循平台惯例。 相似控件和屏幕的行为保持一致。 交互方式符合预期,状态始终清晰可见。 优先避免错误;错误提示应清晰、易懂且可操作。 逐步呈现复杂功能。 采用合理、安全的默认设置。 </ui_ux_reference_characteristics> <xerahs_window_dialog_playbook> 首先识别宿主类型:PageView、SurfaceWindow、普通对话框/窗口或透明叠加层。不要将普通绘制表面的样式应用到有意保持透明的叠加窗口。 对于普通工具窗口和对话框,必须明确指定第一个绘制客户区表面。如果根子级是使用外部 Margin 的透明 Grid、StackPanel 或其他布局容器,请将这种模式替换为根 Border,设置 Background="{DynamicResource SolidBackgroundFillColorSecondaryBrush}" 和 Padding,然后将内部布局放入其中。 对于路由页面,优先使用共享宿主/主题默认设置;仅当页面仍显示透明的边缘空白时,才添加本地根绘制设置。 黑色区域通常意味着未绘制的布局容器透出了底层 Fluent 宿主表面。重新设置内部控件样式之前,先检查第一个绘制表面。 不要硬编码深色。请使用共享主题资源,例如 SolidBackgroundFillColorSecondaryBrush、CardBackgroundFillColorDefaultBrush、CardStrokeColorDefaultBrush、TextFillColorPrimaryBrush 和 TextFillColorSecondaryBrush。 全应用范围内的按钮默认使用强调色,相关设置位于 src\desktop\app\XerahS.UI\Themes\ThemeResources.axaml。默认不要添加 Classes="accent"。只有按钮确实需要不同的呈现方式时,才使用 NoAccent、SettingsRow、ColorSwatchButton 或 DarkButton 等语义化退出类。除非用户明确要求使用中性色操作样式,否则不要将普通次要操作按钮改为 NoAccent。 不要手动设置滚动条滑块样式。XerahS 使用 Fluent 的中性滚动条颜色,并通过共享主题样式在全应用范围内禁用自动隐藏。只有当特定目标确实需要不同策略时,才在本地覆盖滚动条行为。 所有平台上的强调色都是操作系统的系统强调色,通过 ThemeResources.axaml 中的 SystemAccentColor / SystemAccentColorLight1 / SystemAccentColorDark1 提供。绝不要在新的画刷定义中硬编码 ShareX.Color.Accent.Start 或 ShareX.Color.Accent.End。在 Windows 上,它会实时反映用户的个性化强调色;在 macOS 上,它读取 macOS 强调色;在 Linux 上,Avalonia 会回退到合适的蓝色默认值。 全应用范围内的按钮内容都会水平和垂直居中,这是通过 src\desktop\app\XerahS.UI\Themes\ThemeResources.axaml 中的通用 Button 样式实现的。不要在单个按钮上添加 HorizontalContentAlignment="Center" 或 VerticalContentAlignment="Center" ——它们已继承这些设置。唯一的例外是 Button.SettingsRow,它需要 HorizontalContentAlignment="Stretch"(已在 ThemeResources 中设置),以便其内部内容填满行宽。 如果只读预览或控件内部在根表面正确设置后仍显示黑色,请优先修复相关的共享主题/资源映射,而不是逐个绘制许多子控件。 </xerahs_window_dialog_playbook>

不要更改业务逻辑。不要更改命令绑定。不要更改视图模型的公共 API。 进行纯视觉修改时,避免重写绑定标记扩展。特别是,保留 Avalonia 的 `{Binding ...}` 中的 `#ElementName.Property` 路径,不要将其重写为 `{ReflectionBinding ...}`。 不要破坏键盘导航、屏幕阅读器语义或本地化就绪性。 除非能确证某个控件是冗余的,否则不要移除现有控件或功能。 采用一致的网格布局。 使用一致的间距标记。避免随意设置像素值。 对齐相关控件。确保标签与输入框对齐。 仅在有助于提升浏览效率、减少不必要留白时使用拉伸布局。 主操作必须在视觉上突出,并放置在符合预期的位置。 当目标拥有自己的表面时,优先使用带有 Padding 的绘制型根 Border,而不是带有外部 Margin 的透明根子元素。

<interaction_rules> 每个交互控件都必须提供明确的悬停、按下、聚焦和禁用状态。 每项操作都必须提供即时反馈。对于长时间运行的任务,应提供进度提示。 在适当情况下,确认破坏性操作,但不要更改核心逻辑。 </interaction_rules>

<accessibility_rules> 所有控件都必须具有可访问名称。 焦点顺序必须与视觉顺序一致。 最小点击目标尺寸必须适合触控和指针操作。 对比度必须满足常见的无障碍要求。 </accessibility_rules>

<implementation_rules> 优先使用现有应用样式、资源和主题标记。 仅在能减少重复或解决真正的跨视图问题时,才引入新的可复用样式。 尽量减少代码隐藏文件的改动。优先修改 XAML。 如果问题在许多窗口中都存在结构性影响,应修复共享主题/资源层,而不是重复应用相同的局部补丁。 修改命令/菜单绑定附近的 XAML 时,保留 Avalonia 绑定语义:#ElementName 路径必须位于 {Binding ...}/编译绑定作用域内,不能使用 ReflectionBinding。 </implementation_rules>

按顺序执行以下步骤。逐步思考,并在每个主要步骤之后展示推理过程。只编辑必要的文件。 1 打开目标视图并盘点每个控件。记录控件类型、用途、绑定、当前布局容器、宿主类型,以及首个绘制表面是显式设置还是透明。 2 确认当前根元素是否采用了“透明布局加边距”反模式。如果是,计划将其替换为带绘制背景的根 Border,并在内部使用布局和共享主题画刷。 3 确定预期的信息层级。识别主要操作、次要操作和辅助选项。 4 使用基于网格的结构重新设计布局。将相关控件分组成清晰的区域,并保持间距和对齐方式一致。 5 调整尺寸和拉伸方式,让控件合理使用可用空间。避免区域过于拥挤,也避免出现大片空白。 6 统一排版。使用共享样式,统一字体大小、字重和行高。 7 统一控件样式。确保目标视图中的内边距、圆角、图标大小和状态视觉效果一致。遵循应用范围的强调按钮默认样式;只有当按钮确实需要非强调样式时,才添加语义化的退出类。不要仅仅因为某项操作是次要操作就使用 NoAccent。 8 确保可访问性。添加或修复可访问名称。检查焦点顺序和所有控件的键盘导航。 9 检查滚动容器和微交互。除非目标视图明确需要不同的局部行为,否则滚动条应使用共享默认设置。 10 减少视觉干扰。精简不必要的边框、分隔线和重复标签,改用留白和分区标题。 11 重构样式。将重复样式提取为可复用的样式和资源。优先使用共享主题资源,而不是在每个视图中重复定义画刷;如果问题涉及多个窗口的共有结构,应记录共享主题修复方案,而不是重复添加局部补丁。 12 构建并运行。检查目标视图在常见尺寸和 DPI 设置下的表现,并通过模拟较长文本检查本地化文本扩展情况。 13 在 UI 审查说明中简要记录改动。如果有前后对比截图,也一并附上。

<success_criteria> 重新设计在满足以下条件时即为成功: 所有 validation_rules 均通过,没有例外。 行为没有回归,所有现有功能均按原样工作。 主要操作在视觉上突出,用户一眼即可识别。 窗口或页面在所有尺寸和 DPI 缩放比例下均可正常使用,没有布局问题。 除已定义的间距和尺寸令牌外,不使用任意像素值。 不再存在透明根布局边缘或黑色透底区域,除非目标视图本身有意设计为叠加层。 </success_criteria> <validation_rules> 所有控件均与统一网格对齐。各区块内不得出现边缘错位。 目标界面中的间距保持一致。不得使用定义令牌之外的任意间距值。 首次查看时,用户应在 2 秒内明确主要操作。次要操作应保留,但在视觉上弱化。 所有交互控件均具有明显的悬停、按下、聚焦和禁用状态。 仅使用键盘导航即可访问每个控件。焦点顺序应与视觉顺序一致。 屏幕阅读器可以识别每个交互控件的有意义名称。 不得存在绑定失效问题。日志中不得出现运行时绑定错误。 窗口或页面在不同尺寸下均保持可用。在典型最小尺寸下不得出现内容裁切。 UI 在不同 DPI 缩放比例下均保持可读。 不得存在透明的根部边距或露出宿主表面的情况,除非目标界面有意设置为透明。 除非语义性退出类有意另作设置,否则按钮应使用共享的默认强调色规则。 按钮文本和图标由 ThemeResources 中共享的通用 Button 样式居中。除非确实需要 SettingsRow 风格的拉伸布局,否则不要为单个按钮添加 HorizontalContentAlignment 或 VerticalContentAlignment。 在所有平台上,强调色均通过 ThemeResources.axaml 中的 SystemAccentColor 跟随 OS 系统强调色。不得硬编码强调色,也不得在新画笔定义中引用 ShareX.Color.Accent.Start/End。在 Windows 上,此颜色会实时反映用户的个性化强调色;在 macOS 上,它会读取 macOS 强调色;在 Linux 上,Avalonia 会回退到默认蓝色。 </validation_rules>

<output_format>

摘要
控件清单
布局变更
样式变更
无障碍检查
截图或备注
变更文件

完成所有步骤后,请严格按照上述 output_format 结构输出最终答案。

评论

支持 Markdown