Skip to content

Replace :root with :host in CSS Framework Styles

When working with global CSS styles or CSS frameworks, rules defined on the :root selector might not work as expected inside a web component that uses Shadow DOM. The replaceRootWithHostInCssFramework option automatically converts :root to :host in your imported CSS styles.

How It Works

By enabling the replaceRootWithHostInCssFramework option, any occurrence of :root in your cssFrameworkStyles will be replaced with :host during component creation. This ensures that CSS variables and other styles remain correctly scoped within the web component's Shadow DOM.

Usage

Set the option to true when creating your web component:

javascript
createWebComponent({
  rootComponent: App,
  elementName: 'my-web-component',
  plugins: pluginsWrapper,
  cssFrameworkStyles: tailwindStyles,
  VueDefineCustomElement,
  h,
  createApp,
  getCurrentInstance,
  replaceRootWithHostInCssFramework: true, // Enable replacement of :root with :host
});

This feature is particularly useful when your global CSS or framework styles rely on selectors defined on :root, ensuring they are correctly applied within the Shadow DOM.