AnchoredOverlay provides an anchor that will open a floating Overlay positioned relative to the anchor. The Overlay can be opened and navigated using a keyboard or mouse.
import React from 'react'
import {AnchoredOverlay, Button} from '@primer/react'
export default function Default() {
const [open, setOpen] = React.useState(false)
return (
<AnchoredOverlay
open={open}
onOpen={() => setOpen(true)}
onClose={() => setOpen(false)}
renderAnchor={props => <Button {...props}>Toggle overlay</Button>}
>
<div>Anchored overlay content</div>
</AnchoredOverlay>
)
}
You can pick from a set of predefined widths and heights.
import React from 'react'
import {AnchoredOverlay, Button} from '@primer/react'
export default function WidthHeightCustom() {
const [open, setOpen] = React.useState(false)
return (
<AnchoredOverlay
open={open}
onOpen={() => setOpen(true)}
onClose={() => setOpen(false)}
renderAnchor={props => <Button {...props}>Toggle overlay</Button>}
width="small"
height="xsmall"
>
<div>Anchored overlay content</div>
</AnchoredOverlay>
)
}
The side
, align
, anchorOffset
, and alignmentOffset
props can be used to customize how the AnchoredOverlay
is positioned relative to the "anchor" that toggles it.
import React from 'react'
import {AnchoredOverlay, Button} from '@primer/react'
export default function PositionCustom() {
const [open, setOpen] = React.useState(false)
return (
<AnchoredOverlay
open={open}
onOpen={() => setOpen(true)}
onClose={() => setOpen(false)}
renderAnchor={props => <Button {...props}>Toggle overlay</Button>}
side="outside-right"
align="end"
anchorOffset={20}
alignmentOffset={4}
>
<div>Anchored overlay content</div>
</AnchoredOverlay>
)
}
See the AnchoredOverlay Storybook stories.
Loading data for anchored_overlay...