Overview
TheIntroCard component is the primary introduction section of your portfolio, prominently displayed in the top-left of the homepage. It presents your name, a list of short introduction statements, and icon buttons linking to your social media profiles.
Location
Source:src/components/sections/IntroCard.astro
Purpose
This component serves as the first impression for visitors to your portfolio. It:- Displays your name prominently
- Lists key facts about yourself in a concise, scannable format
- Provides quick access to your social profiles (GitHub, LinkedIn, Twitter, etc.)
- Shows an optional profile image on larger screens
Data Source
The component pulls data from thePROFILE object defined in src/content/profileData.ts:
PROFILE.name- Your full namePROFILE.shortIntros- Array of short introduction statements (supports HTML)PROFILE.links- Object containing URLs for social profiles
Usage
The component is used insrc/pages/index.astro wrapped in a Card:
Customization
Adding Introduction Statements
Edit theshortIntros array in src/content/profileData.ts:
The component automatically adds a line break when it reaches the middle of the array (for even-numbered arrays), creating visual separation.
Configuring Social Links
The component conditionally renders social media buttons based on which links are defined inPROFILE.links:
- GitHub (required)
- Email (required)
- Bluesky
- Goodreads
Profile Image
The component displays a profile image on large screens:/public/myprofile.webp with your own profile photo.
Styling
The component includes custom styles for links within intro statements:- Links are styled with your primary color and underline
- Hover effect increases underline thickness and changes color
- Smooth transitions for better UX
Accessibility Features
- All social media buttons include
aria-labelattributes - Screen reader-only text using
sr-onlyclass - Semantic HTML with proper heading hierarchy
- Alt text for profile image
Animation
The component uses theanimate-appear class for a fade-in entrance animation when the page loads.