Examples
Closed panel on right (default)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.
drawer-panel
Closed panel on left
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.
drawer-panel
Closed panel on bottom
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat, nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.
drawer-panel
Accessibility
Class | Applied to | Outcome |
---|---|---|
role="separator" | .pf-c-drawer__splitter | Indicates that the splitter is a separator. Required |
tabindex="0" | .pf-c-drawer__splitter | Inserts the splitter into the tab order of the page so that it is focusable. Required |
aria-orientation="horizontal" | .pf-c-drawer__splitter | Indicates that the splitter is oriented horizontally. |
aria-orientation="vertical" | .pf-c-drawer__splitter.pf-m-vertical | Indicates that the splitter is oriented vertically. |
Usage
Class | Applied to | Outcome |
---|---|---|
.pf-c-drawer__splitter | <div> | Initiates the splitter. |
.pf-c-drawer__splitter-handle | <div> | Initiates the splitter handle element. |
.pf-m-vertical | .pf-c-drawer__splitter | Modifies the splitter to be vertical. |
Documentation
Accessibility
Attribute | Applied to | Outcome |
---|---|---|
aria-expanded="true" | action that opens drawer | Indicates that the expandable content is visible. Required |
aria-expanded="false" | action that opens drawer | Indicates that the expandable content is hidden. Required |
hidden | .pf-c-drawer__panel | Hides the drawer panel from assistive technologies. Required |
Usage
Class | Applied to | Outcome |
---|---|---|
.pf-c-drawer | <div> | Initiates the drawer container. Required |
.pf-c-drawer__section | <div> | Initiates a drawer section area. This element can be used above or below .pf-c-drawer__main for titles, toolbars, footers, etc. |
.pf-c-drawer__main | <div> | Initiates the drawer main area. Required |
.pf-c-drawer__content | <div> | Initiates the drawer content container. Required |
.pf-c-drawer__panel | <aside> | Initiates the drawer panel container. Required |
.pf-c-drawer__panel-main | <div> | Initiates the drawer panel main container for resizable drawers only. |
.pf-c-drawer__body | <div> | Initiates a drawer body container and is the child of .pf-c-drawer__content , .pf-c-drawer__panel and .pf-c-drawer__panel-main . Required |
.pf-c-drawer__head | <div> | Initiates a drawer head container. This container positions .pf-c-drawer__actions , if present. |
.pf-c-drawer__actions | <div> | Identifies the drawer close button. |
.pf-c-drawer__close | <div> | Identifies the drawer close button. |
.pf-m-panel-left | .pf-c-drawer | Modifies the drawer panel to expand from the left. |
.pf-m-panel-bottom | .pf-c-drawer | Modifies the drawer panel to expand from the bottom. Note: percentage based panel sizes require the drawer component's parent element have an implicit or explicit height. |
.pf-m-expanded | .pf-c-drawer | Modifies the drawer panel for the expanded state. |
.pf-m-static{-on-[lg, xl, 2xl]} | .pf-c-drawer | Modifies the drawer panel state to always show both content and panel at optional breakpoint. |
.pf-m-inline{-on-[lg, xl, 2xl]} | .pf-c-drawer | Modifies the drawer so the content element and panel element are displayed side by side. .pf-m-inline used without a breakpoint will default to the md breakpoint. |
.pf-m-no-border | .pf-c-drawer__panel | Modifies the drawer panel border treatment to disable all border treatment. |
.pf-m-padding | .pf-c-drawer__body | Modifies the element to add padding. |
.pf-m-no-padding | .pf-c-drawer__body | Modifies the element to remove padding. |
.pf-m-no-background | .pf-c-drawer__section , .pf-c-drawer__content , .pf-c-drawer__panel | Modifies the drawer body/panel background color to transparent. |
.pf-m-light-200 | .pf-c-drawer__section , .pf-c-drawer__content , .pf-c-drawer__panel | Modifies the drawer body/panel background color to light grey. |
.pf-m-width-{25, 33, 50, 66, 75, 100}{-on-[breakpoint]} | .pf-c-drawer__panel | Modifies the drawer panel width at optional breakpoint. |
.pf-m-resizable | .pf-c-drawer__panel | Modifies the drawer panel to be resizable. Intended for use with the .pf-c-drawer__splitter element. |
--pf-c-drawer__panel--md--FlexBasis--min | .pf-c-drawer__panel | Defines the drawer panel minimum size. |
--pf-c-drawer__panel--md--FlexBasis | .pf-c-drawer__panel | Defines the drawer panel size. |
--pf-c-drawer__panel--md--FlexBasis--max | .pf-c-drawer__panel | Defines the drawer panel maximum size. |
CSS variables
.pf-c-drawer | --pf-c-drawer__section--BackgroundColor | #fff | ||
.pf-c-drawer | --pf-c-drawer__section--m-light-200--BackgroundColor | #f0f0f0 | ||
.pf-c-drawer | --pf-c-drawer__content--FlexBasis | 100% | ||
.pf-c-drawer | --pf-c-drawer__content--BackgroundColor | #fff | ||
.pf-c-drawer | --pf-c-drawer__content--m-light-200--BackgroundColor | #f0f0f0 | ||
.pf-c-drawer | --pf-c-drawer__content--ZIndex | 100 | ||
.pf-c-drawer | --pf-c-drawer__panel--MinWidth | 50% | ||
.pf-c-drawer | --pf-c-drawer__panel--MaxHeight | auto | ||
.pf-c-drawer | --pf-c-drawer__panel--ZIndex | 200 | ||
.pf-c-drawer | --pf-c-drawer__panel--BackgroundColor | #fff | ||
.pf-c-drawer | --pf-c-drawer__panel--m-light-200--BackgroundColor | #f0f0f0 | ||
.pf-c-drawer | --pf-c-drawer__panel--TransitionDuration | 250ms | ||
.pf-c-drawer | --pf-c-drawer__panel--TransitionProperty | margin, transform, box-shadow, flex-basis | ||
.pf-c-drawer | --pf-c-drawer__panel--FlexBasis | 100% | ||
.pf-c-drawer | --pf-c-drawer__panel--md--FlexBasis--min | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer__panel--md--FlexBasis | 50% | ||
.pf-c-drawer | --pf-c-drawer__panel--md--FlexBasis--max | 100% | ||
.pf-c-drawer | --pf-c-drawer__panel--xl--MinWidth | 28.125rem | ||
.pf-c-drawer | --pf-c-drawer__panel--xl--FlexBasis | 28.125rem | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__panel--md--MinHeight | 50% | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__panel--xl--MinHeight | 18.75rem | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__panel--xl--FlexBasis | 18.75rem | ||
.pf-c-drawer | --pf-c-drawer__panel--m-resizable--FlexDirection | row | ||
.pf-c-drawer | --pf-c-drawer__panel--m-resizable--md--FlexBasis--min | 0.5625rem | ||
.pf-c-drawer | --pf-c-drawer__panel--m-resizable--MinWidth | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__panel--m-resizable--FlexDirection | column | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__panel--m-resizable--md--FlexBasis--min | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__panel--m-resizable--MinHeight | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--PaddingTop | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--PaddingRight | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--PaddingBottom | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--PaddingLeft | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--md--PaddingTop | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--md--PaddingRight | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--md--PaddingBottom | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--md--PaddingLeft | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--PaddingTop | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--PaddingRight | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--PaddingBottom | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--PaddingLeft | 1rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--md--PaddingTop | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--md--PaddingRight | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--md--PaddingBottom | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer--child--m-padding--md--PaddingLeft | 1.5rem | ||
.pf-c-drawer | --pf-c-drawer__content--child--PaddingTop | 0 | ||
.pf-c-drawer | --pf-c-drawer__content--child--PaddingRight | 0 | ||
.pf-c-drawer | --pf-c-drawer__content--child--PaddingBottom | 0 | ||
.pf-c-drawer | --pf-c-drawer__content--child--PaddingLeft | 0 | ||
.pf-c-drawer | --pf-c-drawer__splitter--Height | 0.5625rem | ||
.pf-c-drawer | --pf-c-drawer__splitter--Width | 100% | ||
.pf-c-drawer | --pf-c-drawer__splitter--BackgroundColor | #fff | ||
.pf-c-drawer | --pf-c-drawer__splitter--Cursor | row-resize | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical--Height | 100% | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical--Width | 0.5625rem | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical--Cursor | col-resize | ||
.pf-c-drawer | --pf-c-drawer--m-inline__splitter--focus--OutlineOffset | -0.0625rem | ||
.pf-c-drawer | --pf-c-drawer__splitter--after--BorderColor | #d2d2d2 | ||
.pf-c-drawer | --pf-c-drawer__splitter--after--border-width--base | 1px | ||
.pf-c-drawer | --pf-c-drawer__splitter--after--BorderTopWidth | 0 | ||
.pf-c-drawer | --pf-c-drawer__splitter--after--BorderRightWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer__splitter--after--BorderBottomWidth | 0 | ||
.pf-c-drawer | --pf-c-drawer__splitter--after--BorderLeftWidth | 0 | ||
.pf-c-drawer | --pf-c-drawer--m-panel-left__splitter--after--BorderLeftWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__splitter--after--BorderBottomWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer--m-inline__splitter--m-vertical--Width | 0.625rem | ||
.pf-c-drawer | --pf-c-drawer--m-inline__splitter-handle--Left | 50% | ||
.pf-c-drawer | --pf-c-drawer--m-inline__splitter--after--BorderRightWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer--m-inline__splitter--after--BorderLeftWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer--m-inline--m-panel-bottom__splitter--Height | 0.625rem | ||
.pf-c-drawer | --pf-c-drawer--m-inline--m-panel-bottom__splitter-handle--Top | 50% | ||
.pf-c-drawer | --pf-c-drawer--m-inline--m-panel-bottom__splitter--after--BorderTopWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--Top | 50% | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--Left | calc(50% - 1px) | ||
.pf-c-drawer | --pf-c-drawer--m-panel-left__splitter-handle--Left | 50% | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__splitter-handle--Top | calc(50% - 1px) | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--after--BorderColor | #6a6e73 | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--after--BorderTopWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--after--BorderRightWidth | 0 | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--after--BorderBottomWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--after--BorderLeftWidth | 0 | ||
.pf-c-drawer | --pf-c-drawer__splitter--hover__splitter-handle--after--BorderColor | #151515 | ||
.pf-c-drawer | --pf-c-drawer__splitter--focus__splitter-handle--after--BorderColor | #151515 | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical__splitter-handle--after--BorderTopWidth | 0 | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical__splitter-handle--after--BorderRightWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical__splitter-handle--after--BorderBottomWidth | 0 | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical__splitter-handle--after--BorderLeftWidth | 1px | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--after--Width | 0.75rem | ||
.pf-c-drawer | --pf-c-drawer__splitter-handle--after--Height | 0.25rem | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical__splitter-handle--after--Width | 0.25rem | ||
.pf-c-drawer | --pf-c-drawer__splitter--m-vertical__splitter-handle--after--Height | 0.75rem | ||
.pf-c-drawer | --pf-c-drawer__actions--MarginTop | calc(0.375rem * -1) | ||
.pf-c-drawer | --pf-c-drawer__actions--MarginRight | calc(0.375rem * -1) | ||
.pf-c-drawer | --pf-c-drawer__panel--BoxShadow | none | ||
.pf-c-drawer | --pf-c-drawer--m-expanded__panel--BoxShadow | -0.75rem 0 0.75rem -0.5rem rgba(3, 3, 3, 0.18) | ||
.pf-c-drawer | --pf-c-drawer--m-expanded--m-panel-left__panel--BoxShadow | 0.75rem 0 0.75rem -0.5rem rgba(3, 3, 3, 0.18) | ||
.pf-c-drawer | --pf-c-drawer--m-expanded--m-panel-bottom__panel--BoxShadow | 0 -0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18) | ||
.pf-c-drawer | --pf-c-drawer__panel--after--Width | 1px | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom__panel--after--Height | 1px | ||
.pf-c-drawer | --pf-c-drawer__panel--after--BackgroundColor | transparent | ||
.pf-c-drawer | --pf-c-drawer--m-inline--m-expanded__panel--after--BackgroundColor | #d2d2d2 | ||
.pf-c-drawer | --pf-c-drawer--m-inline__panel--PaddingLeft | 1px | ||
.pf-c-drawer | --pf-c-drawer--m-panel-left--m-inline__panel--PaddingRight | 1px | ||
.pf-c-drawer | --pf-c-drawer--m-panel-bottom--m-inline__panel--PaddingTop | 1px | ||
.pf-c-drawer.pf-m-resizing | --pf-c-drawer__panel--TransitionProperty | none | ||
.pf-c-drawer__section.pf-m-no-background | --pf-c-drawer__section--BackgroundColor | transparent | ||
.pf-c-drawer__section.pf-m-light-200 | --pf-c-drawer__section--BackgroundColor | #f0f0f0 | ||
.pf-c-drawer__content.pf-m-no-background | --pf-c-drawer__content--BackgroundColor | transparent | ||
.pf-c-drawer__content.pf-m-light-200 | --pf-c-drawer__content--BackgroundColor | #f0f0f0 | ||
.pf-c-drawer__panel.pf-m-no-background | --pf-c-drawer__panel--BackgroundColor | transparent | ||
.pf-c-drawer__panel.pf-m-light-200 | --pf-c-drawer__panel--BackgroundColor | #f0f0f0 | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter--Height | 100% | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter--Width | 0.5625rem | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter--Cursor | col-resize | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter-handle--after--Width | 0.25rem | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter-handle--after--Height | 0.75rem | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter-handle--after--BorderTopWidth | 0 | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter-handle--after--BorderRightWidth | 1px | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter-handle--after--BorderBottomWidth | 0 | ||
.pf-c-drawer__splitter.pf-m-vertical | --pf-c-drawer__splitter-handle--after--BorderLeftWidth | 1px | ||
.pf-c-drawer__splitter:hover | --pf-c-drawer__splitter-handle--after--BorderColor | #151515 | ||
.pf-c-drawer__splitter:focus | --pf-c-drawer__splitter-handle--after--BorderColor | #151515 | ||
View source on GitHub