返回文章列表
设计系统

Nuxt UI v4 组件模式

2025-11-18
阅读时长 10 分钟

为拥有数十个独立工具的网站构建可维护的 UI 是一项挑战。SonicToolLab 使用 Nuxt UI v4 建立一致的组件语言和更好的无障碍基础,但自定义工具流程仍需单独进行键盘、对比度和屏幕阅读器测试。

1. 原子组件与插槽 (Slots)

Nuxt UI 组件同时使用类型化 Props 与命名插槽。本站用这套组件语言统一导航、控件、面板和反馈,而每个工具的数据流仍由自己的页面组件负责:

  • UCard:用于输入区域、输出结果和工具设置。
  • UTabs:用于 PDF 转换器等工具,在“PDF 转图片”和“图片转 PDF”之间切换。
  • UFileUpload:提供文件选择界面,但 MIME、大小、处理与错误验证仍由页面负责。
  • ToolGeoWrapper 与 AITip:本站组件把 Nuxt UI 基础组件与位置说明、AI 数据边界组合为可复用模式。

2. 动态主题与深色模式

Nuxt UI v4 可与 @nuxtjs/color-mode 配合实现主题切换。我们会审查主题变量的对比度,但使用组件库本身并不代表整个网站已经通过 WCAG AA 认证。

3. 零运行时样式

Nuxt UI 使用 Tailwind CSS 生成样式,而不是依赖 CSS-in-JS。实际绘制与交互性能仍取决于 CSS 体积、组件树、JavaScript、字体和页面自身任务。

4. 无障碍 (A11y) 优先

Nuxt UI 的许多交互组件采用了无障碍基础组件,但自定义标签、Canvas 操作、文件输入、生成结果和焦点顺序仍由应用负责,必须单独测试。

无障碍验证

组件默认行为只是起点。我们仍需检查语义化标题、可见标签、键盘操作、颜色对比度、错误提示以及每一个自定义交互。

5. 真实工具中的响应式组合

共享卡片不等于窄屏一定可用。输入/结果列必须在小屏折叠且不裁切,菜单与建议列表需要明确层叠关系,长 Token 和生成代码需要换行或横向滚动。本站在实际工具路由中验证这些组合。可以比较使用标签页文件流程的 PDF 转换器与展示密集文本结果的 正则测试器。

6. 结论

Nuxt UI v4 减少了重复展示代码并提供一致基础,但验证、响应式组合、焦点行为、复制或下载反馈、颜色对比度和性能仍由应用负责。它在本站的价值,正是让这些责任清楚可见,而不是把结果归功于组件库本身。

官方参考

Nuxt UI Components Documentation