Backgrounds
Animated Spotlight
Animated spotlight effect with customizable gradients and movement.
AnimatedSpotlight creates an animated spotlight effect with customizable gradients and movement.
Usage
Animated spotlight effect
Animated spotlight effect
<template>
<UCard class="relative">
<template #header>
<h2 class="text-xl font-semibold">
Animated spotlight effect
</h2>
</template>
<p class="text-muted mb-4">
Animated spotlight effect
</p>
<MAnimatedSpotlight />
</UCard>
</template>
Examples
Basic Animated Spotlight
Spotlight Search
Focus attention on key elements with our animated spotlight effect that guides users through your interface
<template>
<div class="relative h-96 rounded-xl overflow-hidden border border-default bg-gradient-to-br from-gray-900 via-blue-900 to-purple-900">
<MAnimatedSpotlight
:translate-y="-200"
:width="400"
:height="1000"
class="absolute inset-0"
/>
<div class="relative z-10 h-full flex flex-col items-center justify-center text-center p-6">
<div class="w-20 h-20 rounded-full bg-default/10 backdrop-blur-sm flex items-center justify-center mb-6">
<UIcon
name="i-lucide-search"
class="w-10 h-10 text-white"
/>
</div>
<h3 class="text-3xl font-bold text-white mb-4">
Spotlight Search
</h3>
<p class="text-dimmed max-w-md mb-8">
Focus attention on key elements with our animated spotlight effect that guides users through your interface
</p>
<div class="flex flex-col sm:flex-row gap-4">
<UButton
color="primary"
variant="solid"
size="lg"
>
Try It Now
</UButton>
<UButton
color="neutral"
variant="outline"
size="lg"
>
View Demo
</UButton>
</div>
</div>
</div>
</template>
Customize
Customize
Gradient Firstradial-gradient(68.54% 68.72% at 55.02% 31.46%, hsla(210, 100%, 85%, .08) 0, hsla(210, 100%, 55%, .02) 50%, hsla(210, 100%, 45%, 0) 80%)
Gradient Secondradial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .06) 0, hsla(210, 100%, 55%, .02) 80%, transparent 100%)
Gradient Thirdradial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .04) 0, hsla(210, 100%, 45%, .02) 80%, transparent 100%)
Translate Y-350
Width560
Height1380
Small Width240
Duration7
X Offset100
Props
| Prop | Type | Default | Description |
|---|---|---|---|
gradientFirst | string | 'radial-gradient(68.54% 68.72% at 55.02% 31.46%, hsla(210, 100%, 85%, .08) 0, hsla(210, 100%, 55%, .02) 50%, hsla(210, 100%, 45%, 0) 80%)' | First gradient for the spotlight effect. |
gradientSecond | string | 'radial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .06) 0, hsla(210, 100%, 55%, .02) 80%, transparent 100%)' | Second gradient for the spotlight effect. |
gradientThird | string | 'radial-gradient(50% 50% at 50% 50%, hsla(210, 100%, 85%, .04) 0, hsla(210, 100%, 45%, .02) 80%, transparent 100%)' | Third gradient for the spotlight effect. |
translateY | number | -350 | Vertical translation of the spotlight. |
width | number | 560 | Width of the spotlight in pixels. |
height | number | 1380 | Height of the spotlight in pixels. |
smallWidth | number | 240 | Width of the smaller spotlight elements. |
duration | number | 7 | Duration of the animation in seconds. |
xOffset | number | 100 | Horizontal offset for the animation. |
UI
This component's theme exposes the slots below. Override any of them per instance with the ui prop, or app-wide under ui.animatedSpotlight in app.config.ts.
| Prop | Type | Default | Description |
|---|---|---|---|
ui | object | - | Per-slot classes merged over the theme defaults. |
| Slot | Props | Description |
|---|---|---|
root | - | pointer-events-none absolute inset-0 h-full w-full |
left | - | absolute top-0 left-0 w-screen h-screen z-40 pointer-events-none |
leftFirst | - | absolute top-0 left-0 |
leftSecond | - | absolute top-0 left-0 origin-top-left |
leftThird | - | absolute top-0 left-0 origin-top-left |
right | - | absolute top-0 right-0 w-screen h-screen z-40 pointer-events-none |
rightFirst | - | absolute top-0 right-0 |
rightSecond | - | absolute top-0 right-0 origin-top-right |
rightThird | - | absolute top-0 right-0 origin-top-right |