# plate
**Repository Path**: mirrors_bokuweb/plate
## Basic Information
- **Project Name**: plate
- **Description**: A plugin framework for building rich text editors with slate.
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-09-06
- **Last Updated**: 2026-02-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Plate
## Visit [plate.udecode.io](https://plate.udecode.io/) for docs, guides, API and more!
### Hiring
Plate consulting:
- [@zbeyens](https://superpeer.com/zbeyens) β author
Looking to hire:
- [@dylans](https://github.com/dylans) β co-owner
- [@nicholasareed](https://github.com/nicholasareed)
DM [@zbeyens](https://github.com/zbeyens) to get added to the list if your offer includes Plate contribution.
## Introduction
[Slate](https://github.com/ianstormtaylor/slate) is a low-level editor
framework that helps you deal with difficult parts when building an
editor, such as events handlers, elements, formatting, commands,
rendering, serializing, normalizing, etc.
While you are trying to build your own editors, it still needs a lot of
skills to make something similar to [Quill](https://quilljs.com/) or
[ProseMirror](https://prosemirror.net/). This repository allows you to
build your editor right away with **minimal** slate knowledge.
`@udecode/plate` is built on top of slate to handle plugins and state
management for an optimal development experience. This repository comes
with a lot of plugins as elements, marks, serializers, normalizers,
queries, transforms, components and so on.
- π Simple Start
> You only need one component to get started: ``
- π» State Management
> [zustand](https://github.com/pmndrs/zustand) store is internally used
> to support multiple editor states.
- π
Design System
> The API is design system friendly. We provide a default design system
> for quick start but you can plug-in your own one using a single
> function.
- π 40+ Packages
> We enforce separation of concerns by packaging each feature for build
> optimization and versioning.
- π Extensible
> All plugins accept extensible options and if you need to fork a
> plugin, all its functions are exported.
- π¦ Tree-shaking / ES modules
- β
TypeScript types
- β
Unit tested with `slate@0.63.0` and `slate-react@0.65.2`
## Documentation
To find out more see the following Plate documentation sections:
- [API documentation](https://plate-api.udecode.io/globals.html)
- [Docs](https://plate.udecode.io)
- [Quick start](https://plate.udecode.io/docs/installation)
- [Guides](https://plate.udecode.io/docs/Plate)
- [Playground](https://plate.udecode.io/docs/playground)
- [Examples](examples)
- [NextJS](examples/apps/next)
- [CRA](examples/apps/cra)
The documentation is far from being complete and will be constantly
evolving (as will the packages).
## Contributing and project organization
### Ideas and discussions
[Discussions](https://github.com/udecode/plate/discussions) is the best
place for bringing opinions and contributions. Letting us know if we're
going in the right or wrong direction is great feedback and will be much
appreciated!
### Development
Plate is a modular, multi-package, monorepo project. It consists of a
core package that creates the plugin system, based on which the plugin
packages are implemented.
See the [contributing guide](CONTRIBUTING.md) to learn how to contribute
your code to the project.
## Packages
### Core libraries
| Name | Version | Description |
|:-------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------|
| [`@udecode/plate-common`](packages/common) | [
](https://www.npmjs.com/package/@udecode/plate-common) | Common queries, transforms and utilities. |
| [`@udecode/plate-core`](packages/core) | [
](https://www.npmjs.com/package/@udecode/plate-core) | Core plate architecture. |
### Element Plugins
| Name | Version | Description |
|:------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------|
| [`@udecode/plate-basic-elements`](packages/nodes/basic-elements) | [
](https://www.npmjs.com/package/@udecode/plate-basic-elements) | Basic elements plugins. |
| [`@udecode/plate-alignment`](packages/nodes/alignment) | [
](https://www.npmjs.com/package/@udecode/plate-alignment) | Text alignment plugin. |
| [`@udecode/plate-ui-alignment`](packages/ui/nodes/alignment) | [
](https://www.npmjs.com/package/@udecode/plate-ui-alignment) | Text alignment UI. |
| [`@udecode/plate-block-quote`](packages/nodes/block-quote/) | [
](https://www.npmjs.com/package/@udecode/plate-block-quote) | Block quote plugin. |
| [`@udecode/plate-ui-block-quote`](packages/ui/nodes/block-quote/) | [
](https://www.npmjs.com/package/@udecode/plate-ui-block-quote) | Block quote UI. |
| [`@udecode/plate-code-block`](packages/nodes/code-block) | [
](https://www.npmjs.com/package/@udecode/plate-code-block) | Code block plugin. |
| [`@udecode/plate-ui-code-block`](packages/ui/nodes/code-block) | [
](https://www.npmjs.com/package/@udecode/plate-ui-code-block) | Code block UI. |
| [`@udecode/plate-excalidraw`](packages/ui/nodes/excalidraw/) | [
](https://www.npmjs.com/package/@udecode/plate-excalidraw) | Excalidraw plugin. |
| [`@udecode/plate-heading`](packages/nodes/heading/) | [
](https://www.npmjs.com/package/@udecode/plate-heading) | Headings (1-6) plugin. |
| [`@udecode/plate-link`](packages/nodes/link/) | [
](https://www.npmjs.com/package/@udecode/plate-link) | Link plugin. |
| [`@udecode/plate-ui-link`](packages/ui/nodes/link/) | [
](https://www.npmjs.com/package/@udecode/plate-ui-link) | Link UI. |
| [`@udecode/plate-list`](packages/nodes/list) | [
](https://www.npmjs.com/package/@udecode/plate-list) | Bulleted, numbered and to-do list plugins. |
| [`@udecode/plate-ui-list`](packages/ui/nodes/list) | [
](https://www.npmjs.com/package/@udecode/plate-ui-list) | List UI. |
| [`@udecode/plate-media`](packages/nodes/media) | [
](https://www.npmjs.com/package/@udecode/plate-media) | Media embed plugin. |
| [`@udecode/plate-ui-media`](packages/ui/nodes/media) | [
](https://www.npmjs.com/package/@udecode/plate-ui-media) | Media embed UI. |
| [`@udecode/plate-mention`](packages/nodes/mention/) | [
](https://www.npmjs.com/package/@udecode/plate-mention) | Mention plugin (autocomplete `@mentions`, `#tags`, etc.). |
| [`@udecode/plate-ui-mention`](packages/ui/nodes/mention/) | [
](https://www.npmjs.com/package/@udecode/plate-ui-mention) | Mention UI. |
| [`@udecode/plate-paragraph`](packages/nodes/paragraph/) | [
](https://www.npmjs.com/package/@udecode/plate-paragraph) | Paragraph plugin. |
| [`@udecode/plate-table`](packages/nodes/table/) | [
](https://www.npmjs.com/package/@udecode/plate-table) | Table plugin. |
| [`@udecode/plate-ui-table`](packages/ui/nodes/table/) | [
](https://www.npmjs.com/package/@udecode/plate-ui-table) | Table UI. |
### Mark Plugins
| Name | Version | Description |
|:-----------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------|
| [`@udecode/plate-basic-marks`](packages/nodes/basic-marks) | [
](https://www.npmjs.com/package/@udecode/plate-basic-marks) | Basic marks plugins: bold, code, italic, strikethrough, subscript, superscript and underline. |
| [`@udecode/plate-font`](packages/nodes/font) | [
](https://www.npmjs.com/package/@udecode/plate-font) | Font color and background color plugins. |
| [`@udecode/plate-highlight`](packages/nodes/highlight/) | [
](https://www.npmjs.com/package/@udecode/plate-highlight) | Highlight plugin. |
| [`@udecode/plate-kbd`](packages/nodes/kbd/) | [
](https://www.npmjs.com/package/@udecode/plate-kbd) | Keyboard input plugin. |
### Serializer Plugins
| Name | Version | Description |
|:-------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------|
| [`@udecode/plate-serializer-md`](packages/serializers/md) | [
](https://www.npmjs.com/package/@udecode/plate-serializer-md) | Markdown serializer plugin. |
| [`@udecode/plate-serializer-csv`](packages/serializers/csv) | [
](https://www.npmjs.com/package/@udecode/plate-serializer-csv) | CSV serializer plugin. |
### Plugins
| Name | Version | Description |
|:--------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------|
| [`@udecode/plate`](packages/plate) | [
](https://www.npmjs.com/package/@udecode/plate) | All-in-one package. |
| [`@udecode/plate-autoformat`](packages/editor/autoformat) | [
](https://www.npmjs.com/package/@udecode/plate-autoformat) | Autoformatting plugin. Replaces predefined characters with a corresponding format (e.g. **foo** becomes bold). |
| [`@udecode/plate-break`](packages/editor/break) | [
](https://www.npmjs.com/package/@udecode/plate-break) | Insert break plugins. |
| [`@udecode/plate-ui-dnd`](packages/ui/dnd) | [
](https://www.npmjs.com/package/@udecode/plate-ui-dnd) | Drag and drop with [react-dnd](https://github.com/react-dnd/react-dnd). |
| [`@udecode/plate-find-replace`](packages/decorators/find-replace) | [
](https://www.npmjs.com/package/@udecode/plate-find-replace) | Find and replace plugin. |
| [`@udecode/plate-ui-find-replace`](packages/ui/find-replace) | [
](https://www.npmjs.com/package/@udecode/plate-ui-find-replace) | Find and replace UI. |
| [`@udecode/plate-node-id`](packages/editor/node-id) | [
](https://www.npmjs.com/package/@udecode/plate-node-id) | Node ID plugin. |
| [`@udecode/plate-normalizers`](packages/editor/normalizers) | [
](https://www.npmjs.com/package/@udecode/plate-normalizers) | Normalizer plugins. |
| [`@udecode/plate-reset-node`](packages/editor/reset-node) | [
](https://www.npmjs.com/package/@udecode/plate-reset-node) | Reset node plugin. |
| [`@udecode/plate-select`](packages/editor/select) | [
](https://www.npmjs.com/package/@udecode/plate-select) | Node selecting plugins. |
| [`@udecode/plate-styled-components`](packages/ui/styled-components) | [
](https://www.npmjs.com/package/@udecode/plate-ui-fluent) | Styled components (Plate UI library). |
| [`@udecode/plate-trailing-block`](packages/editor/trailing-block) | [
](https://www.npmjs.com/package/@udecode/plate-trailing-block) | Trailing-block plugin. |
| [`@udecode/plate-ui-toolbar`](packages/ui/toolbar) | [
](https://www.npmjs.com/package/@udecode/plate-ui-toolbar) | Toolbar UI (balloon, heading, buttons, etc.). |
| [`@udecode/plate-test-utils`](packages/test-utils/) | [
](https://www.npmjs.com/package/@udecode/plate-test-utils) | Test utilities. |
## Looking for `slate-plugins`?
This repo has been renamed to `plate`. The name change should not
disrupt any current usage, repo clones, pull requests or issue
reporting. Links should redirect to the new location. The library
formerly known as `@udecode/slate-plugins` is now available as
`@udecode/plate`.
### Author's Note
> [@zbeyens](https://github.com/zbeyens): I'm building an app with an
> editor like many of you and my first initiative was to spend months
> to share this work, while hundreds of developers were coding and
> debugging the exact same features. Open-source is a long-term
> investment for a **bug-free product and reducing technical debt**, so
> I can only encourage you to join this collaboration. Our goal is to
> build a fully-featured editor.
#### [BecomeΒ aΒ Sponsor!](https://github.com/sponsors/zbeyens)
### Contributors
π Stars and π₯ Pull requests are welcome! Don't hesitate to **share
your plugins** here. Read our [contributing guide](CONTRIBUTING.md) to
get started, or find us on
[Slack](https://slate-js.slack.com/messages/plate), we will take
the time to guide you.
Thanks goes to these wonderful people
([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!
## License
[MIT](LICENSE)