# Core Features

- Human documentation: [https://docs.univer.ai/guides/boards/features/core](https://docs.univer.ai/guides/boards/features/core)

- Agent Markdown: [https://docs.univer.ai/guides/boards/features/core.md](https://docs.univer.ai/guides/boards/features/core.md)

- Requested language: `en-US`

- Content language: `en-US`

- Documentation version: `1.0.0-rc.0`

- Source: [boards/features/core/index.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/boards/features/core/index.mdx)

---

#### Package metadata

```json
{
  "preset": [],
  "plugins": [
    {
      "client": "@univerjs-pro/boards",
      "facade": "@univerjs-pro/boards/facade"
    },
    {
      "client": "@univerjs-pro/boards-ui",
      "locale": "@univerjs-pro/boards-ui/locale/en-US",
      "style": "@univerjs-pro/boards-ui/lib/index.css",
      "facade": "@univerjs-pro/boards-ui/facade"
    }
  ],
  "server": false
}
```

Univer Boards core combines a page-and-element model with an interactive browser canvas. The model and UI are delivered by two Web SDK packages and operate as an independent `UNIVER_BOARD` unit.

## Features

* **Pages and element ordering**: Store pages in `pages` and drawable objects in each page's `elements`, with explicit order arrays for both levels.
* **Canvas elements**: Work with text, shapes, images, connectors, groups, containers, and swimlanes.
* **Command-driven editing**: Route element changes, ordering, and parent relationships through one command layer with permissions and hooks for optional history and collaboration integrations.
* **Browser canvas**: Render elements and provide selection, transforms, clipboard, text editing, viewport controls, and panels.
* **Extensible adapters**: Add optional Board capabilities such as tables, mind maps, charts, resources, print, and exchange.
* **Persistence**: Create, restore, and save an `IBoardData` snapshot, including pages, resources, themes, and active-page state.

## Preset Mode

Univer Boards does not currently provide a dedicated preset. Use plugin mode for both the model and browser UI.

## Plugin Mode

### Installation

Add the two Boards product packages to the Univer runtime described in [Installation & Basic Usage](https://docs.univer.ai/guides/boards/getting-started/installation.md):

#### npm

```bash
npm install @univerjs-pro/boards @univerjs-pro/boards-ui
```

#### pnpm

```bash
pnpm add @univerjs-pro/boards @univerjs-pro/boards-ui
```

#### yarn

```bash
yarn add @univerjs-pro/boards @univerjs-pro/boards-ui
```

#### bun

```bash
bun add @univerjs-pro/boards @univerjs-pro/boards-ui
```

### Product plugin registration

Register the shared render, document, drawing, ink, shape-editing, and license dependencies first as shown in the installation guide, then register the Boards plugins:

```ts
import { UniverBoardsPlugin } from '@univerjs-pro/boards'
import { UniverBoardsUIPlugin } from '@univerjs-pro/boards-ui'

import '@univerjs-pro/boards-ui/lib/index.css'

univer.registerPlugin(UniverBoardsPlugin)
univer.registerPlugin(UniverBoardsUIPlugin)
```

`UniverBoardsPlugin` registers the Board model, commands, element services, adapters, and permissions. `UniverBoardsUIPlugin` adds the rendered canvas and browser interactions.
