SxAppShell UI 设计规范

自动生成时间: 2026-02-04 组件路径: src/NextUI.Blazor/Components/SxAppShell.razor

1. 组件概述

  • 组件包含 8 个参数,0 个回调,4 个公开方法。
  • 内部组合组件:SxAppGlobalMenu, SxAppShell, SxButton, SxDrawer, SxNavBar, SxRouteView。
  • 依赖注入: IJSRuntime JS, NavigationManager NavigationManager, IUserPreferences Prefs, IAsyncUserPreferences? AsyncPrefs。
  • 实现接口: IAsyncDisposable。

2. 组件模式

模式 条件 说明
条件渲染 IsEffectiveCollapsed 影响局部渲染块
条件渲染 ShouldShowRail 影响局部渲染块
条件渲染 NavBarTemplate != null 影响局部渲染块
条件渲染 ShouldUseDrawerMode 影响局部渲染块
条件渲染 ShouldUseDrawerMode 影响局部渲染块
条件渲染 ShouldShowRailPlaceholder 影响局部渲染块
条件渲染 NavBarTemplate != null 影响局部渲染块
条件渲染 ShouldShowContentNavBar 影响局部渲染块
条件渲染 NavBarTemplate != null 影响局部渲染块
条件渲染 UseInternalNavigation 影响局部渲染块
条件渲染 Navigation != null 影响局部渲染块
条件渲染 UseInternalNavigation 影响局部渲染块
条件渲染 BottomBar != null 影响局部渲染块

3. 表单字段

字段组件 绑定
- -

4. 操作按钮

外观 动作/链接 禁用条件
ButtonAppearance.Stealth HandleDrawerClose -
ButtonAppearance.Stealth HandleCollapsedToggle -

5. 验证规则

未检测到显式验证标记。

6. 状态与流程

内部状态字段: 未检测到明确状态字段。

7. 公共 API

7.1 Parameters

参数 类型 默认值 说明
SizingMode SxAppShellSizingMode SxAppShellSizingMode.Viewport
ShowContentNavBarWhenCollapsed bool true
DrawerOverlayMode SxAppShellDrawerOverlayMode SxAppShellDrawerOverlayMode.Transparent
CollapsedRailMode SxAppShellCollapsedRailMode SxAppShellCollapsedRailMode.Auto
ShowCollapseToggle bool true Whether to show the built-in collapse toggle button in the rail/drawer. Set to false if the Navigation content (e.g., SxNavMenu) provides its own toggle. Default is true.
NavigationMode SxAppShellNavigationMode SxAppShellNavigationMode.Auto
SyncBrowserUrl bool true Whether to sync internal navigation with the browser URL bar. Set to false for demo/nested shells that should not affect browser history. Default is true.
EnableSafeArea bool true

7.2 Public Methods

  • ToggleSidebar: void
  • OnSidebarWidthChanged: void
  • OnBreakpointChanged: void
  • DisposeAsync: ValueTask

7.3 Events/Callbacks

无回调事件。

8. 典型使用场景 (Use Cases)

8.1 UC-1: 基础渲染

  1. 组件渲染默认状态
  2. 关键区域可见
  3. 无异常

9. 状态不变性测试 (State Invariants)

  • 同一参数重复设置不应触发非必要 UI 改变
  • 与表单字段无关的操作不应影响字段值

10. 测试检查点

  • 条件 IsEffectiveCollapsed 下渲染正确
  • 条件 ShouldShowRail 下渲染正确
  • 条件 NavBarTemplate != null 下渲染正确
  • 条件 ShouldUseDrawerMode 下渲染正确
  • 条件 ShouldUseDrawerMode 下渲染正确
  • 条件 ShouldShowRailPlaceholder 下渲染正确
  • 条件 NavBarTemplate != null 下渲染正确
  • 条件 ShouldShowContentNavBar 下渲染正确

11. Fluent UI 对齐

未在官方 Fluent UI Blazor 组件目录中找到直接对应项(以官方 demo/docs 目录为准)。

12. 参考文档摘要

  • docs/ComponentInventory.md: NextUI 组件全量版图审计 (Fluent UI v4.13.2 对齐) 本文档作为 NextUI 设计系统的“全量施工蓝图”,实时对齐 Microsoft Fluent UI Blazor v4.13.2 官方组件库。所有组件分为已实现 [x]、开发中 [-] 和待开发 [ ] 状态。
  • docs/IDENTITY-DESIGN.md: NextUI 用户身份与认证设计方案 ## 一、问题分析
  • docs/ComponentAPIGuide.md: Next UI Component API Guide (Standard Interface) 本指南定义了 Next UI 组件的标准接口。我们的目标是 API 兼容优先,确保与 Microsoft Fluent UI Blazor 库的命名习惯对齐。

13. 规范合规检查

  • 可能存在硬编码样式: 存在 px 硬编码

14. 变更历史

  • 2026-02-04: 深度分析填充规范。