clinicpal / src /components /effects /ambient-background.tsx
Vrda's picture
Deploy ClinIcPal frontend
9bc2f29 verified
'use client';
import { cn } from '@/lib/utils';
export function AmbientBackground() {
return (
<div className="fixed inset-0 -z-10 overflow-hidden">
{/* Base gradient */}
<div
className="absolute inset-0"
style={{
background: 'var(--surface-base)',
}}
/>
{/* Ambient orbs */}
<div
className={cn(
'absolute w-[600px] h-[600px] rounded-full',
'blur-[120px] opacity-60',
'float-slow'
)}
style={{
background: 'var(--ambient-blue)',
top: '10%',
left: '10%',
}}
/>
<div
className={cn(
'absolute w-[500px] h-[500px] rounded-full',
'blur-[100px] opacity-50',
'float-medium'
)}
style={{
background: 'var(--ambient-purple)',
top: '40%',
right: '5%',
animationDelay: '-5s',
}}
/>
<div
className={cn(
'absolute w-[400px] h-[400px] rounded-full',
'blur-[80px] opacity-40',
'float-slow'
)}
style={{
background: 'var(--ambient-pink)',
bottom: '10%',
left: '30%',
animationDelay: '-10s',
}}
/>
<div
className={cn(
'absolute w-[350px] h-[350px] rounded-full',
'blur-[90px] opacity-45',
'float-medium'
)}
style={{
background: 'var(--ambient-cyan)',
top: '60%',
left: '60%',
animationDelay: '-15s',
}}
/>
{/* Subtle noise texture overlay */}
<div
className="absolute inset-0 opacity-[0.015] mix-blend-overlay pointer-events-none"
style={{
backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")`,
}}
/>
</div>
);
}