--- description: Add a line below your text to make it look more … underlined. icon: underline --- # Underline [![Version](https://img.shields.io/npm/v/@tiptap/extension-underline.svg?label=version)](https://www.npmjs.com/package/@tiptap/extension-underline) [![Downloads](https://img.shields.io/npm/dm/@tiptap/extension-underline.svg)](https://npmcharts.com/compare/@tiptap/extension-underline?minimal=true) Use this extension to render text underlined. If you pass `` tags, or text with inline `style` attributes setting `text-decoration: underline` in the editor’s initial content, they all will be rendered accordingly. Be aware that underlined text in the Internet usually indicates that it’s a clickable link. Don’t confuse your users with underlined text. ::: warning Restrictions The extension will generate the corresponding `` HTML tags when reading contents of the `Editor` instance. All text marked underlined, regardless of the method will be normalized to `` HTML tags. ::: ## Installation ```bash npm install @tiptap/extension-underline ``` ## Settings ### HTMLAttributes Custom HTML attributes that should be added to the rendered HTML tag. ```js Underline.configure({ HTMLAttributes: { class: 'my-custom-class', }, }) ``` ## Commands ### setUnderline() Marks a text as underlined. ```js editor.commands.setUnderline() ``` ### toggleUnderline() Toggles an underline mark. ```js editor.commands.toggleUnderline() ``` ### unsetUnderline() Removes an underline mark. ```js editor.commands.unsetUnderline() ``` ## Keyboard shortcuts | Command | Windows/Linux | macOS | | ----------------- | ------------------ | -------------- | | toggleUnderline() | `Control` `U` | `Cmd` `U` | ## Source code [packages/extension-underline/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-underline/) ## Usage https://embed.tiptap.dev/preview/Marks/Underline