Tailwind CSS variants for email client CSS targeting

tailwindcss-email-variants

A plugin that provides variants for email client targeting hacks used in HTML emails.

All variants are based on targeting hacks from howtotarget.email

Installation

Install the plugin from npm:

npm install -D tailwindcss-email-variants

Then add the plugin to your tailwind.config.js file:

// tailwind.config.js
module.exports = {
  theme: {
    // ...
  },
  plugins: [
    require('tailwindcss-email-variants'),
    // ...
  ],
}

Usage

Use the available variants to generate utilities that target specific email clients, or configure it with your own variants.

Gmail

Use the gmail variant to target Gmail’s webmail:

<div class="gmail:hidden">...</div>

Result:

u + .body .gmail\:hidden {
  display: none;
}

Gmail (Android)

Use the gmail-android variant to target Gmail on Android devices:

<div class="gmail-android:hidden">...</div>

Result:

div > u + .body .gmail-android\:hidden {
  display: none;
}

Apple Mail (10+)

Use the apple-mail variant to target Apple Mail 10 and up:

<div class="apple-mail:hidden">...</div>

Result:

.Singleton .apple-mail\:hidden {
  display: none;
}

iOS Mail (10+)

Use the ios variant to target iOS Mail 10 and up:

<div class="ios:hidden">...</div>

Result:

@supports (-webkit-overflow-scrolling:touch) and (color:#ffff) {
  .ios\:hidden {
    display: none;
  }
}

iOS Mail (15)

Use the ios-15 variant to target iOS Mail 15 specifically:

<div class="ios-15:hidden">...</div>

Result:

@supports (-webkit-overflow-scrolling:touch) and (aspect-ratio: 1 / 1) {
  .ios-15\:hidden {
    display: none;
  }
}

Outlook (webmail)

Use the outlook-web variant to target iOS Mail 15 specifically:

<div class="outlook-web:hidden">...</div>

Result:

[class~="x_outlook-web\:hidden"] {
  display: none;
}

Outlook.com dark mode

Change color and background-color of elements in Outlook.com dark mode.

<!-- Color -->
<div class="ogsc:text-slate-200">...</div>

<!-- Background color -->
<div class="ogsb:bg-slate-900">...</div>

Result:

[data-ogsc] .ogsc\:text-slate-200 {
  color: #e2e8f0;
}

[data-ogsb] .ogsb\:bg-slate-900 {
  background-color: #0f172a;
}

Open-Xchange

Use the ox variant to target webmail clients that are powered by Open-Xchange.

Some of these email clients include Comcast, Libero, 1&1 MailXchange, Network Solutions Secure Mail, Namecheap Email Hosting, Mailbox.org, 123-reg Email, acens Correo Professional, Home.pl Cloud Email Xchange, Virgin Media Mail, and Ziggo Mail.

<div class="ox:hidden">...</div>

Result:

.ox\:hidden[class^="ox-"] {
  display: none;
}

Configuration

You can add your own variants by passing a configuration object to the plugin.

// tailwind.config.js
module.exports = {
  plugins: [
    require('tailwindcss-email-variants')({
      thunderbird: '.moz-text-html &', // & is the utility class
      example: ctx => `.example ${ctx.container.nodes[0].selector}` // using a function
    }),
    // ...
  ],
}

Use it:

<div class="thunderbird:hidden example:flex">...</div>

Result:

.moz-text-html .thunderbird\:hidden {
  display: none;
}

.example .flex {
  display: flex;
}

GitHub

View Github