2021-03-30 20:07:18 +08:00
# Bubble Menu
[![Version ](https://img.shields.io/npm/v/@tiptap/extension-bubble-menu.svg?label=version )](https://www.npmjs.com/package/@tiptap/extension-bubble-menu)
[![Downloads ](https://img.shields.io/npm/dm/@tiptap/extension-bubble-menu.svg )](https://npmcharts.com/compare/@tiptap/extension-bubble-menu?minimal=true)
2021-04-01 04:35:00 +08:00
This extension will make a contextual menu appear near a selection of text. Use it to let users apply [marks ](/api/marks ) to their text selection.
As always, the markup and styling is totally up to you. The menu is positioned absolute and requires a wrapper with `position: relative` , that’ s basically the only requirement though.
2021-03-30 20:07:18 +08:00
## Installation
```bash
# with npm
npm install @tiptap/extension -bubble-menu
# with Yarn
yarn add @tiptap/extension -bubble-menu
```
## Settings
2021-04-01 04:35:00 +08:00
| Option | Type | Default | Description |
| ------------ | ------------- | ------- | -------------------------------------------------------------------- |
| element | `HTMLElement` | `null` | The DOM element that contains your menu. |
| keepInBounds | `Boolean` | `true` | When enabled, it’ s rendered inside the bounding box of the document. |
2021-03-30 20:07:18 +08:00
## Source code
[packages/extension-bubble-menu/ ](https://github.com/ueberdosis/tiptap-next/blob/main/packages/extension-bubble-menu/ )
2021-04-01 04:35:00 +08:00
## Usage
### JavaScript
2021-03-30 20:07:18 +08:00
```js
import { Editor } from '@tiptap/core'
import BubbleMenu from '@tiptap/extension-bubble-menu'
new Editor({
extensions: [
BubbleMenu.configure({
element: document.querySelector('.menu'),
}),
],
})
```
2021-04-01 04:35:00 +08:00
### Frameworks
2021-03-30 20:24:52 +08:00
< demos :items = "{
Vue: 'Extensions/BubbleMenu/Vue',
React: 'Extensions/BubbleMenu/React',
}" />