A professional personal portfolio built with a focus on high performance, clean aesthetics, and interactive user experience. Features a dynamic 3D background, smooth animations, and a fully responsive design.
Live Site: dannyphamv.com
- Dynamic 3D Background - WebGL-powered cloud animation using Vanta.js
- Dark/Light Theme - Smooth theme switching with instant background updates
- Scroll Animations - Intersection Observer-based reveal effects
- Typewriter Effect - Automated typing animation for the headline
- Scroll Progress Bar - Visual indicator of reading progress
- Fully Responsive - Optimized for all screen sizes and devices
- Performance Optimized - Efficient DOM manipulation and optimized resize handlers
- HTML5 - Semantic markup for accessibility
- CSS3 - Custom styling with CSS variables for theming
- JavaScript (ES6+) - Interactive features and animations
- Simple.css - Lightweight CSS framework for clean, readable design
- Vanta.js - WebGL 3D background effects
- Three.js - 3D graphics rendering engine
- Font Awesome 7 - Professional vector icons
- GitHub Pages - Automated deployment via GitHub Actions
- Custom Domain - Configured with CNAME for dannyphamv.com
.
├── index.html # Main HTML structure
├── custom.css # Custom styles and theme variables
├── script.js # Interactive features and animations
├── CNAME # Custom domain configuration
├── sitemap.xml # SEO sitemap
├── LICENSE # MIT License
- Clone the repository:
git clone https://github.com/dannyphamv/website.git
cd website- Open
index.htmlin your browser or use a local server:
# Using Python 3
python -m http.server 8000
# Using Node.js
npx http-server- Navigate to
http://localhost:8000in your browser
The site automatically deploys to GitHub Pages when changes are pushed to the main branch via GitHub Actions.
Edit the CSS variables in custom.css:
[data-theme="light"] {
--bg: #fff;
--accent: #0d47a1;
/* ... */
}
[data-theme="dark"] {
--bg: #212121;
--accent: #ffb300;
/* ... */
}Modify the cloud settings in script.js:
const vantaOptions = {
backgroundColor: isDark ? 0x212121 : 0xffffff,
skyColor: isDark ? 0x2b2b2b : 0x68b2ff,
cloudColor: isDark ? 0x444444 : 0xadc1de,
speed: 1.0
};Change the typewriter text in script.js:
const text = "Your custom text here";- Optimized Theme Switching - Uses
.setOptions()to update Vanta.js colors without recreation - Efficient Animations -
will-changeproperty for smooth transitions - Lazy Loading - Intersection Observer for scroll-reveal animations
- Debounced Resize - Optimized window resize handler
This project is licensed under the MIT License - see the LICENSE file for details.
- Simple.css - Minimal CSS framework
- Vanta.js - Animated backgrounds
- Font Awesome - Icon library
