---
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