--- title: useInsertionEffect --- `useInsertionEffect` is for CSS-in-JS library authors. Unless you are working on a CSS-in-JS library and need a place to inject the styles, you probably want [`useEffect`](/reference/react/useEffect) or [`useLayoutEffect`](/reference/react/useLayoutEffect) instead. `useInsertionEffect` is a version of [`useEffect`](/reference/react/useEffect) that fires before any DOM mutations. ```js useInsertionEffect(setup, dependencies?) ``` --- ## Reference {/*reference*/} ### `useInsertionEffect(setup, dependencies?)` {/*useinsertioneffect*/} Call `useInsertionEffect` to insert the styles before any DOM mutations: ```js import { useInsertionEffect } from 'react'; // Inside your CSS-in-JS library function useCSS(rule) { useInsertionEffect(() => { // ... inject