UI 概览

架构

Univer 的 UI 基座基于下图设计:

DesktopWorkbench BuiltInUIPart slotsIUIPartsService.registerComponent(part, factory)
workbench-layout
BuiltInUIPart.CUSTOM_HEADERCustom Header
BuiltInUIPart.TOOLBARToolbar+ HEADER_MENU
BuiltInUIPart.LEFT_SIDEBARLeft Sidebar
BuiltInUIPart.HEADERHeader
BuiltInUIPart.CONTENTContent
internal Sidebar serviceRight Sidebar
BuiltInUIPart.FOOTERFooter
outside workbench-layout
BuiltInUIPart.GLOBALGlobal
BuiltInUIPart.FLOATINGFloating Portal

通过不同的插件相结合,向基座中添加各种功能和视图,最终形成一个完整的应用。

设计系统

Univer 的设计系统基于 Tailwind CSS 构建了一系列的设计 Tokens,这些 Tokens 会被渲染引擎复用,以确保渲染引擎与视图层的样式一致。你可以通过修改这些 Tokens 来定制你的应用的样式,Tokens 被存储在 @univerjs/themes 包中。

组件

Univer 使用了 React 组件来构建视图层,因此对于同样使用 React 的开发者来说,无论是使用 Univer 的组件还是注册自定义组件,都会是一件非常简单的事情。但这并不意味着你只能使用 React 来自定义组件,Univer 也提供了对其他框架的支持,比如 Vue(3.x 版本)和 Web Components。

所有的基础组件都被存放在 @univerjs/design 包中。图标组件被存放在 @univerjs/icons 包中。这些组件也可以独立于 Univer 单独使用。

自定义组件常用于以下场景:

  • 在 Ribbon / Context Menu 中添加自定义按钮
  • 在 Sidebar / Popup 等组件中集成自定义组件
  • 替换内置组件

我们会在后续章节中详细介绍如何注册和使用自定义组件。

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.