A React toolkit for building cross-platform text editors, based on ProseMirror.
Motivation · Status · Documentation · Storybook · Contributing
import React from 'react';
import { BoldExtension, ItalicExtension, UnderlineExtension } from 'remirror/extensions';
import { Remirror, useRemirror, OnChangeJSON } from '@remirror/react';
const extensions = () => [new BoldExtension(), new ItalicExtension(), new UnderlineExtension()];
const Editor = ({ onChange }) => {
const { manager, state } = useRemirror({
extensions,
content: '<p>Hi <strong>Friend</strong></p>',
stringHandler: 'html',
selection: 'end',
});
return (
<Remirror manager={manager} initialContent={state}>
<OnChangeJSON onChange={onChange} />
</Remirror>
);
};
With this code snippet your editor now supports basic editing functionality.
Alternatively, take a look at our 5 minute tutorial to get up and running with an out-of-the-box WYSIWYG editor.
npm add remirror @remirror/react @remirror/pm
If you run into any issues we recommend any of the following:
- Open an issue in our github repo.
- Join our discord server and discuss the problem with our community.
- Create a pull request with your proposed improvement by clicking the edit button on the relevant page.
Whatever you decide thanks for taking the time to explore the remirror project.
NEXT |
Reflect |
Benefex |
Cobudget |
eftax Co., Ltd. |
LabKey |
Onethread |
View our documentation website here.
- Introduction
- Use an out-of-the-box editor
- Create your own editor
- Extensions
- Storybook
- CodeSandbox starter
- A11y focused and ARIA compatible.
- I18n support via lingui.
- Great support for mobile devices.
- Out-of-the-box editors, or create own by composing extensions.
- Create your own extensions for bare-metal ProseMirror integration.
- Collaborative editing with yjs or prosemirror-collab.
- 30+ extensions for creating fully customized editing experiences.
- TypeScript as a first class citizen for great developer experience.
See our 5 minute tutorial to get started!
Please read our contribution guide for details on our code of conduct, and the process for submitting pull requests. It also outlines the project structure so you can find help when navigating your way around the codebase.
This project uses SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the MIT License - see the LICENSE file for details