Skip to main content

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 280px
css
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

When hovering over a portfolio item:
  1. Card lifts up 5px using translateY(-5px)
  2. Shadow appears with blue tint and 20% opacity
  3. Border color changes to accent color (blue)
  4. Image scales up to 105% size
  5. 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

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%