• Stars
    star
    257
  • Rank 158,728 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ’Œ styled-components for emails

๐Ÿ’Œ styled-email-components

npm Version Build Status dependencies Status devDependencies Status

Extension of styled-components (v5.x) with essential features for building email components.

Features

Motivation

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.

Installation

yarn:

yarn add styled-email-components

npm:

npm install --save styled-email-components

Getting Started

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>

API

styled.*

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.

Outlook-specific VML elements

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.

Other APIs

Original APIs are mirrored without any modifications from styled-components. Make sure to check server-side rendering guide for rendering the final email.

License

MIT ยฉ Sergey Bekrin