diff --git a/src/routes/wishlist/+page.svelte b/src/routes/wishlist/+page.svelte index 46045b4..137ff32 100644 --- a/src/routes/wishlist/+page.svelte +++ b/src/routes/wishlist/+page.svelte @@ -343,24 +343,50 @@ font-weight: 600; } - /* Handy: Card stacked — Bild+Titel oben, Actions als Card-Footer - unten rechts. Vermeidet Titel-Overflow hinter den Buttons auf - schmalen Viewports (≤~414px), gibt Tap-Targets mehr Platz. - Actions sitzen im gleichen weissen Card-Hintergrund ohne Trenner, - damit sie nicht als eigener Block wirken. */ + /* Handy: 2-Spalten-Grid — Bild links ueber alle Rows, rechts stapeln + sich Titel, Meta, Actions. `display: contents` auf .body/.text zieht + die DOM-Kinder direkt in die Card-Grid, ohne Markup-Umbau. Vermeidet + die tote Weissflaeche unter dem Bild bei schmalen Viewports. */ @media (max-width: 600px) { .card { - flex-direction: column; + display: grid; + grid-template-columns: 96px 1fr; + grid-template-areas: + 'img title' + 'img meta' + 'img actions'; + column-gap: 0; + } + .body { + display: contents; + } + .body img, + .placeholder { + grid-area: img; + width: 96px; + height: 100%; + min-height: 100%; } .text { - padding: 0.7rem 0.75rem 0.4rem; + display: contents; + } + .title { + grid-area: title; + padding: 0.7rem 0.75rem 0.15rem; + } + .meta { + grid-area: meta; + padding: 0 0.75rem; + margin-top: 0; } .actions-top { + grid-area: actions; position: static; display: flex; gap: 0.4rem; - padding: 0 0.75rem 0.75rem; + padding: 0.5rem 0.75rem 0.7rem; justify-content: flex-end; + align-self: end; } }