> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/ueberdosis/tiptap/llms.txt
> Use this file to discover all available pages before exploring further.

# Extensions Overview

> Comprehensive guide to all 50+ Tiptap extensions for building rich-text editors

Tiptap provides a modular extension system that allows you to customize your editor with exactly the features you need. Extensions are organized into three main categories: Nodes (block-level content), Marks (inline formatting), and Functionality (editor behaviors and features).

## Nodes

Nodes are block-level elements that form the structure of your document. They define the content model and how different types of content can be nested.

<CardGroup cols={3}>
  <Card title="Document" icon="file" href="/extensions/nodes/document">
    The root node that contains all other nodes. Required for every editor instance.
  </Card>

  <Card title="Paragraph" icon="paragraph" href="/extensions/nodes/paragraph">
    Basic text blocks. The most common node type for regular content.
  </Card>

  <Card title="Text" icon="text" href="/extensions/nodes/text">
    Represents plain text content. Required for inline content rendering.
  </Card>

  <Card title="Heading" icon="heading" href="/extensions/nodes/heading">
    Create hierarchical headings from H1 to H6 for document structure.
  </Card>

  <Card title="Blockquote" icon="quote-left" href="/extensions/nodes/blockquote">
    Quote blocks for highlighting cited or important text passages.
  </Card>

  <Card title="Code Block" icon="code" href="/extensions/nodes/code-block">
    Monospaced code blocks for displaying code snippets.
  </Card>

  <Card title="Bullet List" icon="list-ul" href="/extensions/nodes/bullet-list">
    Unordered lists with bullet points for item collections.
  </Card>

  <Card title="Ordered List" icon="list-ol" href="/extensions/nodes/ordered-list">
    Numbered lists for sequential or ranked items.
  </Card>

  <Card title="List Item" icon="list" href="/extensions/nodes/list-item">
    Individual items in bullet or ordered lists.
  </Card>

  <Card title="Horizontal Rule" icon="minus" href="/extensions/nodes/horizontal-rule">
    Visual separators to divide content sections.
  </Card>

  <Card title="Image" icon="image" href="/extensions/nodes/image">
    Embed images with support for URLs, uploads, and attributes.
  </Card>

  <Card title="Table" icon="table" href="/extensions/nodes/table">
    Create and edit tables with rows, columns, and cells.
  </Card>
</CardGroup>

## Marks

Marks are inline formatting options that can be applied to text within nodes. They can overlap and be combined to create rich text formatting.

<CardGroup cols={3}>
  <Card title="Bold" icon="bold" href="/extensions/marks/bold">
    Make text bold with **strong emphasis** styling.
  </Card>

  <Card title="Italic" icon="italic" href="/extensions/marks/italic">
    Apply italic styling for emphasis or styling purposes.
  </Card>

  <Card title="Strike" icon="strikethrough" href="/extensions/marks/strike">
    Strike through text to indicate deletion or completion.
  </Card>

  <Card title="Underline" icon="underline" href="/extensions/marks/underline">
    Underline text for emphasis or to indicate links.
  </Card>

  <Card title="Code" icon="code" href="/extensions/marks/code">
    Format inline code snippets with monospace font.
  </Card>

  <Card title="Link" icon="link" href="/extensions/marks/link">
    Create hyperlinks to external or internal resources.
  </Card>

  <Card title="Highlight" icon="highlighter" href="/extensions/marks/highlight">
    Highlight text with customizable background colors.
  </Card>

  <Card title="Text Style" icon="text" href="/extensions/marks/text-style">
    Foundation for custom inline text styling and formatting.
  </Card>
</CardGroup>

## Functionality

Functionality extensions enhance the editor with behaviors, UI components, and special features that don't directly affect the document structure.

<CardGroup cols={3}>
  <Card title="Bubble Menu" icon="comment" href="/extensions/functionality/bubble-menu">
    Context menu that appears when text is selected.
  </Card>

  <Card title="Floating Menu" icon="window" href="/extensions/functionality/floating-menu">
    Menu that appears on empty lines for quick actions.
  </Card>

  <Card title="Drag Handle" icon="grip-vertical" href="/extensions/functionality/drag-handle">
    Visual handle for dragging and reordering content blocks.
  </Card>

  <Card title="Collaboration" icon="users" href="/extensions/functionality/collaboration">
    Real-time collaborative editing powered by Yjs.
  </Card>

  <Card title="History" icon="clock-rotate-left" href="/extensions/functionality/history">
    Undo and redo functionality for editor changes.
  </Card>

  <Card title="Placeholder" icon="input-text" href="/extensions/functionality/placeholder">
    Show placeholder text when the editor is empty.
  </Card>
</CardGroup>

## Getting Started

To use any extension, first install it via npm:

```bash theme={null}
npm install @tiptap/extension-[name]
```

Then import and add it to your editor configuration:

```javascript theme={null}
import { Editor } from '@tiptap/core'
import Bold from '@tiptap/extension-bold'
import Paragraph from '@tiptap/extension-paragraph'

const editor = new Editor({
  extensions: [
    Bold,
    Paragraph,
    // Add more extensions...
  ],
})
```

## Extension Categories

### Essential Extensions

Some extensions are required for a functional editor:

* **Document**: Root node container (required)
* **Text**: Text content representation (required)
* **Paragraph**: Basic text blocks (recommended)

### Popular Combinations

Common extension bundles for different use cases:

**Basic Rich Text**

* Bold, Italic, Strike, Code, Link
* Paragraph, Heading, Bullet List, Ordered List

**Advanced Editing**

* All basic extensions, plus:
* Table, Image, Code Block Lowlight
* Bubble Menu, Floating Menu, Drag Handle

**Collaborative**

* Basic rich text extensions, plus:
* Collaboration, Collaboration Caret
* History (for local undo/redo)

## Next Steps

<CardGroup cols={2}>
  <Card title="Custom Extensions" icon="puzzle-piece" href="/guides/custom-extensions">
    Learn how to build your own custom extensions
  </Card>

  <Card title="Extension API" icon="code" href="/api/extension">
    Explore the Extension API reference
  </Card>

  <Card title="Nodes & Marks" icon="layer-group" href="/core-concepts/nodes-and-marks">
    Understand the difference between nodes and marks
  </Card>

  <Card title="Commands" icon="terminal" href="/core-concepts/commands">
    Learn about editor commands and how to use them
  </Card>
</CardGroup>
