Skip to main content
Elastic UI
Elastic UI
Getting startedComponentsPatternsContentData visualization
EUI ChangelogGitHubFigma
  • Overview
  • Layout
    • Flex
    • Header
    • Horizontal rule
    • Page components
    • Page header
    • Spacer
  • Containers
  • Navigation
  • Display
  • Forms
  • Tabular content
  • Templates
  • Editors and syntax
  • EUI
  • Layout
  • Page header

Page header

While the EuiPageHeader component can be placed anywhere within your page layout, we recommend using it within the

EuiPageTemplate component by passing the configuration props as its pageHeader.

EuiPageHeader provides props for opinionated, consistent formatting of your header. Any combination of pageTitle, description, tabs, or any children will adjust the layout as needed.

An additional prop rightSideItems allows for a simple array of nodes which will layout in a flexbox row. This is commonly used for adding multiple buttons, of which, at least one should be primary (adding fill="true"). These items are also displayed in reverse order so that the first and primary array item will be displayed on the far right.

You can further adjust the display of these content types with an optional iconType placed to the left of the title, alignItems for adjusting the vertical alignment of the two sides, and responsiveOrder to determine which content side to display first on smaller screens.

Loading...

Tabs in the page header

A set of tabs can be displayed inside the page header by passing an array of EuiTab objects using the label key for the tab content. When displaying tabs, the bottomBorder prop will be enforced to create separation of the header and content. You'll still need to manage the page content and selected tab in your own instance.

Loading...

When supplying tabs without a pageTitle, EuiPageHeader will promote those tabs as if they are the page title. This means that any description or children will sit below the tabs and should used to describe the currently selected tab.

Loading...

Breadcrumbs in the page header

Breadcrumbs are useful for tracking in-page flows that are not part of the entire application architecture. To make this easy EuiPageHeader provides a breadcrumbs prop that accepts the same configuration as EuiBreadcrumbs.breadcrumbs.

Loading...

A common pattern is to use a single breadcrumb to return the user to a listing page from which the current page was navigated to.

Loading...

Customizing the page header

The page header content props are helpful props to push content into established Elastic page layout patterns. They are completely optional and by design, inflexible. If you need a layout that does not match these patterns you can pass in your own children utilizing the EuiPageHeaderSection components.

Loading...

Props

EuiPageHeader

Extends HTMLAttributes
𐘂𐘂
✄𐘗✄𐘗
Prop
↦
Description and type
↦
Default value
↵
Prop
paddingSize#
↦
Description and type

Adjust the overall padding.

Type: "xs" | "s" | "m" | "l" | "xl" | "none"
↦
Default value
none
↵
Prop
className#
↦
Description and type
Type: string
↦
Default value
↵
Prop
aria-label#
↦
Description and type
Type: string
↦
Default value
↵
Prop
data-test-subj#
↦
Description and type
Type: string
↦
Default value
↵
Prop
css#
↦
Description and type
Type: Interpolation<Theme>
↦
Default value
↵
Prop
iconType#
↦
Description and type

Optional icon to place to the left of the title

Type: IconType
↦
Default value
↵
Prop
responsive#
↦
Description and type

Set to false if you don't want the children to stack at small screen sizes.
Set to reverse to display the right side content first for the sake of hierarchy (like global time)

Type: boolean | "reverse"
↦
Default value
true
↵
Prop
breadcrumbs#
↦
Description and type

Optional array breadcrumbs that render before the pageTitle

Type: EuiBreadcrumbProps[]
↦
Default value
↵
Prop
description#
↦
Description and type

Position is dependent on existing with a pageTitle or tabs
Automatically get wrapped in a single paragraph tag inside an EuiText block

Type: ReactNode
↦
Default value
↵
Prop
iconProps#
↦
Description and type

Additional EuiIcon props to apply to the optional icon

Type: Partial<Omit<EuiIconProps, "type">>
↦
Default value
↵
Prop
alignItems#
↦
Description and type

Vertical alignment of the left and right side content;
Default is center for custom content, but top for when pageTitle or tabs are included

Type: "center" | "top" | "bottom" | "stretch"
↦
Default value
↵
Prop
restrictWidth#
↦
Description and type

Sets the max-width of the page,
set to true to use the default size of 1200px,
set to false to not restrict the width,
set to a number for a custom width in px,
set to a string for a custom width in custom measurement.

Type: string | number | boolean
↦
Default value
false
↵
Prop
rightSideItems#
↦
Description and type

Pass custom an array of content to this side usually up to 3 buttons.
The first button should be primary, usually with fill. At larger breakpoints, items will
render from right to left, but will collapse vertically and render left to right on smaller mobile screens.

Type: ReactNode[]
↦
Default value
↵
Prop
rightSideGroupProps#
↦
Description and type

Additional EuiFlexGroup props to pass to the container of the rightSideItems

Type: Partial<EuiFlexGroupProps>
↦
Default value
↵
Prop
pageTitle#
↦
Description and type

Wrapped in an H1 so choose appropriately.
A simple string is best

Type: ReactNode
↦
Default value
↵
Prop
pageTitleProps#
↦
Description and type

Additional props to pass to the EuiTitle

Type: Omit<EuiTitleProps, "size" | "children">
↦
Default value
↵
Prop
breadcrumbProps#
↦
Description and type

Adjust the props of [EuiBreadcrumbs](#/navigation/breadcrumbs)

Type: Partial<Omit<EuiBreadcrumbsProps, "breadcrumbs">>
↦
Default value
↵
Prop
tabs#
↦
Description and type

In-app navigation presented as large borderless tabs.
Accepts an array of EuiTab objects;

Type: Tab[]
↦
Default value
↵
Prop
tabsProps#
↦
Description and type

Any extras to apply to the outer tabs container.
Extends EuiTabs

Type: Omit<EuiTabsProps, "size" | "expand">
↦
Default value
↵
Prop
bottomBorder#
↦
Description and type

Adds a bottom border to separate it from the content after;
Passing extended will ensure the border touches the sides of the parent container.

Type: boolean | "extended"
↦
Default value
↵
𐘂𐘂

EuiPageHeaderContent

Extends HTMLAttributes
𐘂𐘂
✄𐘗✄𐘗
Prop
↦
Description and type
↦
Default value
↵
Prop
className#
↦
Description and type
Type: string
↦
Default value
↵
Prop
aria-label#
↦
Description and type
Type: string
↦
Default value
↵
Prop
data-test-subj#
↦
Description and type
Type: string
↦
Default value
↵
Prop
css#
↦
Description and type
Type: Interpolation<Theme>
↦
Default value
↵
Prop
bottomBorder#
↦
Description and type

If not set, defaults to true if tabs are passed and render at the bottom of the page.
Otherwise, defaults to false.

Type: boolean
↦
Default value
↵
Prop
paddingSize#
↦
Description and type

Adjust the padding.
When using this setting it's best to be consistent throughout all similar usages

Type: "xs" | "s" | "m" | "l" | "xl" | "none"
↦
Default value
↵
Prop
responsive#
↦
Description and type

Set to false if you don't want the children to stack at small screen sizes.
Set to reverse to display the right side content first for the sake of hierarchy (like global time)

Type: boolean | "reverse"
↦
Default value
true
↵
Prop
alignItems#
↦
Description and type

Vertical alignment of the left and right side content;
Default is center for custom content, but top for when pageTitle or tabs are included

Type: "center" | "top" | "bottom" | "stretch"
↦
Default value
↵
Prop
rightSideItems#
↦
Description and type

Pass custom an array of content to this side usually up to 3 buttons.
The first button should be primary, usually with fill. At larger breakpoints, items will
render from right to left, but will collapse vertically and render left to right on smaller mobile screens.

Type: ReactNode[]
↦
Default value
↵
Prop
rightSideGroupProps#
↦
Description and type

Additional EuiFlexGroup props to pass to the container of the rightSideItems

Type: Partial<EuiFlexGroupProps>
↦
Default value
↵
Prop
description#
↦
Description and type

Position is dependent on existing with a pageTitle or tabs
Automatically get wrapped in a single paragraph tag inside an EuiText block

Type: ReactNode
↦
Default value
↵
Prop
pageTitle#
↦
Description and type

Wrapped in an H1 so choose appropriately.
A simple string is best

Type: ReactNode
↦
Default value
↵
Prop
pageTitleProps#
↦
Description and type

Additional props to pass to the EuiTitle

Type: Omit<EuiTitleProps, "size" | "children">
↦
Default value
↵
Prop
iconType#
↦
Description and type

Optional icon to place to the left of the title

Type: IconType
↦
Default value
↵
Prop
iconProps#
↦
Description and type

Additional EuiIcon props to apply to the optional icon

Type: Partial<Omit<EuiIconProps, "type">>
↦
Default value
↵
Prop
breadcrumbs#
↦
Description and type

Optional array breadcrumbs that render before the pageTitle

Type: EuiBreadcrumbProps[]
↦
Default value
↵
Prop
breadcrumbProps#
↦
Description and type

Adjust the props of [EuiBreadcrumbs](#/navigation/breadcrumbs)

Type: Partial<Omit<EuiBreadcrumbsProps, "breadcrumbs">>
↦
Default value
↵
Prop
tabs#
↦
Description and type

In-app navigation presented as large borderless tabs.
Accepts an array of EuiTab objects;

Type: Tab[]
↦
Default value
↵
Prop
tabsProps#
↦
Description and type

Any extras to apply to the outer tabs container.
Extends EuiTabs

Type: Omit<EuiTabsProps, "size" | "expand">
↦
Default value
↵
Prop
restrictWidth#
↦
Description and type

Sets the max-width of the page,
set to true to use the default size of 1200px,
set to false to not restrict the width,
set to a number for a custom width in px,
set to a string for a custom width in custom measurement.

Type: string | number | boolean
↦
Default value
↵
𐘂𐘂

EuiPageHeaderSection

Extends HTMLAttributes
𐘂𐘂
✄𐘗✄𐘗
Prop
↦
Description and type
↦
Default value
↵
Prop
className#
↦
Description and type
Type: string
↦
Default value
↵
Prop
aria-label#
↦
Description and type
Type: string
↦
Default value
↵
Prop
data-test-subj#
↦
Description and type
Type: string
↦
Default value
↵
Prop
css#
↦
Description and type
Type: Interpolation<Theme>
↦
Default value
↵
𐘂𐘂
Edit this page

Previous
Page components
Next
Spacer
  • Tabs in the page header
  • Breadcrumbs in the page header
  • Customizing the page header
  • Props
EUI is dual-licensed under Elastic License 2.0 and Server Side Public License, v 1 | Crafted with ❤ by Elastic