Skip to content

CSS Injection

DANGER

🚨 CSS Injection is a deprecated feature and will be removed in the next major release planned on Q1 of 2024.

WARNING

🚨 If you are using CSS Injection for theming purpose, consider review design tokens based theming.

Description ​

If you are creating a product that differs in style from other products of Semrush, use the tools for theming.

How does it work? ​

There are two ways to redefine styles of our components:

  • Local for one specific component.
  • Global for all components at once.

Local specific ​

Styles composition helps us to extend basic styles of our components, and sometimes even supplement API. In fact, you write styles using CSS-in-JS approach and transfer them to our components.

Advantages:

  • An opportunity to "extend" API components with new properties responsible for appearance.

Disadvantages:

  • Styles shall be applied every time you use our component.
  • Styles are applied in runtime.
  • No style de-duplication.
  • It is difficult to reuse the styles.

Read more about how to apply styles composition in practice.

Global specific ​

This helps you to rewrite or to add styles to all our components by redefining their appearance. It looks like this: you write CSS, while babel-plugin combines it with our default styles and applies it to all the components.

Using this approach, you can publish CSS injections to NPM and reuse them later.

Advantages:

  • Styles are applied to all the components automatically.
  • The CSS injection is applied during assembly.
  • Easiness of reuse.
  • De-duplication of styles.
  • Versioning availability.

Disadvantages:

  • Strict structure and naming.
  • Need to configure webpack.

You can write CSS injections for our components this way with global use.

Released under the MIT License.

Released under the MIT License.