web/NotchSticker: fix sticking out on XR and 11

This commit is contained in:
wukko 2024-09-11 16:41:04 +06:00
parent d7454a073b
commit 2122e87e66
No known key found for this signature in database
GPG key ID: 3E30B3F26C7B4AA2
2 changed files with 19 additions and 1 deletions

View file

@ -7,6 +7,7 @@
// i spent 4 hours switching between simulators and devices to get the best way to do this // i spent 4 hours switching between simulators and devices to get the best way to do this
$: safeAreaTop = 0; $: safeAreaTop = 0;
$: safeAreaBottom = 0;
$: state = "hidden"; // "notch", "island", "notch x" $: state = "hidden"; // "notch", "island", "notch x"
const islandValues = [ const islandValues = [
@ -24,8 +25,16 @@
.trim(); .trim();
}; };
const getSafeAreaBottom = () => {
const root = document.documentElement;
return getComputedStyle(root)
.getPropertyValue("--safe-area-inset-bottom")
.trim();
};
onMount(() => { onMount(() => {
safeAreaTop = Number(getSafeAreaTop().replace("px", "")); safeAreaTop = Number(getSafeAreaTop().replace("px", ""));
safeAreaBottom = Number(getSafeAreaBottom().replace("px", ""));
}); });
$: if (safeAreaTop > 20) { $: if (safeAreaTop > 20) {
@ -36,6 +45,10 @@
if (xNotch.includes(safeAreaTop)) { if (xNotch.includes(safeAreaTop)) {
state = "notch x"; state = "notch x";
} }
// exception for XR and 11 at regular screen zoom
if (safeAreaTop === 48 && safeAreaBottom === 34) {
state = "notch";
}
} }
</script> </script>
@ -84,8 +97,12 @@
} }
} }
/* plus iphone size, dynamic island, larger text display mode */ /* regular & plus iphone size, dynamic island, larger text display mode */
@media screen and (max-width: 375px) { @media screen and (max-width: 375px) {
#cobalt-notch-sticker.island :global(svg) {
height: 26px;
}
#cobalt-notch-sticker.island { #cobalt-notch-sticker.island {
padding-top: 11px; padding-top: 11px;
} }

View file

@ -135,6 +135,7 @@
); );
--safe-area-inset-top: env(safe-area-inset-top); --safe-area-inset-top: env(safe-area-inset-top);
--safe-area-inset-bottom: env(safe-area-inset-bottom);
--switcher-padding: var(--sidebar-inner-padding); --switcher-padding: var(--sidebar-inner-padding);