Componentes
Pixel Blast
Fundo animado em WebGL — grid de pixels na cor primary, com ruído, brilho no cursor e ondas ao clique.
Clique no preview: cada clique dispara uma onda e, a cada cinco, o formato dos pixels avança (quadrado → círculo → losango).
Instalação
bun add @adila-sh/uiUso
Como fundo de uma seção — o container precisa de position: relative e o
PixelBlast se posiciona sobre ele:
import { PixelBlast } from '@adila-sh/ui';
export function Hero() {
return (
<section className="relative isolate min-h-svh overflow-hidden">
<PixelBlast className="absolute inset-0 -z-10" />
<h1 className="text-white">Design System</h1>
</section>
);
}Sem className, o default é fixed inset-0 -z-10 — cobre a viewport inteira.
Props
| Prop | Tipo | Default | Descrição |
|---|---|---|---|
className | string | "fixed inset-0 -z-10" | Classes do container. Substitui o default por completo. |
Comportamento
- Cor: lê o token
--primarydo tema e re-lê quando o tema muda — acompanha light e dark sem configuração. - Sem dependências: WebGL cru, sem three.js.
- Degradação: sem suporte a WebGL, o canvas é escondido e o fundo
bg-primaryassume. - Movimento reduzido: respeita
prefers-reduced-motion, atenuando a animação. - Performance: o loop pausa quando o canvas sai da viewport e retoma sem salto.
- Interação: os listeners de ponteiro são registrados em
window, então cliques em qualquer ponto da página disparam ondas — não apenas os cliques sobre o canvas.