Skip to content
FrameworkJavaScript

List block: ordered, unordered, and checklists

Bulleted, numbered, and to-do (checklist) lists with unlimited nesting. Each list item is a separate block. The toolbox shows three entries by default — one for each style — and items can be converted between styles via the block settings menu.

Import

TypeScript
import { List } from '@bloklabs/core/tools';

Configuration

OptionTypeDefaultDescription
defaultStyle"unordered" | "ordered" | "checklist""unordered"The list style used when inserting a new list block.
stylesListItemStyle[]["unordered","ordered","checklist"]Restrict which styles are available in the block settings conversion menu.
toolboxStylesListItemStyle[]all stylesRestrict which list styles appear as separate toolbox entries.
itemColorstringundefinedCustom CSS color for list item text (e.g. "#3b82f6").
itemSizestringundefinedCustom CSS font-size for list items (e.g. "18px", "1.25rem").

Save Data

TypeScript
interface ListItemData {
  text: string;                                    // Item HTML content
  style: 'unordered' | 'ordered' | 'checklist'; // List type
  checked?: boolean;  // Checklist check state
  start?: number;     // First number for ordered lists (root items only)
  depth?: number;     // Nesting depth (0 = root)
}
JSON
{
  "id": "ghi789",
  "type": "list",
  "data": {
    "text": "First item",
    "style": "unordered",
    "depth": 0
  }
}

Usage Example

TypeScript
import { Blok } from '@bloklabs/core';
import { List } from '@bloklabs/core/tools';

const editor = new Blok({
  holder: 'editor',
  tools: {
    list: {
      class: List,
      defaultStyle: 'unordered',
    },
  },
});