Ritext
Extensions

Extensions Overview

Browse all available extensions for Ritext.

Ritext extensions are modular features you opt into. Each extension adds a formatting capability and automatically registers its toolbar button. Include only what you need.

Base Extensions

Base extensions are required for the editor to function. Always include them.

import {
  Document, Text, Paragraph, TextStyle,
  ListItem, ListKeymap, Dropcursor, Gapcursor,
  Placeholder, TrailingNode, CharacterCount
} from 'ritext/extension/base';

See Base Extensions for details.

All Extensions

ExtensionImport PathDescription
Boldritext/extension/boldBold text formatting
Italicritext/extension/italicItalic text formatting
Underlineritext/extension/underlineUnderline text
Strikeritext/extension/strikeStrikethrough text
Clear Formatritext/extension/clearformatRemove all formatting
Subscriptritext/extension/subscriptSubscript text
Superscriptritext/extension/superscriptSuperscript text
Sub & Superscriptritext/extension/subandsuperscriptCombined sub/superscript dropdown
Headingritext/extension/headingH1–H6 headings
Font Familyritext/extension/font-familyChange font family
Font Sizeritext/extension/font-sizeChange font size
Colorritext/extension/colorText color picker
Background Colorritext/extension/backgroundcolorText background color
Line Heightritext/extension/lineheightLine height control
Bullet Listritext/extension/bulletlistUnordered list
Ordered Listritext/extension/orderedlistNumbered list
Task Listritext/extension/tasklistCheckbox task list
Block Quoteritext/extension/blockquoteBlock quote
Horizontal Ruleritext/extension/horizontalruleHorizontal divider
Text Alignritext/extension/textalignLeft/Center/Right/Justify
Indent/Outdentritext/extension/indentoutdentText indentation
Historyritext/extension/historyUndo/Redo
Hard Breakritext/extension/hardbreakInsert line break
Linkritext/extension/linkHyperlinks
Imageritext/extension/imageImage insertion and editing
Tableritext/extension/tableTable insertion and editing
Emojiritext/extension/emojiEmoji picker

Common Extension Pattern

Every Ritext extension follows the same pattern:

import { Bold } from 'ritext/extension/bold';

// Use as-is
const extensions = [Bold];

// Or configure with options
const extensions = [
  Bold.configure({
    className: 'my-button-class',
    tooltip: true,
  }),
];

Common Options

All toolbar extensions share a set of common styling options:

Prop

Type

Surface & Bubble Menu

Every extension supports a surface option that controls where its button is rendered, and an order option that controls its position inside each surface.

Bold.configure({
  surface: {
    toolbar: true,      // show in Toolbar (default: true)
    bubbleMenu: true,   // show in BubbleMenu (default: false for most)
  },
  order: {
    bubbleMenu: 2,      // position inside BubbleMenu — lower = earlier
  },
})

To hide a button from the toolbar but keep it in the bubble menu:

Color.configure({
  surface: { toolbar: false, bubbleMenu: true },
  order: { bubbleMenu: 6 },
})

Default bubble menu positions (extensions that opt in by default):

OrderExtension
1Heading
2Bold
3Italic
4Underline
5Strike
6Color
7Background Color
8Text Align
9Link
10Hard Break
11Emoji

See BubbleMenu for full component documentation.

On this page