"use client"; import { motion, type Variants } from "motion/react"; import { useReducedMotion } from "@/app/hooks/useReducedMotion"; import type { PortfolioSkillCategory } from "@/lib/portfolio-data"; import { DrawLine } from "./animations/DrawLine"; import { Section } from "./Section"; export default function Skills({ categories, }: { categories: PortfolioSkillCategory[]; }) { const shouldReduceMotion = useReducedMotion(); 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 (
{categories.map((category) => (

{category.category}

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

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