diff --git a/packages/effects/common-ui/src/components/page/page.vue b/packages/effects/common-ui/src/components/page/page.vue index 6b95cdb3..c95a3b45 100644 --- a/packages/effects/common-ui/src/components/page/page.vue +++ b/packages/effects/common-ui/src/components/page/page.vue @@ -12,7 +12,8 @@ defineOptions({ name: 'Page', }); -const { autoContentHeight = false } = defineProps(); +const { autoContentHeight = false, heightOffset = 0 } = + defineProps(); const headerHeight = ref(0); const footerHeight = ref(0); @@ -24,7 +25,7 @@ const footerRef = useTemplateRef('footerRef'); const contentStyle = computed(() => { if (autoContentHeight) { return { - height: `calc(var(${CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT}) - ${headerHeight.value}px)`, + height: `calc(var(${CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT}) - ${headerHeight.value}px - ${typeof heightOffset === 'number' ? `${heightOffset}px` : heightOffset})`, overflowY: shouldAutoHeight.value ? 'auto' : 'unset', }; } diff --git a/packages/effects/common-ui/src/components/page/types.ts b/packages/effects/common-ui/src/components/page/types.ts index 5316d08d..c7331aed 100644 --- a/packages/effects/common-ui/src/components/page/types.ts +++ b/packages/effects/common-ui/src/components/page/types.ts @@ -8,4 +8,10 @@ export interface PageProps { 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; }