"use client"; import { motion, useReducedMotion } from "framer-motion"; interface LogoProps { variant?: "mark" | "wordmark" | "icon"; size?: "sm" | "md" | "lg" | "xl"; theme?: "dark" | "light" | "accent"; className?: string; showTagline?: boolean; } const sizeMap = { sm: { width: 32, height: 32 }, md: { width: 48, height: 48 }, lg: { width: 64, height: 64 }, xl: { width: 120, height: 80 }, }; export function Logo({ variant = "mark", size = "md", theme = "dark", className = "", showTagline = false, }: Readonly) { const dimensions = sizeMap[size]; const shouldReduceMotion = useReducedMotion(); const colors = { dark: { primary: "#FFFFFF", slash: "#CCFF00", }, light: { primary: "#0A0A0A", slash: "#0A0A0A", }, accent: { primary: "#0A0A0A", slash: "rgba(0,0,0,.3)", }, }; const c = colors[theme]; const hoverMotion = shouldReduceMotion ? undefined : { scale: 1.03, rotate: -2, }; const hoverTransition = { type: "spring" as const, stiffness: 280, damping: 18, }; if (variant === "icon") { return ( Evandro icon logo ); } if (variant === "wordmark") { return ( Evandro wordmark logo
evandro.dev .br
{showTagline && (
DESENVOLVIMENTO DE SOFTWARE
)}
); } return ( Evandro mark logo ); }