Commit graph

17 commits

Author SHA1 Message Date
Maaxxs
ad9d99a458 Address second round of client feedback
Logo: adds a dedicated dark-mode variant (grey wordmark lightened to
near-white, green orbit untouched) and drops the white background chip
that was previously painted behind the logo in dark mode across Navbar,
AdminLayout and the admin Login page.

Cursor: the hover core goes back to brand green (with a white rim/glow
for contrast on green buttons) instead of white, per clarified feedback.

Homepage: new hero slogan "Home of pure Sound" (replacing "Audiophil aus
Prinzip" / "Audiophile by principle" in both languages), the "So
funktioniert's" / "How it works" three-step section is removed, and the
brand marquee is replaced with the client's actual supplier list (Ground
Zero Audio, Audison, Hertz, Helix, Brax, Gladen, Alpine, Pioneer,
Kenwood, JVC).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 12:51:10 +02:00
Maaxxs
438131fad0 Move FAQ management into the admin panel and cover it plus the gallery in export/import
FAQ entries were previously hardcoded in the i18n dictionaries; they now live
in a new bilingual `faqs` table with full CRUD in the admin panel, a
reset-to-defaults action seeded with the current 6 questions, and the
homepage (incl. FAQPage JSON-LD) fetches them live per language. Export/
import was also extended to include FAQs and the full image gallery
(brands, projects, photos), which had been missing from that mechanism.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 19:25:06 +02:00
Maaxxs
75525cb0c3 Make the divider before the FAQ section actually visible
border-neutral-200 was nearly invisible against the grained
background (both very light gray). Bumped to -300/dark:-700.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 02:59:33 +02:00
Maaxxs
7364f68f05 Put the 'Mehr als nur Car-Hifi' text block in its own white card
That section sits directly on the grained page background with no
card of its own, so the grain showed through the CTA button too
(it has no background, just a border). Wrapping the text+button in
a plain white card matches how every other content block on the
page already avoids the grain.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 02:54:24 +02:00
Maaxxs
8ee36fd3eb Keep the grain texture off content cards, only on page background/bands
The fixed full-viewport overlay painted grain over everything,
including cards, buttons, and the FAQ accordion that should stay
plain. Back to plain background-image on .page-texture plus a new
.grain-band class for the two structural full-width stripe sections
on the homepage - cards keep their own opaque background, which
naturally blocks it without any extra work.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 02:49:25 +02:00
Maaxxs
ec84b438ca PageSpeed/Lighthouse fixes: caching, images, touch targets, console noise
Based on a Lighthouse audit of the live site (95 performance / 91
accessibility / 96 best-practices / 100 SEO), addressing everything
except the flagged color-contrast issues (kept as-is, reversible
color changes need a separate decision):

- Cache-Control headers for hashed/immutable static assets via
  mod_headers (no mod_expires dependency, since that's not enabled
  everywhere) - ~1.1MB saved on repeat visits
- Converted the code-bundled homepage photos to WebP (skipped
  DB-managed/admin-uploaded images - those are content, not code) and
  added explicit width/height so the browser can reserve space before
  images load
- Bumped footer/contact-sidebar phone and email links to a 24px+
  touch target via padding
- /auth/me now returns 200 + {authenticated:false} instead of 401 for
  logged-out visitors - it's called on every public page load to
  check session state, so "not logged in" is the normal case, not an
  error; the 401 was showing up as a console error on literally every
  page view

Left unchanged: the lucide-react bundle splitting (a previous,
deliberate tradeoff - splitting per-icon created ~1600 tiny chunk
files that failed to upload on shared hosting) and video preload
(no concrete issue found in the audit).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 02:40:57 +02:00
Maaxxs
838179bbed Redesign homepage YouTube section as a full-bleed video hero
Replaces the two-column badge/embed layout with a full-width background
video, dark overlay, and centered eyebrow/heading/CTA - matching the
cinematic teaser style used by other car-audio shops. The CTA links
directly to the specific YouTube video instead of just the channel.

The provided source video (177MB, 2560x1440@60fps) was compressed for
web delivery: 1280px width, 30fps, audio stripped (video is muted
background anyway), H.264 CRF 30 - down to 8.2MB with no visible
quality loss at this scale.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 23:39:57 +02:00
Maaxxs
76b9fe35cc Fix hero image gap: scale via Framer Motion instead of a Tailwind class
The scale-110 utility set the same CSS transform property that Framer
Motion's y-parallax already controlled inline, silently canceling the
scale. The image never actually zoomed in, so the parallax shift had no
overflow buffer and exposed a bare strip at the bottom of the hero.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 22:46:35 +02:00
Maaxxs
075a3d88fe Make homepage hero fill the full viewport height
Prevents the next section from partially peeking in above the fold on
first load, so it only appears once the visitor actually scrolls.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 22:33:18 +02:00
Maaxxs
e282a981a6 Add German/English language toggle for the storefront
Auto-detects the visitor's browser language on first visit, with a
manual dropdown switcher (flag icons) in the header and mobile menu.
Legal pages, the admin panel, and DB-driven content stay German-only.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 21:51:32 +02:00
Maaxxs
ca4d3a2079 Swap hero photo so the header needs no background trick at all
New hero (dual subwoofers + purple-lit amp panels) is dark enough
top-to-bottom that the transparent header's white text/icons read
cleanly without any pill or backing behind the logo - removed that
workaround entirely. The old hero photo moves into the "Einblicke"
gallery grid instead of being dropped.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 19:07:42 +02:00
Maaxxs
52bfd3791b Remove header contact bar, merge header with hero on the homepage
Drops the phone/WhatsApp/shop row that sat above the main navbar row
(still reachable via the fullscreen menu). On the homepage, the header
now starts fully transparent - merged with the hero image, icons in
white - and only becomes the opaque bar once the user scrolls past a
small threshold. Other pages keep the normal opaque header throughout,
since they don't have a hero to merge with.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 18:52:40 +02:00
Maaxxs
9351869e3f Tone down the YouTube section's fade to a thin soft edge
The 12% fade zone from the previous commit looked like a smeared band
rather than a subtle transition. Narrowed it to 3%.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 18:35:45 +02:00
Maaxxs
59e9468d23 Fade the YouTube section's black background in/out instead of a hard cut
Replaces the flat bg-neutral-950 with a gradient that's transparent at
the top/bottom edges and solid black through the middle, so the
section blends into the surrounding page background instead of
starting/ending abruptly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 18:29:07 +02:00
Maaxxs
b6909e756c Redesign navbar mobile menu and rework site color palette
Swaps navbar layout (theme toggle left, nav links right), replaces the
mobile dropdown with a fullscreen overlay whose items fly in top-to-bottom,
and renames the site-wide "slate" gray to "neutral" to remove a blue
undertone that clashed with the brand green. Also converts the flat
saturated-green YouTube and stats sections into dark backgrounds with
green used only as an accent, matching typical premium car-audio branding.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 16:21:48 +02:00
Maaxxs
95764039c7 Add admin-configurable website settings and VIN field to contact form
Adds a Website settings tab (hero image, phone, WhatsApp, email) that
feeds the navbar, footer and contact page via a new SiteSettingsContext,
redesigns the navbar with a bigger centered logo plus phone/WhatsApp/shop
links, and adds a VIN/chassis-number field to the contact form, admin
inbox and notification email.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 15:28:11 +02:00
Maaxxs
f3ab7d0816 Initial commit: HifiPlanet Car-Hifi Shop (Frontend + Backend)
React/Vite Frontend (hifi-src) + PHP/MariaDB Backend (hifi/api) fuer
den Car-Hifi Umbau-Shop HifiPlanet in Amorbach, inkl. Admin-Panel,
2FA, Wartungsmodus, Cookie-Consent und rechtlichen Pflichtseiten.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-05 13:37:06 +02:00