diff --git a/CHANGELOG.md b/CHANGELOG.md
index e0853eb59..99e0a6fba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,10 @@
### Added
+- New Pageheader Organism-level component, that encapsulates what was previously an example component built using utility classes.
+
+- Updates the layout of the Sidebar component, improvements to the scrolling behavior and uses the invisible button variant.
+
- Badge with Label, added an example showing a text label rendered next to a badge component, to the badge docs.
- A new layout component at `atoms/switcher`, that lays out its children in a horizontal row with consistent spacing between children. The layout switches to a vertical stack once the width of the component passes below a threshold, or the number of children goes over a limit.
- A new layout component at `atoms/stack`, that lays out its children vertically, with consistent spacing between children.
diff --git a/scss/bitstyles/organisms/_index.scss b/scss/bitstyles/organisms/_index.scss
index 66503c46b..1f7451062 100644
--- a/scss/bitstyles/organisms/_index.scss
+++ b/scss/bitstyles/organisms/_index.scss
@@ -4,3 +4,4 @@
@forward './notification-center' as notification-center-*;
@forward './table' as table-*;
@forward './joined-ui' as joined-ui-*;
+@forward './page-header' as page-header-*;
diff --git a/scss/bitstyles/organisms/page-header/PageHeader.js b/scss/bitstyles/organisms/page-header/PageHeader.js
new file mode 100644
index 000000000..4dc7380ba
--- /dev/null
+++ b/scss/bitstyles/organisms/page-header/PageHeader.js
@@ -0,0 +1,157 @@
+import icons from '../../../../assets/images/icons.svg';
+import Button from '../../atoms/button/Button';
+
+const PageHeader = ({
+ topLeft,
+ topRight,
+ centerLeft,
+ centerRight,
+ bottomLeft,
+ bottomRight,
+}) => {
+ const pageHeader = document.createElement('header');
+ pageHeader.classList.add('o-page-header');
+ const content = document.createElement('div');
+ content.classList.add('a-content', 'o-page-header__content');
+
+ pageHeader.appendChild(content);
+
+ const contentPositions = [
+ { position: 'top-left', content: topLeft },
+ { position: 'top-right', content: topRight },
+ { position: 'center-left', content: centerLeft },
+ { position: 'center-right', content: centerRight },
+ { position: 'bottom-left', content: bottomLeft },
+ { position: 'bottom-right', content: bottomRight },
+ ];
+
+ contentPositions.forEach((item) => {
+ if (item.content) {
+ const contentElement = document.createElement('div');
+ contentElement.classList.add(`o-page-header__${item.position}`);
+ contentElement.appendChild(item.content);
+ content.appendChild(contentElement);
+ }
+ });
+
+ return pageHeader;
+};
+
+export default PageHeader;
+
+export const breadCrumbsMenu = document.createElement('ol');
+breadCrumbsMenu.classList.add(
+ 'u-h7',
+ 'u-list-none',
+ 'u-flex',
+ 'u-flex-wrap',
+ 'u-items-center'
+);
+breadCrumbsMenu.innerHTML = `
+
+
+
+This first example shows a header with all rows filled:
+
+
+
+Only using the top and central slots:
+
+
+
+This is a minimal example, with only the top slot:
+
+
diff --git a/scss/bitstyles/ui/extending-bitstyles.stories.mdx b/scss/bitstyles/ui/extending-bitstyles.stories.mdx
index f96f8d08f..47690851b 100644
--- a/scss/bitstyles/ui/extending-bitstyles.stories.mdx
+++ b/scss/bitstyles/ui/extending-bitstyles.stories.mdx
@@ -45,6 +45,7 @@ Add your own components at the end of the `@use` statements importing from `bits
@use 'bitstyles/organisms/notification-center';
@use 'bitstyles/organisms/table';
@use 'bitstyles/organisms/joined-ui';
+@use 'bitstyles/organisms/page-header';
// …
diff --git a/scss/bitstyles/ui/page-header.stories.mdx b/scss/bitstyles/ui/page-header.stories.mdx
deleted file mode 100644
index 300f8ae4c..000000000
--- a/scss/bitstyles/ui/page-header.stories.mdx
+++ /dev/null
@@ -1,360 +0,0 @@
-import { Canvas, Meta, Story } from '@storybook/addon-docs';
-import icons from '../../../assets/images/icons.svg';
-
-
-
-# Page header
-
-The intro to every page, containing slots for:
-
-- [breadcrumbs](/docs/ui-navigation-breadcrumbs--breadcrumbs)
-- page title
-- status [badge](/docs/atoms-badge--badge)
-- action [buttons](/docs/ui-buttons-buttons--page)
-- [tabs](/docs/ui-navigation-tabs--tabs) for organising the content (note that no tabpanels are shown here)
-
-
-
- These examples use AlpineJS for the behavior. If you’re using a different JS
- package, replace the blocks of html attributes starting with `x-`, and with
- `@click`.
-