# @univerjs/ui

> Shared application UI framework, workbench services, menus, dialogs, and Facade UI APIs for Univer.

Latest version **1.0.0** (published 2026-09-23) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @univerjs/ui
pnpm add @univerjs/ui
yarn add @univerjs/ui
bun add @univerjs/ui
```

## Health

**Score 60/100 (C)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score; popular repo.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2026-09-23 |
| First published | 2023-12-05 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 14793 |
| Author | DreamNum Co., Ltd. <developer@univer.ai> |
| Maintainers | jikkai, wbfsa, mengshukeji |
| Keywords | univer, ui, workbench, menus, react |

## Links

- npm: https://www.npmjs.com/package/@univerjs/ui
- Repository: https://github.com/dream-num/univer
- Homepage: https://univer.ai
- Issues: https://github.com/dream-num/univer/issues
- Funding: https://opencollective.com/univer
- npm.io page: https://npm.io/package/@univerjs/ui

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2026-09-23
- 1.0.0-rc.0 (rc) — 2026-09-10
- 1.0.0-beta.2 (beta) — 2026-08-22
- 1.0.0-insiders.20260813-7c9aa50 (insiders) — 2026-08-13
- 1.0.0-alpha.8 (alpha) — 2026-07-29
- 0.12.4-experimental.20251211-e01e32a (experimental) — 2025-12-11
- 0.12.3-nightly.202512060617 (nightly) — 2025-12-06
- 0.25.2 — 2026-09-17
- 1.0.0-beta.1 — 2026-08-15
- 1.0.0-insiders.20260809-70eefdd — 2026-08-09
- 1.0.0-insiders.20260808-70eefdd — 2026-08-08
- 1.0.0-beta.0 — 2026-08-05
- 1.0.0-insiders.20260805-b15e7f3 — 2026-08-05
- 1.0.0-insiders.20260804-bf9a7c5 — 2026-08-04
- 1.0.0-insiders.20260803-82dc67d — 2026-08-03
- … 713 more at https://npm.io/package/@univerjs/ui/versions

## README

# @univerjs/ui

[![npm version](https://img.shields.io/npm/v/@univerjs/ui?style=flat-square)](https://npmjs.com/package/@univerjs/ui)
[![license](https://img.shields.io/npm/l/@univerjs/ui?style=flat-square)](https://npmjs.com/package/@univerjs/ui)
[![downloads](https://img.shields.io/npm/dm/@univerjs/ui?style=flat-square)](https://npmjs.com/package/@univerjs/ui)

`@univerjs/ui` provides Univer's shared application UI framework, workbench services, menu infrastructure, dialogs, clipboard services, and Facade UI APIs.

## Package Overview

| Package | UMD global | CSS | Locales | Facade entry |
| --- | --- | :---: | :---: | :---: |
| `@univerjs/ui` | `UniverUi` | Yes | Yes | Yes |

## Installation

```sh
pnpm add @univerjs/ui
# or
npm install @univerjs/ui
```

Keep all `@univerjs/*` packages on the same version.

## Usage

```ts
import '@univerjs/ui/lib/index.css';
import EnUS from '@univerjs/ui/locale/en-US';
import { UniverUIPlugin } from '@univerjs/ui';

univer.registerPlugin(UniverUIPlugin);

// Merge EnUS into your Univer locale map when this package contributes UI text.
```

Exported plugin classes:

- `UniverUIPlugin`
- `UniverMobileUIPlugin`

## Format painter

The desktop Start ribbon has one format painter entry. A single click captures a detached
format snapshot for one application; a double click keeps it active until Escape or another
click on the entry. Unsupported targets do not consume the snapshot. The canvas displays a
brush cursor on supported targets and an unavailable cursor elsewhere.

`FormatPainterSessionService` coordinates the local session. Host adapters claim the active
editing context and apply formatting through their domain commands. A higher-priority shape
selection prevents a stale cell selection from becoming the source. Changing the focused
Unit or disposing the source Unit cancels the session. The session itself is not persisted.

The icon-only clear-formatting button below the format painter resets the active domain's
formatting without removing content. Clearing cancels an active brush; each domain applies
the change through its undoable commands.

## Resources

- [Documentation](https://docs.univer.ai)
- [NPM package](https://npmjs.com/package/@univerjs/ui)
- [GitHub repository](https://github.com/dream-num/univer)

---
_Source: https://npm.io/package/@univerjs/ui · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
