diff --git a/themes/swissfini/assets/css/base/_variables.css b/themes/swissfini/assets/css/base/_variables.css index 35e6fda..0498ad3 100644 --- a/themes/swissfini/assets/css/base/_variables.css +++ b/themes/swissfini/assets/css/base/_variables.css @@ -150,6 +150,19 @@ /* Article Width */ --article-width: min(var(--reading-width), 100%); + /* ======================================== + BREAKPOINTS (Reference Only) + NOTE: CSS custom properties cannot be used in @media queries. + These values are documented here for consistency across the codebase. + + Mobile: < 768px (hamburger nav, stacked layouts) + Tablet: 768px - 1024px + Desktop: > 1024px + Large: > 1200px + + Extra small: < 480px (additional mobile refinements) + ======================================== */ + /* ======================================== BORDERS & EFFECTS ======================================== */ diff --git a/themes/swissfini/assets/css/components/_article.css b/themes/swissfini/assets/css/components/_article.css index e55870b..4d34ccb 100644 --- a/themes/swissfini/assets/css/components/_article.css +++ b/themes/swissfini/assets/css/components/_article.css @@ -31,7 +31,8 @@ } .article-title { - font-size: clamp(var(--font-size-2xl), 5vw, var(--font-size-4xl)); + /* Scales from 1.5rem (24px) to 3rem (48px) - works correctly at 320px viewport */ + font-size: clamp(1.5rem, 5vw + 1rem, var(--font-size-4xl)); line-height: 1.1; margin-bottom: var(--space-4); letter-spacing: var(--letter-spacing-tighter); diff --git a/themes/swissfini/assets/css/components/_header.css b/themes/swissfini/assets/css/components/_header.css index 0b905b8..f78d5c6 100644 --- a/themes/swissfini/assets/css/components/_header.css +++ b/themes/swissfini/assets/css/components/_header.css @@ -112,6 +112,10 @@ padding: var(--space-2) var(--space-1); position: relative; transition: var(--transition-colors); + /* WCAG 2.5.5 - Minimum touch target 44x44px */ + min-height: 44px; + display: inline-flex; + align-items: center; } .nav-link::after { @@ -250,9 +254,27 @@ display: block; padding: var(--space-3) var(--space-4); font-size: var(--font-size-base); + min-height: 44px; } .site-tagline { display: none; } } + +/* ======================================== + Reduced Motion + ======================================== */ + +@media (prefers-reduced-motion: reduce) { + .site-header, + .logo-mark, + .nav-link::after, + .main-nav, + .nav-toggle-icon, + .nav-toggle-icon::before, + .nav-toggle-icon::after { + transition: none !important; + animation: none !important; + } +}