Skip to content

Header

The header is the primary navigation element of the tinnitus information site. It stays fixed at the top of the viewport across all pages and adapts between a horizontal desktop layout and a compact mobile layout with a full-screen overlay menu. The header provides access to the four main site sections, a search function, and a language switcher.

This component uses naluma design system tokens — Literata for the logo, Plus Jakarta Sans for navigation, burnt sienna primary palette.

BEM class: .tinnitus-header



PropertyValue
Height64px
Background
#FFFFFF
Positionsticky, top: 0
z-index100
Padding0 24px
PropertyValue
Text”Naluma”
Font familyLiterata, Georgia, serif (--primitive-font-family-heading)
Font size24px
Font weight700
Color
#A55838 (--semantic-color-action-primary)
PropertyStateValue
Font sizeAll16px
Font weightAll600
ColorDefault
#3D2E2A (--semantic-color-text-primary)
ColorHover
#A55838 (--semantic-color-action-primary)
UnderlineDefaultNone
UnderlineHover2px solid #A55838
Items“Topics”, “Research”, “About”, “Contact”
Nav gap28px
PropertyValue
Size36 x 36px
IconMagnifying glass, 20px, currentColor (resolves to #3D2E2A)
BackgroundTransparent (hover: #FBFAF1, --semantic-color-surface-primary)
Border radius6px
PropertyValue
Text”DE | EN”
Font size14px
Active language weight700
Active language color
#3D2E2A (--semantic-color-text-primary)
Inactive color
#7A6560 (--semantic-color-text-secondary)

PropertyValue
Height58px
Background
#FFFFFF
Padding0 16px
LayoutHamburger (left), logo (centered), search (right)
PropertyValue
Size36 x 36px
IconThree horizontal lines, 22px, currentColor (resolves to #3D2E2A), 2px weight
BackgroundTransparent
PropertyValue
Font size20px
AlignmentCentered horizontally via absolute positioning

When the hamburger is tapped, a full-screen white overlay slides in over the page content.

PropertyValue
Background
#FFFFFF
Positionfixed, full viewport
z-index200
PropertyValue
Height58px (matches mobile header)
ContentLogo (left), close button (right)
Close iconX mark, 22px, currentColor (resolves to #3D2E2A), 2px weight
PropertyValue
Font size18px
Font weight600
Color
#3D2E2A (--semantic-color-text-primary)
Hover color
#A55838 (--semantic-color-action-primary)
LayoutStacked vertically, full width
Padding14px 0 per link
Separator1px solid #F9DFAE (--semantic-color-border-subtle) between each link

The language switcher appears at the bottom of the overlay, matching the desktop styling.


ClassElementPurpose
.tinnitus-headerBlockHeader container
__logoChild”Naluma” text link
__navChildDesktop navigation container
__linkChildIndividual nav link
__actionsChildRight-side action group (search + lang)
__icon-btnChildIcon button (search, hamburger, close)
__hamburgerModifierHamburger menu button (mobile)
__langChildLanguage switcher text
__lang-activeChildCurrently active language
__overlayChildFull-screen mobile menu overlay
__overlay-topChildOverlay top bar with logo and close button
__overlay-navChildStacked navigation links in overlay
__overlay-linkChildIndividual link in overlay nav
__overlay-footerChildBottom section of overlay (language switcher)
__closeModifierClose button in overlay

  • The header is sticky. It uses position: sticky; top: 0 on desktop and position: fixed for the mobile overlay. Ensure subsequent content accounts for the header height (64px desktop, 58px mobile) so nothing is hidden behind it.
  • Mobile overlay requires JavaScript. The hamburger button toggles the overlay visibility. Implement this with a simple class toggle (e.g., tinnitus-header__overlay--open) rather than inline styles, so the transition can be animated via CSS.
  • Include a skip-to-content link. For accessibility, add a visually hidden “Skip to content” link as the first focusable element inside the header. It should become visible on keyboard focus and jump to the main content landmark.
  • Logo always links to home. Both the desktop and mobile logo should point to the site root (/). In the overlay, the logo remains in the top bar so users can navigate home without closing the menu.
  • Language switcher is presentational for now. The DE/EN toggle does not currently trigger translation. Render it as a <span> or <button> depending on whether client-side locale switching is wired up. When active, bold the current language.
  • Search opens a separate search view. The search icon button navigates to or opens a dedicated search page/modal — it does not expand an inline search input inside the header.