Close
Angular React Web Components Blazor Blazor
Premium

Blazor Dock Manager Overview

The Infragistics Blazor Dock Manager provides a means to manage the layout of your application through panes, allowing your end-users to customize it further by pinning, resizing, moving, maximizing and hiding panes.

Blazor Dock Manager Example

This example shows most functionalities and docking options of the IgbDockManager that you can use in your application.

Customization

The Dock Manager component provides the option to customize all buttons using slots and parts. To change any of the buttons you simply have to define your own element inside the Dock Manager and set the slot attribute to the corresponding identifier.

Let’s utilize these slots and parts to create a customized Dock Manager layout. First, we will provide our own icons, using the closeButton, maximizeButton, minimizeButton, pinButton and unpinButton slots:

Then, we will use the exposed parts in our stylesheet. This way we have full control of the component’s styling:

igc-dockmanager::part(unpinned-tab-area) {
    background: #bee9ec;
}

igc-dockmanager::part(unpinned-tab-area--left) {
    border-right: 1px dashed #004d7a;
}

igc-dockmanager::part(unpinned-tab-area--bottom) {
    border-top: 1px dashed #004d7a;
}

igc-dockmanager::part(tab-header-close-button),
igc-dockmanager::part(pane-header-close-button) {
    background-color: #e73c7e;
}

igc-dockmanager::part(pane-header-pin-button),
igc-dockmanager::part(pane-header-unpin-button) {
  background: rgb(218, 218, 218);
  border: none;
  width: 24px;
  height: 24px;
  color: #fff;
}

igc-dockmanager::part(tabs-maximize-button),
igc-dockmanager::part(tabs-minimize-button),
igc-dockmanager::part(pane-header-minimize-button),
igc-dockmanager::part(pane-header-maximize-button) {
  width: 24px;
  height: 24px;
  border: none;
  transition: opacity 250ms ease-in-out;
  opacity: 0.3;
  margin-right: 15px;
  margin-top: -5px;
  margin-left: 0px;
}

If everything went well, we should now have a DockManager with customized icons and tab area. Let’s have a look at it:

Below you can find a list containing the slot names for all of the buttons as well as the splitter handle:

Slot nameDescription
closeButtonThe close buttons.
paneHeaderCloseButtonThe close buttons of the pane headers.
tabHeaderCloseButtonThe close buttons of the tab headers.
moreTabsButtonThe more tabs buttons.
moreOptionsButtonThe more options buttons.
maximizeButtonThe maximize buttons.
minimizeButtonThe minimize buttons.
pinButtonThe pin buttons.
unpinButtonThe unpin buttons.
splitterHandleThe splitter handle.

You can find each slot’s corresponding part in the CSS Parts under Styling section of this page.

CSS Variables

The following table describes all CSS variables used for styling the dock-manager component:

CSS variableDescription
--igc-background-colorThe background color of the header inside the pane navigator component.
--igc-accent-colorThe background color of the buttons inside the pane header actions part on focus.
--igc-active-colorThe text and box-shadow color used for the components in active state.
--igc-border-colorThe border bottom color of the pane header component.
--igc-font-familyThe font-family of the dock-manager component.
--igc-dock-backgroundThe background color of the dock-manager, tab and floating-pane components.
--igc-dock-textThe text color of the dock-manager and the floating pane components.
--igc-pane-header-backgroundThe background color of the pane header component.
--igc-pane-header-textThe text color of the pane header component.
--igc-pane-content-backgroundThe background color of the content inside the dock-manager and the tab panel components.
--igc-pane-content-textThe text color of the content inside the dock-manager and the tab panel components.
--igc-tab-textThe text color of the tab header component.
--igc-tab-backgroundThe background color of the tab header component.
--igc-tab-border-colorThe border color of the tab header component.
--igc-tab-text-activeThe text color of the selected tab header component.
--igc-tab-background-activeThe background color of the selected tab header component.
--igc-tab-border-color-activeThe border color of the selected tab header component.
--igc-pinned-header-backgroundThe background color of the unpinned pane header component.
--igc-pinned-header-textThe text color of the unpinned pane header component.
--igc-splitter-backgroundThe background color of the splitter component.
--igc-splitter-handleThe background color of the splitter handle.
--igc-button-textThe color of the buttons inside the pane header actions part.
--igc-flyout-shadow-colorThe box-shadow color of the content pane component.
--igc-joystick-backgroundThe background color of the joystick and the root docking indicator components.
--igc-joystick-border-colorThe border color of the joystick and the root docking indicator components.
--igc-joystick-icon-colorThe icon color of the joystick and the root docking indicator components.
--igc-joystick-background-activeThe hover background color of the joystick and the root docking indicator components.
--igc-joystick-icon-color-activeThe hover icon color of the joystick and the root docking indicator components.
--igc-floating-pane-border-colorThe border color of the floating panes.
--igc-context-menu-backgroundThe background color of the context menu items.
--igc-context-menu-background-activeThe background color of the context menu items on hover and focus.
--igc-context-menu-colorThe text color of the context menu items.
--igc-context-menu-color-activeThe text color of the context menu items on hover and focus.
--igc-drop-shadow-backgroundThe background color of the drop shadow.
--igc-disabled-colorThe text color of the components in disabled state.

Keyboard Navigation

Keyboard navigation enhances the accessibility of the Dock Manager and provides a rich variety of interactions to the end-user like navigating through all panes, splitting the view in multiple directions through docking the active pane, etc.

The shortcuts are as follows:

Docking

  • CMD/CTRL + SHIFT + Docks to global top
  • CMD/CTRL + SHIFT + Docks to global bottom
  • CMD/CTRL + SHIFT + Docks to global right
  • CMD/CTRL + SHIFT + Docks to global left
  • SHIFT + With multiple tabs in a tab group splits the view and docks the focused tab above
  • SHIFT + With multiple tabs in a tab group splits the view and docks the focused tab below
  • SHIFT + With multiple tabs in a tab group splits the view and docks the focused tab right
  • SHIFT + With multiple tabs in a tab group splits the view and docks the focused tab left
  • CMD/CTRL + F6 or CMD/CTRL + Focuses next tab in document host
  • CMD/CTRL + SHIFT + F6 or CMD/CTRL + Focuses previous tab in document host
  • ALT + F6 Focuses next content pane
  • ALT + SHIFT + F6 Focuses previous content pane

Pane Navigator

The following keyboard shortcuts show a navigator from which you can iterate through panes and documents.

  • CMD/CTRL + F7 or CMD/CTRL + F8 Starts from the first document forward
  • ALT + F7 or ALT + F8 Starts from the first pane forward
  • CMD/CTRL + SHIFT + F7 or CMD/CTRL + SHIFT + F8 Starts from the last document backwards
  • ALT + SHIFT + F7 or ALT + SHIFT + F8 Starts from the last pane backwards

Other

  • ALT + F3 Closes the active pane

Practice all of the above mentioned actions in the sample demo.

Styling

The Dock Manager uses a shadow DOM to encapsulate his styles and behaviors. As a result, you can’t simply target its internal elements with the usual CSS selectors. That is why we expose components parts that can be targeted with the ::part CSS selector.

igc-dockmanager::part(content-pane) {
  border-radius: 10px;
}

In the following example, we demonstrate the ability of customizing the Dock Manager through some of the CSS parts that we’ve exposed.

CSS Parts

Part nameDescription
content-paneThe content pane component.
pane-headerThe content pane header component.
pane-header-contentThe content area of the content pane header.
pane-header-actionsThe actions area of the content pane header.
activeIndicates an active state. Applies to pane-header, pane-header-content, pane-header-actions, tab-header.
floatingIndicates a floating pane placement. Applies to pane-header, pane-header-content, pane-header-actions.
windowIndicates a floating window placement. Applies to pane-header, pane-header-content, pane-header-actions.
split-paneThe split pane component.
splitterThe resizing splitter component.
splitter-baseThe base element of the splitter component.
splitter-ghostThe ghost element of the splitter component.
unpinned-pane-headerThe unpinned pane header component.
tab-headerThe tab header component.
tab-header-more-options-buttonThe more options button in the tab header.
tab-header-close-buttonThe close button in the tab header.
selectedIndicates a selected state. Applies to tab-header and tab-header-close-button.
hoveredIndicates a hovered state. Applies to tab-header-close-button.
header-titleThe text title of the tab header.
tab-strip-areaThe tab strip area containing the tab headers.
tab-strip-actionsThe tab strip area containing the tab actions.
topIndicates a top tabs position. Applies to tab-header, tab-strip-area, tab-strip-actions.
bottomIndicates a bottom tabs position. Applies to tab-header, tab-strip-area, tab-strip-actions.
context-menuThe context menu component.
context-menu-itemAn item in the context menu component.
docking-previewThe docking preview area.
docking-indicatorThe non-root docking indicator.
root-docking-indicatorThe root docking indicator.
splitter-docking-indicatorThe splitter docking indicator.
pane-navigatorThe pane navigator component.
pane-navigator-headerThe header area of the pane navigator.
pane-navigator-bodyThe body area of the pane navigator.
pane-navigator-items-groupAn items group in the pane navigator component.
pane-navigator-items-group-titleThe title element of an items group in the pane navigator.
pane-navigator-itemAn item in the pane navigator.
pane-header-close-buttonThe close button in the pane header.
pane-header-maximize-buttonThe maximize button in the pane header.
pane-header-minimize-buttonThe minimize button in the pane header.
pane-header-pin-buttonThe pin button in the pane header.
pane-header-unpin-buttonThe unpin button in the pane header.
tabs-maximize-buttonThe tabs maximize button.
tabs-minimize-buttonThe tabs minimize button.
tabs-more-buttonThe more tabs button.
context-menu-unpin-buttonThe unpin button in the context menu.
context-menu-close-buttonThe close button in the context menu.
splitter-handleThe splitter handle.
horizontalIndicates a horizontal position. Applies to splitter-handle.
verticalIndicates a vertical position. Applies to splitter-handle.

API References