Cross
Small crosses at every intersection, a registration grid, with five of them lit and breathing.
A fine grid turned through forty-five degrees, two accent lights under it.
“Copy the hero” is the styles and the SVG, carrying the colours and speed you set above. “Copy as a section” adds the wrapper a hero actually needs: the SVG absolute behind the copy, inert to the pointer, and a scrim so the heading holds. The Free licence asks for one visible credit per page: Animation by Pulsar, linked to Pulsar. Licence
Set any of these on the section, or on any ancestor, and the hero follows. Nothing else in the file needs editing.
<!-- Pulsar by Business Nebula · "hero-lattice-diamond" · https://pulsaricons.com | Licence: https://pulsaricons.com/legal/licence | Free-licence credit: Animation by Pulsar, linked to https://pulsaricons.com | Business Nebula: https://businessnebula.com.au -->
<style>
.hero {
position: relative;
isolation: isolate;
overflow: hidden;
min-height: 70vh;
display: flex;
align-items: center;
padding: 5rem 5%;
color: #1d1b3a;
background: #f7f7fb;
}
.hero > .pulsar-hero {
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
}
/* A scrim under the copy, heavier on the side the text sits on. */
.hero-scrim {
position: absolute;
inset: 0;
z-index: 1;
pointer-events: none;
background: linear-gradient(100deg, #f7f7fb 0%, color-mix(in oklab, #f7f7fb 78%, transparent) 40%, transparent 68%);
}
.hero-copy {
position: relative;
z-index: 2;
max-width: 40rem;
}
.hero-eyebrow {
font-size: 0.75rem;
letter-spacing: 0.18em;
text-transform: uppercase;
opacity: 0.8;
}
/* Generated by scripts/hero-lattice.mjs from heroes/hero-lattice-diamond/params.json.
Consumers set four custom properties on any ancestor:
--pulsar-hero-bg the ground (default #f7f7fb)
--pulsar-hero-ink the grid (default #1d1b3a)
--pulsar-accent the glows and nodes (default #8a7df7)
--pulsar-hero-speed a rate; 2 is twice as fast, 0.5 half speed */
.pulsar-hero-lattice-diamond {
display: block;
width: 100%;
height: 100%;
color: var(--pulsar-hero-ink, #1d1b3a);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-ground {
fill: var(--pulsar-hero-bg, #f7f7fb);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-accent-stop {
stop-color: var(--pulsar-accent, #8a7df7);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-ground-stop {
stop-color: var(--pulsar-hero-bg, #f7f7fb);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-band {
transform-box: view-box;
will-change: transform;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-1 {
transform-origin: 1150px 450px;
animation-name: hero-lattice-diamond-glow-1;
animation-duration: calc(19s / var(--pulsar-hero-speed, 1));
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-2 {
transform-origin: 1500px 850px;
animation-name: hero-lattice-diamond-glow-2;
animation-duration: calc(13s / var(--pulsar-hero-speed, 1));
}
@keyframes hero-lattice-diamond-glow-1 {
from {
transform: translate(-80px, -30px) scale(0.94);
}
to {
transform: translate(80px, 30px) scale(1.06);
}
}
@keyframes hero-lattice-diamond-glow-2 {
from {
transform: translate(80px, 30px) scale(0.94);
}
to {
transform: translate(-80px, -30px) scale(1.06);
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-1,
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-2 {
animation: none;
}
}
</style>
<section class="hero">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="pulsar pulsar-hero pulsar-hero-lattice-diamond" data-pulsar="hero-lattice-diamond" preserveAspectRatio="xMidYMid slice" viewBox="0 0 1600 900"><metadata><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><rdf:Description><dc:title>hero-lattice-diamond</dc:title><dc:creator>Pulsar by Business Nebula</dc:creator><dc:publisher>Business Nebula</dc:publisher><dc:source>https://pulsaricons.com/icons</dc:source><dc:relation>https://businessnebula.com.au</dc:relation><dc:rights>Pulsar licence, https://pulsaricons.com/legal/licence</dc:rights></rdf:Description></rdf:RDF></metadata><defs><radialGradient id="hero-lattice-diamond-glow-1"><stop class="hero-lattice-diamond-accent-stop" offset="0" stop-opacity=".4"></stop><stop class="hero-lattice-diamond-accent-stop" offset=".5" stop-opacity=".17"></stop><stop class="hero-lattice-diamond-accent-stop" offset="1" stop-opacity="0"></stop></radialGradient><radialGradient id="hero-lattice-diamond-glow-2"><stop class="hero-lattice-diamond-accent-stop" offset="0" stop-opacity=".3"></stop><stop class="hero-lattice-diamond-accent-stop" offset=".5" stop-opacity=".13"></stop><stop class="hero-lattice-diamond-accent-stop" offset="1" stop-opacity="0"></stop></radialGradient><linearGradient id="hero-lattice-diamond-veil" x1="0" x2="1600" y1="0" y2="0" gradientUnits="userSpaceOnUse"><stop class="hero-lattice-diamond-ground-stop" offset="0" stop-opacity=".92"></stop><stop class="hero-lattice-diamond-ground-stop" offset=".3" stop-opacity=".6"></stop><stop class="hero-lattice-diamond-ground-stop" offset=".62" stop-opacity=".15"></stop><stop class="hero-lattice-diamond-ground-stop" offset="1" stop-opacity="0"></stop></linearGradient><pattern id="hero-lattice-diamond-tile" width="40" height="40" patternTransform="rotate(45)" patternUnits="userSpaceOnUse"><path fill="none" stroke="currentColor" stroke-width=".8" d="M0 0h40M0 0v40"></path></pattern></defs><rect width="1600" height="900" class="hero-lattice-diamond-ground"></rect><g class="hero-lattice-diamond-band hero-lattice-diamond-glow hero-lattice-diamond-glow-1"><ellipse cx="1150" cy="450" fill="url(#hero-lattice-diamond-glow-1)" rx="560" ry="400"></ellipse></g><g class="hero-lattice-diamond-band hero-lattice-diamond-glow hero-lattice-diamond-glow-2"><ellipse cx="1500" cy="850" fill="url(#hero-lattice-diamond-glow-2)" rx="400" ry="300"></ellipse></g><rect width="1600" height="900" fill="url(#hero-lattice-diamond-tile)" class="hero-lattice-diamond-field" opacity=".28"></rect><rect width="1600" height="900" fill="url(#hero-lattice-diamond-veil)" class="hero-lattice-diamond-veil"></rect></svg>
<div class="hero-scrim" aria-hidden="true"></div>
<div class="hero-copy">
<h1>Your heading</h1>
<p>Your supporting sentence.</p>
<a href="#">Your call to action</a>
</div>
</section>
/* Generated by scripts/hero-lattice.mjs from heroes/hero-lattice-diamond/params.json.
Consumers set four custom properties on any ancestor:
--pulsar-hero-bg the ground (default #f7f7fb)
--pulsar-hero-ink the grid (default #1d1b3a)
--pulsar-accent the glows and nodes (default #8a7df7)
--pulsar-hero-speed a rate; 2 is twice as fast, 0.5 half speed */
.pulsar-hero-lattice-diamond {
display: block;
width: 100%;
height: 100%;
color: var(--pulsar-hero-ink, #1d1b3a);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-ground {
fill: var(--pulsar-hero-bg, #f7f7fb);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-accent-stop {
stop-color: var(--pulsar-accent, #8a7df7);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-ground-stop {
stop-color: var(--pulsar-hero-bg, #f7f7fb);
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-band {
transform-box: view-box;
will-change: transform;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-1 {
transform-origin: 1150px 450px;
animation-name: hero-lattice-diamond-glow-1;
animation-duration: calc(19s / var(--pulsar-hero-speed, 1));
}
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-2 {
transform-origin: 1500px 850px;
animation-name: hero-lattice-diamond-glow-2;
animation-duration: calc(13s / var(--pulsar-hero-speed, 1));
}
@keyframes hero-lattice-diamond-glow-1 {
from {
transform: translate(-80px, -30px) scale(0.94);
}
to {
transform: translate(80px, 30px) scale(1.06);
}
}
@keyframes hero-lattice-diamond-glow-2 {
from {
transform: translate(80px, 30px) scale(0.94);
}
to {
transform: translate(-80px, -30px) scale(1.06);
}
}
@media (prefers-reduced-motion: reduce) {
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-1,
.pulsar-hero-lattice-diamond .hero-lattice-diamond-glow-2 {
animation: none;
}
}
Small crosses at every intersection, a registration grid, with five of them lit and breathing.
A fine dot grid with one accent light moving slowly beneath it.
A perspective floor receding to a horizon, with the horizon itself glowing and breathing.
Fine graph paper, the busiest grid of the series, with three lights under it at three rates.
A dense dot field with one round accent light and six lit dots around it, pulsing.
A honeycomb of thin hexagons with an accent light and an ink shadow moving under it.
Wide ruled squares, a sheet of graph paper, with an accent light and a shadow of ink drifting under it.
An isometric lattice, the grid of a technical drawing, lit from one moving point.
The floor turned over: a ceiling of lines converging above the copy, sparse, with one light at the far end.