diff --git a/docs/examples/customPopupRender.less b/docs/examples/customPopupRender.less
new file mode 100644
index 00000000..0b8518ce
--- /dev/null
+++ b/docs/examples/customPopupRender.less
@@ -0,0 +1,76 @@
+.navigation-popup {
+ padding: 24px;
+ min-width: 480px;
+ background: #fff;
+ border-radius: 8px;
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
+
+ .navigation-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 16px;
+ }
+
+ .navigation-menu-item {
+ padding: 0;
+ margin: 0;
+
+ a {
+ display: block;
+ padding: 16px;
+ text-decoration: none;
+ color: inherit;
+ border-radius: 6px;
+ transition: all 0.3s;
+
+ h3 {
+ margin: 0 0 8px;
+ font-size: 16px;
+ font-weight: 500;
+ }
+
+ p {
+ margin: 0;
+ color: rgba(0, 0, 0, 0.45);
+ font-size: 14px;
+ line-height: 1.5;
+ }
+
+ &:hover {
+ background: rgba(0, 0, 0, 0.02);
+ }
+ }
+ }
+}
+
+.panel-popup {
+ padding: 16px;
+ min-width: 240px;
+ background: #fff;
+ border-radius: 8px;
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
+
+ .panel-header {
+ padding: 0 8px 12px;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
+ margin-bottom: 8px;
+
+ h4 {
+ margin: 0;
+ font-size: 14px;
+ color: rgba(0, 0, 0, 0.45);
+ }
+ }
+
+ .panel-content {
+ .rc-menu-item {
+ padding: 8px 12px;
+ margin: 0;
+ border-radius: 4px;
+
+ &:hover {
+ background: rgba(0, 0, 0, 0.02);
+ }
+ }
+ }
+}
diff --git a/docs/examples/customPopupRender.tsx b/docs/examples/customPopupRender.tsx
new file mode 100644
index 00000000..cf2d7138
--- /dev/null
+++ b/docs/examples/customPopupRender.tsx
@@ -0,0 +1,164 @@
+import React from 'react';
+import Menu, { SubMenu, Item as MenuItem } from '../../src';
+import type { ReactElement } from 'react';
+import './customPopupRender.less';
+
+const NavigationDemo = () => {
+ const menuItems = [
+ {
+ key: 'home',
+ label: 'Home',
+ },
+ {
+ key: 'features',
+ label: 'Features',
+ children: [
+ {
+ key: 'getting-started',
+ label: (
+
+ Getting Started
+ Quick start guide and learn the basics.
+
+ ),
+ },
+ {
+ key: 'components',
+ label: (
+
+ Components
+ Explore our component library.
+
+ ),
+ },
+ {
+ key: 'templates',
+ label: (
+
+ Templates
+ Ready-to-use template designs.
+
+ ),
+ },
+ ],
+ },
+ {
+ key: 'resources',
+ label: 'Resources',
+ children: [
+ {
+ key: 'blog',
+ label: (
+
+ Blog
+ Latest updates and articles.
+
+ ),
+ },
+ {
+ key: 'community',
+ label: (
+
+ Community
+ Join our developer community.
+
+ ),
+ },
+ ],
+ },
+ ];
+ const popupRender = (node: ReactElement) => (
+
+
+ {React.Children.map(node.props.children.props.children, child => (
+
+ {React.cloneElement(child, {
+ className: `${child.props.className || ''} navigation-menu-item`,
+ })}
+
+ ))}
+
+
+ );
+
+ return
;
+};
+
+const MixedPanelDemo = () => {
+ const totalPopupRender = (node: ReactElement, info: { item: any; keys: string[] }) => {
+ const isSecondLevel = info.keys.length == 2;
+ if (isSecondLevel) {
+ return (
+
+
+ {React.Children.map(node.props.children.props.children, child => (
+
+ {React.cloneElement(child, {
+ className: `${child.props.className || ''} navigation-menu-item`,
+ })}
+
+ ))}
+
+
+ );
+ }
+ return node;
+ };
+ const singlePopupRender = (node: ReactElement, info: { item: any; keys: string[] }) => {
+ const isSecondLevel = info.keys.length == 2;
+ if (isSecondLevel) {
+ return (
+
+
+
{info.item.title}
+
+
{node}
+
+ );
+ }
+ return node;
+ };
+ return (
+
+ );
+};
+
+const Demo = () => {
+ return (
+
+
NavigationDemo
+
+ MixedPanelDemo
+
+
+ );
+};
+export default Demo;
diff --git a/docs/examples/inlineCollapsed.tsx b/docs/examples/inlineCollapsed.tsx
index 691f8f03..15fdc87b 100644
--- a/docs/examples/inlineCollapsed.tsx
+++ b/docs/examples/inlineCollapsed.tsx
@@ -7,11 +7,7 @@ const App = () => {
return (
<>