z-index audit + aperture fill + resize:end debounce + landscape sig-grid cap
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- #id_aperture_fill: position:fixed→absolute (clips to .room-page, avoids h2/navbar); z-index 105→90 (below blur backdrops at z-100); landscape override removed (inset:0 works both orientations) - _base.scss: landscape footer z-index:100 (matches navbar); corrects unset z-index - _room.scss: fix stale "navbar z-300" comment; landscape sig-deck-grid columns repeat(9,1fr)→repeat(9,minmax(0,90px)) to cap card size on wide viewports - room.js: add resize:end listeners for scaleTable + sizeSigModal; new IIFE dispatches resize:end 500ms after resize stops so both functions re-measure settled layout - tray.js: extract _reposition() from inline resize handler; wire to both resize and resize:end so tray repositions correctly after rapid resize or orientation change Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,27 @@ html:has(.gate-backdrop) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// Aperture fill — solid --duoUser layer that covers the game table (.room-page).
|
||||
// Uses position:absolute so it's clipped to .room-page bounds (overflow:hidden),
|
||||
// naturally staying below the h2 title + navbar/footer in both orientations.
|
||||
// Sits at z-90: below blur backdrops (z-100) which render on top via backdrop-filter.
|
||||
// Fades in/out via opacity transition when a backdrop class is present.
|
||||
#id_aperture_fill {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: rgba(var(--duoUser), 1);
|
||||
z-index: 90;
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
transition: opacity 0.15s ease;
|
||||
}
|
||||
|
||||
html:has(.gate-backdrop) #id_aperture_fill,
|
||||
html:has(.sig-backdrop) #id_aperture_fill,
|
||||
html:has(.role-select-backdrop) #id_aperture_fill {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.gate-backdrop {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
@@ -781,8 +802,8 @@ $card-h: 60px;
|
||||
// Landscape mobile — aggressively scale down to fit short viewport
|
||||
@media (orientation: landscape) and (max-width: 1440px) {
|
||||
// Sink navbar below gate/role-select overlays when a modal is open.
|
||||
// Landscape navbar z-index is 300 (_base.scss); gate-backdrop/overlay are
|
||||
// 100/120, so the sidebar bleeds over the modal without this override.
|
||||
// Landscape navbar z-index is 100 (_base.scss); gate-backdrop/overlay are
|
||||
// 100/120 — same level causes paint-order ties so we drop it to 50.
|
||||
html:has(.gate-backdrop) body .container .navbar,
|
||||
html:has(.role-select-backdrop) body .container .navbar {
|
||||
z-index: 50;
|
||||
@@ -959,7 +980,7 @@ html:has(.sig-backdrop) {
|
||||
|
||||
.sig-card {
|
||||
aspect-ratio: 5 / 8;
|
||||
border-radius: 3px;
|
||||
border-radius: 0.4rem;
|
||||
background: rgba(var(--priUser), 0.97);
|
||||
border: 1px solid rgba(var(--secUser), 0.3);
|
||||
position: relative;
|
||||
@@ -1061,7 +1082,7 @@ html:has(.sig-backdrop) {
|
||||
.sig-overlay { padding-left: 4rem; }
|
||||
.sig-modal { max-width: none; }
|
||||
.sig-deck-grid {
|
||||
grid-template-columns: repeat(9, 1fr);
|
||||
grid-template-columns: repeat(9, minmax(0, 90px));
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user