Summary
The watermark is always stamped in the bottom-left corner. Add configurable placement so users can choose where the logo goes.
Current behaviour
src/lib/server/watermark.ts hardcodes bottom-left in watermarkToWebp:
const pad = Math.round(width * PADDING_RATIO);
const left = Math.max(0, Math.min(pad, width - overlay.width));
const top = Math.max(0, height - overlay.height - pad);
Proposed approach
Acceptance criteria
- User can pick any of the supported positions and the watermark lands there with correct padding.
- Default behaviour (bottom-left) is unchanged when no option is provided.
Related
- Shares the
watermark.ts surface with the dark/light logo variants issue — consider a single WatermarkOptions object for both.
Summary
The watermark is always stamped in the bottom-left corner. Add configurable placement so users can choose where the logo goes.
Current behaviour
src/lib/server/watermark.tshardcodes bottom-left inwatermarkToWebp:Proposed approach
placementoption, e.g.top-left | top-right | bottom-left | bottom-right | center.top/leftfrom the chosen placement + existingPADDING_RATIO(keep bottom-left as the default).src/app/api/upload/route.ts) and, ideally, expose a selector in the UI (HomeUploader/Dropzone).Acceptance criteria
Related
watermark.tssurface with the dark/light logo variants issue — consider a singleWatermarkOptionsobject for both.