Popper API
API reference docs for the React Popper component. Learn about the props, CSS, and other APIs of this exported module.
Demos
Import
import Popper from '@mui/material/Popper';
// or
import { Popper } from '@mui/material';
Learn about the difference by reading this guide on minimizing bundle size.
Props of the native component are also available.
Name | Type | Default | Description |
---|---|---|---|
open* | bool | - | If |
anchorEl | HTML element | object | func | - | An HTML element, virtualElement, or a function that returns either. It's used to set the position of the popper. The return value will passed as the reference object of the Popper instance. |
children | node | func | - | Popper render function or node. |
component | elementType | - | The component used for the root node. Either a string to use a HTML element or a component. |
components | { Root?: elementType } | {} | The components used for each slot inside the Popper. Either a string to use a HTML element or a component. |
componentsProps | { root?: func | object } | {} | The props used for each slot inside the Popper. |
container | HTML element | func | - | An HTML element or function that returns one. The |
disablePortal | bool | false | The |
keepMounted | bool | false | Always keep the children in the DOM. This prop can be useful in SEO situation or when you want to maximize the responsiveness of the Popper. |
modifiers | Array<{ data?: object, effect?: func, enabled?: bool, fn?: func, name?: any, options?: object, phase?: 'afterMain' | 'afterRead' | 'afterWrite' | 'beforeMain' | 'beforeRead' | 'beforeWrite' | 'main' | 'read' | 'write', requires?: Array<string>, requiresIfExists?: Array<string> }> | - | Popper.js is based on a "plugin-like" architecture, most of its features are fully encapsulated "modifiers". |
placement | 'auto-end' | 'auto-start' | 'auto' | 'bottom-end' | 'bottom-start' | 'bottom' | 'left-end' | 'left-start' | 'left' | 'right-end' | 'right-start' | 'right' | 'top-end' | 'top-start' | 'top' | 'bottom' | Popper placement. |
popperOptions | { modifiers?: array, onFirstUpdate?: func, placement?: 'auto-end' | 'auto-start' | 'auto' | 'bottom-end' | 'bottom-start' | 'bottom' | 'left-end' | 'left-start' | 'left' | 'right-end' | 'right-start' | 'right' | 'top-end' | 'top-start' | 'top', strategy?: 'absolute' | 'fixed' } | {} | Options provided to the |
popperRef | ref | - | A ref that points to the used popper instance. |
slotProps | { root?: func | object } | {} | The props used for each slot inside the Popper. |
slots | { root?: elementType } | {} | The components used for each slot inside the Popper. Either a string to use a HTML element or a component. |
sx | Array<func | object | bool> | func | object | - | The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details. |
transition | bool | false | Help supporting a react-transition-group/Transition component. |
ref
is forwarded to the root element.These class names are useful for styling with CSS. They are applied to the component's slots when specific states are triggered.
Class name | Rule name | Description |
---|---|---|
.MuiPopper-root | root | Class name applied to the root element. |
You can override the style of the component using one of these customization options:
- With a global class name.
- With a rule name as part of the component's
styleOverrides
property in a custom theme.