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