✨ Features: - Enhanced glassmorphism design throughout - Google Drive ROM mirror integration - Professional icon system (no emojis) - GitHub Actions secure deployment - Responsive design for all devices 🔐 Security: - API keys protected via GitHub Secrets - No sensitive data in repository - Automated security scanning 🎯 ROM Mirror: - Real Google Drive file browser - Download tracking and analytics - Beautiful file management interface - Mobile-optimized experience
69 lines
2.3 KiB
JavaScript
69 lines
2.3 KiB
JavaScript
// Enhanced animations and interactions
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Boot sequence animation for tech stack
|
|
function initBootSequence() {
|
|
const techHexagons = document.querySelectorAll('.tech-hexagon');
|
|
techHexagons.forEach((hexagon, index) => {
|
|
hexagon.style.opacity = '0';
|
|
hexagon.style.transform = 'scale(0.8)';
|
|
|
|
setTimeout(() => {
|
|
hexagon.style.transition = 'all 0.3s ease';
|
|
hexagon.style.opacity = '1';
|
|
hexagon.style.transform = 'scale(1)';
|
|
hexagon.classList.add('animate-in');
|
|
}, index * 50);
|
|
});
|
|
}
|
|
|
|
// Observe tech stack section for boot sequence
|
|
const techStackSection = document.getElementById('tech-stack');
|
|
if (techStackSection) {
|
|
const observer = new IntersectionObserver((entries) => {
|
|
entries.forEach(entry => {
|
|
if (entry.isIntersecting) {
|
|
setTimeout(initBootSequence, 300);
|
|
observer.disconnect();
|
|
}
|
|
});
|
|
}, { threshold: 0.3 });
|
|
|
|
observer.observe(techStackSection);
|
|
}
|
|
|
|
// Enhanced hover effects for buttons
|
|
const buttons = document.querySelectorAll('.btn');
|
|
buttons.forEach(btn => {
|
|
btn.addEventListener('mouseenter', function() {
|
|
this.style.transform = 'translateY(-3px)';
|
|
});
|
|
|
|
btn.addEventListener('mouseleave', function() {
|
|
this.style.transform = 'translateY(0)';
|
|
});
|
|
});
|
|
|
|
// Parallax effect for hero section
|
|
window.addEventListener('scroll', function() {
|
|
const scrolled = window.pageYOffset;
|
|
const heroSection = document.getElementById('hero');
|
|
|
|
if (heroSection && scrolled < window.innerHeight) {
|
|
heroSection.style.transform = 'translateY(' + scrolled * 0.5 + 'px)';
|
|
}
|
|
});
|
|
|
|
// Dynamic cursor for tech hexagons
|
|
const techHexagons = document.querySelectorAll('.tech-hexagon');
|
|
techHexagons.forEach(hexagon => {
|
|
hexagon.addEventListener('mouseenter', function() {
|
|
document.body.style.cursor = 'pointer';
|
|
});
|
|
|
|
hexagon.addEventListener('mouseleave', function() {
|
|
document.body.style.cursor = 'default';
|
|
});
|
|
});
|
|
});
|
|
|