Extra Attributes

Maizzle can automatically add attributes to HTML elements in your email templates.

This can be useful for:

  • adding default attributes based on environment or Template
  • not having to write required attributes all the time
  • automating email accessiblity

The applyExtraAttributes key in your config defines which elements in your emails should receive which attributes with what values:

// config.js
module.exports = {
  applyExtraAttributes: {
    table: {
      cellpadding: 0,
      cellspacing: 0,
      role: 'presentation',
    },
    img: {
      alt: ''
    }
  },
  // ...
}

By default, Maizzle makes your <table> accessible, resets its spacing, and ensures that an empty alt="" attribute is added to images that don't have it.

Cheerio selectors

Elements that you define here can also be cheerio selectors.

For example, let's add a default width to any table that has a wrapper class:

applyExtraAttributes: {
  'table.wrapper': {
    width: 600
  }
  // ...
},

CSS classes

You can also use this to automatically add CSS classes to elements:

applyExtraAttributes: {
  'tr:nth-child(even)': {
    class: 'even'
  },
  'tr:nth-child(odd)': {
    class: 'odd'
  },
  // ...
},

Tailwind CSS note

Because Transformers process your HTML after CSS is compiled, you cannot use any Tailwind CSS classes here. That means any class from the compiled main.css.

You will see them added to the element's class="", but they won't exist in the <style> tag, so they won't work. Therefore, adding classes like this can only be useful if you need them at a later stage in your workflow, like in your ESP.