Skip to content

Footer

The footer is a full-width organism that closes every page on the tinnitus information site. It uses a dark background (#2A2220, --semantic-color-footer-surface) with a breadcrumb bar at the top, four content columns — topics, legal, newsletter, and language — and a copyright bar at the bottom. The breadcrumb and copyright bars are each separated by a thin border line. On smaller viewports the layout wraps to a 2x2 grid (tablet) and then collapses to a single stacked column (mobile), where the topics and legal sections become accordions to reduce scroll depth.

This component uses naluma design system tokens (Plus Jakarta Sans font, warm earth palette).

BEM class: .tinnitus-footer



PropertyValue
Background
#2A2220 (--semantic-color-footer-surface)
Padding40px 32px 0
Font familyPlus Jakarta Sans, system-ui, sans-serif
Full widthYes — spans the entire viewport

PropertyValue
Border bottom1px solid var(--semantic-color-footer-border)
Padding bottom20px
Margin bottom32px
Font size14px
Link color
#B09A90 (--semantic-color-footer-text-muted)
Current page color
#FBFAF1 (--semantic-color-footer-text)
Separator» (Rank Math default)
Text alignLeft
Generated byRank Math SEO plugin (rank-math-breadcrumb class)

The breadcrumb bar sits at the top of the footer content area, separated from the column layout below by a thin border-bottom line. It mirrors the copyright bar’s visual treatment (same border color, same padding/margin values) but is left-aligned with the border on the bottom edge. In production, the breadcrumb markup is generated by the Rank Math SEO plugin.


The footer uses a horizontal flex row on desktop. On tablet viewports the columns wrap into a 2x2 grid, and on mobile they stack into a single column.

BreakpointLayoutColumn widthGap
Desktop (> 960px)Flex row (no wrap)Fixed per column (see below)32px
Tablet (600-960px)Flex wrap, 2x2 grid50% minus gap32px
Mobile (< 600px)Flex column100%24px
ColumnWidth
Topics240px
Legal160px
Newsletter280px
Language120px

All four columns share the same heading style.

PropertyValue
Font size14px
Font weight600
Text transformUppercase
Letter spacing0.05em
Color
#B09A90 (--semantic-color-footer-text-muted)
Margin bottom16px

Used in the Topics and Legal columns.

PropertyStateValue
Font sizeAll14px
Font weightAll400
ColorDefault
#FBFAF1 (--semantic-color-footer-text)
ColorHover
#FFFFFF
Line heightAll1.4
List gapAll10px

Five topic links with tinnitus-related labels: Understanding Tinnitus, Sound Therapy, Cognitive Behavioral Therapy, Sleep & Tinnitus, Latest Research.

Three links: Privacy Policy, Imprint, Terms of Use.


ElementPropertyValue
DescriptionFont size14px
DescriptionColor
#B09A90 (--semantic-color-footer-text-muted)
DescriptionMargin bottom12px
InputBackgroundrgba(255, 255, 255, 0.08)
InputBorder1px solid rgba(255, 255, 255, 0.15)
InputText color
#FBFAF1 (--semantic-color-footer-text)
InputPlaceholder color
#B09A90 (--semantic-color-footer-text-muted)
InputBorder radius6px
InputPadding8px 12px
ButtonBackground
#A55838 (--semantic-color-action-primary)
ButtonHover bg
#914D31 (--semantic-color-action-primary-hover)
ButtonColor#FFFFFF
ButtonFont weight600
ButtonBorder radius6px

The form uses a horizontal flex layout on desktop/tablet. On mobile, input and button stack vertically with the button at full width.


ElementPropertyValue
Inactive linkColor
#B09A90 (--semantic-color-footer-text-muted)
Inactive linkFont weight500
Active linkColor
#FFFFFF
Active linkFont weight600
SeparatorColor
#B09A90 (--semantic-color-footer-text-muted)
SeparatorCharacter/

The toggle renders as two text links separated by a slash. The active language is highlighted in white; the inactive language uses the muted column-header color. Selecting the inactive language triggers a full page reload to the localized URL.


PropertyValue
Border top1px solid rgba(255, 255, 255, 0.1)
Margin top32px
Padding20px 0
Font size13px
Color
#FBFAF1 (--semantic-color-footer-text)
Text alignCenter
Content”© 2026 Naluma. All rights reserved.” (dynamic year in production)

ClassElementPurpose
.tinnitus-footerBlockFull-width footer container
__columnsContainerFlex row holding the four columns
__columnContainerIndividual column wrapper
__column--topicsModifierTopics column (240px)
__column--legalModifierLegal column (160px)
__column--newsletterModifierNewsletter column (280px)
__column--languageModifierLanguage column (120px)
__breadcrumb-barChildTop bar with breadcrumb navigation and border separator
__headingChildColumn header text
__linksChildUnordered link list
__linkChildIndividual footer link
__newsletter-descriptionChildNewsletter intro text
__newsletter-formChildInput + button flex container
__newsletter-inputChildEmail input field
__newsletter-buttonChildSubscribe button
__lang-toggleChildLanguage switch container
__langChildLanguage link (DE or EN)
__lang--activeModifierCurrently selected language
__lang-separatorChildSlash between language options
__copyright-barChildBottom bar with border separator
__copyrightChildCopyright text
__accordion-headerChildMobile: tappable header row with expand icon
__accordion-iconChildMobile: plus/minus indicator

  • Accordion behavior on mobile. The Topics and Legal columns collapse behind tap-to-expand headers on viewports below 600px. The Newsletter and Language columns remain always visible since their content is short and actionable. Use + for collapsed state and - for expanded. Only one section needs to be open at a time (exclusive accordion).
  • Newsletter form validation. The email input should validate on submit using the browser’s native type="email" constraint. On successful submission, replace the form with a confirmation message (“Check your inbox!”) rather than navigating away. Server-side validation is also required.
  • Language toggle triggers a full reload. The DE/EN toggle is not a client-side translation switch — it links to the localized version of the current page (e.g., /de/schalltherapie vs /en/sound-therapy). The active language is determined from the current URL path prefix.
  • Breadcrumb bar is conditionally rendered. The breadcrumb markup is generated by Rank Math SEO. The footer template should only render the __breadcrumb-bar wrapper when Rank Math provides output. On pages without a breadcrumb trail (e.g., the homepage), the bar should be omitted entirely rather than shown empty.
  • Copyright year should be dynamic. Use server-side or build-time logic to render the current year rather than hardcoding “2024”.
  • Dark background requires sufficient contrast. All text in the footer must meet WCAG AA contrast against #2A2220 (--semantic-color-footer-surface). The current palette achieves this: #FBFAF1 on #2A2220 ≈ 14:1 (AAA), #B09A90 on #2A2220 ≈ 5.84:1 (AA for all text sizes). Copyright text uses #FBFAF1 for the highest legibility at 13px regular weight.