---
title: Horizontal Rule
docs:
  - route: /docs/components/hr-element
    title: Hr Element
---

<ComponentPreview name="horizontal-rule-demo" />

<PackageInfo>

## Features

- Insert horizontal lines to separate content or indicate topic shifts.
- Using the autoformat plugin, type three dashes (**`---`**) at a new line start to transform it into a horizontal rule.

</PackageInfo>

## Installation

```bash
npm install @udecode/plate-horizontal-rule
```

## Usage

```tsx
import { insertNodes, setNodes } from '@udecode/plate-common';
import { AutoformatPlugin } from '@udecode/plate-autoformat/react';
import { ParagraphPlugin } from '@udecode/plate-common/react';
import { HorizontalRulePlugin } from '@udecode/plate-horizontal-rule/react';
import { SelectOnBackspacePlugin } from '@udecode/plate-select/react';

const plugins = [
  // ...otherPlugins,
  HorizontalRulePlugin,
  SelectOnBackspacePlugin.configure({
    options: { query: { allow: [HorizontalRulePlugin.key] } },
  }),
  AutoformatPlugin.configure({
    options: {
      rules: [
        {
          mode: 'block',
          type: HorizontalRulePlugin.key,
          match: ['---', '—-', '___ '],
          format: (editor) => {
            setNodes(editor, { type: HorizontalRulePlugin.key });
            insertNodes(editor, {
              type: ParagraphPlugin.key,
              children: [{ text: '' }],
            });
          },
        },
      ],
    },
  }),
];
```

## Plugins

### HorizontalRulePlugin