Loading...
Features
- Insert emojis inline with autocomplete suggestions
- Triggered by
:
character followed by emoji name (e.g.,:apple:
🍎) - Customizable emoji data source and rendering
Kit Usage
Installation
The fastest way to add emoji functionality is with the EmojiKit
, which includes pre-configured EmojiPlugin
and EmojiInputPlugin
along with their Plate UI components.
EmojiInputElement
: Renders the emoji input combobox
Add Kit
import { createPlateEditor } from 'platejs/react';
import { EmojiKit } from '@/components/editor/plugins/emoji-kit';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
...EmojiKit,
],
});
Manual Usage
Installation
pnpm add @platejs/emoji @emoji-mart/data
Add Plugins
import { EmojiPlugin, EmojiInputPlugin } from '@platejs/emoji/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
EmojiPlugin,
EmojiInputPlugin,
],
});
Configure Plugins
import { EmojiPlugin, EmojiInputPlugin } from '@platejs/emoji/react';
import { createPlateEditor } from 'platejs/react';
import { EmojiInputElement } from '@/components/ui/emoji-node';
import emojiMartData from '@emoji-mart/data';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
EmojiPlugin.configure({
options: {
data: emojiMartData,
trigger: ':',
triggerPreviousCharPattern: /^\s?$/,
createEmojiNode: (emoji) => ({ text: emoji.skins[0].native }),
},
}),
EmojiInputPlugin.withComponent(EmojiInputElement),
],
});
options.data
: Emoji data from @emoji-mart/data packageoptions.trigger
: Character that triggers the emoji combobox (default::
)options.triggerPreviousCharPattern
: RegExp pattern for character before triggeroptions.createEmojiNode
: Function to create the emoji node when selected. Default inserts Unicode character as textwithComponent
: Assigns the UI component for the emoji input combobox
Add Toolbar Button
You can add EmojiToolbarButton
to your Toolbar to insert emojis.
Plugins
EmojiPlugin
Plugin for emoji functionality. Extends TriggerComboboxPluginOptions.
data optional EmojiMartData
The emoji data from @emoji-mart/data package.
- Default: Built-in emoji library
createEmojiNode optional (emoji: Emoji) => Descendant
Function to specify the node inserted when an emoji is selected.
- Default: Inserts a text node with the emoji Unicode character
trigger optional string
Character that triggers the emoji combobox.
- Default:
':'
- Default:
triggerPreviousCharPattern optional RegExp
Pattern to match the character before trigger.
- Default:
/^\s?$/
- Default:
createComboboxInput optional () => TElement
Function to create the input element when trigger is activated.
EmojiInputPlugin
Handles the input behavior for emoji insertion.