BRIGHTPIXELS 1.5.0 / ACTION LAB
ONE TOUCH.
CHAIN REACTION.
Hold. Release. Light the entire operation.
Starting light…
MANUAL OVERRIDE
APPLY HUMAN
PRESSURE.
One small button. An unreasonable response.
Hold for 0.7 seconds, then release. Keyboard: hold Space or Enter.
Awaiting your extremely valuable input.
CHARGE → SIMULATED SAVE → LIGHT WAVE → HDR CONFETTI
Try each helper Save / swipe / drag / sparks
PROMISE FEEDBACK
WORK. THEN GLOW.
Loading follows a simulated request. The result chooses the light.
No request running.
SWIPE TO CONFIRM
SLIDE INTO POWER.
Keyboard: arrows or End, then Enter.
Your thumb has clearance.
DRAG-DRIVEN LIGHT
MOVE THE ENERGY.
Arrows adjust; Enter releases. Escape cancels. Page scroll still works.
ELEMENT EMITTERS
SPARK THE EDGES.
The engine reads the current card position on every burst.
Use it in your project Zero new runtime dependencies
import { brightenSurface } from 'brightpixels';
import { bindHold, trackAction } from 'brightpixels/interactions';
import { createParticleEffects } from 'brightpixels/particles';
const light = brightenSurface(card);
const particles = createParticleEffects();
const hold = bindHold(button, {
surface: light,
onComplete: () => {
trackAction(light, save()).then(() => {
particles.burstFrom(button, { count: 120 });
}).catch(showError);
},
});
// On unmount: hold.destroy(); light.destroy(); particles.destroy();HDR on compatible displays. Neon fallback elsewhere. Reduced motion gets static feedback. Full API ↗