Skip to Content
Patternfly Logo

Page

The page component is used to create the basic structure of a page with either vertical or horizontal navigation. Related design guidelines: Navigation system

ExamplesPropsCSS Variables

Examples

Vertical nav

Toolbar | Avatar
Navigation
Section with darker background
Section with dark background
Section with light background

Horizontal nav

Navigation
Toolbar | Avatar
Section with darker background
Section with dark background
Section with light background

Main Section Padding

Toolbar | Avatar
Navigation
Section with default padding
Section with no padding

With or without fill

Toolbar | Avatar
Navigation
This section is set to the default fill variant
This section fills the available space.
This section does not fill the available space.

Props

Page properties
NameTypeRequiredDefaultDescription
childrenReact.ReactNodeNonullContent rendered inside the main section of the page layout (e.g. <PageSection />)
classNamestringNo''Additional classes added to the page layout
headerReact.ReactNodeNonullHeader component (e.g. <PageHeader />)
sidebarReact.ReactNodeNonullSidebar component for a side nav (e.g. <PageSidebar />)
skipToContentReact.ReactElementNonullSkip to content component for the page
rolestringNoundefinedSets the value for role on the <main> element
mainContainerIdstringNonullan id to use for the [role="main"] element
isManagedSidebarbooleanNofalseIf true, manages the sidebar open/close state and there is no need to pass the isNavOpen boolean into the sidebar component or add a callback onNavToggle function into the PageHeader component
defaultManagedSidebarIsOpenbooleanNotrueIf true, the managed sidebar is initially open for desktop view
onPageResize(object: any) => voidNo(): void => nullCan add callback to be notified when resize occurs, for example to set the sidebar isNav prop to false for a width < 768px Returns object { mobileView: boolean, windowSize: number }
breadcrumbReact.ReactNodeNonullBreadcrumb component for the page
mainAriaLabelstringNoAccessible label, can be used to name main section
PageHeader properties
NameTypeRequiredDefaultDescription
classNamestringNo''Additional classes added to the page header
logoReact.ReactNodeNonullComponent to render the logo/brand (e.g. <Brand />)
logoPropsobjectNonullAdditional props passed to the logo anchor container
logoComponentReact.ReactNodeNo'a'Component to use to wrap the passed <logo>
toolbarReact.ReactNodeNonullComponent to render the toolbar (e.g. <Toolbar />)
avatarReact.ReactNodeNonullComponent to render the avatar (e.g. <Avatar />
topNavReact.ReactNodeNonullComponent to render navigation within the header (e.g. <Nav />
showNavTogglebooleanNofalseTrue to show the nav toggle button (toggles side nav)
isNavOpenbooleanNotrueTrue if the side nav is shown
isManagedSidebarbooleanNoIf true, manages the sidebar open/close state and there is no need to pass the isNavOpen boolean into the sidebar component or add a callback onNavToggle function into the PageHeader component
rolestringNoundefinedSets the value for role on the <main> element
onNavToggle() => voidNo() => undefined as anyCallback function to handle the side nav toggle button, managed by the Page component if the Page isManagedSidebar prop is set to true
aria-labelstringNo'Global navigation'Aria Label for the nav toggle button
PageSidebar properties
NameTypeRequiredDefaultDescription
classNamestringNo''Additional classes added to the page sidebar
navReact.ReactNodeNoComponent to render the side navigation (e.g. <Nav />
isManagedSidebarbooleanNoIf true, manages the sidebar open/close state and there is no need to pass the isNavOpen boolean into the sidebar component or add a callback onNavToggle function into the PageHeader component
isNavOpenbooleanNotrueProgrammatically manage if the side nav is shown, if isManagedSidebar is set to true in the Page component, this prop is managed
theme'dark' | 'light'No'dark'Indicates the color scheme of the sidebar
PageSection properties
NameTypeRequiredDefaultDescription
childrenReact.ReactNodeNoContent rendered inside the section
classNamestringNo''Additional classes added to the section
variant'default' | 'light' | 'dark' | 'darker'No'default'Section background color variant
type'default' | 'nav'No'default'Section type variant
isFilledbooleanNoEnables the page section to fill the available vertical space
noPaddingbooleanNofalseModifies a main page section to have no padding

CSS Variables

.pf-c-page__sidebar.pf-m-light--pf-global--Color--100
#151515
.pf-c-page__sidebar.pf-m-light--pf-global--Color--200
#6a6e73
.pf-c-page__sidebar.pf-m-light--pf-global--BorderColor--100
#d2d2d2
.pf-c-page__sidebar.pf-m-light--pf-global--primary-color--100
#06c
.pf-c-page__sidebar.pf-m-light--pf-global--link--Color
#06c
.pf-c-page__sidebar.pf-m-light--pf-global--link--Color--hover
#004080
.pf-c-page__sidebar.pf-m-light--pf-global--BackgroundColor--100
#fff
.pf-c-page__sidebar.pf-m-light--pf-c-page__sidebar--BackgroundColor
#fff
.pf-c-page__header--pf-global--Color--100
#fff
.pf-c-page__header--pf-global--Color--200
#f0f0f0
.pf-c-page__header--pf-global--BorderColor--100
#b8bbbe
.pf-c-page__header--pf-global--primary-color--100
#73bcf7
.pf-c-page__header--pf-global--link--Color
#73bcf7
.pf-c-page__header--pf-global--link--Color--hover
#73bcf7
.pf-c-page__header--pf-global--BackgroundColor--100
#151515
.pf-c-page__header .pf-c-card--pf-c-card--BackgroundColor
rgba(#030303, .32)
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--Color
#06c
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--hover--Color
#06c
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--focus--Color
#06c
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--active--Color
#06c
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--BackgroundColor
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--hover--BackgroundColor
#f0f0f0
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--focus--BackgroundColor
#f0f0f0
.pf-c-page__header .pf-c-button--pf-c-button--m-primary--active--BackgroundColor
#f0f0f0
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--Color
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--hover--Color
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--focus--Color
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--active--Color
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--BorderColor
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--hover--BorderColor
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--focus--BorderColor
#fff
.pf-c-page__header .pf-c-button--pf-c-button--m-secondary--active--BorderColor
#fff
.pf-c-page--pf-c-page--BackgroundColor
#f0f0f0
.pf-c-page--pf-c-page__header--BackgroundColor
#151515
.pf-c-page--pf-c-page__header--ZIndex
300
.pf-c-page--pf-c-page__header--MinHeight
4.75rem
.pf-c-page--pf-c-page__header-brand--PaddingLeft
1rem
.pf-c-page--pf-c-page__header-brand--xl--PaddingRight
2rem
.pf-c-page--pf-c-page__header-brand--xl--PaddingLeft
1.5rem
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--PaddingTop
0.5rem
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--PaddingRight
0.5rem
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--PaddingBottom
0.5rem
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--PaddingLeft
0.5rem
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--MarginRight
1rem
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--MarginLeft
calc(0.5rem * -1)
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--xl--MarginLeft
calc(0.5rem * -1)
.pf-c-page--pf-c-page__header-sidebar-toggle__c-button--FontSize
1.5rem
.pf-c-page--pf-c-page__header-brand-link--c-brand--MaxHeight
3.75rem
.pf-c-page--pf-c-page__header-nav--BackgroundColor
#212427
.pf-c-page--pf-c-page__header-nav--xl--BackgroundColor
transparent
.pf-c-page--pf-c-page__header-nav--xl--PaddingRight
2rem
.pf-c-page--pf-c-page__header-nav--xl--PaddingLeft
2rem
.pf-c-page--pf-c-page__header-tools--MarginRight
1rem
.pf-c-page--pf-c-page__header-tools--xl--MarginRight
1.5rem
.pf-c-page--pf-c-page__header-tools--c-avatar--MarginLeft
1rem
.pf-c-page--pf-c-page__header-tools-group--MarginLeft
2rem
.pf-c-page--pf-c-page__header-tools--c-button--m-selected--before--Width
2.25rem
.pf-c-page--pf-c-page__header-tools--c-button--m-selected--before--Height
2.25rem
.pf-c-page--pf-c-page__header-tools--c-button--m-selected--before--BackgroundColor
#3c3f42
.pf-c-page--pf-c-page__header-tools--c-button--m-selected--before--BorderRadius
30em
.pf-c-page--pf-c-page__header-tools--c-button--m-selected--c-notification-badge--m-unread--after--BorderColor
#3c3f42
.pf-c-page--pf-c-page__sidebar--ZIndex
200
.pf-c-page--pf-c-page__sidebar--Width
18.125rem
.pf-c-page--pf-c-page__sidebar--BackgroundColor
#212427
.pf-c-page--pf-c-page__sidebar--m-light--BackgroundColor
#fff
.pf-c-page--pf-c-page__sidebar--BoxShadow
0.75rem 0 0.75rem -0.5rem rgba(3, 3, 3, 0.18)
.pf-c-page--pf-c-page__sidebar--Transition
all 250ms cubic-bezier(.42, 0, .58, 1)
.pf-c-page--pf-c-page__sidebar--Transform
translate3d(-100%, 0, 0)
.pf-c-page--pf-c-page__sidebar--m-expanded--Transform
translate3d(0, 0, 0)
.pf-c-page--pf-c-page__sidebar--xl--Transform
translate3d(0, 0, 0)
.pf-c-page--pf-c-page__sidebar-body--PaddingTop
0.5rem
.pf-c-page--pf-c-page__sidebar-body--PaddingBottom
1rem
.pf-c-page--pf-c-page__main-section--PaddingTop
1rem
.pf-c-page--pf-c-page__main-section--PaddingRight
1rem
.pf-c-page--pf-c-page__main-section--PaddingBottom
1rem
.pf-c-page--pf-c-page__main-section--PaddingLeft
1rem
.pf-c-page--pf-c-page__main-section--xl--PaddingTop
1.5rem
.pf-c-page--pf-c-page__main-section--xl--PaddingRight
1.5rem
.pf-c-page--pf-c-page__main-section--xl--PaddingBottom
1.5rem
.pf-c-page--pf-c-page__main-section--xl--PaddingLeft
1.5rem
.pf-c-page--pf-c-page__main-section--BackgroundColor
#f0f0f0
.pf-c-page--pf-c-page__main--ZIndex
100
.pf-c-page--pf-c-page__main-breadcrumb--main-section--PaddingTop
1rem
.pf-c-page--pf-c-page__main-nav--BackgroundColor
#fff
.pf-c-page--pf-c-page__main-nav--PaddingTop
1rem
.pf-c-page--pf-c-page__main-nav--PaddingRight
0
.pf-c-page--pf-c-page__main-nav--PaddingLeft
0
.pf-c-page--pf-c-page__main-nav--xl--PaddingRight
0.5rem
.pf-c-page--pf-c-page__main-nav--xl--PaddingLeft
0.5rem
.pf-c-page--pf-c-nav__main-nav--c-nav__scroll-button--Color
#151515
.pf-c-page--pf-c-nav__main-nav--c-nav__scroll-button--hover--Color
#06c
.pf-c-page--pf-c-nav__main-nav--c-nav__scroll-button--focus--Color
#06c
.pf-c-page--pf-c-nav__main-nav--c-nav__scroll-button--active--Color
#06c
.pf-c-page--pf-c-nav__main-nav--c-nav__scroll-button--disabled--Color
#d2d2d2
.pf-c-page--pf-c-nav__main-nav--c-nav__scroll-button--before--BorderColor
#f0f0f0
.pf-c-page--pf-c-nav__main-nav--c-nav__scroll-button--disabled--before--BorderColor
#f0f0f0
.pf-c-page--pf-c-page__main-breadcrumb--BackgroundColor
#fff
.pf-c-page--pf-c-page__main-breadcrumb--PaddingTop
1rem
.pf-c-page--pf-c-page__main-breadcrumb--PaddingRight
1rem
.pf-c-page--pf-c-page__main-breadcrumb--PaddingBottom
0
.pf-c-page--pf-c-page__main-breadcrumb--PaddingLeft
1rem
.pf-c-page--pf-c-page__main-breadcrumb--xl--PaddingRight
1.5rem
.pf-c-page--pf-c-page__main-breadcrumb--xl--PaddingLeft
1.5rem
.pf-c-page--pf-c-page__main-section--m-light--BackgroundColor
#fff
.pf-c-page--pf-c-page__main-section--m-dark-100--BackgroundColor
rgba(#030303, .62)
.pf-c-page--pf-c-page__main-section--m-dark-200--BackgroundColor
rgba(#030303, .32)
.pf-c-page--pf-c-page__main-wizard--BorderTopColor
#d2d2d2
.pf-c-page--pf-c-page__main-wizard--BorderTopWidth
1px
.pf-c-page__sidebar.pf-m-expanded--pf-c-page__sidebar--Transform
translate3d(0, 0, 0)
.pf-c-page__main-nav .pf-c-nav__scroll-button--pf-c-nav__scroll-button--Color
#151515
.pf-c-page__main-nav .pf-c-nav__scroll-button::before--pf-c-nav__scroll-button--before--BorderColor
#f0f0f0
.pf-c-page__main-nav .pf-c-nav__scroll-button:hover--pf-c-nav__scroll-button--Color
#06c
.pf-c-page__main-nav .pf-c-nav__scroll-button:focus--pf-c-nav__scroll-button--Color
#06c
.pf-c-page__main-nav .pf-c-nav__scroll-button:active--pf-c-nav__scroll-button--Color
#06c
.pf-c-page__main-nav .pf-c-nav__scroll-button:disabled--pf-c-nav__scroll-button--Color
#d2d2d2
.pf-c-page__main-nav .pf-c-nav__scroll-button:disabled--pf-c-nav__scroll-button--before--BorderColor
#f0f0f0
.pf-c-page__main-breadcrumb + .pf-c-page__main-section--pf-c-page__main-section--PaddingTop
1rem
.pf-c-page__main-section.pf-m-light--pf-c-page__main-section--BackgroundColor
#fff
.pf-c-page__main-section.pf-m-dark-100--pf-c-page__main-section--BackgroundColor
rgba(#030303, .62)
.pf-c-page__main-section.pf-m-dark-200--pf-c-page__main-section--BackgroundColor
rgba(#030303, .32)