Learn about the Panel component for use in UI extensions.
Panel
component renders a panel overlay on the right side of the page and contains other components. Like the Modal component, you’ll include the Panel
component in an overlay
prop within a Button, LoadingButton, Link, Tag, or Image component.
To see an example of using a panel in an extension, check out HubSpot’s Build a multi-step flow or Overlay example project.
Panel
components has changed. Moving forward:Panel
component uses three subcomponents to control its design and content, which follows the general structure below:
<Panel>
: the outermost container. It must be a top-level component. You cannot put a Panel
inside another component, such as Flex
.
<PanelBody>
: the container that wraps the panel’s content and makes it scrollable. Include only one PanelBody
per Panel
.
<PanelFooter>
: a sticky footer component at the bottom of the panel. Include only one PanelFooter
per Panel
.Panel
and PanelSection
.
Prop | Type | Description |
---|---|---|
id | String | A unique ID for the panel. |
onOpen | onOpen() => void | A function that will be invoked when the panel has finished opening. |
onClose | onClose() => void | A function that will be invoked when the panel has finished closing. |
width | 'sm' , 'small' (default) | 'md' , 'medium' | 'lg' , 'large' | The width of the panel. |
title | String | The text that displays at the top of the panel. |
variant | 'modal' | 'default' (default) | The panel variant. The modal variant includes better screen reader focus on the panel and is recommended for visual and motor accessibility and tab navigation. See variants for more information. |
aria-label | String | The panel’s accessibility label. |
Prop | Type | Description |
---|---|---|
flush | Boolean | When set to true , the section will have no bottom margin. Default is false . |
Button
, LoadingButton
, Link
, Tag
or Image
with an onClick
event that triggers the closeOverlay
action. To use this action, you’ll need to include the actions argument in hubspot.extend()
as seen in the example code below.
Learn more about opening and closing overlays.
Modal
can be opened from a Panel
, but a Panel
cannot be opened from a Modal
.variants
prop, you can add an additional overlay behind the panel to blur the rest of the page. This variant puts more focus on the panel and improves accessibility for users with screen readers. Because the modal
variant obscures the rest of the page’s content, use it only when users don’t need other context from the page.