diff --git a/packages/effects/common-ui/src/components/content-wrap/content-wrap.vue b/packages/effects/common-ui/src/components/content-wrap/content-wrap.vue
new file mode 100644
index 00000000..4bc153a3
--- /dev/null
+++ b/packages/effects/common-ui/src/components/content-wrap/content-wrap.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/effects/common-ui/src/components/content-wrap/index.ts b/packages/effects/common-ui/src/components/content-wrap/index.ts
new file mode 100644
index 00000000..5b0ede5d
--- /dev/null
+++ b/packages/effects/common-ui/src/components/content-wrap/index.ts
@@ -0,0 +1,2 @@
+export { default as ContentWrap } from './content-wrap.vue';
+export * from './types';
diff --git a/packages/effects/common-ui/src/components/content-wrap/types.ts b/packages/effects/common-ui/src/components/content-wrap/types.ts
new file mode 100644
index 00000000..803c6874
--- /dev/null
+++ b/packages/effects/common-ui/src/components/content-wrap/types.ts
@@ -0,0 +1,18 @@
+export interface ContentWrapProps {
+ title?: string;
+ description?: string;
+ message?: string;
+ contentClass?: string;
+ /**
+ * 根据content可见高度自适应
+ */
+ autoContentHeight?: boolean;
+ headerClass?: string;
+ footerClass?: string;
+ /**
+ * Custom height offset value (in pixels) to adjust content area sizing
+ * when used with autoContentHeight
+ * @default 0
+ */
+ heightOffset?: number;
+}