'use client'; import { useRef, useEffect } from 'react'; import { FeatureColumn } from '@/components/ui/FeatureColumn'; const features = [ { imagePath: '/icons/brain.svg', title: 'Plus qu\'un simple exécutant', text: 'Grâce à mon background en conception numérique et mobile, je ne me contente pas de coder. J\'apporte un regard critique et constructif sur l\'ensemble de votre projet.', }, { imagePath: '/icons/building.svg', title: 'Des fondations en béton', text: 'Ma spécialité : l\'architecture. Je construis des solutions pérennes, évolutives et capables d\'absorber la croissance de votre produit dans le temps.', }, { imagePath: '/icons/people.svg', title: 'L\'utilisateur au centre', text: 'Le code parfait n\'est rien si le produit ne répond pas à un besoin. Je place l\'expérience utilisateur et la fonctionnalité au cœur de mes développements.', }, ]; export default function FeatureSection() { const sectionRef = useRef(null); useEffect(() => { const section = sectionRef.current; if (!section) return; const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.querySelectorAll('.reveal').forEach((el) => { el.classList.add('visible'); }); observer.unobserve(entry.target); } }); }, { threshold: 0.15 } ); observer.observe(section); return () => observer.disconnect(); }, []); return (
{/* Section label */}
Approche
{features.map((feature, i) => (
{/* Icon container */}
{feature.title}
{feature.text}
))}
); }