The Home page is the primary entry point of Hector Portfolio. It renders a continuous single-scroll layout that takes a visitor from the animated hero banner through an about section and skills showcase all the way down to the contact form — all wrapped in a single dark-mode container. Every major content block is a standalone component, making the page easy to maintain and extend without touching the root file.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/iwinser117/react-portafolio/llms.txt
Use this file to discover all available pages before exploring further.
Route
| Path | Component file |
|---|---|
/ | src/pages/Home.jsx |
Component Composition
Home.jsx renders the following components in order, all nested inside a single wrapper div:
Component descriptions
| Component | Role |
|---|---|
Nav | Navigation bar with anchor links to #habilidades and #contactame, plus route links to /aplicaciones and /blog. Runs window.scrollTo(0, 0) on every location.pathname change and hides/shows itself on scroll. |
Banner | Full-viewport hero section displaying the developer name, title (FullStack Developer - BTP CPI), a short description, and action buttons linking to GitHub, LinkedIn, and the CV. |
Acerca | ”About me” section (#acercademi). Renders the personal introduction paragraph, a personal-projects grid, a certifications paragraph, and a <Certifications /> component. |
Habilidades | Skills section (#habilidades). Shows an auto-scrolling logo carousel for Front-end technologies and a second carousel for Back-end technologies, each preceded by a description paragraph. |
BtnArriba | Floating scroll-to-top button. Appears once the user scrolls past the fold and smoothly returns the page to the top when clicked. |
Formulario | Contact form (#contactame) with fields for name, email, subject, and message. Sends mail via EmailJS. The form is toggled open/closed with a circular button and uses i18n keys from en.json / es.json. |
Aside | Fixed side panel with a quick “Contact Me” shortcut link. |
Footer | Page footer with copyright information and social links. |
Anchor Links
TheNav component provides in-page anchor links and route links. The #acercademi anchor link is not rendered by Nav — it exists as an id on the <Acerca /> section but is not exposed in the navigation bar.
| Link | Type | Target |
|---|---|---|
#habilidades | Anchor | Skills — <Habilidades /> (hidden on /aplicaciones and /blog) |
#contactame | Anchor | Contact — <Formulario /> |
/aplicaciones | Route | Projects page (hidden when already on /aplicaciones) |
/blog | Route | Blog page (hidden when already on /blog) |
Scroll Behaviour
Nav uses a useEffect with location.pathname as a dependency. On every route change it:
- Calls
window.scrollTo(0, 0)to restore the scroll position to the top. - Attaches a
scrollevent listener that hides the navbar (top: -50px) when scrolling down and reveals it (top: 0) when scrolling back up.
Dark Mode Wrapper
The entire page content is wrapped in adiv with the classes data-bs-theme-dark and letra-home. This enables Bootstrap’s dark theme tokens across all child components and applies the global font stack defined in home.css.
CSS
The page imports its base styles from@styles/home.css:
@styles Vite path alias, which maps to src/styles/. It defines the letra-home font class and any page-level layout overrides.
Related Components
Banner
Hero section with developer title, description, and CTA buttons.
Skills
Auto-scrolling logo carousels for Front-end and Back-end technologies.
Certifications
Certifications and education timeline inside the About section.
Nav
Navigation bar with anchor links, route links, and scroll hide/show.