Volver al ranking

wix-incubator/mjml-react

JavaScript

React component library to generate the HTML emails on the fly

htmlemailemail-marketingemail-templatesnodereactmjml
Crecimiento de estrellas
Estrellas
1k
Forks
47
Crecimiento semanal
Issues
3
5001k
jun 2018feb 2021nov 2023jul 2026
Artefactosnpmnpm install mjml-react
README

mjml-react · GitHub license npm version PRs Welcome


NOTICE: This project is no longer maintained. :warning:

This project is no longer maintained. There will be no more new features, fixes and releases. Feel free to fork this repository, use different build system and release this project under different name.

Known forks:


·

There is an awesome library mjml with github repo here https://github.com/mjmlio/mjml.

MJML is a markup language created by Mailjet. So in order to create emails on the fly we created a library with React components.

How it works

Install the required dependencies first:

npm install react react-dom mjml mjml-react

And afterwards write a code like a pro:

import {
  render,
  Mjml,
  MjmlHead,
  MjmlTitle,
  MjmlPreview,
  MjmlBody,
  MjmlSection,
  MjmlColumn,
  MjmlButton,
  MjmlImage,
} from "mjml-react";

const { html, errors } = render(
  <Mjml>
    <MjmlHead>
      <MjmlTitle>Last Minute Offer</MjmlTitle>
      <MjmlPreview>Last Minute Offer...</MjmlPreview>
    </MjmlHead>
    <MjmlBody width={500}>
      <MjmlSection fullWidth backgroundColor="#efefef">
        <MjmlColumn>
          <MjmlImage src="https://static.wixstatic.com/media/5cb24728abef45dabebe7edc1d97ddd2.jpg" />
        </MjmlColumn>
      </MjmlSection>
      <MjmlSection>
        <MjmlColumn>
          <MjmlButton
            padding="20px"
            backgroundColor="#346DB7"
            href="https://www.wix.com/"
          >
            I like it!
          </MjmlButton>
        </MjmlColumn>
      </MjmlSection>
    </MjmlBody>
  </Mjml>,
  { validationLevel: "soft" }
);

And as the result you will get a nice looking email HTML (works in mobile too!)

preview

Options

mjml-react sets the following MJML options when rendering to HTML:

{
  keepComments: false,
  beautify: false,
  minify: true,
  validationLevel: 'strict'
}

If you want to override these, you can pass an object to render as a second argument. See the MJML docs for the full list of options you can set.

Extensions

import {
  MjmlHtml,
  MjmlComment,
  MjmlConditionalComment
} from 'mjml-react/extensions';

<MjmlComment>Built with ... at ...</MjmlComment>
// <!--Built with ... at ...-->

<MjmlConditionalComment>MSO conditionals</MjmlConditionalComment>
// <!--[if gte mso 9]>MSO conditionals<![endif]-->

<MjmlConditionalComment condition="if IE">MSO conditionals</MjmlConditionalComment>
// <!--[if IE]>MSO conditionals<![endif]-->

<MjmlHtml tag="div" html="<span>Hello World!</span>" />
// <div><span>Hello World!</span></div>

Utils

We do have also some utils for post processing the output HTML. Because not all mail clients do support named HTML entities, like &apos;. So we need to replace them to hex.

import { namedEntityToHexCode, fixConditionalComment } from "mjml-react/utils";

const html = "<div>&apos;</div>";
namedEntityToHexCode(html);
// <div>&#39;</div>

fixConditionalComment(
  "<!--[if mso]><div>Hello World</div><![endif]-->",
  "Hello",
  "if IE"
);
// <!--[if IE]><div>Hello World</div><![endif]-->

Limitations

Currently mjml and mjml-react libraries are meant to be run inside a node.

Example project

You can find an example project here https://github.com/wix-incubator/mjml-react-example

Repositorios relacionados
twbs/bootstrap

The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

MDXMIT Licensecssbootstrap
getbootstrap.com
174.5k78.7k
Chalarangelo/30-seconds-of-code

Coding articles to level up your development skills

JavaScriptnpmCreative Commons Attribution 4.0 Internationalawesome-listjavascript
30secondsofcode.org
128.5k12.5k
electron/electron

:electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS

C++MIT Licenseelectronjavascript
electronjs.org
122.1k17.3k
florinpop17/app-ideas

A Collection of application ideas which can be used to improve your coding skills.

MIT Licenseapplicationsideas
coderabbit.ai
96.1k10.5k
microsoft/Web-Dev-For-Beginners

24 Lessons, 12 Weeks, Get Started as a Web Developer

JavaScriptnpmMIT Licensejavascriptcurriculum
96k15.7k
storybookjs/storybook

Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation

TypeScriptnpmMIT Licensestorybookstyleguide
storybook.js.org
90.6k10.2k
thedaviddias/Front-End-Checklist

🗂 The essential checklist for modern web development, for humans and AI agents

MDXfrontendfront-end-development
frontendchecklist.io
73.3k6.7k
docling-project/docling

Get your documents ready for gen AI

PythonPyPIMIT Licenseaiconvert
docling-project.github.io/docling
63.6k4.5k
rails/rails

Ruby on Rails

RubyRubyGemsMIT Licenserailsmvc
rubyonrails.org
58.6k22.4k
h5bp/html5-boilerplate

A professional front-end template for building fast, robust, and adaptable web apps or sites.

JavaScriptnpmMIT Licensehtml5-boilerplatehtml5
html5boilerplate.com
57.6k12.3k
prettier/prettier

Prettier is an opinionated code formatter.

JavaScriptnpmMIT Licenseformatterprinter
prettier.io
52.1k4.9k
jgthms/bulma

Modern CSS framework based on Flexbox

CSSnpmMIT Licensecsshtml
bulma.io
50.1k3.9k