# Heading [](https://www.npmjs.com/package/@tiptap/extension-heading) [](https://npmcharts.com/compare/@tiptap/extension-heading?minimal=true) The Heading extension adds support for headings of different levels. Headings are rendered with `
# at the beginning of a new line and it will magically transform to a heading, same for ## , ### , #### , ##### and ###### .
## Installation
```bash
# with npm
npm install @tiptap/extension-heading
# with Yarn
yarn add @tiptap/extension-heading
```
## Settings
| Option | Type | Default | Description |
| -------------- | -------- | -------------------- | --------------------------------------------------------------------- |
| HTMLAttributes | `Object` | `{}` | Custom HTML attributes that should be added to the rendered HTML tag. |
| levels | `Array` | `[1, 2, 3, 4, 5, 6]` | Specifies which heading levels are supported. |
## Commands
| Command | Parameters | Description |
| ------- | ---------- | ------------------------------------------------ |
| heading | level | Creates a heading node with the specified level. |
## Keyboard shortcuts
| Command | Windows/Linux | macOS |
| --------------------------- | ----------------------------- | ------------------------- |
| toggleHeading({ level: 1 }) | `Control` `Alt` `1` | `Cmd` `Alt` `1` |
| toggleHeading({ level: 2 }) | `Control` `Alt` `2` | `Cmd` `Alt` `2` |
| toggleHeading({ level: 3 }) | `Control` `Alt` `3` | `Cmd` `Alt` `3` |
| toggleHeading({ level: 4 }) | `Control` `Alt` `4` | `Cmd` `Alt` `4` |
| toggleHeading({ level: 5 }) | `Control` `Alt` `5` | `Cmd` `Alt` `5` |
| toggleHeading({ level: 6 }) | `Control` `Alt` `6` | `Cmd` `Alt` `6` |
## Source code
[packages/extension-heading/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-heading/)
## Usage