Panel is a container that can house interactions as well as live within other Calcite components.
Overview
Panel provides a header with heading text and a summary. There are slots to add Actions and Icons to the start and end of the header. Panel's main content area is a blank container.
Panel works well with Shell Panel and Flow. Combine Panels within Flow for an out-of-the-box drill-in experience.
Sample
Usage
- Accommodate content that has an associated
heading, and if applicable adescriptionand/or Actions - Provide a drilled-in workflow with Flow
- Contain a List
Accessibility
Keyboard navigation
| Key | Function |
|---|---|
Tab | Moves focus to the next focusable element. If the currently focused element is the last, focus will leave the component. |
Tab and Shift | Moves focus to the previous focusable element. If the currently focused element is the first, focus will leave the component. |
API reference
Properties
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
| beforeClose | Passes a function to run before the component closes. | () => Promise<void> | ||
| closable | closable | When | boolean | false |
| closed | closed | When | boolean | false |
| collapsed | collapsed | When | boolean | false |
| collapseDirection | collapse-direction | When | CollapseDirection | "down" |
| collapsible | collapsible | When | boolean | false |
| description | description | Specifies a description for the component. | string | |
| disabled | disabled | When | boolean | false |
| heading | heading | Specifies the component's heading text. | string | |
| headingLevel | heading-level | Specifies the heading level number of the component's | HeadingLevel | |
| icon | icon | Specifies an icon to display. | IconName | |
| iconFlipRtl | icon-flip-rtl | When | boolean | false |
| loading | loading | When | boolean | false |
| menuFlipPlacements | Specifies the component's fallback | FlipPlacement[] | ||
| menuOpen | menu-open | When | boolean | false |
| menuPlacement | menu-placement | Determines where the action menu will be positioned. | LogicalPlacement | "bottom-end" |
| messageOverrides | Overrides individual strings used by the component. | Record<string, unknown> | undefined | ||
| overlayPositioning | overlay-positioning | Specifies the type of positioning to use for overlaid content, where:
| OverlayPositioning | "absolute" |
| scale | scale | Specifies the size of the component. | Scale | "m" |
| topLayerDisabled | top-layer-disabled | When Only set this if you need complex z-index control or if top layer placement causes conflicts with third-party components. | boolean | false |
Slots
| Name | Description |
|---|---|
| default (unnamed) | A slot for adding custom content. |
| action-bar | A slot for adding a |
| alerts | A slot for adding |
| content-bottom | A slot for adding content below the unnamed (default) slot and above the footer slot (if populated). |
| content-top | A slot for adding content above the unnamed (default) slot and below the action-bar slot (if populated). |
| header-actions-start | A slot for adding actions or content to the start side of the header. |
| header-actions-end | A slot for adding actions or content to the end side of the header. |
| header-content | A slot for adding custom content to the header. |
| header-menu-actions | A slot for adding an overflow menu with actions inside a |
| heading | A slot for adding content to the heading area of the default header. Takes precedence over the |
| description | A slot for adding content to the description area of the default header. Takes precedence over the |
| fab | A slot for adding a |
| footer | A slot for adding custom content to the component's footer. Should not be used with the |
| footer-end | A slot for adding custom content to a trailing footer. Should not be used with the |
| footer-start | A slot for adding custom content to a leading footer. Should not be used with the |
Styles
| Name | Description |
|---|---|
| --calcite-panel-corner-radius | Specifies the component's corner radius. |
| --calcite-panel-heading-text-color | Specifies the text color of the component's |
| --calcite-panel-icon-color | Specifies the color of the component's icon. |
| --calcite-panel-description-text-color | Specifies the text color of the component's |
| --calcite-panel-border-color | Specifies the component's border color. |
| --calcite-panel-background-color | Specifies the component's background color. |
| --calcite-panel-content-top-space | Specifies the padding of the component's |
| --calcite-panel-content-bottom-space | Specifies the padding of the component's |
| --calcite-panel-header-background-color | Specifies the background color of the component's header. |
| --calcite-panel-header-action-background-color | Specifies the background color of the component's |
| --calcite-panel-header-action-background-color-hover | Specifies the background color of the component's |
| --calcite-panel-header-action-background-color-press | Specifies the background color of the component's |
| --calcite-panel-header-action-text-color | Specifies the text color of the component's |
| --calcite-panel-header-action-text-color-press | Specifies the text color of the component's |
| --calcite-panel-footer-background-color | Specifies the background color of the component's footer. |
| --calcite-panel-space | Specifies the padding of the component's |
| --calcite-panel-header-content-space | Specifies the padding of the component's |
| --calcite-panel-footer-space | Specifies the padding of the component's footer. |
| --calcite-popover-border-color | Specifies the border color of the component's internally rendered |
| --calcite-panel-content-space | --calcite-panel-space instead. Specifies the padding of the component's content. |
| --calcite-panel-footer-padding | --calcite-panel-footer-space instead. Specifies the padding of the component's footer. |
| --calcite-panel-header-border-block-end | --calcite-panel-border-color instead. Specifies the component header's block end border. |
Events
| Name | Description | Behavior |
|---|---|---|
| calcitePanelClose | Fires when the close button is clicked. | |
| calcitePanelCollapse | Fires when the component's content area is collapsed. | |
| calcitePanelExpand | Fires when the component's content area is expanded. | |
| calcitePanelScroll | Fires when the content is scrolled. | |
| calcitePanelToggle | Fires when the collapse button is clicked. |
Methods
| Name | Description | Signature |
|---|---|---|
| componentOnReady | Creates a promise that resolves once the component is fully loaded. | componentOnReady(): Promise<this> |
| scrollContentTo | Scrolls the component's content to a specified set of coordinates. | scrollContentTo(options?: ScrollToOptions): Promise<void> |
| setFocus | Sets focus on the component's first focusable element. | setFocus(options?: FocusOptions): Promise<void> |