Block provides a way to organize and group related controls or content.
Overview
Blocks should be used to house content and controls within Panel, most often as part of an application layout comprised of Shell Panels and Shell.
Sample
Usage
- Organize and group controls or interactive elements.
- Provide consistent spacing, placement, and arrangement of content within a Panel.
Best practices
Block is a foundational layout component. Consider using Block within components intended to house content such as Panel and Flow Item. For additional layout considerations, refer to layout patterns and layout samples.

collapsible Blocks to save space when content is not essential.heading and description properties to provide context to a user when Block content is collapsed.
collapsible Blocks to display essential information. When the component is collapsed slotted content will not be visible.Accessibility
Keyboard navigation
| Key | Function |
|---|---|
Enter | Toggles the "Expand"/"Collapse" focused component. |
Space | Toggles the "Expand"/"Collapse" focused component. |
Tab | Moves focus into/out of the component or moves between calcite-block-sections. If the currently focused step is the last step, focus will leave the component |
Tab and Shift | Moves focus into/out of the component or moves between calcite-block-sections. If the currently focused step is the first step, focus will leave the component |
API reference
Properties
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
| collapsible | collapsible | When | boolean | false |
| description | description | Specifies a description for the component. Displays below the heading. | string | |
| disabled | disabled | When | boolean | false |
| dragDisabled | drag-disabled | When | boolean | false |
| dragHandle | drag-handle | When | boolean | false |
| expanded | expanded | 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 | |
| iconEnd | icon-end | Specifies an icon to display at the end of the component. | IconName | |
| iconFlipRtl | icon-flip-rtl | Displays the | FlipContext | |
| iconStart | icon-start | Specifies an icon to display at the start of the component. | IconName | |
| label | label | Specifies an accessible label for the component. | string | |
| loading | loading | When | boolean | false |
| menuFlipPlacements | Specifies the component's fallback | FlipPlacement[] | ||
| 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 | ||
| open | open | expanded property instead.When | boolean | false |
| 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" |
| sortHandleOpen | sort-handle-open | When | boolean | false |
| status | status | icon-start property instead.Displays a status-related indicator icon. | Status | |
| 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. |
| actions-end | A slot for adding actionable |
| content-end | A slot for adding non-actionable elements after the component's header text. |
| content-start | A slot for adding non-actionable elements before the component's header text. |
| header-menu-actions | A slot for adding an overflow menu with |
Styles
| Name | Description |
|---|---|
| --calcite-block-border-color | Specifies the component's border color. |
| --calcite-block-content-space | Specifies the space of the component's |
| --calcite-block-header-background-color | Specifies the component's |
| --calcite-block-header-background-color-hover | Specifies the component's |
| --calcite-block-header-background-color-press | Specifies the component's |
| --calcite-block-heading-text-color | Specifies the component's |
| --calcite-block-heading-text-color-press | --calcite-block-heading-text-color instead. When the component is expanded, specifies the heading text color. |
| --calcite-block-padding | --calcite-block-content-space instead. Specifies the padding of the component's default slot. |
| --calcite-block-text-color | |
| --calcite-block-description-text-color | Specifies the component's |
| --calcite-block-icon-color | --calcite-block-collapsible-icon-color, --calcite-block-icon-start-color and --calcite-block-icon-end-color instead. Specifies the component's collapsible icon, iconStart and iconEnd color. |
| --calcite-block-icon-color-hover | --calcite-block-collapsible-icon-color-hover instead. Specifies the component's collapsible icon color when hovered. |
| --calcite-block-icon-start-color | Specifies the component's |
| --calcite-block-icon-end-color | Specifies the component's |
| --calcite-block-collapsible-icon-color | Specifies the component's |
| --calcite-block-collapsible-icon-color-hover | Specifies the component's |
Events
| Name | Description | Behavior |
|---|---|---|
| calciteBlockBeforeClose | Fires when the component is requested to be closed and before the closing transition begins. | |
| calciteBlockBeforeOpen | Fires when the component is added to the DOM but not rendered, and before the opening transition begins. | |
| calciteBlockClose | Fires when the component is closed and animation is complete. | |
| calciteBlockCollapse | Fires when the component's content area is collapsed. | |
| calciteBlockExpand | Fires when the component's content area is expanded. | |
| calciteBlockOpen | Fires when the component is open and animation is complete. | |
| calciteBlockSortHandleBeforeClose | Fires when the sort handle is requested to be closed and before the closing transition begins. | |
| calciteBlockSortHandleBeforeOpen | Fires when the sort handle is added to the DOM but not rendered, and before the opening transition begins. | |
| calciteBlockSortHandleClose | Fires when the sort handle is closed and animation is complete. | |
| calciteBlockSortHandleOpen | Fires when the sort handle is open and animation is complete. | |
| calciteBlockToggle | openClose events such as calciteBlockOpen, calciteBlockClose, calciteBlockBeforeOpen, and calciteBlockBeforeClose instead.Fires when the component's header is clicked. |
Methods
| Name | Description | Signature |
|---|---|---|
| componentOnReady | Creates a promise that resolves once the component is fully loaded. | componentOnReady(): Promise<this> |
| setFocus | Sets focus on the component's first tabbable element. | setFocus(options?: FocusOptions): Promise<void> |