Skip to content
Child component of Shell

Shell Panel is expected to be used within the "panel-start", "panel-end", "panel-top" and "panel-bottom" slots of Shell.

Overview

Shell Panels often contain configuration, controls, and selection workflows that drive the user experience within the Shell, most frequently containing Panel, Block, and Action Bar components.

Shell Panels should be used to display content to a user that is contextually related to the contents of the default content slot of Shell.

Usage

  • House primary application functionality and configuration options that drive interaction
  • Create consistent, repeatable application layouts when combined with Panel, Block, and Action Bar components

Sample

Best practices

While visually similar to the Sheet component, Shell Panel has distinct capabilities and intended use cases. Multiple Shell Panel components may be in use at once, whereas it is recommended to allow only one Sheet to be open at once.

Sheet provides a page-blocking scrim and should be used to prevent interaction within the application. Sheet expects a single Panel as a child element.
Conversely, Shell Panel is not intended to interrupt the main application workflow. It does not provide a page-blocking scrim. Shell Panel supports placing an Action Bar adjacent to a slotted Panel in the "action-bar" slot that is always visible.

There are multiple displayMode options available in Shell Panel. The default, "docked", will push content slotted in the default slot of Shell to the side. The "float" and "overlay" values will place the Shell Panel on top of content slotted in the default slot of Shell. You can combine these types of Shell Panels within the application.

Note that the displayMode property will yield slightly different visual displays based upon the presence of the parent Shell component's contentBehind property. When this is true, Shell Panel will position on top of content slotted within the default slot of Shell.

Recommendations

It is expected to slot a single Panel, most often containing one or more Block components, inside the Shell Panel. A common use case is to slot an Action Bar component into the "action-bar" slot to contain Actions that correspond to an open Panel.

At smaller viewport sizes, it may be useful to change displayMode from "dock" to "float" or "overlay". It can also at times be appropriate to programmatically collapse open Shell Panels that are not currently in use by a user.

API reference

Properties

PropertyAttributeDescriptionTypeDefault
collapsedcollapsedWhen true, hides the component's content area.booleanfalse
displayModedisplay-modeSpecifies the component's display mode, where: "dock" displays at full height adjacent to center content, "overlay" displays at full height on top of center content, and "float" [Deprecated] does not display at full height with content separately detached from calcite-action-bar on top of center content. "float-content" does not display at full height with content separately detached from calcite-action-bar on top of center content. "float-all" detaches the calcite-panel and calcite-action-bar on top of center content.DisplayMode"dock"
heightheightSpecifies the component's height.Height
heightScaleheight-scale
deprecatedin v3.0.0, removal target v6.0.0 - Use the height property instead.
When layout is horizontal, specifies the component's maximum height.
Scale
layoutlayout
deprecatedin v4.0.0, removal target v6.0.0 - No longer necessary.
Specifies the component's direction.
Extract<"horizontal" | "vertical", Layout>"vertical"
messageOverridesOverrides individual strings used by the component.Record<string, unknown> | undefined
positionposition
deprecatedin v4.0.0, removal target v6.0.0 - No longer necessary.
Specifies the component's position. Will be flipped when the element direction is right-to-left ("rtl").
Extract<"start" | "end", Position>"start"
resizableresizableWhen true and displayMode is "dock" or "overlay", the component's content area is resizable.booleanfalse
widthwidthSpecifies the component's width.Extract<Width, Scale>
widthScalewidth-scale
deprecatedin v3.0.0, removal target v6.0.0 - Use the width property instead.
When layout is vertical, specifies the component's width.
Scale"m"

Slots

NameDescription
default (unnamed)A slot for adding custom content.
action-barA slot for adding a calcite-action-bar to the component.

Styles

NameDescription
--calcite-shell-panel-background-colorSpecifies the component's background color.
--calcite-shell-panel-border-colorWhen displayMode is "float-all", specifies the component's border color.
--calcite-shell-panel-corner-radiusWhen displayMode is "float-all", specifies the component's corner radius.
--calcite-shell-panel-heightWhen layout is horizontal, or layout is vertical and displayMode is float-content or float or float-all, specifies the component's height.
--calcite-shell-panel-max-heightWhen layout is horizontal, or layout is vertical and displayMode is float-content or float, specifies the component's maximum height.
--calcite-shell-panel-min-heightWhen layout is horizontal, or layout is vertical and displayMode is float-content or float, specifies the component's minimum height.
--calcite-shell-panel-max-widthSpecifies the component's maximum width.
--calcite-shell-panel-resize-icon-colorSpecifies the resize handle's text color.
--calcite-shell-panel-shadowWhen displayMode is "float-all", specifies the component's shadow.
--calcite-shell-panel-text-colorSpecifies the component's text color.
--calcite-shell-panel-widthSpecifies the component's width.
--calcite-shell-panel-z-indexSpecifies the component's z-index value.

Methods

NameDescriptionSignature
componentOnReadyCreate a promise that resolves once component is fully loaded.componentOnReady(): Promise<this>
updateSizeUpdates the component's size by setting its inline and/or block dimensions. Use this method to programmatically override the components's width (inline) and/or height (block). Pass null to clear the override and revert to the default or CSS variable size.updateSize(size: { inline?: number | null; block?: number | null; }): Promise<void>

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.