Modern CSS Gradient Effects
Animated, mesh, conic and text gradients built from the theme colours.
1Moving Stripes
Animated diagonal stripes for progress bars, sale banners and "in progress" states. Class: fx-moving-stripes
Now uploading
<div class="d-flex flex-wrap align-items-center justify-content-center gap-3 p-3 h-100" style="min-height:200px">
<div class="w-100" style="max-width:18rem">
<div class="fx-moving-stripes rounded-3 p-3 text-center fw-bold mb-3">
Now uploading
</div>
<div class="progress" role="progressbar" aria-label="Upload progress" aria-valuenow="65" aria-valuemin="0" aria-valuemax="100">
<div class="progress-bar fx-moving-stripes" style="width:65%">
65%
</div>
</div>
</div>
</div>
/* CSS (already in assets/css/effects.css) */
.fx-moving-stripes {
background-color: var(--wt-primary);
background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .22) 0 12px, transparent 12px 24px);
background-size: 34px 34px;
color: var(--wt-on-primary, #fff);
animation: fx-moving-stripes-move 1s linear infinite;
}
@keyframes fx-moving-stripes-move { to { background-position: 34px 0; } }
@media (prefers-reduced-motion: reduce) {
.fx-moving-stripes, .fx-moving-stripes::before, .fx-moving-stripes::after, .fx-moving-stripes *, .fx-moving-stripes *::before, .fx-moving-stripes *::after { animation: none !important; transition: none !important; }
}2Iridescent
A holographic, pearly sheen that shifts its colours as the card is hovered. Class: fx-iridescent
Vivid Studio
**** **** **** 5414
Nadia Harlow
<div class="d-flex flex-wrap align-items-center justify-content-center gap-3 p-3 h-100" style="min-height:200px">
<div class="fx-iridescent rounded-4 p-4 shadow-sm" style="width:15rem">
<div class="d-flex justify-content-between align-items-start mb-4">
<span class="fw-bold">Vivid Studio</span><i class="bi bi-gem" aria-hidden="true"></i>
</div>
<div class="font-monospace small mb-1">
**** **** **** 5414
</div>
<div class="small">
Nadia Harlow
</div>
</div>
</div>
/* CSS (already in assets/css/effects.css) */
.fx-iridescent {
position: relative; overflow: hidden; color: #1d1d2b;
background: linear-gradient(120deg, #f6d5f7, #fbe9d7, #d5f2ef, #d7e2fb, #e9d5fb, #f6d5f7);
background-size: 300% 300%; background-position: 0% 50%;
transition: background-position 1.2s ease;
}
.fx-iridescent::after {
content: ""; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: overlay;
background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, .7) 50%, transparent 65%);
background-size: 250% 100%; background-position: 100% 0; transition: background-position 1.2s ease;
}
.fx-iridescent:hover, .fx-iridescent:focus-within { background-position: 100% 50%; }
.fx-iridescent:hover::after, .fx-iridescent:focus-within::after { background-position: 0 0; }
@media (prefers-reduced-motion: reduce) {
.fx-iridescent, .fx-iridescent::before, .fx-iridescent::after, .fx-iridescent *, .fx-iridescent *::before, .fx-iridescent *::after { animation: none !important; transition: none !important; }
}