@luma-team/mjml-react
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

@luma-team/mjml-react

(This is forked from Wix's mjml-react — more info why I forked this can be found in this comment.)

MJML is a markup language created by Mailjet. But since we are using React in the rest of our app, we want to use React to create the MJML markup for emails.

Note: this does not bundle mjml so you can use whatever version of mjml you'd like to convert the outputted mjml-string to HTML.

How it works

Install the required dependencies first:

npm install react react-dom mjml @luma-team/mjml-react

Then you can write:

import {
  renderToMjml,
  Mjml,
  MjmlHead,
  MjmlTitle,
  MjmlPreview,
  MjmlBody,
  MjmlSection,
  MjmlColumn,
  MjmlButton,
  MjmlImage,
} from "@luma-team/mjml-react";
import mjml2html from "mjml";

const mjmlString = renderToMjml(
  <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">
            I like it!
          </MjmlButton>
        </MjmlColumn>
      </MjmlSection>
    </MjmlBody>
  </Mjml>
);

const htmlString = mjml2html(mjmlString);

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

preview

Readme

Keywords

none

Package Sidebar

Install

npm i @luma-team/mjml-react

Weekly Downloads

154

Version

0.2.1

License

MIT

Unpacked Size

90.3 kB

Total Files

113

Last publish

Collaborators

  • sjchmiela
  • vpontis
  • danqing