Using Twind with Custom Elements and Shadow DOM
- 📝 Inspect the example
- 📓 Consult the API reference
- 📜 Read the changelog
This guide shows how Custom Elements can have their styles separated without having the side effect of polluting the root document's styles.
In modern browsers this integration uses Constructable Stylesheet Objects and
adoptedStyleSheets for optimal performance. In legacy browsers, it falls back to using separate style elements (one per element instance) that are all kept in sync.
Install from npm
@twind/with-web-componentsare available on npm and need to be installed together.
Define the configuration
Using an extra file,
twind.config.js, allows some tools like IntelliSense to find your configuration.
Create a Custom Element
installcreates a mixin that can be used to enhance elements with a shared stylesheet, generates styles for all used CSS classes and adds
this.tw(the twind instance) to the element instance.
The mixin function can be used with several elements — they all will share the same twind instance.
Optional: Install and configure the recommended presets
Install the presets
All presets are available on npm.
Configure the presets
Each preset must be added to the
presetsarray in the configuration.