A modern, responsive portfolio website built with Astro, React, and TailwindCSS.
- ⚡️ Lightning fast performance with Astro
- 🎨 Beautiful UI with TailwindCSS
- 🌙 Dark mode support
- 📱 Fully responsive design
- 🔍 SEO optimized
- 🎮 Interactive PixelWorld component with weather effects
- 🔊 Dynamic sound generation system
- 📊 Portfolio showcase
- 💼 Services section
- 📝 Skills & Experience
- 📬 Contact form
/
├── public/ # Static assets
│ └── img/px/ # PixelWorld assets (light/dark themes)
├── src/
│ ├── components/ # UI components
│ │ ├── pixelworld/ # PixelWorld components
│ │ │ ├── PixelWorld.tsx
│ │ │ ├── FireAnimation.tsx
│ │ │ ├── WeatherSystem.tsx
│ │ │ └── index.ts
│ │ └── ...
│ ├── content/ # Portfolio content (MD files)
│ ├── data/ # JSON data files
│ ├── layouts/ # Page layouts
│ ├── pages/ # Route pages
│ ├── styles/ # Global styles
│ ├── types/ # TypeScript types
│ ├── utils/ # Utility functions
│ │ └── sounds.ts # Sound generation utilities
│ └── ...
└── package.json
-
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Build for production:
npm run build
An interactive pixel art world featuring:
- Dynamic Weather System: Rain, snow, fog effects with particle animations
- Theme-aware Assets: Automatically switches between light/dark themed pixel art
- Interactive Elements: Clickable animated cat with sound effects
- Fire Animation: Sprite-based campfire with looping animation
- Parallax Effects: Mouse-responsive background layers
- Sound Generation: Procedural audio for interactive elements
import { PixelWorld } from "./components/pixelworld";
<PixelWorld className="border-t border-neutral-800/50" height={320} />;public/img/px/
├── dark/ # Dark theme assets
│ ├── sky.jpg
│ ├── mountain.png
│ ├── grass.png
│ ├── ground.jpg
│ ├── tree.png
│ └── stone.png
├── light/ # Light theme assets
│ ├── sky.png
│ ├── mountain.png
│ ├── grass.png
│ ├── ground.png
│ ├── tree.png
│ └── stone.png
└── fire/ # Fire animation sprites
├── CampFire1.png
├── CampFire2.png
├── ...
└── fire_spritesheet.png
All content is managed through:
src/data/portfolio.json- Main data filesrc/content/portfolio/- Portfolio case studies (Markdown)
- Colors: Edit
tailwind.config.mjs - Typography: Update fonts in
Layout.astro - Content: Modify
portfolio.json - PixelWorld:
- Replace assets in
public/img/px/ - Modify weather effects in
WeatherSystem.tsx - Customize sounds in
utils/sounds.ts - Adjust animations in CSS files
- Replace assets in
/- Homepage/portfolio- Work showcase/skills- Skills & expertise/services- Services offered/about- About information/contact- Contact form/styleguide- Component library (hidden)
