customized-tiptap-editor
v0.0.19
Published
π a customized, rich-ui tiptap editor
Maintainers
Readme
β¨ Customized TipTap
A beautiful, powerful, and developer-friendly WYSIWYG rich-text editor built on TipTap and customized to work seamlessly with Vuetify 3, Tailwind, and Material Design Icons.
π What is Customized TipTap?
customized-tiptap is a feature-rich Vue 3 plugin offering a refined editing experience out of the box. Designed with clean aesthetics and an extensible architecture, it simplifies rich-text editing for modern Vue applications.
π Based on TipTap 2
π¨ Styled with Tailwind & Vuetify 3
π Includes out-of-the-box Vuetify-compatible UI
π¬ Multilingual & markdown-capable (in roadmap)
π Demo
You can find a live demo of the editor here.
β¨ Features
- π Vuetify-styled menus β Looks and feels native to your Vuetify app
- π¨ Tailwind-powered layout β Clean, customizable UI
- π§© Pluggable extensions β Easily extend or override editor behavior
- π Markdown-friendly output
- π§Ό Zero warnings β Clean console, smooth experience
- π§ Full TypeScript support
- πͺ Custom merge field support
- πͺ Auto-formatting (coming soon)
π¦ Installation
npm install customized-tiptap-editorThis package requires Vuetify 3 and @mdi/font as peer dependencies.
π Setup Instructions
1. Install the package
Install the package through the following command:
npm install customized-tiptap-editor2. Make sure Vuetify and Material Design Icons are installed
Install Vuetify and MDI icons if not already installed:
npm install vuetify @mdi/font3. Import styles files
import the following styles into your consumer app.
import '@mdi/font/css/materialdesignicons.css';
import 'customized-tiptap-editor/dist/style.css';
import "vuetify/styles";4. Register the plugin
In your main entry file (e.g. main.ts or main.js):
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import CustomizedTipTapPlugin from 'customized-tiptap-editor';
import '@mdi/font/css/materialdesignicons.css';
import 'customized-tiptap-editor/dist/style.css';
import { createVuetify } from 'vuetify';
import * as components from 'vuetify/components';
import * as directives from 'vuetify/directives';
const vuetify = createVuetify({
components,
directives,
});
const app = createApp(App);
app.use(router);
app.use(vuetify); // Vuetify must be used
app.use(CustomizedTipTapPlugin); // Register the editor plugin
app.mount('#app');Note: The editor requires Vuetify and MDI icons to render properly. Ensure both are imported as shown above.
π‘ Usage Example
<template>
<customized-tiptap />
</template>
<script setup lang="ts">
import { ref } from 'vue'
const content = ref('<p>Hello world!</p>')
</script>π§ͺ Props
Each prop is designed with flexibility and clarity in mind:
readonly?: booleanβ Toggle read-only mode.content?: stringβ Initial HTML content to load into the editor.excludedExtensions?: TiptapExtensionName[]β Extensions to exclude from the editor setup.includedExtensions?: TiptapExtensionName[]β Explicitly specify which extensions to include.editorProps?: EditorPropsβ Pass native props directly to the underlying Tiptap editor.customClasses?: TiptapEditorCustomClassesβ Apply custom CSS classes, e.g.,{ editorWrapper: 'my-wrapper' }.editorOptions?: EditorOptionsβ Full control over Tiptap editor options (likeeditable,autofocus, etc).
π§© Extension API
Want to add custom buttons or logic? You can pass in your own extensions, merge fields, and configurations. More advanced usage docs coming soon.
β Requirements
- Vue 3
- Vuetify 3
- Tailwind CSS (optional but recommended)
- @mdi/font
π Roadmap
- [x] Vuetify 3 integration
- [x] TypeScript support
- [x] Custom merge field insertion
- [ ] Markdown export support
- [ ] Plugin system for menus and toolbars
- [ ] I18n (English, Farsi, and more)
π§βπ» Contributing
Issues, ideas, and pull requests are always welcome! If you spot any bugs or have suggestions, feel free to open an issue.
π License
MIT Β© Mohammad
