Modern CSS Gradient Effects
Animated, mesh, conic and text gradients built from the theme colours.
1Aurora Hover
Northern-lights colour clouds that drift inside a card and brighten when it is hovered. Class: fx-aurora-hover
<div class="d-flex flex-wrap align-items-center justify-content-center gap-3 p-3 h-100" style="min-height:200px">
<div class="card fx-aurora-hover" style="width:15rem">
<div class="card-body">
<h3 class="h6 fw-bold mb-1">Expert agents</h3>
<p class="small text-body-secondary mb-2">We handle the paperwork, so you can focus on planning the move.</p>
<a href="#" class="btn btn-primary btn-sm">Details</a>
</div>
</div>
</div>
/* CSS (already in assets/css/effects.css) */
.fx-aurora-hover { position: relative; isolation: isolate; overflow: hidden; }
.fx-aurora-hover::before {
content: ""; position: absolute; inset: -40%; z-index: -1; pointer-events: none; opacity: .35;
background:
radial-gradient(closest-side at 30% 40%, rgba(var(--wt-primary-rgb), .9), transparent),
radial-gradient(closest-side at 70% 30%, rgba(var(--wt-accent-rgb), .8), transparent),
radial-gradient(closest-side at 55% 70%, rgba(var(--wt-secondary-rgb), .8), transparent);
filter: blur(24px);
transition: opacity .6s ease;
animation: fx-aurora-hover-drift 12s ease-in-out infinite alternate;
}
.fx-aurora-hover:hover::before, .fx-aurora-hover:focus-within::before { opacity: .85; }
@keyframes fx-aurora-hover-drift {
from { transform: translate(-6%, -4%) rotate(0deg); }
to { transform: translate(6%, 5%) rotate(25deg); }
}
@media (prefers-reduced-motion: reduce) {
.fx-aurora-hover, .fx-aurora-hover::before, .fx-aurora-hover::after, .fx-aurora-hover *, .fx-aurora-hover *::before, .fx-aurora-hover *::after { animation: none !important; transition: none !important; }
}2Gradient Shadow
A colourful multi-tone glow under cards and images built from layered tinted shadows. Class: fx-gradient-shadow
<div class="d-flex flex-wrap align-items-center justify-content-center gap-3 p-3 h-100" style="min-height:200px">
<img src="https://images.unsplash.com/photo-1513584684374-8bab748fbf90?auto=format&fit=crop&w=1200&h=800&q=70" alt="Photo with a colourful shadow" class="fx-gradient-shadow rounded-4 object-fit-cover" style="width:200px;height:135px">
</div>
/* CSS (already in assets/css/effects.css) */
.fx-gradient-shadow {
box-shadow: -14px 12px 30px -10px rgba(var(--wt-primary-rgb), .55), 14px 12px 30px -10px rgba(var(--wt-secondary-rgb), .55), 0 22px 36px -14px rgba(var(--wt-accent-rgb), .55);
transition: box-shadow .4s ease, transform .4s ease;
}
.fx-gradient-shadow:hover, .fx-gradient-shadow:focus-visible {
transform: translateY(-4px);
box-shadow: -20px 18px 40px -10px rgba(var(--wt-primary-rgb), .7), 20px 18px 40px -10px rgba(var(--wt-secondary-rgb), .7), 0 30px 46px -14px rgba(var(--wt-accent-rgb), .7);
}
@media (prefers-reduced-motion: reduce) {
.fx-gradient-shadow, .fx-gradient-shadow::before, .fx-gradient-shadow::after, .fx-gradient-shadow *, .fx-gradient-shadow *::before, .fx-gradient-shadow *::after { animation: none !important; transition: none !important; }
}