---
parts:
  - API Table
  - Overlays
  - Systems
title: 'Overlays: API Table'
eleventyNavigation:
  key: API Table >> Overlays >> Systems
  title: API Table
  order: 90
  parent: Systems >> Overlays
---
# Overlays: API Table
 

## class: `OverlayController`

### Fields

| Name                        | Privacy   | Type                                              | Default                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                                               | Inherited From |
| --------------------------- | --------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `backdropNode`              | public    | `HTMLElement`                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The element that is placed behind the contentNode. When not provided and \`hasBackdrop\` is true,&#xA;a backdropNode will be automatically created                                                                                                                                                                                                                                        |                |
| `config`                    | public    | `OverlayConfig`                                   | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `content`                   | public    | `HTMLDialogElement \| HTMLDivElement`             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The contentWrapperNode                                                                                                                                                                                                                                                                                                                                                                    |                |
| `contentNode`               | public    | `HTMLElement`                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The most important element: the overlay itself                                                                                                                                                                                                                                                                                                                                            |                |
| `contentWrapperNode`        | public    | `HTMLElement`                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The wrapper element of contentNode, used to supply inline positioning styles. When a Popper&#xA;arrow is needed, it acts as parent of the arrow node. Will be automatically created for global&#xA;and non projected contentNodes. Required when used in shadow dom mode or when Popper arrow is&#xA;supplied. Essential for allowing webcomponents to style their projected contentNodes |                |
| `elementToFocusAfterHide`   | public    | `HTMLElement`                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The element that should be called \`.focus()\` on after dialog closes                                                                                                                                                                                                                                                                                                                     |                |
| `elevation`                 | public    | `number`                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `handlesAccessibility`      | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | For non \`isTooltip\`:&#xA; \- sets aria-expanded="true/false" and aria-haspopup="true" on invokerNode&#xA; \- sets aria-controls on invokerNode&#xA; \- returns focus to invokerNode on hide&#xA; \- sets focus to overlay content(?)&#xA;&#xA;For \`isTooltip\`:&#xA; \- sets role="tooltip" and aria-labelledby/aria-describedby on the content                                        |                |
| `hasActiveBackdrop`         | public    |                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `hasBackdrop`               | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Whether it should have a backdrop (currently exclusive to globalOverlayController)                                                                                                                                                                                                                                                                                                        |                |
| `hidesOnEsc`                | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Hides the overlay when pressing \[ esc ]                                                                                                                                                                                                                                                                                                                                                  |                |
| `hidesOnOutsideClick`       | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Hides the overlay when clicking next to it, exluding invoker                                                                                                                                                                                                                                                                                                                              |                |
| `hidesOnOutsideEsc`         | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Hides the overlay when pressing esc, even when contentNode has no focus                                                                                                                                                                                                                                                                                                                   |                |
| `inheritsReferenceWidth`    | public    | `'max' \| 'full' \| 'min' \| 'none' \| undefined` |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Will align contentNode with referenceNode (invokerNode by default) for local overlays.&#xA;Usually needed for dropdowns. 'max' will prevent contentNode from exceeding width of&#xA;referenceNode, 'min' guarantees that contentNode will be at least as wide as referenceNode.&#xA;'full' will make sure that the invoker width always is the same.                                      |                |
| `invoker`                   | public    | `HTMLElement \| undefined`                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The invokerNode                                                                                                                                                                                                                                                                                                                                                                           |                |
| `invokerNode`               | public    | `HTMLElement \| undefined`                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The interactive element (usually a button) invoking the dialog or tooltip                                                                                                                                                                                                                                                                                                                 |                |
| `invokerRelation`           | public    | `'label' \| 'description'\| undefined`            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | By default, the tooltip content is a 'description' for the invoker (uses aria-describedby).&#xA;Setting this property to 'label' makes the content function as a label (via aria-labelledby)                                                                                                                                                                                              |                |
| `isAlertDialog`             | public    |                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The alertdialog role is to be used on modal alert dialogs that interrupt a user's workflow&#xA;to communicate an important message and require a response.                                                                                                                                                                                                                                |                |
| `isBlocking`                | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Hides other overlays when mutiple are opened (currently exclusive to globalOverlayController)                                                                                                                                                                                                                                                                                             |                |
| `isShown`                   | public    |                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `isTooltip`                 | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Has a totally different interaction- and accessibility pattern from all other overlays.&#xA;Will behave as role="tooltip" element instead of a role="dialog" element                                                                                                                                                                                                                      |                |
| `manager`                   | public    |                                                   | `manager`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `placementMode`             | public    | `'global' \| 'local' \| undefined`                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Determines the connection point in DOM (body vs next to invoker).                                                                                                                                                                                                                                                                                                                         |                |
| `popperConfig`              | public    | `PopperOptions`                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Popper configuration. Will be used when placementMode is 'local'                                                                                                                                                                                                                                                                                                                          |                |
| `preventsScroll`            | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Hides other overlays when mutiple are opened (currently exclusive to globalOverlayController)                                                                                                                                                                                                                                                                                             |                |
| `referenceNode`             | public    | `HTMLElement`                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The element that is used to position the overlay content relative to. Usually,&#xA;this is the same element as invokerNode. Should only be provided when invokerNode should not&#xA;be positioned against.                                                                                                                                                                                |                |
| `trapsKeyboardFocus`        | public    | `boolean`                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Rotates tab, implicitly set when 'isModal'                                                                                                                                                                                                                                                                                                                                                |                |
| `viewportConfig`            | public    | `ViewportConfig`                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Viewport configuration. Will be used when placementMode is 'global'                                                                                                                                                                                                                                                                                                                       |                |
| `visibilityTriggerFunction` | public    |                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `_contentId`                | protected |                                                   | `` `overlay-content--${Math.random().toString(36).slice(2, 10)}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `_defaultConfig`            | protected | `OverlayConfig`                                   | `{ placementMode: undefined, contentNode: config.contentNode, contentWrapperNode: config.contentWrapperNode, invokerNode: config.invokerNode, backdropNode: config.backdropNode, referenceNode: undefined, elementToFocusAfterHide: config.invokerNode, inheritsReferenceWidth: 'none', hasBackdrop: false, isBlocking: false, preventsScroll: false, trapsKeyboardFocus: false, hidesOnEsc: false, hidesOnOutsideEsc: false, hidesOnOutsideClick: false, isTooltip: false, isAlertDialog: false, invokerRelation: 'description', visibilityTriggerFunction: undefined, handlesAccessibility: false, popperConfig: { placement: 'top', strategy: 'fixed', modifiers: [ { name: 'preventOverflow', enabled: true, options: { boundariesElement: 'viewport', padding: 8, // viewport-margin for shifting/sliding }, }, { name: 'flip', options: { boundariesElement: 'viewport', padding: 16, // viewport-margin for flipping }, }, { name: 'offset', enabled: true, options: { offset: [0, 8], // horizontal and vertical margin (distance between popper and referenceElement) }, }, { name: 'arrow', enabled: false, }, ], }, viewportConfig: { placement: 'center', }, zIndex: 9999, }` |                                                                                                                                                                                                                                                                                                                                                                                           |                |
| `_referenceNode`            | protected | `HTMLElement \| undefined`                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                           |                |

### Methods

| Name                            | Privacy   | Description                                                                                                                                                                                                                                                    | Parameters                                                                                       | Return | Inherited From |
| ------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------ | -------------- |
| `addEventListener`              | public    |                                                                                                                                                                                                                                                                | `type, callback, options`                                                                        |        | EventTarget    |
| `dispatchEvent`                 | public    |                                                                                                                                                                                                                                                                | `event`                                                                                          |        | EventTarget    |
| `hide`                          | public    |                                                                                                                                                                                                                                                                |                                                                                                  |        |                |
| `removeEventListener`           | public    |                                                                                                                                                                                                                                                                | `type, callback, options`                                                                        |        | EventTarget    |
| `show`                          | public    |                                                                                                                                                                                                                                                                | `elementToFocusAfterHide: HTMLElement`                                                           |        |                |
| `teardown`                      | public    |                                                                                                                                                                                                                                                                |                                                                                                  |        |                |
| `toggle`                        | public    |                                                                                                                                                                                                                                                                |                                                                                                  |        |                |
| `transitionHide`                | public    | Method to be overriden by subclassers                                                                                                                                                                                                                          | `hideConfig: {backdropNode:HTMLElement, contentNode:HTMLElement}`                                |        |                |
| `transitionShow`                | public    | To be overridden by subclassers                                                                                                                                                                                                                                | `showConfig: {backdropNode:HTMLElement; contentNode:HTMLElement}`                                |        |                |
| `updateConfig`                  | public    | Allows to dynamically change the overlay configuration. Needed in case the&#xA;presentation of the overlay changes depending on screen size.&#xA;Note that this method is the only allowed way to update a configuration of an&#xA;OverlayController instance. | `cfgToAdd: OverlayConfig`                                                                        |        |                |
| `_handleAccessibility`          | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleBackdrop`               | protected | Sets up backdrop on the given overlay. If there was a backdrop on another element&#xA;it is removed. Otherwise this is the first time displaying a backdrop, so a animation-in&#xA;animation is played.                                                        | `{ phase }, config: { animation?: boolean, phase: OverlayPhase }`                                |        |                |
| `_handleBlocking`               | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleFeatures`               | protected | All features are handled here.                                                                                                                                                                                                                                 | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleHidesOnEsc`             | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleHidesOnOutsideClick`    | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleHidesOnOutsideEsc`      | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleInheritsReferenceWidth` | protected |                                                                                                                                                                                                                                                                |                                                                                                  |        |                |
| `_handlePosition`               | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handlePreventsScroll`         | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleTrapsKeyboardFocus`     | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleVisibilityTriggers`     | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_handleZIndex`                 | protected | Display local overlays on top of elements with no z-index that appear later in the DOM                                                                                                                                                                         | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_hasDisabledInvoker`           | protected |                                                                                                                                                                                                                                                                |                                                                                                  |        |                |
| `_init`                         | protected |                                                                                                                                                                                                                                                                |                                                                                                  |        |                |
| `_keepBodySize`                 | protected |                                                                                                                                                                                                                                                                | `{ phase }, config: { phase: OverlayPhase }`                                                     |        |                |
| `_restoreFocus`                 | protected |                                                                                                                                                                                                                                                                |                                                                                                  |        |                |
| `_transitionHide`               | protected |                                                                                                                                                                                                                                                                | `{ backdropNode, contentNode }, hideConfig: {backdropNode:HTMLElement, contentNode:HTMLElement}` |        |                |
| `_transitionShow`               | protected |                                                                                                                                                                                                                                                                | `showConfig: {backdropNode:HTMLElement; contentNode:HTMLElement}`                                |        |                |

### Events

| Name   | Type    | Description | Inherited From |
| ------ | ------- | ----------- | -------------- |
| `show` | `Event` |             |                |
| `hide` | `Event` |             |                |

<hr/>
 

## class: `OverlaysManager`

### Fields

| Name             | Privacy   | Type      | Default | Description                                                                                                            | Inherited From |
| ---------------- | --------- | --------- | ------- | ---------------------------------------------------------------------------------------------------------------------- | -------------- |
| `list`           | public    |           |         | no setter as .list is intended to be read-only&#xA;You can use .add or .remove to modify it                            |                |
| `shownList`      | public    |           |         | no setter as .shownList is intended to be read-only&#xA;You can use .show or .hide on individual controllers to modify |                |
| `siblingsInert`  | public    |           |         | Features right now only for Global Overlay Manager                                                                     |                |
| `_siblingsInert` | protected | `boolean` | `false` |                                                                                                                        |                |

### Methods

| Name                       | Privacy | Description                      | Parameters                             | Return              | Inherited From |
| -------------------------- | ------- | -------------------------------- | -------------------------------------- | ------------------- | -------------- |
| `add`                      | public  | Registers an overlay controller. | `ctrlToAdd: OverlayController`         | `OverlayController` |                |
| `hide`                     | public  |                                  | `ctrlToHide: any`                      |                     |                |
| `remove`                   | public  |                                  | `ctrlToRemove: OverlayController`      |                     |                |
| `requestToEnableScroll`    | public  |                                  | `currentController: OverlayController` |                     |                |
| `requestToPreventScroll`   | public  | PreventsScroll                   |                                        |                     |                |
| `requestToShowOnly`        | public  | Blocking                         | `blockingCtrl: OverlayController`      |                     |                |
| `retractRequestToShowOnly` | public  |                                  | `blockingCtrl: OverlayController`      |                     |                |
| `show`                     | public  |                                  | `ctrlToShow: OverlayController`        |                     |                |
| `teardown`                 | public  |                                  |                                        |                     |                |

<hr/>
