A WYSIWYG Editor component styled with TailwindCSS for Vue 3 (Typescript included!).
https://vue-tailwind-editor-demo.vercel.app/
You need to have those dependencies installed in your project in order to everything works great ;)
- Install using your package manager of choice:
npm i vue-tailwind-wysiwyg-editor
- Add the source files of Vue Tailwind WYSIWYG Editor to the
tailwind.config.js
template path:
module.exports = {
content: [
// other files...
'./node_modules/vue-tailwind-wysiwyg-editor/**/*.{js,ts,vue}',
],
}
Import the component locally or define it globally:
<template>
<div class="flex flex-col items-center justify-center w-full h-screen gap-4">
<VueTailwindEditor @get-html="updateHtml" />
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { VueTailwindEditor } from 'vue-tailwind-wysiwyg-editor';
import 'vue-tailwind-wysiwyg-editor/dist/style.css' // need to import the style file
const html = ref<string>("")
const updateHtml = (val: string) => {
html.value = val;
};
</script>
Prop | Type | Default Value | Required | Description |
---|---|---|---|---|
height |
String | '400' |
No | Sets the height of the editor in pixels. |
width |
String | '700' |
No | Sets the width of the editor in pixels. |
editorBackground |
String | None | No | Sets the background color of the editor. |
placeholder |
String | Write something... | No | Sets the placeholder text displayed when the editor is empty. |
keys |
Object | defaultTranslations |
No | An object to customize the titles of the toolbar buttons. |
The defaultTranslations
object provides default English-language titles for each of the toolbar buttons. The keys
object allows you to easily customize the button labels to match your application's language or user preferences.
You can override any of these values by passing your own keys prop to the VueTailwindEditor
component. For example, if you want to change the label for the 'bold' button to 'Negrito' in Portuguese, you would pass a keys object like this:
<VueTailwindEditor :keys="{ bold: 'Negrito' }" />
Event | Payload Type | Description |
---|---|---|
@get-html |
String | Emitted whenever the content of the editor changes. It provides the updated HTML content of the editor as a payload to the event listener. |
The @get-html
event is a key feature of the VueTailwindEditor
component. This event is triggered every time there is a change in the content of the editor. When this event occurs, the updated HTML content of the editor is passed as a payload to the event listener function.