Migrate to Netlify Today

Netlify announces the next evolution of Gatsby Cloud. Learn more

ContactSign Up
Community Plugin
View plugin on GitHub


Creates HTML image markup with style and data-* attributes from mdAST Image nodes with attributes in their title.

Gatsby 2/3/4 compatible npm dependencies minified minified+gzip

                                                 ┌─────────── styleAttributes ───────────┐          reserved for image title
                                                 │ ▼           ▼           ▼             │                ▼
![satisfied](https://foomoji.com/satisfied.png '#width=32px;height=32px;position=absolute;lightbox=true;title=Image Title')
                                                ▲                                             ▲
                                            Leading #                                   dataAttribute


  title="Image Title"
  style="width: 32px; height:32px; position: absolute;"

Note that title is a reserved attribute key, i.e. declaring data-title is not possible. title image attributes will always become the HTML attribute title of the <img>.

The plugin handles mdAST HTML nodes created by gatsby-remark-images; possibly other image-processing plugins. Order of plugins in your gatsby-config matters.

Some examples

Netlify Status demo source


npm install --save gatsby-remark-image-attributes

How to use


Generated markup has a CSS class gatsby-img-attributes. The plugin itself does not come with any properties for that class; you can use it to apply default styling to all images with attributes.


Name Type Default Description
dataAttributes Boolean false Set to true if you want attributes not recognized as styleAttribute to be added as data- attribute to the image.
styleAttributes Deprecated ^1.0.0


As of v1.0.0, this option is deprecated and the behavior described below will always apply.

The plugin uses a list of all CSS properties, as defined by the W3C, to decide whether an attribute is to be added to the image’s style or not.


When options.dataAttributes is true, the plugin will add all attributes whose key isn’t a CSS property as data-* attribute to the image.


plugins: [
    resolve: `gatsby-transformer-remark`,
    options: {
      plugins: [
          resolve: `gatsby-remark-image-attributes`,
          options: {
            dataAttributes: true


![happy](https://foomoji.com/happy.png '#tool-tip=Fancy image with tooltip;position=absolute;height=100px')

Where position and height are recognized as styleAttributes, tool-tip is not and due to options.dataAttributes: true applied as data- attribute:

  style="position: absolute; height: 100px;"
  data-tool-tip="Fancy image with tooltip"
© 2023 Gatsby, Inc.