content/docs/(plugins)/(marks)/bold.mdx
Bold applies the bold leaf mark to selected text. BoldPlugin owns the mark key, shortcut, HTML parsing, render tag, and toggle transform.
KEYS.bold leaf mark.⌘B / Ctrl+B shortcut.strong, b, and bold font weight.<strong> rendering by default.BoldRules.MarkToolbarButton.BasicMarksKit includes BoldPlugin, bold input rules, and the standard toolbar buttons that use KEYS.bold.
import { createPlateEditor } from 'platejs/react';
import { BasicMarksKit } from '@/components/editor/plugins/basic-marks-kit';
export const editor = createPlateEditor({
plugins: [...BasicMarksKit],
});
Use MarkToolbarButton with KEYS.bold.
import { BoldIcon } from 'lucide-react';
import { KEYS } from 'platejs';
import { MarkToolbarButton } from '@/components/ui/mark-toolbar-button';
export function BoldToolbarButton() {
return (
<MarkToolbarButton nodeType={KEYS.bold} tooltip="Bold (⌘+B)">
<BoldIcon />
</MarkToolbarButton>
);
}
Install the mark package.
npm install @platejs/basic-nodes
Add BoldPlugin directly when you do not want the whole kit.
import { BoldPlugin } from '@platejs/basic-nodes/react';
import { createPlateEditor } from 'platejs/react';
export const editor = createPlateEditor({
plugins: [BoldPlugin],
});
Register Markdown-style input rules when users should type bold delimiters.
import { BoldRules } from '@platejs/basic-nodes';
import { BoldPlugin } from '@platejs/basic-nodes/react';
export const boldPlugin = BoldPlugin.configure({
inputRules: [
BoldRules.markdown({ variant: '*' }),
BoldRules.markdown({ variant: '_' }),
],
});
| Surface | Owner | What It Does |
|---|---|---|
BaseBoldPlugin | @platejs/basic-nodes | Headless bold mark, HTML parser, render tag, and toggle transform. |
BoldPlugin | @platejs/basic-nodes/react | React wrapper with default mod+b shortcut. |
BoldRules.markdown | @platejs/basic-nodes | Optional mark input rule factory. |
BasicMarksKit | Registry | Adds BoldPlugin with * and _ Markdown-style input rules. |
MarkToolbarButton | Registry UI | Reads active mark state and calls the mark toggle hook. |
The package owns the mark. The registry owns toolbar placement and icon choice.
| Behavior | Source |
|---|---|
| Mark key | KEYS.bold |
| Leaf behavior | node.isLeaf: true |
| Toggle transform | editor.tf.bold.toggle() calls editor.tf.toggleMark(type). |
| Shortcut | BoldPlugin registers mod+b. |
| HTML tags | strong, b |
| HTML styles | font-weight: 600, 700, or bold |
| HTML guard | Ignores descendants where fontWeight is normal. |
| Render output | strong |
| API | Package | Use |
|---|---|---|
BaseBoldPlugin | @platejs/basic-nodes | Headless bold plugin. |
BoldPlugin | @platejs/basic-nodes/react | React bold plugin with shortcut defaults. |
BoldRules.markdown(options) | @platejs/basic-nodes | Creates a bold mark input rule. |
tf.bold.toggle() | @platejs/basic-nodes | Toggles the bold mark at the selection. |