@emabuild/email-renderer
v0.2.0
Published
Email HTML renderer — converts design JSON to cross-client email HTML
Maintainers
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-rendererUsage
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 |
Related Packages
@emabuild/core— Full drag & drop editor Web Component@emabuild/types— TypeScript type definitions
License
MIT
