Portfolio Section Component
The portfolio section displays project cards in a responsive grid layout with hover effects, overlay animations, and category badges.Section Structure
Portfolio Grid Layout
The grid uses CSS Grid with auto-fill to create responsive columns.Grid CSS
css
repeat(auto-fill, minmax(280px, 1fr)) - Auto-fills columns with min width 280pxcss
default:"20px"
Space between grid items
css
default:"1200px"
Maximum container width
Portfolio Item Structure
Each portfolio card contains an image, category badge, and title.HTML Structure
Complete Portfolio Grid Example
Portfolio Item Styling
Card Container
Image Styling
css
default:"cover"
Ensures image fills container while maintaining aspect ratio
css
default:"180px"
Fixed height for consistent card sizing
Info Section
Category Badges
Category badges display the project type with accent color background.Usage
Project Title
Hover Effects
The portfolio items feature multiple hover effects for enhanced interactivity.Card Hover Effect
Hover Effect Breakdown
Hover Effect Breakdown
When hovering over a portfolio item:
- Card lifts up 5px using
translateY(-5px) - Shadow appears with blue tint and 20% opacity
- Border color changes to accent color (blue)
- Image scales up to 105% size
- Overlay appears with gradient from transparent to dark
Image Zoom Effect
Overlay Gradient
Responsive Breakpoints
The grid adapts to different screen sizes.Tablet View (≤ 991px)
Mobile View (≤ 576px)
Accessibility Features
Proper Link Attributes
attribute
default:"_blank"
Opens link in new tab
attribute
default:"noopener noreferrer"
Security best practice for external links
Alt Text for Images
Layout Behavior
Key Features
- CSS Grid layout with auto-fill for responsive columns
- Fixed image heights for consistent card sizing
- Hover animations including lift, zoom, and overlay effects
- Category badges with accent color styling
- Gradient overlay appearing on hover
- Responsive design with three breakpoints
- External link handling with security attributes
- Equal height cards using
height: 100%