diff --git a/packages/client/src/tiptap/menubar.tsx b/packages/client/src/tiptap/menubar.tsx
index b257235..505b848 100644
--- a/packages/client/src/tiptap/menubar.tsx
+++ b/packages/client/src/tiptap/menubar.tsx
@@ -32,6 +32,7 @@ import { Blockquote } from './menus/blockquote';
import { HorizontalRule } from './menus/horizontal-rule';
import { Search } from './menus/search';
+import { Banner } from './menus/banner';
import { Countdonw } from './menus/countdown';
import { Image } from './menus/image';
import { Iframe } from './menus/iframe';
@@ -86,6 +87,7 @@ export const MenuBar: React.FC<{ editor: any }> = ({ editor }) => {
+
diff --git a/packages/client/src/tiptap/menus/banner/bubble.tsx b/packages/client/src/tiptap/menus/banner/bubble.tsx
new file mode 100644
index 0000000..2cf3084
--- /dev/null
+++ b/packages/client/src/tiptap/menus/banner/bubble.tsx
@@ -0,0 +1,106 @@
+import { Editor } from '@tiptap/core';
+import { Space, Button } from '@douyinfe/semi-ui';
+import { IconDelete, IconTickCircle, IconAlertTriangle, IconClear, IconInfoCircle } from '@douyinfe/semi-icons';
+import { Tooltip } from 'components/tooltip';
+import { BubbleMenu } from '../../views/bubble-menu';
+import { Divider } from '../../divider';
+import { Banner } from '../../extensions/banner';
+import { deleteNode } from '../../services/delete-node';
+
+export const BannerBubbleMenu: React.FC<{ editor: Editor }> = ({ editor }) => {
+ return (
+ editor.isActive(Banner.name)}
+ matchRenderContainer={(node) => node && node.id === 'js-bannber-container'}
+ >
+
+
+ }
+ onClick={() => {
+ editor
+ .chain()
+ .updateAttributes(Banner.name, {
+ type: 'info',
+ })
+ .focus()
+ .run();
+ }}
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+ onClick={() => deleteNode('banner', editor)}
+ />
+
+
+
+ );
+};
diff --git a/packages/client/src/tiptap/menus/banner/index.tsx b/packages/client/src/tiptap/menus/banner/index.tsx
new file mode 100644
index 0000000..57e077a
--- /dev/null
+++ b/packages/client/src/tiptap/menus/banner/index.tsx
@@ -0,0 +1,15 @@
+import React from 'react';
+import { Editor } from '@tiptap/core';
+import { BannerBubbleMenu } from './bubble';
+
+export const Banner: React.FC<{ editor: Editor }> = ({ editor }) => {
+ if (!editor) {
+ return null;
+ }
+
+ return (
+ <>
+
+ >
+ );
+};