Overview
TheFooter component displays application information, contact details, developer attribution, and copyright notice at the bottom of each page. It supports internationalization and dark mode, with a responsive layout that adapts to different screen sizes.
Props
The current locale for translations (e.g., ‘en’, ‘es’, ‘hi’, ‘ar’)
Key Features
- Internationalization: Uses translation system via
getPageTranslations - Dark Mode Support: Automatic dark mode styling with Tailwind classes
- Responsive Layout: Stacks vertically on mobile, horizontal on desktop
- Dynamic Copyright Year: Automatically displays the current year
- Contact Information: Includes email link with pre-filled subject
- Developer Attribution: Links to developer’s GitHub profile
- Hover Effects: Interactive link hover states for better UX
Usage Example
Implementation
Translation Keys
The component uses the following translation keys from thefooter namespace:
t.developedBy- Text for developer attribution (e.g., “Developed by”)t.rights- Text for rights statement (e.g., “All rights reserved”)
Layout Structure
Desktop View (md and above)
- Two-column layout with left-aligned contact info and right-aligned attribution
- Maximum width container (max-w-6xl) centered on the page
Mobile View
- Single-column stacked layout
- Centered alignment for better readability
- Bottom margin spacing between sections
Contact Features
Email Link
The email link includes a pre-filled subject line for convenience:External Links
Developer GitHub link opens in a new tab with proper security:Styling
The Footer uses Tailwind CSS for:- Background: Light gray in light mode, dark gray in dark mode
- Spacing: Vertical padding (py-8) and responsive horizontal padding
- Typography: Different font sizes and weights for hierarchy
- Hover States: Color transitions on link hover
- Margin:
mt-autoto push footer to bottom when used in flex container
Best Practices
-
Use in Flex Container: Place footer inside a flex container with min-h-screen to ensure it stays at the bottom:
- Pass Current Locale: Always pass the current locale for proper translations
- Dark Mode: The footer automatically adapts to the user’s color scheme preference
Dependencies
@/lib/translations- Translation utilities for internationalization
