"use client"; import React from "react"; import { motion, useInView } from "framer-motion"; import { useRef } from "react"; import { ScrollReveal } from "@/components/animation/ScrollReveal"; import { SpotlightCard } from "@/components/animation/SpotlightCard"; const metrics = [ { label: "Performance", value: 98, suffix: "/100", color: "#8b5cf6" }, { label: "Accessibility", value: 100, suffix: "/100", color: "#d946ef" }, { label: "SEO", value: 100, suffix: "/100", color: "#06b6d4" }, { label: "Best Practices", value: 100, suffix: "/100", color: "#10b981" }, ]; function MetricCard({ metric, index }: { metric: typeof metrics[0]; index: number }) { const ref = useRef(null); const isInView = useInView(ref, { once: true, margin: "-100px" }); return ( {metric.value} {metric.label} {metric.suffix} ); } export function PerformanceMetrics() { const containerRef = useRef(null); return ( Performance Lighthouse-grade quality Optimized for speed, accessibility, SEO, and best practices across every page. {metrics.map((metric, index) => ( ))} Images are optimized and lazy-loaded. Components are built for reuse and clean architecture. ); }
{metric.label}
{metric.suffix}
Performance
Optimized for speed, accessibility, SEO, and best practices across every page.
Images are optimized and lazy-loaded. Components are built for reuse and clean architecture.