ProjectCard Component
The ProjectCard component displays project information in an elegant, interactive card with glassmorphic styling and 3D tilt effects on hover.Overview
Located insrc/components/ProjectCard.tsx, this component features:
- 3D tilt effect on mouse movement
- Glassmorphism design with shimmer effects
- Project image with optional “Coming Soon” overlay
- Customizable color-coded tags
- Multiple action buttons (Live, LinkedIn, GitHub)
- Optional disclaimer section
- Dark/light mode support
Props
The project title displayed prominently on the card.
A brief description of the project. Supports multi-line text.
URL or path to the project thumbnail image. Uses 16:10 aspect ratio.
Array of tag objects. Each tag has
text and color (‘blue’ | ‘green’ | ‘red’ | ‘yellow’).GitHub repository URL. Shows a GitHub button when provided.
Live demo URL. Shows a Visit button with external link icon when provided.
LinkedIn post or article URL. Shows a LinkedIn button when provided.
When
true, blurs the image and shows “Coming Soon” overlay.Additional information or warnings displayed in an amber-colored box below the buttons.
Controls the card’s color scheme.
Type Definitions
Usage
Features
3D Tilt Effect
The card responds to mouse movement with a subtle 3D rotation:The 3D effect resets when the mouse leaves the card area. The rotation is limited to ±3 degrees for a subtle, professional appearance.
Tag System
Tags are color-coded for different technologies or categories:- Dark Mode Colors
- Light Mode Colors
Action Buttons
Up to three types of action buttons can be displayed:Shown when
liveUrl is provided. Opens the live project in a new tab.Shown when
linkedinUrl is provided. Opens the LinkedIn post in a new tab.Shown when
githubUrl is provided. Opens the repository in a new tab.rel="noopener noreferrer" for security.
Coming Soon Overlay
WhencomingSoon={true}:
Disclaimer Box
Optional amber-colored disclaimer section:Glassmorphism Effects
The card includes layered glass effects:- Glass shimmer: Animated overlay for visual depth
- Backdrop blur: Transparent backgrounds with blur
- Z-axis layering: Elements positioned at different depths using
translateZ()
Styling Requirements
Customization Tips
- Adjust tilt sensitivity: Change the multiplier in
ProjectCard.tsx:47-48(currently* 3) - Add more tag colors: Extend the
Tag['color']type and updategetTagStyles() - Change aspect ratio: Modify
aspect-[16/10]inProjectCard.tsx:108 - Update button order: Rearrange the conditional button renders in
ProjectCard.tsx:151-197