Respect the notch and the home indicator
viewport-fit=cover was already on, so the canvas was full-bleed and the iPhone status bar landed directly on the scoreboard. Keeping the canvas full-bleed — the stands running to the screen edges is the look — and moving the HUD instead: a hidden probe div carries env(safe-area-inset-*), which env() only exposes to CSS, render.js converts it to logical canvas px at the same scale fitViewport just applied, and the scoreboard shifts down while the rack and the draw meter lift up. Body height also goes to 100dvh so iOS's dynamic toolbars stop leaving a strip unused at the bottom. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ae64daa0fb
commit
89667c4018
3 files changed
+34
-6
No files matched your search
+8
-2
@@ -20,7 +20,12 @@
|
||||
src: url('assets/fonts/Silkscreen-Regular.ttf') format('truetype'); }
|
||||
@font-face { font-family: 'Silkscreen'; font-weight: 700; font-display: block;
|
||||
src: url('assets/fonts/Silkscreen-Bold.ttf') format('truetype'); }
|
||||
html, body { margin: 0; height: 100%; background: #10141c; display: grid; place-items: center; }
|
||||
html, body { margin: 0; height: 100%; height: 100dvh; background: #10141c; display: grid; place-items: center; }
|
||||
/* invisible probe: env() is only readable from CSS, so park the insets on an element and let
|
||||
render.js measure them. The canvas stays FULL-BLEED (the stands under the notch look good) —
|
||||
it is the HUD that has to move, see SAFE in render.js. */
|
||||
#safe { position: fixed; top: 0; left: 0; width: 0; height: 0; pointer-events: none; visibility: hidden;
|
||||
padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px); }
|
||||
canvas { image-rendering: pixelated; width: min(96vw, calc(96vh * 16 / 9)); aspect-ratio: 16/9; touch-action: none; }
|
||||
#hint { position: fixed; bottom: 8px; width: 100%; text-align: center;
|
||||
font: 400 10px Silkscreen, monospace; color: #6b7688; }
|
||||
@@ -45,6 +50,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="c" width="480" height="270"></canvas>
|
||||
<div id="safe"></div>
|
||||
<div id="hint">move: WASD/arrows · serve/swing: SPACE · aim: hold a direction while swinging · T: tuning panel</div>
|
||||
<div id="intro">
|
||||
<div class="card">
|
||||
@@ -60,6 +66,6 @@
|
||||
<p class="start">TAP TO START</p>
|
||||
</div>
|
||||
</div>
|
||||
<script type="module" src="main.js?v=44"></script>
|
||||
<script type="module" src="main.js?v=45"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user