Warning
Repo is archived! Plugin available in Pattern Lab core: https://github.com/pattern-lab/patternlab-node/releases/tag/v5.17.0
This plugin allows users to add a wrapper div with css class(es) around a pattern when shown in the
single preview.
If it gets included in another pattern, the wrapper is not added.
This comes in handy if you, for example, use theming classes to visualize different backgrounds, colors etc.
npm i @hadl/patternlab-plugin-pattern-wrap -D
After the installation, you will see the config in your patternlab-config.json
:
"plugins": {
"@hadl/patternlab-plugin-pattern-wrap": {
"enabled": true,
"initialized": false,
"options": {
"wrapClassKey": [""]
}
}
}
If you don't see this config object, add the plugin via the command:
npx patternlab install --plugins @hadl/patternlab-plugin-pattern-wrap
In the wrapClassKey
array you can add the data keys which should be used to get the class names.
The plugin will look for any "data key" added to the wrapClassKey
array and then will add that
entry to the wrapper element.
Data key can be set inside the Markdown or JSON file of any pattern.
Example Config
"wrapClassKey": ["theme-class"]
Usage https://patternlab.io/docs/documenting-patterns/
my-pattern.md
---
theme-class: my-theme-class
---
Will create <div class="pl-pattern-wrapper-element my-theme-class"></div>
around the rendered
pattern.
Usage https://patternlab.io/docs/creating-pattern-specific-values/
my-pattern.json
{
"theme-class": "my-other-theme-class"
}
Will create <div class="pl-pattern-wrapper-element my-other-theme-class"></div>
around the
rendered pattern.
This will work with pseudo-patterns too (Usage https://patternlab.io/docs/using-pseudo-patterns/)
my-pattern~variant.json
{
"theme-class": "my-variant-theme-class"
}
Will create <div class="pl-pattern-wrapper-element my-variant-theme-class"></div>
around the
rendered pattern.
Will result in multiple classes in the wrapper div.
Example Config
"wrapClassKey": ["theme-class", "other-class"]
my-pattern.json
{
"theme-class": "theme-class",
"other-class": "some-other-class"
}
Result
<div class="pl-pattern-wrapper-element theme-class some-other-class"></div>