Overview
The Projects component displays a grid of case study cards showcasing cloud engineering projects. Each card follows a challenge-solution format with technology stack badges.Source Location
/src/components/Projects.astro
Features
- Grid layout of case study cards
- Challenge/Solution format for each project
- Technology stack tags
- Custom icons for different project types
- Staggered reveal animations
- Background decorative elements
- Fully internationalized
Props
No props required. Uses internalcaseStudies array and translation system.
Data Structure
Case Studies Array
Translation key for the case study title
Translation key for the challenge description
Translation key for the solution description
Array of technology names used in the project
Icon identifier: ‘shield’, ‘search’, ‘migrate’, ‘cost’, or ‘document’
Code Example
Available Case Studies
1. Security & Permissions (icon: shield)
- Tech: Azure RBAC, PowerShell
- Focus on access control and security optimization
2. Discovery & Governance (icon: search)
- Tech: Azure Resource Graph, Cloudockit, Governance
- Resource inventory and compliance
3. Migration & Disaster Recovery (icon: migrate)
- Tech: Azure Backup, App Service Cloning, Disaster Recovery
- Cross-region migration projects
4. Cost Optimization (icon: cost)
- Tech: Azure Cost Management, Excel/PowerBI, FinOps
- Financial operations and cost analysis
5. Documentation (icon: document)
- Tech: Technical Writing, Canva, Cloud Adoption Framework (CAF)
- Creating technical documentation and diagrams
Translation Keys
Component Usage
Grid Layout
Background Decoration
Styling
Section Container
- Performance optimized with
content-visibility - Responsive padding:
py-20(mobile) topy-28(desktop) - Positioned relatively for absolute background elements
Reveal Animations
Staggered animations with 120ms delay increments:Performance
- Content visibility optimization
- Minimal layout shifts with intrinsic sizing
- CSS-only background animations
- Efficient grid layout
Accessibility
- Semantic section element with
id="projects" - Proper heading hierarchy
- All case study content is keyboard accessible
- ARIA labels passed to child components
Customization
Adding a New Case Study
- Add entry to the
caseStudiesarray:
- Add translations in your i18n files:
Changing Grid Layout
Modify the grid classes:Related Components
- CaseStudyCard - Child component rendering individual cards
- Skills - Complements projects by showing technical capabilities
- About - Provides professional context for projects