tiptap/docs/src/docPages/api/extensions/bubble-menu.md

47 lines
1.7 KiB
Markdown
Raw Normal View History

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`, thats 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, its 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',
}" />