Route
- Path:
/contacto(Spanish) or/en/contacto(English) - File:
src/pages/[...lang]/contacto.astro - Type: Static page with client-side form handling
Page Structure
Single-section layout with contact information and form:src/pages/[...lang]/contacto.astro
Layout Structure
Two-column grid layout:Contact Information
Left column displays company details:Contact Form
Right column contains the contact form:Form Styles
Minimalist design with underline inputs:Form Submission
Client-side form handling with API integration:src/pages/[...lang]/contacto.astro
Lead Service
The form usesLeadService.submitGeneralContact() to submit data:
src/services/api/leads.ts
Hero Animation
Title reveal animation on page load:Mobile Responsiveness
Switches to single-column layout on mobile:Internationalization
Translation keys used:Form States
Default State:- All fields empty
- Submit button enabled
- Button text: “Enviar” / “Send”
- Button disabled
- Button text: “Enviando…”
- Form fields disabled
- Alert with success message
- Form resets to default
- Button re-enabled
- Alert with error message
- Form remains filled
- Button re-enabled
Validation
- All fields are required (HTML5 validation)
- Email field validates email format
- Phone field accepts tel input
- No custom validation messages (browser default)
Related Files
- Service:
src/services/api/leads.ts - Layout:
src/layouts/BaseLayout.astro - Components:
src/components/Navigation.astro,src/components/Footer.astro - i18n:
src/i18n/utils.ts