(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!)
