All Projects → unlayer → Vue Email Editor

unlayer / Vue Email Editor

Drag-n-Drop Email Editor Component for Vue.js

Projects that are alternatives of or similar to Vue Email Editor

React Email Editor
Drag-n-Drop Email Editor Component for React.js
Stars: ✭ 3,131 (+1786.14%)
Mutual labels:  builder, email-marketing, email-template, drag-and-drop, template
easy-email
React.js Drag-and-Drop Email Editor based on MJML. Transform structured JSON data into major email clients compatible HTML. Written in Typescript and supported both in browser and Node.js.
Stars: ✭ 449 (+170.48%)
Mutual labels:  drag-and-drop, email-marketing, email-template
Mosaico
Mosaico - Responsive Email Template Editor
Stars: ✭ 1,392 (+738.55%)
Mutual labels:  builder, email-marketing, email-template
vue-drag-zone
Drag Zone component for @vuejs
Stars: ✭ 127 (-23.49%)
Mutual labels:  drag-and-drop, vue-components
dnde
Drag and drop react email editor
Stars: ✭ 31 (-81.33%)
Mutual labels:  drag-and-drop, email-template
acorn
A responsive email framework based on a golden ratio typography grid.
Stars: ✭ 90 (-45.78%)
Mutual labels:  email-marketing, email-template
email-template-builder
let this service generate your custom html/text emails
Stars: ✭ 25 (-84.94%)
Mutual labels:  builder, email-template
email-editor
Email Editor to embed in your SaaS application. Fully customizable and lightweight.
Stars: ✭ 28 (-83.13%)
Mutual labels:  drag-and-drop, email-marketing
Vddl
🦄 Vue components for modifying lists with the HTML5 drag & drop API.
Stars: ✭ 407 (+145.18%)
Mutual labels:  vue-components, drag-and-drop
Maizzle
Official Maizzle starter project.
Stars: ✭ 921 (+454.82%)
Mutual labels:  email-marketing, email-template
Email Templates
Free HTML email templates for Mailchimp and other emails services
Stars: ✭ 457 (+175.3%)
Mutual labels:  email-marketing, email-template
Emailimo
Small project that simplifies (according to me) sending colorful emails in PowerShell
Stars: ✭ 55 (-66.87%)
Mutual labels:  email-marketing, email-template
mjml-server
MJML wrapped in Express for use over HTTP
Stars: ✭ 31 (-81.33%)
Mutual labels:  email-marketing, email-template
email-template-generator
Simple and useful web app to generate e-mails for any reason you want!
Stars: ✭ 51 (-69.28%)
Mutual labels:  email-marketing, email-template
smaller-sites
Smaller Sites is a small BUT Powerful, free and easy to use drag and drop builder for blogs, websites or e-commerce stores. Designed for everyone Developers and non Developers. You can use it to design your next website. The goal is to create something like webflow
Stars: ✭ 27 (-83.73%)
Mutual labels:  builder, drag-and-drop
bulk-email-sender
Send Templatized Dynamic Emails Automatically
Stars: ✭ 30 (-81.93%)
Mutual labels:  email-marketing, email-template
Html Email Templates
Free HTML Email Templates created using the Postcards - https://designmodo.com/postcards/
Stars: ✭ 178 (+7.23%)
Mutual labels:  email-marketing, email-template
Piper
A drag-and-drop mobile website builder base on Vue
Stars: ✭ 228 (+37.35%)
Mutual labels:  builder, drag-and-drop
Vvvebjs
Drag and drop website builder javascript library.
Stars: ✭ 4,609 (+2676.51%)
Mutual labels:  builder, drag-and-drop
Pine
A modular and lightweight, responsive email framework.
Stars: ✭ 98 (-40.96%)
Mutual labels:  email-marketing, email-template

Vue Email Editor

The excellent drag-n-drop email editor by Unlayer as a Vue wrapper component. This is the most powerful and developer friendly visual email builder for your app.

Video Overview
Vue Email Editor
Watch video overview: https://youtu.be/MIWhX-NF3j8

Live Demo

Check out the live demo here: https://vue-email-editor-demo.netlify.app/ (Source Code)

Installation

The easiest way to use Vue Email Editor is to install it from Npm or Yarn and include it in your own Vue build process.

npm install vue-email-editor --save

or

yarn add vue-email-editor

Usage

Next, you'll need to import the Email Editor component to your app.

App.vue

<template>
  <div id="app">
    <div class="container">
      <div id="bar">
        <h1>Vue Email Editor (Demo)</h1>

        <button v-on:click="saveDesign">Save Design</button>
        <button v-on:click="exportHtml">Export HTML</button>
      </div>

      <EmailEditor ref="emailEditor" v-on:load="editorLoaded" />
    </div>
  </div>
</template>

<script>
  import { EmailEditor } from 'vue-email-editor'
  
  export default {
    name: 'app',
    components: {
      EmailEditor
    },
    methods: {
      editorLoaded() {
        // Pass the template JSON here
        // this.$refs.emailEditor.editor.loadDesign({});
      },
      saveDesign() {
        this.$refs.emailEditor.editor.saveDesign(
          (design) => {
            console.log('saveDesign', design);
          }
        )
      },
      exportHtml() {
        this.$refs.emailEditor.editor.exportHtml(
          (data) => {
            console.log('exportHtml', data);
          }
        )
      }
    }
  }
</script>

Methods

method params description
loadDesign Object data Takes the design JSON and loads it in the editor
saveDesign Function callback Returns the design JSON in a callback function
exportHtml Function callback Returns the design HTML and JSON in a callback function

See the example source for a reference implementation.

Properties

  • minHeight String minimum height to initialize the editor with (default 500px)
  • options Object options passed to the Unlayer editor instance (default {})
  • tools Object configuration for the built-in and custom tools (default {})
  • appearance Object configuration for appearance and theme (default {})
  • projectId Integer Unlayer project ID (optional)
  • locale String translations string (default en-US)

See the Unlayer Docs for all available options.

Here's an example using the above properties...

App.vue

<template>
  <div id="app">
    <div class="container">
      <div id="bar">
        <h1>Vue Email Editor (Demo)</h1>

        <button v-on:click="saveDesign">Save Design</button>
        <button v-on:click="exportHtml">Export HTML</button>
      </div>

      <EmailEditor
        :appearance="appearance"
        :min-height="minHeight"
        :project-id="projectId"
        :locale="locale"
        :tools="tools"
        :options="options"
        ref="emailEditor"
        v-on:load="editorLoaded"
      />

    </div>
  </div>
</template>

<script>
  import { EmailEditor } from 'vue-email-editor'
  
  export default {
    name: 'app',
    components: {
      EmailEditor
    },
    data() {    
      return {  
        minHeight: "1000px",
        locale: "en",
        projectId: 0, // replace with your project id
        tools: {
          // disable image tool
          image: {
            enabled: false
          }
        },
        options: {},
        appearance: {
          theme: 'dark',
          panels: {
            tools: {
              dock: 'right'
            }
          }
        } 
      }
    },
    methods: {
      editorLoaded() {
        // Pass your template JSON here
        // this.$refs.emailEditor.editor.loadDesign({});
      },
      saveDesign() {
        this.$refs.emailEditor.editor.saveDesign(
          (design) => {
            console.log('saveDesign', design);
          }
        )
      },
      exportHtml() {
        this.$refs.emailEditor.editor.exportHtml(
          (data) => {
            console.log('exportHtml', data);
          }
        )
      }
    }
  }
</script>

Custom Tools

Custom tools can help you add your own content blocks to the editor. Every application is different and needs different tools to reach it's full potential. Learn More

Custom Tools

Localization

You can submit new language translations by creating a PR on this GitHub repo: https://github.com/unlayer/translations. Translations managed by PhraseApp

License

Copyright (c) 2021 Unlayer. MIT Licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].