SxNavMenu UI 设计规范
自动生成时间: 2026-02-04 组件路径: src/NextUI.Blazor/Components/SxNavMenu.razor
1. 组件概述
- 组件包含 6 个参数,0 个回调,3 个公开方法。
- 内部组合组件:SxButton, SxIcon, SxNavMenuActionArgs, SxPopover, SxSearch。
- 依赖注入: NavigationManager NavigationManager, INextUILocalizer L。
2. 组件模式
| 模式 | 条件 | 说明 |
|---|---|---|
| 条件渲染 | Collapsible && ExpanderPosition == NavMenuExpanderPosition.Bottom |
影响局部渲染块 |
| 条件渲染 | ShowTopExpander |
影响局部渲染块 |
| 条件渲染 | ShowFilter |
影响局部渲染块 |
| 条件渲染 | ExpanderContent != null |
影响局部渲染块 |
3. 表单字段
| 字段组件 | 绑定 |
|---|---|
| - | - |
4. 操作按钮
| 外观 | 动作/链接 | 禁用条件 |
|---|---|---|
| @(IsFiltering ? ButtonAppearance.Accent : ButtonAppearance.Stealth) | ToggleFilterEnabled | - |
| @(IsFiltering ? ButtonAppearance.Accent : ButtonAppearance.Stealth) | ToggleFilterEnabled | - |
| @(IsFiltering ? ButtonAppearance.Accent : ButtonAppearance.Stealth) | ToggleFilterEnabled | - |
5. 验证规则
未检测到显式验证标记。
6. 状态与流程
内部状态字段: 未检测到明确状态字段。
7. 公共 API
7.1 Parameters
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Orientation |
Orientation |
Orientation.Vertical | |
Expanded |
bool |
true | |
ShowFilter |
bool |
true | |
ExpanderPosition |
NavMenuExpanderPosition |
NavMenuExpanderPosition.Top | |
TextOverflow |
NavMenuTextOverflow |
NavMenuTextOverflow.Truncate | |
MaxTextLines |
int |
2 |
7.2 Public Methods
ExpandAsync:TaskCollapseAsync:TaskToggleAsync:Task
7.3 Events/Callbacks
无回调事件。
8. 典型使用场景 (Use Cases)
8.1 UC-1: 基础渲染
- 组件渲染默认状态
- 关键区域可见
- 无异常
9. 状态不变性测试 (State Invariants)
- 同一参数重复设置不应触发非必要 UI 改变
- 与表单字段无关的操作不应影响字段值
10. 测试检查点
- 条件
Collapsible && ExpanderPosition == NavMenuExpanderPosition.Bottom下渲染正确 - 条件
ShowTopExpander下渲染正确 - 条件
ShowFilter下渲染正确 - 条件
ExpanderContent != null下渲染正确
11. Fluent UI 对齐
对应 Fluent UI Blazor 组件:FluentNavMenu 源码:src/Core/Components/NavMenu/FluentNavMenu.razor(.cs) 对齐要点:
Expanded控制折叠与否,折叠时宽度固定为 40px。Collapsible控制是否显示折叠/展开;支持 Enter/ArrowRight/ArrowLeft 键盘切换。CollapsedChildNavigation决定折叠时子项导航是否弹出。 关键参数/事件:Expanded、ExpandedChanged、Collapsible、CollapsedChildNavigation、Width、Margin。 差异与扩展:- SxNavMenu 自定义折叠触发(CustomToggle)需与
Expanded状态保持一致。
12. 参考文档摘要
- docs/plans/2026-02-03-workbench-restructure-implementation.md: NextUI Workbench 重构实施计划 > For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
- docs/components/SxUserBar.md: SxUserBar (用户栏) - Implemented
- docs/components/SxNavMenu.md: SxNavMenu (导航菜单) 用于应用侧边栏的树形导航菜单组件,对齐 Microsoft Fluent UI Blazor NavMenuTree 的结构与行为。
13. 规范合规检查
- 可能存在硬编码样式: 存在 px 硬编码
14. 变更历史
- 2026-02-04: 深度分析填充规范。