Sora UI

Custom Cursor

A smooth custom cursor that morphs when hovering interactive targets, powered by Motion. React component.

Made by Axyl

Custom cursor that morphs on hover over interactive targets — move your pointer inside the preview.

Loading...

Installation

File Structure

custom-cursor.tsx

Usage

import {
  CustomCursor,
  CustomCursorTarget,
} from '@/components/sora-ui/effects/custom-cursor';

export default function Page() {
  return (
    <CustomCursor color="#ff4c24">
      <CustomCursorTarget>
        <YourLogo />
      </CustomCursorTarget>
    </CustomCursor>
  );
}

Props

PropTypeDefault
color?
string
"#ff4c24"
followStiffness?
number
150
followDamping?
number
22
followTransition?
SpringOptions
-
layout?
"default" | "demo"
"default"
className?
string
-

CustomCursorTarget

PropTypeDefault
size?
"sm" | "md" | "lg"
"md"
className?
string
-

When to Use

Use CustomCursor on creative portfolio sites, interactive landing pages, or immersive showcases where a distinct cursor reinforces brand personality. It pairs well with hero sections that invite exploration.

Limit it to desktop viewports only — the component only activates when a pointer device is present. On touch devices it renders nothing and causes no side effects.

Accessibility

The custom cursor is purely visual. It does not change keyboard navigation, tab order, or focus indicators. Standard :focus-visible styles remain fully functional alongside it. When prefers-reduced-motion: reduce is set, the component already doesn't render — no extra configuration needed.

Built by Axyl. A motion-first component registry for React.

Last updated: 7/26/2026