Skip to content
Magic UI SolidMagicUI Solid

Magic Card

A spotlight effect that follows your mouse cursor and highlights borders on hover.

Login

Enter your credentials to access your account

@/demos/MagicCardDemo.tsx
import { Button } from '@/components/ui/button'
import { createIsDark } from '@/demos/shared/theme'
import { MagicCard } from '@/registry/magicui/magic-card'
const inputClass = 'h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-none'
export function MagicCardDemo() {
const isDark = createIsDark()
return (
<div class="w-full max-w-sm">
<MagicCard
gradientColor={isDark() ? '#262626' : '#D9D9D955'}
class="rounded-xl"
>
<div class="border-b border-border p-4">
<h3 class="text-lg font-semibold tracking-tight">Login</h3>
<p class="text-sm text-muted-foreground">
Enter your credentials to access your account
</p>
</div>
<form>
<div class="grid gap-4 p-4">
<div class="grid gap-2">
<label class="text-sm leading-none font-medium" for="email">Email</label>
<input id="email" type="email" placeholder="name@example.com" class={inputClass} />
</div>
<div class="grid gap-2">
<label class="text-sm leading-none font-medium" for="password">Password</label>
<input id="password" type="password" class={inputClass} />
</div>
</div>
</form>
<div class="border-t border-border p-4">
<Button class="w-full">Sign In</Button>
</div>
</MagicCard>
</div>
)
}
Terminal window
pnpm dlx shadcn@latest add @magicui-solid/magic-card
Avatar 1

Yeom JinHo

Frontend Developer

Frontend Developer focused on Interactive UI & Performance

I'm passionate about visual presentation and currently focusing on interactive UI.

@/demos/MagicCardDemo2.tsx
import { Button } from '@/components/ui/button'
import { createIsDark } from '@/demos/shared/theme'
import { AvatarCircles } from '@/registry/magicui/avatar-circles'
import { MagicCard } from '@/registry/magicui/magic-card'
export function MagicCardDemo2() {
const isDark = createIsDark()
return (
<div class="w-full max-w-sm">
<MagicCard
mode="orb"
glowFrom={isDark() ? '#ee4f27' : '#E9D5FF'}
glowTo={isDark() ? '#6b21ef' : '#FBCFE8'}
class="rounded-xl"
>
<div class="flex items-center gap-3 border-b border-border p-4">
<AvatarCircles
avatarUrls={[
{
imageUrl: 'https://avatars.githubusercontent.com/u/81306489',
profileUrl: 'https://github.com/Yeom-JinHo',
},
]}
/>
<div class="flex-1">
<h3 class="font-semibold tracking-tight">Yeom JinHo</h3>
<p class="mt-1 text-sm text-muted-foreground">
Frontend Developer
</p>
</div>
</div>
<div class="space-y-2 p-4">
<p class="text-sm font-medium">
Frontend Developer focused on Interactive UI &amp; Performance
</p>
<p class="text-sm/relaxed text-muted-foreground">
I&apos;m passionate about visual presentation and currently focusing
on interactive UI.
</p>
</div>
<div class="border-t border-border p-4">
<a
href="https://github.com/Yeom-JinHo"
target="_blank"
rel="noopener noreferrer"
class="no-underline"
>
<Button class="flex w-full items-center justify-center gap-2">
<svg viewBox="0 0 438.549 438.549" class="size-4">
<path
fill="currentColor"
d="M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"
/>
</svg>
View on GitHub
</Button>
</a>
</div>
</MagicCard>
</div>
)
}
import { MagicCard } from "@/components/magicui/magic-card";
<MagicCard>
<div class="p-4">
<p>Hello World</p>
<span>Hover me</span>
</div>
</MagicCard>
Prop name Type Default Description
children JSX.Element - The content to be rendered inside the card
class string - Additional CSS classes to apply to the card
mode "gradient"/"orb" "gradient" Display mode: gradient or orb effect
gradientSize number 200 Size of the gradient effect
gradientColor string #262626 Color of the gradient effect
gradientOpacity number 0.8 Opacity of the gradient effect
gradientFrom string #9E7AFF Start color of the gradient border
gradientTo string #FE8BBB End color of the gradient border
glowFrom string #ee4f27 Start color of the orb glow effect (orb mode only)
glowTo string #6b21ef End color of the orb glow effect (orb mode only)
glowAngle number 90 Angle of the orb glow gradient (orb mode only)
glowSize number 420 Size of the orb glow effect (orb mode only)
glowBlur number 60 Blur amount of the orb glow effect (orb mode only)
glowOpacity number 0.9 Opacity of the orb glow effect (orb mode only)

Original:

magicui.design/docs/components/magic-card