Commit Graph

7 Commits

Author SHA1 Message Date
Dorian
555060eee3 feat(design-system): mobile bottom nav + hero copy vertical center
DesignLayout now hides its 260px sidebar below lg and shows a fixed
bottom bar surfacing the current page. Tapping it opens a 50svh bottom
sheet with the full nav list (grouped, scrolls internally) plus the
back-to-site link. Route changes auto-close the sheet and the backdrop
is tap-to-dismiss.

Hero split variant: drop the grid's items-center and add lg:justify-center
on the copy column so the headline/CTA block now lines up with the
image's vertical midpoint instead of sitting at the top.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 12:41:33 +01:00
Dorian
cad5de0202 fix(hero): center in first-fold and tighten section padding
Wrap the hero in an explicit flex-centering row on HomePage so vertical
centering doesn't depend on class merging, and swap the wrapper from
min-h-svh to h-svh so the layout is exactly one fold. Shrink the hero's
own py-16..lg:py-28 to py-10..lg:py-20 so the section fits comfortably
between navbar and viewport bottom.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 12:35:00 +01:00
Dorian
7b27a575d5 fix(hero): cap image to viewport height, drop badge on home
The hero product image is a tall portrait PNG. With the hero now
stretching to fill the first fold, `w-full h-auto` was letting the
image's intrinsic height exceed the available vertical space — the
product box got clipped at the bottom and pushed the composition off.

Switch to `w-auto max-w-full max-h-[...svh]` so the image fits within
the fold and keeps its aspect ratio. Stepped 40 / 55 / 70 svh across
mobile / tablet / desktop — mobile keeps the image compact so the
headline + CTAs still land on the fold when stacked above.

Also drop the "Featured" badge from the home-page hero — the product
is already the only thing on the first fold.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 12:27:26 +01:00
Dorian
89c212e662 feat(home): stretch hero to fill the first fold
Wraps the home page in a `min-h-svh flex flex-col` shell so the Hero
can take `flex-1 flex items-center` and vertically fill whatever viewport
height is left after the navbar. Uses `svh` so the hero doesn't pop
below the fold when mobile browser chrome is visible.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 12:11:00 +01:00
Dorian
7881032613 feat: use Hero (split / brand tone) on the home page
Replaces the scaffolding copy block. Uses the existing i18n keys the
design-system showcase already exercises, with the italic emphasis
switched to text-accent-soft so the warm yellow reads on the
brand-green surface. Primary CTA → /shop, secondary → /anwendungen.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 12:05:20 +01:00
Dorian
fe5b9641e0 fix(hero): image on top below lg in split layout
On mobile and tablet the split hero now stacks image-first, copy below
(matches the rhythm users expect when the product is the focal point).
Desktop is unchanged — text left, product right on lg+. Uses order-*
utilities so DOM order stays copy-first for readers/SEO while the
visual order flips.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 11:56:11 +01:00
Dorian
80f1c8db08 build: skip container npm, ship prebuilt dist for portainer showcase
The Portainer host keeps failing on `npm ci` inside the build stage
(both Alpine+libc6-compat and Debian slim exited 1 without ever surfacing
the real error to us). For a dev showcase this isn't worth chasing —
the dev machine is the source of truth for the built output anyway.

- Dockerfile: drop the Node build stage. Image is just nginx:1.27.3-alpine
  with /dist copied in. No npm inside the container.
- docker-compose.yml: drop the production hardening (read_only, tmpfs,
  security_opt, resource caps) and the container_name. Dev-only, don't
  inhibit things.
- .gitignore / .dockerignore: stop ignoring dist/ — it's committed now.
- README: document the `npm run build && commit && push` release flow
  and note what to reinstate when this graduates to real production.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 11:52:01 +01:00