Need help with inline-styler?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

205 Stars 53 Forks 15 Commits 6 Opened issues


Creates HTML emails with maximal CSS compatibility by inlining external CSS files.

Services available


Need anything else?

Contributors list

# 87,381
15 commits

Inline Styler makes CSS compatible with email clients.

It's a service which, when given a block of HTML including CSS, will parse the CSS and convert it to inline

attributes on each elements matched by the CSS rules found.

The benefit of this is primarily in developing HTML emails. The most common email clients have patchy support for

 elements, but do on the whole support a varied set of CSS properties. Its therefore necessary to instead define styles in "style" attributes on each of the elements themselves, which is tedious for anything but the simplest of emails and introduces significant code maintenance problems. The Inline Styler frees up the developer to write CSS in less tedious/more maintainable ways: using proper selectors and rules, grouped in either a stylesheet or a 
 block. The Inline Styler converts these rules into the inline "style" attributes for you.

Additionally, among the email clients who do support CSS, support for individual CSS properties is variable. The Inline Styler will analyse your CSS and estimate a compatibility rating across all the email clients as a whole, alerting you to any particular properties likely to reduce compatibility.


To use this app, CSS you wish to be "inlined" must be declared in the HTML either:

  • linked absolutely e.g
  • provided in a
     block in the 
     of the HTML, without 

Self-hosting requirements

  • lxml:
  • cssutils:
  • css_compliance.csv
    generated by hand from the "complete guide" Excel spreadsheet from Campaign Monitor:

This file requires periodic updates as Campaign Monitor update their spreadsheet. Comparing the existing file to CM's spreadsheet, the key differences are that their XLS has been stripped of formatting, blank lines or duplicate groups of selector/element information.


Inline Styler was written several years ago partly as a personal "Hello World" experiment to learn Django/Python. I welcome anyone willing to fork and contribute to the code, but unfortunately I don't have time to maintain this myself - for example updating the css compliance CSV. I'm instead releasing it to the public after many requests for the source.


  • Find me on twitter at @davecranwell

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.