Pular para o conteúdo
André Barros
Aura Cursor Logo

Aura Cursor

Uma biblioteca leve e personalizável para criar cursors customizados em aplicações web modernas. Crie cursors bonitos que seguem o mouse com animações suaves e efeitos interativos de hover. Experimente os controles ao lado para ver as diferentes configurações em tempo real.

ReactTypeScriptNext.js

Personalizável

Controle tamanho, cor, opacidade, velocidade, lag, forma e muito mais através de props simples. Suporte completo a TypeScript.

Performance

Otimizado para performance com animações suaves usando requestAnimationFrame. Bundle pequeno e zero dependências.

Detecção Inteligente

Detecta automaticamente elementos interativos (links, botões, etc.) e aplica efeitos especiais de hover. Esconde automaticamente quando o mouse sai da janela.

Flexível

Trail, snap magnético, pulso no clique, outline mode, interactive-only e formas customizadas. Funciona com React, HTML/JavaScript e TypeScript.


Instalação

npm install aura-cursor

Ou usando yarn:

yarn add aura-cursor

Ou usando pnpm:

pnpm add aura-cursor

Como Usar

Exemplo básico com React:

import { AuraCursor } from "aura-cursor/react";

function App() {
  return (
    <>
      <AuraCursor
        size={30}
        color="#3b82f6"
        opacity={0.5}
        speed={0.2}
        lag={1.4}
        easing="easeOut"
        hideDefaultCursor
        shape="rounded"
        hoverColor="#3c096c"
        trail={{ length: 6, fade: 0.55, scale: 0.92 }}
        clickEffect={{ scale: 0.7, duration: 160 }}
        magnetic={{ strength: 0.4, padding: 48 }}
        hoverEffect={{
          scale: 1.8,
          color: "#3c096c",
          opacity: 0.5,
        }}
      />
      <YourApp />
    </>
  );
}

Ou usando o hook:

import { useAuraCursor } from "aura-cursor/react";

function App() {
  useAuraCursor({
    size: 30,
    color: "#3b82f6",
    opacity: 0.5,
    speed: 0.2,
    trail: { length: 4 },
    clickEffect: true,
  });

  return <div>Your app content</div>;
}

Ou usando JavaScript:

import { AuraCursor } from "aura-cursor";

const cursor = new AuraCursor({
  size: 30,
  color: "#3b82f6",
  opacity: 0.5,
  speed: 0.2,
  lag: 1.8,
  easing: "easeOut",
  hideDefaultCursor: true,
  shape: "rounded",
  hoverColor: "#3c096c",
  trail: { length: 6, fade: 0.55, scale: 0.92 },
  clickEffect: { scale: 0.7, duration: 160 },
  magnetic: { strength: 0.4, padding: 48 },
  hoverEffect: {
    scale: 1.8,
    color: "#3c096c",
    opacity: 0.5,
  },
});

cursor.init();

Referência da API

Todas as props disponíveis para personalizar o Aura Cursor:

PropTipoPadrãoDescrição
sizenumber20Tamanho do cursor em pixels
colorstring"#000000"Cor principal do cursor (hex, rgb, etc)
opacitynumber0.5Opacidade do cursor (0-1)
speednumber0.3Velocidade de acompanhamento do mouse (0-1)
lagnumber1Multiplicador de atraso (maior = mais lag)
easingstring"linear"Interpolação até o alvo (linear | easeOut)
hideDefaultCursorbooleanfalseOcultar o cursor padrão do navegador
interactiveOnlybooleanfalseMostrar o cursor apenas em elementos interativos
outlineModebooleanfalseHabilita o modo outline (apenas contorno)
outlineWidthnumber2Largura do outline em pixels
centerDotColorstring-Cor do ponto central
centerDotSizenumber3Tamanho do ponto central em pixels
hoverColorstring-Cor quando hover em elementos interativos
centerDotHoverColorstring-Cor do ponto central no hover
shapestring"circle"Forma do cursor (circle | square | rounded)
blurnumber-Blur CSS em pixels
mixBlendModestring-CSS mix-blend-mode (ex.: difference)
zIndexnumber9999z-index do cursor
borderRadiusstring | number-Sobrescreve o border-radius da forma
customCursorHTMLElement | string-Conteúdo HTML customizado dentro do cursor
trailobject-Rastro fantasma atrás do cursor
trail.lengthnumber0Número de elementos fantasma (0 desativa)
trail.fadenumber0.6Multiplicador de opacidade dos fantasmas
trail.scalenumber0.95Queda de escala por fantasma
clickEffectboolean | object-Pulso de escala no clique
clickEffect.scalenumber0.75Escala enquanto pressiona
clickEffect.durationnumber150Duração da restauração em ms
magneticboolean | object-Atração para o centro de elementos interativos
magnetic.strengthnumber0.35Força da atração (0-1)
magnetic.paddingnumber40Área extra ao redor do elemento em px
interactiveSelectorstring-Seletor CSS extra/override para elementos interativos
excludeSelectorstring-Elementos com este seletor nunca são interativos
hoverEffectobject-Efeitos aplicados no hover
hoverEffect.scalenumber1.5Escala do cursor no hover
hoverEffect.colorstring-Cor do cursor no hover
hoverEffect.opacitynumber-Opacidade do cursor no hover
onHoverInteractivefunction-Dispara quando o estado de hover interativo muda
onClickfunction-Dispara no mouse down

Elementos Interativos

Passe o mouse sobre os elementos abaixo para ver os efeitos do cursor:

Link

Aura Cursor - Biblioteca React para Cursor Personalizado | André Barros