Note: This branch and README covers the upcoming 2.0 release. View 1.x docs here.
Quickstart
•
Documentation
•
Development
•
Contributing
•
Interactive Playground
Quill is a modern rich text editor built for compatibility and extensibility. It was created by Jason Chen and Byron Milligan and actively maintained by Slab.
To get started, check out https://quilljs.com/ for documentation, guides, and live demos!
Quickstart
Instantiate a new Quill object with a css selector for the div that should become the editor.
<link href="https://cdn.quilljs.com/1.0.0/quill.snow.css" rel="stylesheet" />
<div id="toolbar">
<button class="ql-bold">Bold</button>
<button class="ql-italic">Italic</button>
</div>
<div id="editor">
<p>Hello World!</p>
</div>
<script src="https://cdn.quilljs.com/1.0.0/quill.js"></script>
<script>
var editor = new Quill('#editor', {
modules: { toolbar: '#toolbar' },
theme: 'snow',
});
</script>
Take a look at the Quill website for more documentation, guides and live playground!
Download
CDN
<script src="//cdn.quilljs.com/1.0.0/quill.js"></script>
<script src="//cdn.quilljs.com/1.0.0/quill.min.js"></script>
<link href="//cdn.quilljs.com/1.0.0/quill.snow.css" rel="stylesheet" />
<link href="//cdn.quilljs.com/1.0.0/quill.bubble.css" rel="stylesheet" />
<link href="//cdn.quilljs.com/1.0.0/quill.core.css" rel="stylesheet" />
<script src="//cdn.quilljs.com/1.0.0/quill.core.js"></script>
Get help or stay up to date.
License
BSD 3-clause
v2.0.0 (2024-04-17)
We are thrilled to announce the release of Quill 2.0! Please check out the announcement post.
Major Improvements
- Quill is now a valid ESM package for better ecosystem (e.g. bundlers) and tree-shaking support
- Nested Quill support #3590
- Improved IME and spell corrector support #3807
- Semantic cleanups for TEXT_CHANGE event #3778
- History: Record selection in history module #3823
- Auto detect scrolling container #3840
- Clipboard: Improve support for pasting from Google Docs and Microsoft Word
Performance Improvements
Quill 2.0 includes many performance optimizations, the most important of which is the improved rendering speed for large content.
- Improve inserting performance #3815
- Avoid fetching selections when possible #3538
- No need to setContents when container is empty #3539
Code Modernization
- Migrated to TypeScript
- Provided official TypeScript declarations
- Migrated to Vitest for unit testing
- Migrated to Playwright for E2E testing
- Migrated website to Gatsby
All changes