A sleek, high-performance personal portfolio website built with React 19, Vite, and Tailwind CSS.
This repository contains the source code for the personal portfolio of Pragathi Jayasinghe — an undergraduate software engineer specializing in frontend development, backend architecture, and modern web applications.
Designed with a dark glassmorphic aesthetic, custom animated SVG borders, floating particle physics, and smooth micro-interactions to create a memorable first impression.
- 🎨 Modern Dark & Glassmorphism UI: Built with custom HSL/RGB palettes, dark surface depths, backdrop blurs, and vibrant teal accent glows.
- ⚡ Ultra-Fast Build & HMR: Powered by Vite and React 19 for instantaneous hot-module reloading and optimized production bundles.
- 📱 Fully Responsive: Pixel-perfect on all screen sizes (mobile, tablet, desktop) with a smooth slide-out navigation menu.
- 🧩 Categorized Technical Skills: Showcases Frontend, Backend, and Tools & DevOps competencies with interactive badges (no arbitrary percentage bars).
- 🚀 Featured Projects Showcase: Rich project cards displaying computer vision / robotics (SortMaster), full-stack apps, tags, and direct repository links.
- 📬 Functional Contact Form: Fully integrated with EmailJS for instant client-side message delivery directly to your inbox without requiring a backend server.
- ✨ Custom SVG Animations: Dynamic animated SVG border tracing button effects and smooth drift particle effects.
| Category | Technologies |
|---|---|
| Frontend Core | React 19, JavaScript (ES6+), HTML5, CSS3 |
| Styling & Design | Tailwind CSS v4, Vanilla CSS Design Tokens, Glassmorphism |
| Icons & Media | Lucide React, Custom SVG Icons |
| Email Service | @emailjs/browser |
| Build & Tooling | Vite 8, ESLint, PostCSS |
My-Portfolio/
├── public/
│ ├── favicon.svg # Website favicon
│ ├── hero-bg.jpg # Background hero asset
│ ├── profile-photo.jpeg # Profile image
│ └── projects/ # Project preview mockups & images
│ ├── Project1.jpg # SortMaster project banner
│ ├── project2.svg
│ ├── project3.svg
│ └── project4.svg
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── AnimatedBorderButton.jsx # Interactive SVG border button
│ │ ├── Button.jsx # Styled button component
│ │ └── Icons.jsx # SVG Brand icons (GitHub, LinkedIn, Twitter)
│ ├── layout/ # Page structure components
│ │ ├── Navbar.jsx # Responsive sticky navigation bar
│ │ └── Footer.jsx # Footer with social links & copyright
│ ├── sections/ # Portfolio sections
│ │ ├── Hero.jsx # Dynamic Hero header with floating particles
│ │ ├── About.jsx # Bio & core pillars
│ │ ├── Skills.jsx # Categorized technical competencies
│ │ ├── Projects.jsx # Project gallery & links
│ │ └── Contact.jsx # EmailJS integrated contact form
│ ├── App.jsx # Main application assembly
│ ├── index.css # Design system tokens & utility classes
│ └── main.jsx # React root entry point
├── .env.example # Example environment variables template
├── eslint.config.js # Linting rules
├── index.html # HTML entry with Google Fonts
├── package.json # Project dependencies and scripts
└── vite.config.js # Vite configuration & path aliases
Follow these steps to run the portfolio locally on your machine:
Make sure you have Node.js (version 18 or higher) installed on your system.
git clone https://github.com/PragathiJayasinghe/My-Portfolio.git
cd My-Portfolionpm installCreate a .env.local file in the root directory and add your EmailJS credentials:
VITE_EMAILJS_SERVICE_ID=your_service_id
VITE_EMAILJS_TEMPLATE_ID=your_template_id
VITE_EMAILJS_PUBLIC_KEY=your_public_keynpm run devOpen your browser and navigate to http://localhost:5173.
npm run dev— Starts the local Vite development server with Hot Module Replacement (HMR).npm run build— Compiles and minifies the code for production into thedist/directory.npm run preview— Locally previews the production build output.npm run lint— Runs ESLint to check for code quality and syntax errors.
- Name: Pragathi Jayasinghe
- Email: pragathijayasinghe@gmail.com
- LinkedIn: linkedin.com/in/pragathi-jayasinghe-821662302
- GitHub: github.com/PragathiJayasinghe
This project is open-source and available under the MIT License.