On this page
AnchoredOverlay
Use anchored overlay to provide an anchor that will open a floating overlay positioned relative to the anchor. The overlay can be opened and navigated using keyboard or mouse.
On this page
An AnchoredOverlay
provides an anchor that will open a floating overlay positioned relative to the anchor.
The overlay can be opened and navigated using keyboard or mouse.
See also Overlay positioning.
Examples
Props
AnchoredOverlay
Name | Type | Default | Description |
---|---|---|---|
open | boolean | false | Determines whether the overlay portion of the component should be shown or not. |
onOpen | (gesture: 'anchor-click' | 'anchor-key-press') => unknown | A callback that is called whenever the overlay is currently closed and an "open gesture" is detected. | |
onClose | (gesture: 'anchor-click' | 'click-outside' | 'escape') => unknown | A callback that is called whenever the overlay is currently open and a "close gesture" is detected. | |
renderAnchor | <T extends React.HTMLAttributes<HTMLElement>>(props: T) => JSX.Element | A custom function component used to render the anchor element. When renderAnchor is null, an anchorRef is required. | |
anchorRef | React.RefObject<HTMLElement> | An override to the internal `renderAnchor` ref that will be used to position the overlay. When `renderAnchor` is `null`, this can be used to make an anchor that is detached from ` AnchoredOverlay `. | |
anchorId | string | An override to the internal id that will be passed to the anchor. | |
side | | 'inside-top' | 'inside-bottom' | 'inside-left' | 'inside-right' | 'inside-center' | 'outside-top' | 'outside-bottom' | 'outside-left' | 'outside-right' | 'outside-bottom' | |
align | 'start' | 'center' | 'end' | 'start' | |
overlayProps | Partial<OverlayProps> | Props to be spread on the internal `Overlay` component. | |
focusTrapSettings | Partial<FocusTrapHookSettings> | Settings to apply to the focus trap on the internal `Overlay` component. | |
focusZoneSettings | Partial<FocusZoneHookSettings> | Settings to apply to the focus zone on the internal `Overlay` component. |
Status
Alpha
- Component props and basic example usage of the component are documented on primer.style/react.
- Component does not have any unnecessary third-party dependencies.
- Component can adapt to different themes.
- Component can adapt to different screen sizes.
- Component has robust unit test coverage (100% where achievable).
- Component has visual regression coverage of its default and interactive states.
- Component does not introduce any axe violations.
- Component has been manually reviewed by the accessibility team and any resulting issues have been addressed.
Beta
- Component is used in a production application.
- Common usage examples are documented on primer.style/react.
- Common usage examples are documented in storybook stories.
- Component has been reviewed by a systems designer and any resulting issues have been addressed.
- Component does not introduce any performance regressions.
Stable
- Component API has been stable with no breaking changes for at least one month.
- Feedback on API usability has been sought from developers using the component and any resulting issues have been addressed.
- Component has corresponding design guidelines documented in the interface guidelines.
- Component has corresponding Figma component in the Primer Web library.
- Tooling (such as linters, codemods, etc.) exists to prevent further use of alternatives.