From 42c0cf0f46f99d6b0586ca2d6740cac3c2420f2a Mon Sep 17 00:00:00 2001 From: belviskhoremk Date: Tue, 4 Aug 2026 00:26:35 +0000 Subject: [PATCH] Redesign footer to fix layout and add visual hierarchy The old flex layout with justify-content: space-between pushed its two children to the far edges on wide screens, leaving a large dead void in the middle. Replaced with a centered, max-width three-column grid (brand, contact, navigate) with a script wordmark, gold section labels, a divider separating it from the banner above, and a copyright line. --- src/components/Footer.module.css | 70 +++++++++++++++++++++++++++++--- src/components/Footer.test.tsx | 2 +- src/components/Footer.tsx | 33 ++++++++++----- 3 files changed, 89 insertions(+), 16 deletions(-) diff --git a/src/components/Footer.module.css b/src/components/Footer.module.css index da35c3a..c1b0205 100644 --- a/src/components/Footer.module.css +++ b/src/components/Footer.module.css @@ -1,13 +1,9 @@ .footer { background: var(--color-charcoal); color: var(--color-cream); - padding: var(--space-xl) var(--space-lg); - display: flex; - flex-wrap: wrap; - justify-content: space-between; - gap: var(--space-lg); font-family: var(--font-serif); font-size: 0.85rem; + border-top: 1px solid rgba(176, 141, 87, 0.35); } .footer a { @@ -15,10 +11,74 @@ text-decoration: none; } +.footer a:hover { + color: var(--color-gold); +} + +.inner { + max-width: 1100px; + margin: 0 auto; + padding: var(--space-xl) var(--space-lg) var(--space-lg); + display: grid; + grid-template-columns: 1.4fr 1fr 1fr; + gap: var(--space-xl); +} + +.wordmark { + font-family: var(--font-script); + font-size: 1.7rem; + margin: 0 0 0.35rem; +} + +.tagline { + font-size: 0.75rem; + letter-spacing: 1px; + color: rgba(247, 243, 236, 0.6); + margin: 0; +} + +.columnTitle { + font-size: 0.7rem; + letter-spacing: 2px; + text-transform: uppercase; + color: var(--color-gold); + margin: 0 0 var(--space-sm); +} + +.column p, +.column a { + display: block; + margin: 0 0 0.4rem; +} + .links { display: flex; flex-direction: column; gap: var(--space-sm); list-style: none; padding: 0; + margin: 0; +} + +.copyright { + max-width: 1100px; + margin: 0 auto; + padding: var(--space-md) var(--space-lg) var(--space-lg); + border-top: 1px solid rgba(247, 243, 236, 0.12); + font-size: 0.7rem; + letter-spacing: 0.5px; + color: rgba(247, 243, 236, 0.5); + text-align: center; +} + +@media (max-width: 640px) { + .inner { + grid-template-columns: 1fr; + gap: var(--space-lg); + text-align: center; + } + + .links { + align-items: center; + } } diff --git a/src/components/Footer.test.tsx b/src/components/Footer.test.tsx index b6f862b..8b1e26c 100644 --- a/src/components/Footer.test.tsx +++ b/src/components/Footer.test.tsx @@ -6,7 +6,7 @@ import Footer from './Footer' describe('Footer', () => { it('renders contact info and quick links', () => { render(