From 2c4689471d93d309273ce3b0fbf05b937a1c21a1 Mon Sep 17 00:00:00 2001 From: Maaxxs <61059039+MaaxxsDev@users.noreply.github.com> Date: Thu, 9 Jul 2026 00:36:23 +0200 Subject: [PATCH] Fix package strip layout width and replace the road glow with a generated texture Cards were fixed-width and forced to scroll even when the row had room to show all of them; they now flex between 190-240px and the strip row gets its own wider container instead of the site's normal 1152px content width, so a full tier lineup fits on typical desktop screens without scrolling. The scrollbar itself is now a slim themed bar for the cases where scrolling is still needed. Also swaps the thin procedural SVG line for a Higgsfield-generated glow texture, masked per card into that tier's accent color. Along the way, fixes a real CSS bug where the WebP mask rendered as a solid block instead of the intended thin line, because the image's alpha channel made the browser default to alpha-based masking instead of reading its luminance - fixed by forcing mask-mode: luminance. Co-Authored-By: Claude Sonnet 5 --- hifi-src/src/assets/textures/road-glow.webp | Bin 0 -> 3442 bytes hifi-src/src/pages/public/ModelPage.jsx | 85 ++++++++++++-------- 2 files changed, 53 insertions(+), 32 deletions(-) create mode 100644 hifi-src/src/assets/textures/road-glow.webp diff --git a/hifi-src/src/assets/textures/road-glow.webp b/hifi-src/src/assets/textures/road-glow.webp new file mode 100644 index 0000000000000000000000000000000000000000..e35cf79c5d19c2d0591d70bdbc003f3a7e73942a GIT binary patch literal 3442 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'modelPage.tiersHeading')(packages.length)}

{t('modelPage.tiersSubheading')}

+ + {/* Eigener, deutlich breiterer Rahmen fuer die Kartenreihe im Scroll-Band-Modus: + die restliche Seite haelt sich an die normale Lesebreite (max-w-6xl), aber + die Kacheln sollen auf breiten Bildschirmen wirklich die volle Breite nutzen + koennen, statt unnoetig frueh in den Scroll-Modus zu wechseln. */} +
@@ -269,10 +301,10 @@ export default function ModelPage() { style, priceColor, mutedColor, - accentColor, glowLineStyle, roadOpacity, roadGlowOpacity, + roadMaskStyle, textureStyle, isDarkCard, } = styleOf(pkg); @@ -283,36 +315,25 @@ export default function ModelPage() { style={style} className={ isStripLayout - ? 'relative flex w-[190px] shrink-0 snap-start flex-col overflow-hidden rounded-xl border p-6 sm:w-[210px]' + ? 'relative flex grow shrink basis-[190px] min-w-[190px] max-w-[240px] snap-start flex-col overflow-hidden rounded-xl border p-6 sm:basis-[210px] sm:p-7' : 'relative flex flex-col overflow-hidden rounded-xl border p-8' } > - {/* Abstrakter "Lichtweg" im Hintergrund - je teurer die Stufe, desto praesenter/leuchtender. - Fixe Aspect-Ratio + "slice" statt "none", damit Strich/Kurve bei jeder Kartenhoehe - gleichmaessig aussieht statt verzerrt gestreckt zu werden. */} - + /> +