cursor-blob
Version:
Lightweight library for animated, interactive cursors using GSAP
89 lines (67 loc) • 3.33 kB
Markdown
<div align="center">
<br>
<h1>cursor-blob</h1>
<p><sup>Lightweight library for animated, interactive cursors using GSAP</sup></p>
[](https://www.npmjs.com/package/cursor-blob)
[](https://github.com/ux-ui-pro/cursor-blob)
[](https://www.npmjs.org/package/cursor-blob)
<sup>1.2kB gzipped</sup>
<a href="https://codepen.io/ux-ui/full/bNNgBwZ">Demo</a>
</div>
<br>
➤ **Install**
```console
$ yarn add gsap
$ yarn add cursor-blob
```
<br>
➤ **Import**
```javascript
import gsap from 'gsap';
import CursorBlob from 'cursor-blob';
```
<br>
➤ **Usage**
```html
<div class="cursor">
<div class="cursor__rim"></div>
<div class="cursor__dot"></div>
</div>
```
```javascript
CursorBlob.registerGSAP(gsap);
const cursorEl = document.querySelector('.cursor');
const cursorRimEl = document.querySelector('.cursor__rim');
const cursorDotEl = document.querySelector('.cursor__dot');
const cursorBlob = new CursorBlob({
cursorEl,
cursorRimEl,
cursorDotEl,
duration: 0.8,
ease: 'expo.out',
});
```
The CursorBlob plugin supports dynamically changing the cursor's appearance using the `data-cursor-style` attribute. You can add this data attribute to any HTML element to define custom behavior and cursor style on hover.
##### How it works
Each element with the attribute `data-cursor-style="your-style"` will switch the cursor’s class to `cursor--your-style`. For example:
```html
<div data-cursor-style="blend">...</div>
```
This will add the class `.cursor--blend` to the cursor element. You can then define the necessary styles in CSS using this class. [Examples](https://codepen.io/ux-ui/full/bNNgBwZ).
<br>
➤ **Options**
| Option | Type | Default | Description |
|:--------------|:-------------:|:------------:|:--------------------------------------------------------------------------------------------------------|
| `cursorEl` | `HTMLElement` | `–` | Main cursor wrapper element. |
| `cursorRimEl` | `HTMLElement` | `–` | Outer ring of the cursor that stretches and rotates based on velocity. |
| `cursorDotEl` | `HTMLElement` | `–` | Inner dot of the cursor that lags slightly behind. |
| `duration` | `number` | `–` | Duration of the GSAP animation when the cursor moves. |
| `ease` | `string` | `'expo.out'` | Easing function used by GSAP for smooth motion. See [gsap easing](https://greensock.com/docs/v3/Eases). |
<br>
➤ **API**
| Method | Description |
|:------------|:------------------------------------------------------------|
| `destroy()` | Removes all event listeners and cancels the animation loop. |
<br>
➤ **License**
cursor-blob is released under MIT license.