Skip to main content

    Overlay

    The Overlay component allows you to show additional content when the user clicks on a particular element in the UI. The Overlay is placed at the border of its trigger element. To define a UI element as a trigger, use the useOverlayWithTrigger hook. The Overlay only exists in a controlled manner, so the isOpen prop must be updated by the developer.

    Import

    import { Overlay } from '@dynatrace/strato-components-preview/overlays';

    UseCases

    CodeSandbox

    Control appearance

    Use placement in the overlayProps to set the overlay's position relative to its trigger element. To influence the space between the trigger element and the overlay, change the offset.

    Set the widthStrategy to control the width of the overlay. Values can be min and max in pixels, 'content' or 'trigger'.

    CodeSandbox

    Trap focus

    If you want to trap the focus inside the overlay, you can use the trapFocus option of the useOverlayWithTrigger hook. Note that the focus will be trapped, regardless of any focusable children being present in the overlay. If you don't have focusable children in the overlay, make sure not to trap the focus so keyboard users can still dismiss the overlay and continue navigating the page.

    CodeSandbox

    Dynamic content

    If you have dynamic content in the overlay that is changing from including focusable children at first to no more focusable children being present in the end, you need to make sure to also handle trapping the focus accordingly. As long as you include focusable children, you can have the focus trapped in the overlay. As soon as there are no more focusable children in the overlay, you must not trap the focus anymore to avoid keyboard traps.

    CodeSandbox
    Still have questions?
    Find answers in the Dynatrace Community