Board Data Structure

IBoardData

IBoardData is the snapshot format used by Univer Boards. It describes one Board unit, including page order, page data, resources, themes, active page, zoom ratio, and board-level settings.

Properties

PropertyTypeDescription
idstringUnique id of the Board unit.
rev?numberOptional revision value used by persistence or collaboration layers.
namestringBoard name.
appVersionstringVersion of the package that created the snapshot.
locale?stringLocale of the board.
defaultPageSizeIBoardPageSizeDefault page size for board pages.
pageOrderstring[]Ordered list of board page ids.
pagesRecord\<string, IBoardPage\>Page snapshots keyed by page id.
activePageId?stringActive page id.
theme?IBoardThemeDataCurrent board theme.
themes?Record\<string, IBoardThemeData\>Additional named themes.
zoomRatio?numberCurrent zoom ratio.
resources?IResourcesExternal resources used by images, rich text, tables, and other elements.
custom?`Record<string, unknown>null`
boardSettings?IBoardSettingsBoard-level UI and interaction settings.

Page data

IBoardPage stores elements by id and uses elementOrder to define rendering order. Keep both structures in sync when constructing a snapshot yourself.

TypeScript
const boardData = {  id: 'board-1',  name: 'Planning board',  appVersion: '1.0.0',  defaultPageSize: { width: 1920, height: 1080 },  pageOrder: ['page-1'],  pages: {    'page-1': {      id: 'page-1',      pageType: 'page',      name: 'Page 1',      elementOrder: ['text-1'],      elements: {        'text-1': {          id: 'text-1',          type: 'text',          transform: { left: 120, top: 96, width: 240, height: 80 },          text: 'Kickoff',        },      },    },  },  activePageId: 'page-1',}

Usage

IBoardData is mainly used to:

  1. Create a UniverInstanceType.UNIVER_BOARD unit.
  2. Persist and restore Board documents.
  3. Prepare data for import, export, or server-side processing.
  4. Seed a Board with pages, elements, and settings before rendering.

Snapshot objects are persistence data. After a Board is running, prefer Facade APIs instead of mutating the snapshot object directly.

How is this guide?

© 2026 DreamNum Co., Ltd.