BackgroundsCC0-style snippets
Animated gradient mesh
A low-frequency CSS background motion that gives a hero a little life without adding an image asset.
[data-sc-effect="gradient-mesh"] { position: relative; isolation: isolate; overflow: hidden; background: #111318; }
[data-sc-effect="gradient-mesh"]::before {
content: ""; position: absolute; inset: -35%; z-index: -1;
background: radial-gradient(circle at 20% 30%, #5b5ce2 0 12%, transparent 38%), radial-gradient(circle at 80% 70%, #9db7ff 0 8%, transparent 34%);
filter: blur(30px); opacity: .38; animation: sc-mesh 16s ease-in-out infinite alternate;
}
@keyframes sc-mesh { to { transform: translate3d(4%, -3%, 0) scale(1.08); } }
@media (prefers-reduced-motion: reduce) { [data-sc-effect="gradient-mesh"]::before { animation: none; } }
BackgroundsCC0-style snippets
Shimmer skeleton
A restrained loading placeholder that communicates waiting without pretending content has arrived.
[data-sc-effect="shimmer"] { position: relative; overflow: hidden; background: #e8ecf4; }
[data-sc-effect="shimmer"]::after {
content: ""; position: absolute; inset: 0; transform: translateX(-100%);
background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent);
animation: sc-shimmer 1.5s ease-in-out infinite;
}
@keyframes sc-shimmer { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { [data-sc-effect="shimmer"]::after { animation: none; } }
BackgroundsCC0-style snippets
Aurora scene
A cinematic, layered aurora background with slow color movement and a readable content layer.
/* CSS */
[data-sc-effect="aurora-scene"] { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 15% 20%, #203b69, transparent 54%), radial-gradient(ellipse at 85% 75%, #452e69, transparent 50%), #10182d; }
[data-sc-effect="aurora-scene"]::before, [data-sc-effect="aurora-scene"]::after { content: ""; position: absolute; z-index: -1; inset: -35%; pointer-events: none; filter: blur(42px); opacity: calc(.55 * var(--sc-motion-intensity, 1)); background: conic-gradient(from 110deg at 50% 50%, transparent 0 18%, color-mix(in srgb,var(--sc-scene-primary,#38ddc4) 48%,transparent) 28%, color-mix(in srgb,var(--sc-scene-secondary,#7465ff) 50%,transparent) 42%, transparent 58% 100%); animation: sc-aurora-drift 24s ease-in-out infinite alternate; }
[data-sc-effect="aurora-scene"]::after { opacity: calc(.32 * var(--sc-motion-intensity, 1)); filter: blur(56px); animation-duration: 32s; animation-direction: alternate-reverse; }
@keyframes sc-aurora-drift { to { transform: translate3d(5%, -4%, 0) rotate(18deg) scale(1.08); } }
@media (prefers-reduced-motion: reduce) { [data-sc-effect="aurora-scene"]::before, [data-sc-effect="aurora-scene"]::after { animation: none; } }
BackgroundsCC0-style snippets
Ambient particle field
A subtle star-like layered field made from gradients, with no images, canvas, or network requests.
/* CSS */
[data-sc-effect="particle-drift"] { position: relative; isolation: isolate; overflow: hidden; background-color: #0c1425; background-image: radial-gradient(ellipse at 50% 110%,color-mix(in srgb,var(--sc-scene-secondary,#2863ec) 50%,transparent),transparent 60%); }
[data-sc-effect="particle-drift"]::before { content: ""; position: absolute; z-index: -1; inset: -28%; pointer-events: none; opacity: calc(.92 * var(--sc-motion-intensity, 1)); background-image: radial-gradient(1.5px 1.5px at 12% 28%,rgba(255,255,255,.75) 45%,transparent 60%),radial-gradient(1px 1px at 72% 22%,color-mix(in srgb,var(--sc-scene-primary,#36d4f0) 70%,white) 45%,transparent 60%),radial-gradient(2px 2px at 84% 68%,rgba(255,255,255,.65) 45%,transparent 60%),radial-gradient(1px 1px at 34% 78%,color-mix(in srgb,var(--sc-scene-secondary,#7465ff) 70%,white) 45%,transparent 60%); background-size: 180px 180px,230px 230px,280px 280px,210px 210px; animation: sc-particle-pan 44s ease-in-out infinite alternate; }
@keyframes sc-particle-pan { to { transform: translate3d(3%,-2%,0) rotate(2deg); } }
@media (prefers-reduced-motion: reduce) { [data-sc-effect="particle-drift"]::before { animation: none; } }