diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 45109a5193..4f0a9e1641 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -28,7 +28,7 @@ Changelog
* Add ability to define a custom `get_field_clean_name` method when defining `FormField` models that extend `AbstractFormField` (LB (Ben) Johnston)
* Migrate Home (Dashboard) view to use generic Wagtail class based view (LB (Ben) Johnston)
* Combine most of Wagtail’s stylesheets into the global `core.css` file (Thibaud Colas)
- * Add new Breadcrumbs to the Wagtail pattern library (Paarth Agarwal)
+ * Add new Breadcrumbs and Tabs to the Wagtail pattern library (Paarth Agarwal)
* Adopt new Page Editor UI tabs in the workflow history report page (Paarth Agarwal)
* Update `ReportView` to extend from generic `wagtail.admin.views.generic.models.IndexView` (Sage Abdullah)
* Fix: Typo in `ResumeWorkflowActionFormatter` message (Stefan Hammer)
diff --git a/docs/releases/4.0.md b/docs/releases/4.0.md
index 9a1465ab30..ee676c5535 100644
--- a/docs/releases/4.0.md
+++ b/docs/releases/4.0.md
@@ -37,7 +37,7 @@ When using a queryset to render a list of images, you can now use the ``prefetch
* Add ability to define a custom `get_field_clean_name` method when defining `FormField` models that extend `AbstractFormField` (LB (Ben) Johnston)
* Migrate Home (Dashboard) view to use generic Wagtail class based view (LB (Ben) Johnston)
* Combine most of Wagtail’s stylesheets into the global `core.css` file (Thibaud Colas)
- * Add new Breadcrumbs to the Wagtail pattern library (Paarth Agarwal)
+ * Add new Breadcrumbs and Tabs to the Wagtail pattern library (Paarth Agarwal)
* Adopt new Page Editor UI tabs in the workflow history report page (Paarth Agarwal)
* Update `ReportView` to extend from generic `wagtail.admin.views.generic.models.IndexView` (Sage Abdullah)
diff --git a/wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.stories.tsx b/wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.stories.tsx
new file mode 100644
index 0000000000..689cceea75
--- /dev/null
+++ b/wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.stories.tsx
@@ -0,0 +1,81 @@
+import React from 'react';
+import { Pattern, generateDocs } from 'storybook-django/src/react';
+import { initTabs } from '../../../../../client/src/includes/tabs';
+import template from './tabbed_interface.html';
+
+document.addEventListener('DOMContentLoaded', () => {
+ initTabs();
+});
+
+const { docs, argTypes } = generateDocs(template);
+
+export default {
+ title: 'Shared / Tabs / TabbedInterface',
+ parameters: { docs },
+ argTypes: { ...argTypes },
+};
+
+const Template = (args) =>