From 64cab53aa599091e7ecb510e276faac8d630039f Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Mon, 28 Sep 2026 16:52:10 +0000 Subject: [PATCH] The card-deck tape stops underlapping the next card on mobile On mobile the Card deck options tape slid under the cards below it. .pstocks hangs at top:100%, i.e. below its own card and over the next one. Every .card is position:relative with NO z-index, so they all sit at the same stacking level and later cards paint over earlier ones in document order. The tape's own z-index:2 only orders it WITHIN its card, which is why it looked correct on the last card of a row and vanished under the next card everywhere else. On a phone the grid is one column, so the very next card is directly beneath -- hence "really bad on mobile" rather than merely wrong. Raising the CARD while one of its tapes is open lifts the whole stacking context above its siblings. z-index 5 sits above any card and below the sticky section header at 6, so a revealed tape never covers the header the reader scrolls with -- a menu that hides its own navigation would be a worse bug than this one. The tape also gains a stronger shadow so it reads as sitting ON the card below rather than tangled with it; without an opaque, shadowed surface the next card's text shows through, which is the other half of what "underlapping" looks like. Covers both tapes -- the card sizes and the new packet variants -- since they share the disclosure. --- library/components/poster/PosterWall.vue | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/library/components/poster/PosterWall.vue b/library/components/poster/PosterWall.vue index e621876f8..8d6d1589f 100644 --- a/library/components/poster/PosterWall.vue +++ b/library/components/poster/PosterWall.vue @@ -794,6 +794,15 @@ useShadowStyles( 'display:flex;flex-wrap:wrap;gap:3px;justify-content:center;' + 'box-shadow:0 1px 4px rgba(0,0,0,.10);cursor:default}' + '.is-dark .pstocks{background:#132019;border-color:rgba(110,231,183,.24)}' + + // ★ The open card outranks its siblings. 5 sits above any card (all of which are z-index:auto) + // and below the sticky section header at 6, so a revealed tape never covers the header the + // reader uses to scroll — a menu that hides its own navigation is a worse bug than the one + // being fixed here. + '.card.has-tape-open{z-index:5}' + + // The tape is OPAQUE and casts a shadow so it reads as sitting ON the card below rather than + // being tangled with it. Without a solid background the next card's text shows through, which is + // the other half of what "underlapping" looks like on a phone. + '.pstocks{box-shadow:0 2px 10px rgba(0,0,0,.18)}' + '.pfs > legend{margin:0 auto;padding:0 5px;font-size:8px;text-transform:uppercase;' + 'letter-spacing:.6px;font-weight:700;color:#8a93a0}' + '.is-dark .pfs > legend{color:#7f9c8c}' + @@ -1048,8 +1057,19 @@ useShadowStyles(
+
+ :class="{ 'is-last': lastShown === item.id, + 'has-tape-open': deckOpenFor === deckKey(item.id, 'deck') || deckOpenFor === deckKey(item.id, 'packet') }" + :data-list-id="item.id">