diff --git a/web/src/components/magicui/magic-card.tsx b/web/src/components/magicui/magic-card.tsx index 990af3e7..6a755f02 100644 --- a/web/src/components/magicui/magic-card.tsx +++ b/web/src/components/magicui/magic-card.tsx @@ -2,9 +2,10 @@ import { motion, useMotionTemplate, useMotionValue } from "motion/react" import type React from "react" -import { useCallback, useEffect, useRef } from "react" +import { useCallback, useEffect, useRef, useState } from "react" import { cn } from "@/lib/utils" +import { useTheme } from "next-themes" interface MagicCardProps { children?: React.ReactNode @@ -28,6 +29,7 @@ export function MagicCard({ const cardRef = useRef(null) const mouseX = useMotionValue(-gradientSize) const mouseY = useMotionValue(-gradientSize) + const handleMouseMove = useCallback( (e: MouseEvent) => { @@ -76,6 +78,21 @@ export function MagicCard({ mouseY.set(-gradientSize) }, [gradientSize, mouseX, mouseY]) + const { theme } = useTheme() // "light" | "dark" + + const [fromColor, setFromColor] = useState(gradientFrom) + const [toColor, setToColor] = useState(gradientTo) + + useEffect(() => { + if (theme === "dark") { + setFromColor("#ffb3c1") // fallback for dark + setToColor("#ff75a0") + } else { + setFromColor("#1e9df1") // fallback for light + setToColor("#8ed0f9") + } + }, [theme]) + return (