style: drop icon slop, swap primary to caramel, kill particles
CI & Lighthouse / test (push) Has been cancelled

- Remove 8 duplicated generic SVG icons from tech cards
- Switch --color-primary from teal (#1D7874) to gold (#D4A574)
- Remove particle canvas system (~70 lines JS, canvas element, CSS)
- Grain texture + steam now carry atmosphere alone
This commit is contained in:
2026-04-30 13:07:23 -04:00
parent 841794830b
commit f40cf11ef8
5 changed files with 123 additions and 295 deletions
+2 -70
View File
@@ -55,75 +55,8 @@ function initSkillBars() {
skillItems.forEach(item => observer.observe(item));
}
// ===== PARTICLE BACKGROUND =====
function initParticles() {
const canvas = document.getElementById('particles');
if (!canvas) return;
const ctx = canvas.getContext('2d');
let particles = [];
let animationId;
function resize() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
}
class Particle {
constructor() {
this.x = Math.random() * canvas.width;
this.y = Math.random() * canvas.height;
this.vx = (Math.random() - 0.5) * 0.3;
this.vy = (Math.random() - 0.5) * 0.3;
this.radius = Math.random() * 1.5 + 0.5;
this.opacity = Math.random() * 0.3 + 0.1;
}
update() {
this.x += this.vx;
this.y += this.vy;
if (this.x < 0 || this.x > canvas.width) this.vx *= -1;
if (this.y < 0 || this.y > canvas.height) this.vy *= -1;
}
draw() {
ctx.beginPath();
ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2);
ctx.fillStyle = `rgba(111, 78, 55, ${this.opacity})`;
ctx.fill();
}
}
function init() {
resize();
particles = [];
const particleCount = Math.floor((canvas.width * canvas.height) / 15000);
for (let i = 0; i < particleCount; i++) {
particles.push(new Particle());
}
}
function animate() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
particles.forEach(particle => {
particle.update();
particle.draw();
});
animationId = requestAnimationFrame(animate);
}
window.addEventListener('resize', () => {
cancelAnimationFrame(animationId);
init();
animate();
});
init();
animate();
}
// ===== PARTICLE BACKGROUND (removed) =====
// initParticles removed — grain texture + steam carry the atmosphere
// ===== INTERACTIVE TESTIMONIALS =====
function initTestimonials() {
@@ -246,7 +179,6 @@ document.addEventListener('DOMContentLoaded', () => {
initTypewriter();
initScrollProgress();
initSkillBars();
initParticles();
initTestimonials();
initParallax();
initMetricsCounter();