Buttons Fancy Stable
RainbowButton
Animated button with a rainbow gradient border effect
Preview
svelte
<script lang="ts">
import { RainbowButton } from 'fancy-ui-svelte';
</script>
<RainbowButton />Installation
pnpm add fancy-ui-svelte
import { RainbowButton } from 'fancy-ui-svelte'
Usage
svelte
<script lang="ts">
import { RainbowButton } from 'fancy-ui-svelte';
</script>
<RainbowButton />Examples
Basic Usage
svelte
<script lang="ts">
import { RainbowButton } from "$lib/fancy-ui/rainbow-button";
</script>
<RainbowButton>Get Started</RainbowButton>Animation Speed
Control the animation speed.
svelte
<script lang="ts">
import { RainbowButton } from "$lib/fancy-ui/rainbow-button";
</script>
<div class="flex flex-wrap gap-4">
<div class="flex flex-col items-center gap-2">
<RainbowButton speed={1}>Fast (1s)</RainbowButton>
<span class="text-muted-foreground text-xs">speed=1</span>
</div>
<div class="flex flex-col items-center gap-2">
<RainbowButton speed={2}>Default (2s)</RainbowButton>
<span class="text-muted-foreground text-xs">speed=2</span>
</div>
<div class="flex flex-col items-center gap-2">
<RainbowButton speed={4}>Slow (4s)</RainbowButton>
<span class="text-muted-foreground text-xs">speed=4</span>
</div>
</div>With Icons
Add icons inside the button.
svelte
<script lang="ts">
import { RainbowButton } from "$lib/fancy-ui/rainbow-button";
import ChevronRight from "@lucide/svelte/icons/chevron-right";
import Sparkles from "@lucide/svelte/icons/sparkles";
</script>
<div class="flex flex-wrap gap-4">
<RainbowButton>
<Sparkles class="mr-2 h-4 w-4" />
Magic Button
</RainbowButton>
<RainbowButton>
Continue
<ChevronRight class="ml-2 h-4 w-4" />
</RainbowButton>
</div>Disabled State
svelte
<script lang="ts">
import { RainbowButton } from "$lib/fancy-ui/rainbow-button";
</script>
<RainbowButton disabled>Disabled Button</RainbowButton>As Link
Render as an anchor element.
svelte
<script lang="ts">
import { RainbowButton } from "$lib/fancy-ui/rainbow-button";
</script>
<RainbowButton href="/docs">Go to Docs</RainbowButton>Custom Styling
Override styles with the class prop.
svelte
<script lang="ts">
import { RainbowButton } from "$lib/fancy-ui/rainbow-button";
</script>
<div class="flex flex-wrap gap-4">
<RainbowButton class="h-9 px-4 text-sm">Small</RainbowButton>
<RainbowButton>Default</RainbowButton>
<RainbowButton class="h-14 px-10 text-lg">Large</RainbowButton>
</div>Props
| Prop | Type | Default | Description |
|---|---|---|---|
speed | number | 2 | Animation speed in seconds |
href | string | - | Render as anchor element when provided |
Slots
| Slot | Description |
|---|---|
children | Button label content |
Links
Related components
Gr
GradientButton
Button with a rotating conic-gradient rainbow border effect
Buttons Stable
In
InteractiveHoverButton
Button with interactive hover effect revealing alternate content
Buttons Stable
Ri
RippleButton
Button that spawns an expanding, fading ripple circle centered on the click point, with configurable color and duration
Buttons Stable