From d668b1b6a6a5bb6cbdbc56f5c04e39a3a0490011 Mon Sep 17 00:00:00 2001 From: Ronni Baslund Date: Sat, 6 Jun 2026 15:55:35 +0200 Subject: [PATCH] feat(website): responsive / mobile layouts Make the marketing site mobile-friendly across every page and section. Desktop appearance is unchanged; all breakpoint logic targets <=768px. - Fluid section padding via clamp(); equal grids use auto-fit/minmax, asymmetric grids stack to one column via scoped-CSS media queries - Nav: real hamburger menu on mobile (links, lang toggle, login, CTA) - ProductMockup: scales the whole dashboard to fit (zoom) instead of reflowing its internals into a tall stack - Lower oversized heading clamp() minimums so titles no longer overflow at ~390px (hero, page headers, final CTA, brand cover/chapter) - HowItWorks: row-gap when steps stack so node markers clear the text - Compare + partners tables: stacked rows now label each value with its column (Dezky vs hyperscaler / CSP) instead of an ambiguous header - Footer columns, tiers, calculator and tables stack cleanly on mobile --- .../website/components/landing/ComingSoon.vue | 2 +- apps/website/components/landing/Compare.vue | 78 +++++++-- apps/website/components/landing/Container.vue | 2 +- apps/website/components/landing/Faq.vue | 2 +- apps/website/components/landing/FinalCta.vue | 6 +- apps/website/components/landing/Footer.vue | 61 +++++-- apps/website/components/landing/Hero.vue | 8 +- .../website/components/landing/HowItWorks.vue | 13 +- apps/website/components/landing/Nav.vue | 123 +++++++++++++- .../website/components/landing/PageHeader.vue | 4 +- .../components/landing/PartnerCalculator.vue | 30 +++- .../components/landing/PartnerCard.vue | 4 +- apps/website/components/landing/Pricing.vue | 17 +- apps/website/components/landing/Problem.vue | 15 +- .../components/landing/ProductMockup.vue | 61 ++++++- .../components/landing/Sovereignty.vue | 27 +++- apps/website/components/landing/Stack.vue | 27 +++- apps/website/components/landing/Suite.vue | 18 ++- .../website/components/landing/Whitelabel.vue | 17 +- apps/website/pages/about.vue | 15 +- apps/website/pages/brand.vue | 150 +++++++++++++----- apps/website/pages/changelog.vue | 17 +- apps/website/pages/contact.vue | 4 +- apps/website/pages/dpa.vue | 16 +- apps/website/pages/migration.vue | 4 +- apps/website/pages/partners.vue | 97 ++++++++--- apps/website/pages/privacy.vue | 18 ++- apps/website/pages/roadmap.vue | 27 +++- 28 files changed, 721 insertions(+), 142 deletions(-) diff --git a/apps/website/components/landing/ComingSoon.vue b/apps/website/components/landing/ComingSoon.vue index fbcec69..40c7885 100644 --- a/apps/website/components/landing/ComingSoon.vue +++ b/apps/website/components/landing/ComingSoon.vue @@ -13,7 +13,7 @@ const route = useRoute() diff --git a/apps/website/components/landing/Compare.vue b/apps/website/components/landing/Compare.vue index 69eefe5..0aec57b 100644 --- a/apps/website/components/landing/Compare.vue +++ b/apps/website/components/landing/Compare.vue @@ -8,15 +8,15 @@ const copy = useCopy() + + diff --git a/apps/website/components/landing/Container.vue b/apps/website/components/landing/Container.vue index 7a494e3..9e8d8aa 100644 --- a/apps/website/components/landing/Container.vue +++ b/apps/website/components/landing/Container.vue @@ -4,7 +4,7 @@ withDefaults(defineProps<{ pad?: string max?: number }>(), { - pad: '120px 64px', + pad: 'clamp(56px, 8vw, 120px) clamp(20px, 5vw, 64px)', max: 1280, }) diff --git a/apps/website/components/landing/Faq.vue b/apps/website/components/landing/Faq.vue index 22993e1..a6f2dc1 100644 --- a/apps/website/components/landing/Faq.vue +++ b/apps/website/components/landing/Faq.vue @@ -9,7 +9,7 @@ const copy = useCopy() + + diff --git a/apps/website/components/landing/Hero.vue b/apps/website/components/landing/Hero.vue index 2550c28..4918f37 100644 --- a/apps/website/components/landing/Hero.vue +++ b/apps/website/components/landing/Hero.vue @@ -23,8 +23,8 @@ const brush = {