feat: add interactive custom cursor with hover/click states (#759)#768
Open
revatikadam0607 wants to merge 2 commits into
Open
feat: add interactive custom cursor with hover/click states (#759)#768revatikadam0607 wants to merge 2 commits into
revatikadam0607 wants to merge 2 commits into
Conversation
Contributor
|
@revatikadam0607 is attempting to deploy a commit to the codersogs-3057's projects Team on Vercel. A member of the Team first needs to authorize it. |
Collaborator
|
@revatikadam0607 ur Ci and Cd are failing please fix it |
Author
Okay let me check it |
Author
|
Done @Soumya-codr |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #759
Adds a lightweight custom cursor (a dot that follows the mouse exactly, plus a ring that trails
behind it) with hover and click feedback, active on desktop only.
Implementation notes
src/components/custom-cursor.tsx— a client component that tracks the mouse andwrites positions straight to
style.transformvia refs (not React state), so it doesn'ttrigger a re-render on every mouse-move event. The trailing ring animates via
requestAnimationFrame.src/app/globals.cssfor the cursor's appearance and states (cursor-hovering,cursor-clicking).src/app/layout.tsx(the root layout), so it applies across the whole sitewith a single insertion point.
Touch device handling
The component checks
matchMedia('(pointer: coarse)')/ontouchstarton mount and exits earlyon touch devices — no listeners are attached and the native cursor is never hidden. There's also
a
@media (pointer: coarse)CSS rule as a backup.Testing
npx tsc --noEmitandnpx eslintpass clean on all changed files.I've resolved the issue. Kindly review it, and if everything looks good, please consider merging the corresponding PR.

Hi @codersogs-code could you please review this merged PR for a potential bonus label based on the metrics below? Thanks!