Column
components/demo.tsx
'use client';
import React from 'react';
import { Plate } from '@udecode/plate/react';
import { editorPlugins } from '@/components/editor/plugins/editor-plugins';
import { useCreateEditor } from '@/components/editor/use-create-editor';
import { Editor, EditorContainer } from '@/components/plate-ui/editor';
import { DEMO_VALUES } from './values/demo-values';
export default function Demo({ id }: { id: string }) {
const editor = useCreateEditor({
plugins: [...editorPlugins],
value: DEMO_VALUES[id],
});
return (
<Plate editor={editor}>
<EditorContainer variant="demo">
<Editor />
</EditorContainer>
</Plate>
);
}
Installation
npm install @udecode/plate-layout
Usage
import { ColumnPlugin, ColumnItemPlugin } from '@udecode/plate-layout/react';
const plugins = [
// ...otherPlugins,
ColumnPlugin,
];
Plugins
ColumnPlugin
Add Column Plugin to your document.
ColumnItemPlugin
Add Column Item Plugin to your document.
Types
TColumnGroupElement
Extends TElement
.
TColumnElement
Extends TElement
.
Transforms
insertColumnGroup
Insert a columnGroup with two empty columns.
columns
: Array of column widths or number of equal-width columns (default: 2)- Other
InsertNodesOptions
to control insert behavior
Array of column widths or number of equal-width columns (default: 2)
Other options to control insert behavior
insertColumn
Insert an empty column. You can set the width by options.width default is "33%"
moveMiddleColumn
Move the middle column to the left or right.
toggleColumnGroup
Convert a block into a column group layout or update an existing column group's layout.
Behavior:
- If the target block is not a column group, wraps it in a new column group with the specified number of columns
- If the target block is already a column group, updates its column layout using
setColumns
- The original content becomes the content of the first column
- Additional columns are created with empty paragraphs
setColumns
Update the column layout of an existing column group.
Behavior:
- When increasing columns:
- Keeps existing column content
- Adds new empty columns with specified widths
- When decreasing columns:
- Merges content from removed columns into the last remaining column
- Updates widths of remaining columns
- When keeping same number of columns:
- Only updates column widths