JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 38
  • Score
    100M100P100Q65848F
  • License MIT

Email HTML renderer — converts design JSON to cross-client email HTML

Package Exports

  • @emabuild/email-renderer

Readme

@emabuild/email-renderer

Standalone email HTML renderer for the @emabuild email editor. Converts design JSON into cross-client email HTML.

Works in both browser and Node.js — use it server-side to generate email HTML without the editor UI.

Installation

npm install @emabuild/email-renderer

Usage

import { renderDesignToHtml } from '@emabuild/email-renderer';

// Tool renderers map: tool name → HTML render function
const toolRenderers = new Map();

toolRenderers.set('text', (values, ctx) => {
  return `<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
    <tr><td style="padding:${values.containerPadding || '10px'};">
      ${values.text}
    </td></tr>
  </table>`;
});

// Render design to HTML
const result = renderDesignToHtml(designJson, toolRenderers, {
  mergeTags: { first_name: 'John' },
});

console.log(result.html);    // Full HTML document
console.log(result.design);  // Design JSON (for saving)
console.log(result.chunks);  // { body, css, fonts[], js }

Export Options

renderDesignToHtml(design, toolRenderers, {
  minify: true,              // Minify HTML output
  inlineStyles: true,        // Inline CSS into style attributes
  cleanup: true,             // Remove unused CSS
  mergeTags: {               // Replace {{tag}} with values
    first_name: 'John',
  },
});

Email Client Support

The generated HTML uses fluid hybrid design with MSO conditional comments:

  • Gmail (Web, iOS, Android)
  • Outlook (2016, 2019, 365, Outlook.com)
  • Apple Mail (macOS, iOS)
  • Yahoo Mail, Thunderbird, Samsung Mail

Exported Functions

Function Description
renderDesignToHtml() Main export: design JSON → full HTML document
wrapInDocumentShell() Wrap body HTML in email-safe DOCTYPE/head/body
renderRow() Render a single row with fluid hybrid columns
getResponsiveCss() Generate responsive CSS media queries

License

MIT