CSS Inliner
Copies each rule in your <style> blocks onto the elements it selects, so clients that drop the block still get it. Media queries stay in the block.
@emailens/engine 0.18.22 · data last changed 10 Nov 2026
The inlined email appears here, with every rule copied onto its element.
Paste your own email above and check it, or open the checker and paste it there: five clients, no account.
No signup · Five clients free, Outlook Classic included · All 21 with an account
Which clients need an account
Gmail Android, Gmail iOS, Outlook 365, Outlook iOS, Outlook Android, Outlook for Mac, Apple Mail, Yahoo Mail Android, Yahoo Mail iOS, Samsung Mail, Thunderbird, HEY Mail, Proton Mail, AOL Mail, Fastmail, Superhuman open with a free account.
The checker needs a computer screen.
Your next question
- Which of your CSS breaks, and where? Check it in all 21 clients, free.
- Inlining adds bytes. Will Gmail clip it? Check its size, free.
Other free tools: CSS Support Lookup · Dark Mode Preview · Outlook Ghost Table Generator · Outlook VML Background Generator · Bulletproof Button Generator · Client Targeting Generator · Email Rendering Playground
Questions
Why do I need to inline CSS in email?
Because a <style> block does not reach every reader. Gmail's iOS and Android apps remove it for non-Google accounts, Gmail drops a block over 16KB or one in the <body>, and some clients only partly support it. CSS inlined onto the element's own style attribute is read everywhere, which is why inlining is a standard build step for production email.
What happens to my media queries?
They're preserved. Media queries, @font-face and pseudo-classes (like :hover) can't be expressed as inline styles, so this tool leaves them in a <style> block while inlining everything else. Keep that block in your HTML. It's what makes your email responsive.
Does inlining handle CSS specificity?
Yes. When two rules target the same element, the more specific selector wins (an id beats a class, a class beats a tag), exactly as a browser would resolve it. !important is respected too. The result is the same cascade you'd see in a browser, flattened onto each element.
Is my HTML kept private?
Your HTML is sent to the Emailens engine only to run the inliner and is not stored. Nothing is logged or retained after the response is returned.