Contact.tsx:TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/nicolasgrajaleshoyos/portafolio/llms.txt
Use this file to discover all available pages before exploring further.
Contact component is the fourth and final section of the main portfolio layout (id #contact). It presents a centred call-to-action panel with three social icon links — GitHub, LinkedIn, and a general email icon — followed by a large primary button that opens a Gmail compose window pre-addressed to Nicolas’s email. Two decorative blurred colour blobs frame the panel in the background, and the entire section slides up into view as it enters the viewport.
Props
Contact accepts no external props. All URLs, email addresses, and copy text are hardcoded inside the component.
Behavior
Fade-in via IntersectionObserver
A useRef is bound to the <section> element. An IntersectionObserver with threshold: 0.1 fires once when 10 % of the section is visible, setting isVisible to true and disconnecting immediately. The boolean drives the entrance transition:
Social icon links
Three icon links are rendered in a horizontal flex row. Each link applies the same hover transform:| Icon | URL |
|---|---|
GitHubIcon | https://github.com/nicolasgrajaleshoyos |
LinkedInIcon | https://www.linkedin.com/in/nicolas-grajales-hoyos-12182a353/ |
EmailIcon | https://mail.google.com/mail/u/0/?hl=es#inbox?compose=new |
Email CTA button
The primary “Envíame un Email” button links directly to a Gmail compose URL with the recipient pre-filled:target="_blank" rel="noopener noreferrer") and uses bg-primary with hover:bg-primary-hover plus a lift transform on hover.
Decorative background blobs
Two blurred circular divs create a soft ambient glow behind the content:- Top-left blob:
bg-primary/10 w-64 h-64 rounded-full -translate-x-16 -translate-y-16 blur-3xl - Bottom-right blob:
bg-blue-500/10 w-64 h-64 rounded-full translate-x-16 translate-y-16 blur-3xl
z-10 on the container).
Usage Example
Contact is placed inside <main> in App.tsx, as the last section before <Footer />:
Customization
Changing the GitHub or LinkedIn URL
Changing the GitHub or LinkedIn URL
Find the
<a> tags inside the flex justify-center row and update the href values:Updating the email address
Updating the email address
Change the
to= query parameter on both the email icon link and the CTA button href:Adding a new social link
Adding a new social link
Changing the decorative blob colours
Changing the decorative blob colours
Edit the
bg-* Tailwind classes on the two absolutely-positioned blob divs at the top of the section’s JSX:Updating the section heading and body text
Updating the section heading and body text
The heading and paragraph text are hardcoded strings. Edit them directly in