Extension of styled-components (v5.x)
with
essential features for building email components.
- Styles are injected inline
- Shorthand rules are expanded
styled.*
aliases are XHTML compliant- Supports Outlook-specific elements
- Compatible with original APIs
- Provides TypeScript typings
styled-components
is a universal styling solution with great developer
experience and low learning curve. Unfortunately, there's no native support for
inline styling which is essential for building emails. This module adds all
necessary features to build mail-first components.
yarn:
yarn add styled-email-components
npm:
npm install --save styled-email-components
Check original Getting Started for more examples.
import React from 'react';
import { renderToStaticMarkup } from 'react-dom/server';
import styled from 'styled-email-components';
const Link = styled.a`
font-family: sans-serif;
background: blue;
color: white;
`;
renderToStaticMarkup(<Link href="https://example.com">Hey</Link>),
// ๐ output
// <a href="https://example.com" style="font-family:sans-serif;background-color:blue;color:white;">Hey</a>
This module sets list of XHTML 1.0 Transitional element aliases instead of the original HTML5 set, which is a widely used doctype in emails.
In addition to XHTML elements, styled.vml.*
, styled.wml.*
and
styled.office.*
aliases are available. These are simple proxies and pass tag
names as-is with v:
, w:
and o:
prefixes respectively.
Original APIs are mirrored without
any modifications from styled-components
. Make sure to check
server-side rendering
guide for rendering the final email.
MIT ยฉ Sergey Bekrin