Overview
The Contact component provides a clear call-to-action for visitors to reach out to Federico Moretto. It features two primary actions: sending an email and downloading a resume, presented in a centered, visually prominent card design with gradient background. Location:src/components/Main/Contact.jsx
Key Features
Dual CTAs
Email contact and resume download options for different user preferences
Centered Layout
Text-centered design for maximum visual impact and clear messaging
Gradient Background
Diagonal gradient creates visual interest and draws attention
Multi-Paragraph Content
Dynamic description array for flexible messaging
Component Structure
Translation Data Structure
Layout Structure
The container uses
max-w-4xl (narrower than other sections’ max-w-6xl) to create a more focused, intimate feel appropriate for a contact section.Content Sections
Section Header
- Subtitle: “COLLABORATION” (sky blue, small caps)
- Title: “Let’s build something meaningful” (large, white)
Description Paragraphs
Call-to-Action Buttons
Button Container
Email CTA (Primary)
- Styling Details
- Functionality
Color scheme:
- Border:
border-emerald-500/70 - Background:
bg-emerald-500/10 - Text:
text-emerald-200
- Border:
hover:border-emerald-400 - Background:
hover:bg-emerald-400/20
- Mobile:
w-full(full width) - Desktop:
sm:w-auto(content width)
Resume CTA (Secondary)
Resume link details
Resume link details
Google Drive link:
- Hosted on Google Drive for easy updates
- Opens in new tab (
target="_blank") - Security attributes:
rel="noopener noreferrer"
- Slate color scheme (secondary action)
- Same size and shape as primary CTA
- Distinct from primary with muted colors
bi-file-earmark-arrow-downComplete Component Example
Translation Keys
| Key | English | Spanish |
|---|---|---|
contact.subtitle | Collaboration | Colaboración |
contact.title | Let’s build something meaningful | Construyamos algo que valga la pena |
contact.ctaEmail | Send email | Enviar email |
contact.ctaResume | Download resume | Descargar CV |
Styling Details
Gradient Background
The gradient creates a lighter center effect, drawing the eye toward the middle of the card where the title sits.
Visual Hierarchy
Subtitle
- Size:
text-sm(14px) - Color:
text-sky-300 - Transform: Uppercase
- Tracking:
0.3em
Title
- Size:
text-3xl→text-4xl - Color:
text-white - Weight:
font-semibold
Body
- Size:
text-base(16px) - Color:
text-slate-200 - Leading:
leading-relaxed
Button Comparison
| Aspect | Primary (Email) | Secondary (Resume) |
|---|---|---|
| Border | border-emerald-500/70 | border-slate-700 |
| Background | bg-emerald-500/10 | bg-slate-900/70 |
| Text | text-emerald-200 | text-slate-200 |
| Hover Border | hover:border-emerald-400 | hover:border-slate-500 |
| Hover BG | hover:bg-emerald-400/20 | hover:bg-slate-800/80 |
| Icon | bi-envelope-paper-heart | bi-file-earmark-arrow-down |
Responsive Behavior
Accessibility
- Semantic HTML:
<section>landmark element - Heading hierarchy: Proper
<h2>for section title - Link attributes:
target="_blank"for external linkrel="noopener noreferrer"for security
- Icon labels:
aria-hidden="true"on decorative icons - Scroll margin:
scroll-mt-32for anchor navigation - Keyboard navigation: All CTAs fully keyboard accessible
- Color contrast: Text meets WCAG AA standards
- Focus states: Visible focus indicators on interactive elements
Email Integration
- Opens user’s default email client
- Pre-fills “To:” field with contact address
- Platform-agnostic (works on desktop and mobile)
Resume Hosting
The resume is hosted on Google Drive:- Easy to update without code changes
- Reliable hosting and global CDN
- Built-in viewing capabilities
Ensure the Google Drive file sharing permissions are set to “Anyone with the link can view” for public access.
Design Philosophy
Simplicity
Clear, focused design with only essential elements—no distractions from the primary goal
Symmetry
Center-aligned layout creates visual balance and draws attention to CTAs
Hierarchy
Visual weight decreases from title → description → buttons, guiding the user’s eye
Prominence
Emerald primary CTA stands out from slate secondary, clearly indicating preferred action
Integration Example
Customization
To update contact information or resume link:Dependencies
- react-i18next: Translation management
- Tailwind CSS: Utility styling
- Bootstrap Icons: Icon library (bi-envelope-paper-heart, bi-file-earmark-arrow-down)
