diff --git a/src/components/VisualPlacementEditor.tsx b/src/components/VisualPlacementEditor.tsx
index bf6e740..a8eb9ce 100644
--- a/src/components/VisualPlacementEditor.tsx
+++ b/src/components/VisualPlacementEditor.tsx
@@ -49,6 +49,9 @@ export function VisualPlacementEditor({ documentSize, design, mockup, settings,
const aspect = documentSize.width > 0 && documentSize.height > 0 ? documentSize.width / documentSize.height : 1.5;
const metrics = useMemo(() => computePlacementMetrics(settings, designSize), [designSize, settings]);
+ const usesCoverClip = mode === "image" && settings.fitMode === "cover" && Boolean(design);
+ const targetWidth = Math.max(0.001, metrics.targetWidth);
+ const targetHeight = Math.max(0.001, metrics.targetHeight);
function pointerPercent(event: React.PointerEvent): { x: number; y: number } | null {
const element = ref.current;
@@ -177,6 +180,32 @@ export function VisualPlacementEditor({ documentSize, design, mockup, settings,
{slotLabel}
+ {usesCoverClip && design ? (
+
+
+

+
+
+ ) : null}
+
beginDrag(event, "design-move")}
title="Drag design"
>
- {design ? (
+ {design && !usesCoverClip ? (

- ) : (
+ ) : !design ? (
No design
- )}
+ ) : null}