diff --git a/client/src/components/Studio/PhotoView.tsx b/client/src/components/Studio/PhotoView.tsx
index a7d24574d..d2d7b68cd 100644
--- a/client/src/components/Studio/PhotoView.tsx
+++ b/client/src/components/Studio/PhotoView.tsx
@@ -5,7 +5,8 @@ import { fontStack } from './bookFonts';
import { photoSrc } from './bookRender';
import { usePaintId } from './paint/usePaintId';
import { pictureFilter, silhouetteShadows, svgFilterMatrices, zoomPlacement } from './photo/photoLook';
-import { HOLED_SHAPES, SHAPE_PATHS, scalePath, unitPath } from './shapes';
+import { HOLED_SHAPES, SHAPE_PATHS, scalePath } from './shapes';
+import { photoClip } from './shapeOutline';
/**
* A picture on the page: possibly cut to a shape, possibly sitting in
@@ -271,7 +272,9 @@ export function PhotoView({
const filterRef = usePaintId(`f-${el.id}`);
// The shape the picture is cut to; a rect mask is no mask at all.
const mask = el.mask && el.mask !== 'rect' ? el.mask : null;
- const clipped = mask !== null;
+ // The cut as a unit path: the mask, its cut edge, or a cut edge on the rectangle (shapeOutline.ts).
+ const clip = photoClip(el, el.frame.w - pad * 2, el.frame.h - pad - (bottom || pad));
+ const clipped = clip !== null;
// An empty frame wears the frame style but none of the look: a border or a
// shadow around a hatch would read as part of the picture to come.
const empty = el.photoId == null;
@@ -356,12 +359,12 @@ export function PhotoView({
)}
- {(mask || filterId) && (
+ {(clip || filterId) && (
- {mask && (
+ {clip && (
-
+
)}
{filterId && (
diff --git a/shared/src/i18n/ar/index.ts b/shared/src/i18n/ar/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/ar/index.ts
+++ b/shared/src/i18n/ar/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/az/index.ts b/shared/src/i18n/az/index.ts
index d2d07b42a..0e4a62031 100644
--- a/shared/src/i18n/az/index.ts
+++ b/shared/src/i18n/az/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/br/index.ts b/shared/src/i18n/br/index.ts
index a4005f70c..d042b5e6d 100644
--- a/shared/src/i18n/br/index.ts
+++ b/shared/src/i18n/br/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/ca/index.ts b/shared/src/i18n/ca/index.ts
index 2ab00a9dd..9d031fc47 100644
--- a/shared/src/i18n/ca/index.ts
+++ b/shared/src/i18n/ca/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/cs/index.ts b/shared/src/i18n/cs/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/cs/index.ts
+++ b/shared/src/i18n/cs/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/de/index.ts b/shared/src/i18n/de/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/de/index.ts
+++ b/shared/src/i18n/de/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/en/index.ts b/shared/src/i18n/en/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/en/index.ts
+++ b/shared/src/i18n/en/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/es/index.ts b/shared/src/i18n/es/index.ts
index c49f174ce..4c8c66d78 100644
--- a/shared/src/i18n/es/index.ts
+++ b/shared/src/i18n/es/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/et/index.ts b/shared/src/i18n/et/index.ts
index d2d07b42a..0e4a62031 100644
--- a/shared/src/i18n/et/index.ts
+++ b/shared/src/i18n/et/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/fr/index.ts b/shared/src/i18n/fr/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/fr/index.ts
+++ b/shared/src/i18n/fr/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/gr/index.ts b/shared/src/i18n/gr/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/gr/index.ts
+++ b/shared/src/i18n/gr/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/hu/index.ts b/shared/src/i18n/hu/index.ts
index a4005f70c..d042b5e6d 100644
--- a/shared/src/i18n/hu/index.ts
+++ b/shared/src/i18n/hu/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/id/index.ts b/shared/src/i18n/id/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/id/index.ts
+++ b/shared/src/i18n/id/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/it/index.ts b/shared/src/i18n/it/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/it/index.ts
+++ b/shared/src/i18n/it/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/ja/index.ts b/shared/src/i18n/ja/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/ja/index.ts
+++ b/shared/src/i18n/ja/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/ko/index.ts b/shared/src/i18n/ko/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/ko/index.ts
+++ b/shared/src/i18n/ko/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/nl/index.ts b/shared/src/i18n/nl/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/nl/index.ts
+++ b/shared/src/i18n/nl/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/pl/index.ts b/shared/src/i18n/pl/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/pl/index.ts
+++ b/shared/src/i18n/pl/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/ru/index.ts b/shared/src/i18n/ru/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/ru/index.ts
+++ b/shared/src/i18n/ru/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/sk/index.ts b/shared/src/i18n/sk/index.ts
index d2d07b42a..0e4a62031 100644
--- a/shared/src/i18n/sk/index.ts
+++ b/shared/src/i18n/sk/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/sv/index.ts b/shared/src/i18n/sv/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/sv/index.ts
+++ b/shared/src/i18n/sv/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/th/index.ts b/shared/src/i18n/th/index.ts
index d2d07b42a..0e4a62031 100644
--- a/shared/src/i18n/th/index.ts
+++ b/shared/src/i18n/th/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/tr/index.ts b/shared/src/i18n/tr/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/tr/index.ts
+++ b/shared/src/i18n/tr/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/uk/index.ts b/shared/src/i18n/uk/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/uk/index.ts
+++ b/shared/src/i18n/uk/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/vi/index.ts b/shared/src/i18n/vi/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/vi/index.ts
+++ b/shared/src/i18n/vi/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/zh-TW/index.ts b/shared/src/i18n/zh-TW/index.ts
index d33915b22..2ab9e237b 100644
--- a/shared/src/i18n/zh-TW/index.ts
+++ b/shared/src/i18n/zh-TW/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';
diff --git a/shared/src/i18n/zh/index.ts b/shared/src/i18n/zh/index.ts
index 487b263e1..d7ad5e665 100644
--- a/shared/src/i18n/zh/index.ts
+++ b/shared/src/i18n/zh/index.ts
@@ -66,7 +66,6 @@ import studioPhoto from './studioPhoto';
import studioStickers from './studioStickers';
import studioShapes from './studioShapes';
import studioThemes from './studioThemes';
-import studioStickers from './studioStickers';
import studioText from './studioText';
import system_notice from './system_notice';
import todo from './todo';