Overview
The Footer component provides a simple, clean site footer displaying developer credit and copyright information. It features a minimalist design with centered text and a dark color scheme consistent with the portfolio’s overall aesthetic. Location:src/components/Footer/Footer.jsx
Key Features
Minimal Design
Clean, distraction-free footer with only essential information
Responsive Layout
Stacks on mobile, horizontal on desktop for optimal space usage
Dynamic Copyright
Automatically displays current year using JavaScript Date object
Internationalized
Credits and copyright text adapt to selected language
Component Structure
Layout Structure
Footer Container
- Border top:
border-t border-slate-800creates subtle divider from main content - Background:
bg-slate-950/80semi-transparent dark background - Padding:
py-6(1.5rem vertical padding)
Content Container
- Max width:
max-w-6xl(1152px) matches other sections - Layout: Flexbox with responsive direction
- Alignment: Centered on mobile, space-between on desktop
- Typography:
text-xs→text-sm(responsive sizing) - Color:
text-slate-400(muted gray)
Content Elements
Developer Credit
- English: “Developed by Federico Moretto”
- Spanish: “Desarrollado por Federico Moretto”
Copyright Notice
- English: ”© 2026 · All rights reserved”
- Spanish: ”© 2026 · Todos los derechos reservados”
The
new Date().getFullYear() method automatically retrieves the current year, ensuring the copyright date is always up-to-date without manual updates.Translation Keys
| Key | English | Spanish |
|---|---|---|
footer.develop | Developed by Federico Moretto | Desarrollado por Federico Moretto |
footer.rights | All rights reserved | Todos los derechos reservados |
Styling Details
Color Scheme
Background
bg-slate-950/80Very dark gray with 80% opacityBorder
border-slate-800Subtle top border dividerText
text-slate-400Muted gray for unobtrusive textTypography
- Mobile (< 640px)
- Desktop (≥ 640px)
Spacing
Responsive Behavior
Responsive class breakdown
Responsive class breakdown
Mobile (default):
flex-col: Vertical stackingitems-center: Horizontally centeredtext-center: Center-aligned texttext-xs: 12px font sizegap-2: 8px spacing between items
sm:flex-row: Horizontal layoutsm:justify-between: Space between itemssm:text-sm: 14px font size- Text alignment naturally becomes left/right due to flex layout
Accessibility
- Semantic HTML: Proper
<footer>landmark element - Readable text: Sufficient contrast ratio for
text-slate-400on dark background - Font sizing: Minimum 12px text size meets readability standards
- No interactive elements: Pure informational content, no accessibility concerns
Design Philosophy
Minimal Footprint
Small, unobtrusive design doesn’t distract from main content or compete for attention
Professional Polish
Proper footer with credits and copyright adds professional finish to portfolio
Consistent Styling
Matches overall dark theme with slate colors and semi-transparent backgrounds
Future-Proof
Dynamic year calculation eliminates need for annual updates
Complete Component Example
Integration Example
The Footer should be placed outside the
<main> element but inside the root app container for proper semantic HTML structure.Customization
To customize footer text, update the translation files:Adding Links
If you want to add links to social media or other sites:Comparison with Other Portfolio Footers
- Minimal (Current)
- Extended (Alternative)
Pros:
- Clean, uncluttered
- Fast to render
- Easy to maintain
- Focuses on content above
- Limited information
- No social links
- No additional navigation
Performance
- Lightweight: Minimal DOM elements (1 footer, 1 div, 2 paragraphs)
- No external assets: No images or external scripts
- No JavaScript: Static content after initial render
- Fast render: Simple structure renders instantly
Browser Support
- Date.getFullYear(): Supported in all modern browsers and IE 5+
- Flexbox: Supported in all modern browsers
- Tailwind classes: Cross-browser compatible utility classes
Dependencies
- react-i18next: Translation management
- Tailwind CSS: Utility styling
