This component no longer exists. It was in Svelte Animations’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-05 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Shimmer Button
svelte-animations/shimmer-buttonRemovedBlock
A button component with an animated shimmer effect that slides across the button surface.
Install it
npx shadcn@latest add https://sv-animations.vercel.app/r/shimmer-button.jsonSource
1<script lang="ts">2 import { cn } from "$UTILS$";3 import type { Snippet } from "svelte";4 import type { HTMLButtonAttributes } from "svelte/elements";56 interface ShimmerButtonProps extends HTMLButtonAttributes {7 children: Snippet;8 class?: string;9 shimmerColor?: string;10 shimmerSize?: string;11 borderRadius?: string;12 shimmerDuration?: string;13 background?: string;14 }1516 let {17 children,18 class: className,19 shimmerColor = "#ffffff",20 shimmerSize = "0.05em",21 shimmerDuration = "3s",22 borderRadius = "100px",23 background = "rgba(0, 0, 0, 1)",24 ...props25 }: ShimmerButtonProps = $props();26</script>2728<button29 style="30 --spread: 90deg;31 --shimmer-color: {shimmerColor};32 --radius: {borderRadius};33 --speed: {shimmerDuration};34 --cut: {shimmerSize};35 --bg: {background};36 "37 class={cn(38 "group relative z-0 flex cursor-pointer items-center justify-center overflow-hidden [border-radius:var(--radius)] border border-white/10 px-6 py-3 whitespace-nowrap text-white [background:var(--bg)]",39 "transform-gpu transition-transform duration-300 ease-in-out active:translate-y-px",40 className41 )}42 {...props}43>44 <!-- spark container -->45 <div class={cn("-z-30 blur-[2px]", "@container-[size] absolute inset-0 overflow-visible")}>46 <!-- spark -->47 <div48 class="animate-shimmer-slide absolute inset-0 aspect-[1] h-[100cqh] rounded-none [mask:none]"49 >50 <!-- spark before -->51 <div52 class="animate-spin-around absolute -inset-full w-auto [translate:0_0] rotate-0 [background:conic-gradient(from_calc(270deg-(var(--spread)*0.5)),transparent_0,var(--shimmer-color)_var(--spread),transparent_var(--spread))]"53 ></div>54 </div>55 </div>56 {@render children()}5758 <!-- Highlight -->59 <div60 class={cn(61 "absolute inset-0 size-full",6263 "rounded-2xl px-4 py-1.5 text-sm font-medium shadow-[inset_0_-8px_10px_#ffffff1f]",6465 // transition66 "transform-gpu transition-all duration-300 ease-in-out",6768 // on hover69 "group-hover:shadow-[inset_0_-6px_10px_#ffffff3f]",7071 // on click72 "group-active:shadow-[inset_0_-10px_10px_#ffffff3f]"73 )}74 ></div>7576 <!-- backdrop -->77 <div78 class={cn(79 "absolute inset-(--cut) -z-20 [border-radius:var(--radius)] [background:var(--bg)]"80 )}81 ></div>82</button>
