---
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` allows inserting elements into the DOM before any layout Effects fire.
```js
useInsertionEffect(setup, dependencies?)
```
---
## Reference {/*reference*/}
### `useInsertionEffect(setup, dependencies?)` {/*useinsertioneffect*/}
Call `useInsertionEffect` to insert styles before any Effects fire that may need to read layout:
```js
import { useInsertionEffect } from 'react';
// Inside your CSS-in-JS library
function useCSS(rule) {
useInsertionEffect(() => {
// ... inject