PostCSS plugin for css modules to local-scope classes and ids
postcss([ require('postcss-icss-selectors')(options) ])
See PostCSS docs for examples for your environment.
local
by default or global
In local mode
.foo { ... } /* => */ .file__foo---h63h { ... }
.foo .bar { ... } /* => */ .file__foo----h63h .file__bar----h63h { ... }
/* Shorthand global selector */
:global .foo .bar { ... } /* => */ .foo .bar { ... }
.foo :global .bar { ... } /* => */ .file__foo----h63h .bar { ... }
/* Targeted global selector */
:global(.foo) .bar { ... } /* => */ .foo .file__bar----h63h { ... }
.foo:global(.bar) { ... } /* => */ .file__foo----h63h.bar { ... }
.foo :global(.bar) .baz { ... } /* => */ .file__foo----h63h .bar .file__baz----h63h { ... }
.foo:global(.bar) .baz { ... } /* => */ .file__foo----h63h.bar .file__baz----h63h { ... }
In global mode
.foo { ... } /* => */ .foo { ... }
.foo .bar { ... } /* => */ .foo .bar { ... }
/* Shorthand local selector */
:local .foo :global .bar { ... } /* => */ .file__foo----h63h .bar { ... }
.foo :local .bar { ... } /* => */ .foo .file__foo----h63h { ... }
/* Targeted local selector */
:local(.foo) .bar { ... } /* => */ .file__foo----h63h .bar { ... }
.foo:local(.bar) { ... } /* => */ .foo.file__bar----h63h { ... }
Converts every new local name in #id or .class defintion to global alias.
By default returns [name]__[local]---[hash:base64:5]
.
postcss-icss-selectors passes result.messages for each local-scoped class or id
{
plugin: 'postcss-icss-selectors',
type: 'icss-scoped',
name: string, // local-scoped identifier
value: string // generated global identifier
}
MIT © Mark Dalgleish and Bogdan Chadkin, 2015