"use client"; import { motion, type Variants, useReducedMotion } from "framer-motion"; import { usePortfolioData } from "@/lib/usePortfolioData"; import { Section } from "./Section"; import MagneticButton from "./cinematic/MagneticButton"; import { DrawLine } from "./animations/DrawLine"; import { SectionLoading } from "./SectionLoading"; export default function Skills() { const { data, loading, error } = usePortfolioData(); const shouldReduceMotion = useReducedMotion(); if (loading) { return ; } if (error || !data) { return
Error loading core stack
; } const gridVariants: Variants = { hidden: {}, visible: { transition: { delayChildren: 0.06, staggerChildren: 0.08, }, }, }; const cardVariants: Variants = { hidden: shouldReduceMotion ? { opacity: 0 } : { opacity: 0, y: 20, clipPath: "inset(100% 0 0 0)" }, visible: { opacity: 1, y: 0, clipPath: "inset(0% 0 0 0)", transition: shouldReduceMotion ? { duration: 0.25 } : { duration: 0.8, ease: [0.16, 1, 0.3, 1] }, }, }; return (
{data.skills.technical.map((category) => (

{category.category}

Ferramentas que uso para construir com clareza tecnica e ritmo de entrega.

    {category.skills.map((skill) => ( {skill} ))}
))}
); }