Hi everyone ![]()
Super excited to share Kinetic β my most ambitious Elements component to date, now live on the store. Kinetic brings cursor-driven interactions, physics, animated canvas effects, and custom cursors to any section of your page, all from a single component. A bullet list can only take you so far with something this visual β please do have a look at the live demo linked below to get a real feel for what it does.
4 Item Sources
Kinetic can animate different kinds of content β pick the one that fits your workflow:
β’ Custom Items β configure items inside Kineticβs own collection (position, size, color). Ideal for decorative clouds, logo grids, or fully controlled compositions.
β’ Auto Shapes β tell Kinetic how many shapes (square, circle, triangle, rectangle, pill, or random) you want and it generates and distributes them automatically. Great for quick hero scenes.
β’ Text Split β target any text element with a CSS class and Kinetic will turn every single letter into a physics body. Headings that scatter on drag, words that tilt in 3D, letters that fall and pile up β it all works out of the box.
β’ Set Item by Class β drop any native Elements component (Container, Image, Text, Buttonβ¦) into the Kinetic dropzone, add the kinetic-item class, and Kinetic adopts it without touching its internal structure. Full design freedom, full effect power.
4 Interaction Modes
Once your items are in place, they react to the cursor according to the mode you pick:
β’ Attract to Cursor β items gently follow the cursor within a configurable radius
β’ Repel from Cursor β items push away from the cursor
β’ Gravity β full Matter.js physics: items fall, collide, bounce, and pile up realistically. Multiple start modes (Drop / Drop from Outside / Settled / Static), optional Drag & Snap Back, cursor that can act as an invisible physical body, and collision-aware obstacles.
β’ 3D Tilt β cards and images tilt in space following the cursor, with configurable perspective, damping, and an optional glare sweep across their surface.
Each mode has its own set of controls β youβll see only whatβs relevant to the mode youβve chosen.
4 Auto Layout Presets
When you have a bunch of Custom Items, positioning each one by hand is a chore. Auto Layout distributes them for you with these presets:
β’ Circle / Oval β items arranged on a circle or ellipse
β’ Cloud β soft, organic cluster
β’ Random β scattered with controlled bounds
β’ Grid β regular rows and columns
Spread, rotation, and (optionally) animated rotation are all configurable.
Canvas Effects
In parallel with the items, Kinetic can render an animated canvas behind or around them:
β’ Connection Lines β lines drawn between nearby items, with opacity that fades with distance. Turns a scatter of items into a living constellation.
β’ Mesh Grid β a grid of lines (square or triangle cells) that warps near the cursor.
β’ Starfield β a scattered field of stars with varying size and brightness, with optional twinkle animation and 3D warp flight.
Canvas effects work alongside any interaction mode β physics + connection lines, 3D tilt + mesh grid, and so on.
7 Custom Cursors
Replace the system cursor inside the Kinetic area with one of seven fully configurable variants:
β’ Glow β soft radial glow around the pointer
β’ Ring β hollow ring
β’ Solid β solid disc
β’ Dot β small precise dot
β’ Pulse β animated pulsing disc
β’ Ripple (Border) β expanding hollow ring trail
β’ Ripple (Solid) β expanding filled disc trail
Size, colors, and behavior are all configurable per cursor type.
Animation and scroll-aware extras
Kinetic has a set of features that make entrances and scrolling feel intentional:
β’ Stagger Entrance β items fade, scale, slide, zoom, or bounce into view progressively. Can start on page load, or on scroll when Kinetic crosses a chosen viewport line.
β’ Idle Animation β items gently float when no interaction is happening. Intensity is configurable, rotation can be locked, and hover behavior can be set to pause or keep active.
β’ Scroll Force β items react to page scroll speed. Faster scrolling applies stronger force β pages feel physically alive.
Control Kinetic from anywhere on the page
Kinetic exposes a set of utility CSS classes you apply to any element on the page to control its state or mark elements as physics-aware:
Item markers (inside the Content dropzone):
β’ kinetic-item β makes the element a kinetic item that responds to physics and interactions
β’ kinetic-item-locked β turns the element into a fixed obstacle that other items collide with (Gravity mode)
β’ kinetic-item-no-drag β element participates in physics but canβt be dragged (Gravity mode)
β’ kinetic-item-ignore β element is excluded from physics (Gravity mode)
Runtime controls (anywhere on the page):
β’ kinetic-pause β pauses all animations, physics, and effects
β’ kinetic-resume β resumes after a pause
β’ kinetic-toggle β flips between paused and running states
β’ kinetic-reset β smoothly animates items back to their original positions
Perfect for tying Kineticβs behavior to modals, buttons, clicks, custom events β anywhere on the page.
A note on mobile
Many of Kineticβs effects β 3D Tilt, Attract/Repel, Custom Cursors, cursor-reactive Canvas Effects β are driven by cursor position, and thereβs no natural equivalent on touch devices. For that reason, the live demos intentionally disable Kinetic below the md breakpoint: it keeps mobile pages fast and removes motion that would feel out of place without a cursor. You can set this threshold per instance, or leave Kinetic enabled everywhere if your use case supports it β the Gravity physics modes (drag, snap back, collisions) still work with touch.
Perfect for
β’ Hero sections that need personality beyond a static image
β’ Portfolio galleries with 3D tilt or magnetic cards
β’ Product pages where interactive reveals sell the product
β’ Typographic headlines where letters become a playground
β’ Interactive storytelling (about, team, process pages)
β’ Any moment where βstatic is forgettableβ
Links
Live demo: Kinetic for Elements - Home - RW Pro Space
Get Kinetic: Elements Store
Happy to chat β features, ideas, feedback all welcome. Thanks for the support!
β Massimo