postcss-sass-each

PostCSS plugin to iterate through values

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
postcss-sass-each
040.1.13 years ago7 years agoMinified + gzip package size for postcss-sass-each in KB

Readme

postcss-sass-each
A PostCSS plugin to iterate through values. Inspired and based on postcss-each. Support usage postcss-simple-vars before this plugin and sass-like @each;
Iterate through values:
@each icon in foo, bar, baz {
  .icon-#(icon) {
    background: url('icons/#(icon).png');
  }
}

.icon-foo {
  background: url('icons/foo.png');
}

.icon-bar {
  background: url('icons/bar.png');
}

.icon-baz {
  background: url('icons/baz.png');
}

Iterate through values with index (auto add index variable):
@each val in foo, bar {
  .icon-#(val) {
    background: url("#(val)_#(index).png");
  }
}

.icon-foo {
  background: url("foo_0.png");
}

.icon-bar {
  background: url("bar_1.png");
}

Iterate through lists with multiple variables delimited with colon:
@each animal, color in (puma: black, sea-slug: blue) {
  .#(animal)-icon {
    background-image: url('/images/$(animal).png');
    border: 2px solid #(color);
  }
}

.puma-icon {
  background-image: url('/images/puma.png');
  border: 2px solid black;
}
.sea-slug-icon {
  background-image: url('/images/sea-slug.png');
  border: 2px solid blue;
}

Usage

postcss([ require('postcss-sass-each') ])

Options

plugins

Type: object
Default: {}
Accepts two properties: afterEach and beforeEach

afterEach

Type: array Default: []
Plugins to be called after each iteration

beforeEach

Type: array Default: []
Plugins to be called before each iteration
require('postcss-sass-each')({
  plugins: {
    afterEach: [
      require('postcss-at-rules-variables')
    ],
    beforeEach: [
      require('postcss-custom-properties')
    ]
  }
})

See PostCSS docs for examples for your environment.