Interactive dot grids for any website · v1.0

Dot Grid Field

Dots that roll to the horizon in 3D, swirl into galaxies, rain like code or print like halftone. They push away from the cursor, ripple out from every click, wave when the page scrolls, and can spell your brand name or trace your logo. Paste it in with a script tag, or use it as a React or Framer component.

One-time payment · Instant download · Single-project license · Free v1.x updates

Works with

  • FramerCode component, properties panelIn the v1.0 download
  • Plain HTML / any site<pf-dot-grid> tag + one scriptIn the v1.0 download
  • WebflowCode Embed element (or paste into Footer code)In the v1.0 download
  • WordPressCustom HTML blockIn the v1.0 download
  • ShopifyCustom Liquid sectionIn the v1.0 download
  • Squarespace, WixCode / embed block (plan must allow custom code)In the v1.0 download
  • React, Next.js, Vite<DotGridField /> componentIn the v1.0 download

13 presets

Each card is the real component, as a still frame. Hover (or focus) one to play it. Use any of them with preset="horizon", then change the colors to your own.

Horizon

A field of white dots rolling away to the horizon, in 3D.

preset="horizon"

Peaks

Sharp amber mountain ridges in perspective.

preset="peaks"

Tide

Slow blue ocean swells, glowing at the crests.

preset="tide"

Plasma

Violet, pink and gold plasma lighting a dense grid.

preset="plasma"

Serpent

Green trails winding and splitting through the dots.

preset="serpent"

Pulse

Rings of electric blue breathing out from the center.

preset="pulse"

Vortex

A violet-to-cyan spiral galaxy on a hex grid.

preset="vortex"

Cells

Drifting Voronoi cell walls, teal on a hex grid.

preset="cells"

Interference

Pink fringes where moving waves meet.

preset="interference"

Gravity

Gold wells in orbit, pulling the grid toward them.

preset="gravity"

Signal

Falling columns of green code, in square dots.

preset="signal"

Halftone

Black ink on paper at a 45° screen. Feed it a photo.

preset="halftone"

Minimal

Quiet grey dots on white that darken under the cursor.

preset="minimal"

Dots that react

Hover a card to make it live, then move, click or tap. Cursor modes, shockwaves, scroll waves and masks are attributes on the same tag.

Words and logos

mask="text:HELLO" or an image URL. Logos give their shape, photos a halftone.

Click shockwaves

Every click or tap sends a ripple through the dots. Or call el.ripple().

Cursor modes

Repel, attract, magnify, swirl, or a trail of ripples. Touch works too.

What it does

  • 13 presets. Horizon, peaks and tide in 3D perspective, plus plasma, serpent, pulse, vortex, cells, interference, gravity, signal, halftone and minimal.
  • Dots that react. The cursor repels, attracts, magnifies or swirls them, or leaves a trail of ripples. Fingers work the same on phones.
  • Click shockwaves. Every click or tap sends a ring through the grid. Trigger one from code with el.ripple().
  • Scroll effects. Scrolling can send a wave through the dots, drive the animation, or grow the grid in as it enters the screen.
  • Words, logos, photos. mask="text:LAUNCH" spells a word in your site's font. An image URL traces a logo, or turns a photo into a halftone.
  • Your look. Background and 1 to 3 dot colors, spacing, dot size, five shapes, square or hex grid, angle, glow.
  • Light on the page. 13.8 KB gzipped. The whole grid is one GPU draw call, and it stops drawing while nothing moves.
  • Respectful. Pauses offscreen and in background tabs, and shows a still frame with Reduce Motion.
  • Same settings everywhere. HTML attributes, React props, or Framer's properties panel.

What's in the download

  • dot-grid-field.min.js: drop-in script for any website (34 KB, 13.8 KB gzipped)
  • dot-grid-field.esm.js + TypeScript types, for bundlers
  • react/DotGridField.tsx: React component (React 18+, no Framer needed)
  • framer/DotGridField.tsx: the Framer code component, with text and image masks in the panel
  • demo.html with every preset, cursor mode, mask and scroll effect, quick starts for each platform
  • Free updates to v1.x

Single-project license (LICENSE.md in the download): one website or project per license.

Install in about a minute

  1. Upload dot-grid-field.min.js from the download to your site.

  2. Add the script once, and a <pf-dot-grid> tag wherever you want a dot grid.

  3. Pick a preset, or set your own colors, cursor mode, mask and more as attributes.

<script src="/dot-grid-field.min.js" defer></script>

<pf-dot-grid preset="horizon" style="height: 600px"></pf-dot-grid>

Squarespace and Wix: add the script and the tag in a Code or Embed block (your plan must allow custom code). The download's README has a quick start for every platform and the full settings reference.

Dot Grid Field

$9 one-time

  • Script tag, React and Framer builds
  • All 13 presets, masks and every setting
  • Free v1.x updates
  • Single-project license
Buy on Polar · $9

Secure checkout by Polar. Instant download after payment.

FAQ

Where does it work?

Anywhere you can add a script tag: Webflow, WordPress, Shopify, Squarespace, Wix, plain HTML. Also React/Next.js and Framer. Site builders need a plan that allows custom code.

Do I need to write code?

No. You paste one snippet and pick a preset. Colors, cursor mode, masks and the rest are HTML attributes, or Framer's panel.

Can the dots spell my brand name or form my logo?

Yes. mask="text:YOUR NAME" draws the word in your site's own font. An image URL works too: a logo with a transparent background gives its shape, a photo becomes a halftone. Host the image on your own site (other sites need CORS headers).

Does it slow my page down?

The script is 13.8 KB gzipped. The whole grid is a single GPU draw call, it skips frames while nothing moves, lowers its resolution on slow devices, and pauses offscreen and in background tabs.

Does it work on phones?

Yes. A tap sends a ripple and a dragging finger moves the cursor effect, without blocking page scrolling. Where WebGL is off, it draws the same dot grid with Canvas 2D.

Can I put text on top?

Yes. Put your content inside the tag (or the React component), and it renders over the dots; the cursor and clicks still reach the grid. The grid is decorative and hidden from screen readers.

What about Reduce Motion?

Visitors with Reduce Motion turned on see a still frame. You can also set a static frame for everyone.

What's the license?

Single project: one website or project per purchase. The details are in LICENSE.md in the download.

Do I get updates?

Yes, free updates for v1.x.

Questions before buying?

Email hi@gunnargray.com.

Hear about updates

The launch, new presets, v1.x releases and the occasional new tool. No more than that.