diff --git a/packages/react-core/src/demos/Tabs.md b/packages/react-core/src/demos/Tabs.md
index a67309a67dc..1709c39e379 100644
--- a/packages/react-core/src/demos/Tabs.md
+++ b/packages/react-core/src/demos/Tabs.md
@@ -437,3 +437,7 @@ TabsOpenWithSecondaryTabsDemo = () => {
);
};
```
+
+### Nested tabs
+```js isFullscreen file="./Tabs/NestedTabsDemo.js"
+```
\ No newline at end of file
diff --git a/packages/react-core/src/demos/Tabs/NestedTabsDemo.js b/packages/react-core/src/demos/Tabs/NestedTabsDemo.js
new file mode 100644
index 00000000000..66d3bbc482d
--- /dev/null
+++ b/packages/react-core/src/demos/Tabs/NestedTabsDemo.js
@@ -0,0 +1,151 @@
+import React from 'react';
+import {
+ Card,
+ CardHeader,
+ CardBody,
+ Grid,
+ GridItem,
+ PageSection,
+ PageSectionVariants,
+ Tabs,
+ Tab,
+ TabContent,
+ TabContentBody,
+ TabTitleText,
+ Title,
+ Flex,
+ FlexItem
+} from '@patternfly/react-core';
+import DashboardWrapper from '../examples/DashboardWrapper';
+
+export const NestedTabsDemo = () => {
+ const [activeTabKey, setActiveTabKey] = React.useState(0);
+ const [activeNestedTabKey, setActiveNestedTabKey] = React.useState(10);
+
+ // Toggle currently active tab
+ const handleTabClick = (_, tabIndex) => setActiveTabKey(tabIndex);
+
+ // Toggle currently active nested tab
+ const handleNestedTabClick = (_, tabIndex) => setActiveNestedTabKey(tabIndex);
+
+ const tabContent = (
+
+
+
+
+ Status
+
+
+
+
+
+ Cluster} tabContentId={`tabContent${10}`} />
+ Control plane}
+ tabContentId={`tabContent${11}`}
+ />
+ Operators} tabContentId={`tabContent${12}`} />
+ Virtualization}
+ tabContentId={`tabContent${13}`}
+ />
+
+
+
+
+
+ {
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce in odio porttitor, feugiat risus in, feugiat arcu. Nullam euismod enim eget fringilla condimentum. Maecenas tincidunt et metus id aliquet. Integer et fermentum purus. Nulla tempor velit arcu, vitae semper purus iaculis at. Sed malesuada auctor luctus. Pellentesque et leo urna. Aliquam vitae felis congue lacus mattis fringilla. Nullam et ultricies erat, sed dignissim elit. Cras mattis pulvinar aliquam. In ac est nulla. Pellentesque fermentum nibh ac sapien porta, ut congue orci aliquam. Sed nisl est, tempor eu pharetra eget, ullamcorper ut augue. Vestibulum eleifend libero eu nulla cursus lacinia.'
+ }
+
+
+
+ Control plane panel
+
+
+ Operators panel
+
+
+ Virtualization panel
+
+
+
+
+
+
+
+
+
+
+
+ Title of Card
+
+
+
+
+
+
+ Title of Card
+
+
+
+
+
+
+ );
+
+ return (
+
+
+
+ Overview
+
+
+
+
+ Cluster 1} tabContentId={`tabContent${0}`} />
+ Cluster 2} tabContentId={`tabContent${1}`} />
+
+
+
+
+ {tabContent}
+
+
+ Cluster 2 panel
+
+
+
+ );
+};