Electricity

Lightning that strikes, holds and re-strikes down the same channel: an arc between two points with forks that shoot out and cool, a current round a border, or a calm charged hairline for UI.

Overload
<Fx effect="electricity" preset="Border current" />

Features

  • Fractal bolts that strike, hold and re-strike down the same channel.
  • Forks that shoot out, cool from white to violet and die.
  • A calm charged hairline for UI that should stay readable.

Use it for

  • Overload or danger states.
  • A charged primary action.
  • Linking two points.

On this site

Installation

  1. Get runets.
    git clone https://github.com/ziyam-khan/runets
  2. Copy these files into your project, keeping their folders.
  3. Install what they use.
    pnpm add react

Usage

import { Fx } from 'runets'

<div className="card"> {/* position: relative */}
  <Fx effect="electricity" />
</div>

API

PropTypeWhat it does
effectstringThe effect’s id, as in the address of this page.
presetstringOne of the presets above; the first by default.
paramsParamsAny parameter from the table, over the preset.
place'under' | 'over'Under the parent’s content (fills, halos) or over it (sparkles, glass). Default under.
radiusnumberCorner radius in points; the parent’s own border radius by default.
backdropstring | PaintWhat glass and distortion read: an image URL, or a function that paints a canvas the size of the parent.
maskPaintAn alpha mask for mask glow and text sheen.
hotbooleanDrives heat: the layer lights in 60 ms and cools over half a second instead of cutting off.
triggernumberChange it to fire a one-shot now (ping, ripple, burst, shockwave, zap).
wakenumberChange it to redraw for a second when something the layer reads, such as its occluders, moves on its own.
shape(time, w, h) => RectThe effect’s shape inside the parent, per frame: a lens that drifts.

Parameters

NameRangeDefault
style Styleborder, charged, arcborder
color Glowcolor0x4f8dff
core Corecolor0xeaf3ff
cool Cooled forkcolor0x7a4dff
amplitude Amplitude0 to 245
frequency Frequency0.5 to 82.4
speed Speed0 to 103.2
coreWidth Core width0.2 to 30.6
intensity Intensity0 to 31
glow Glow1 to 205
forks Forks0 to 10.55
flicker Flicker0 to 10.45
strands Strands1 to 32
gap Gap-6 to 122
forkLen Fork length2 to 6020
occlusion Occlusion0 to 10.12

Accessibility

Source

The code is in src/fx/glsl/emit.ts in runets, MIT licensed.