Skip to content

Commit edb33a6

Browse files
committed
feat(ui): add CursorWrapper component for potential custom cursor reuse
1 parent 779ede3 commit edb33a6

File tree

4 files changed

+45
-34
lines changed

4 files changed

+45
-34
lines changed

src/app/page.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ import { Hero } from "@/components/home/sections/hero";
66
import { Members } from "@/components/home/sections/members";
77
import { HeroUIProvider } from "@heroui/react";
88
import MainNavbar from '@/components/home/main-navbar';
9+
import { CursorWrapper } from "@/components/home/ui/CursorWrapper";
910

1011
export default function HomePage() {
1112
return (
1213
<HeroUIProvider>
13-
<div className="cursor-none">
14+
<CursorWrapper>
1415
<MainNavbar />
1516
<Hero />
1617
<AboutUs />
1718
<Members />
1819
<Activities />
19-
</div>
20+
</CursorWrapper>
2021
</HeroUIProvider>
2122
);
2223
}

src/components/home/member-modal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ const MemberModal = ({ member, isOpen, onClose }: MemberModalProps) => {
6666
<Building className="w-4 h-4" />
6767
<span className="font-medium">{member.title}</span>
6868
</div>
69-
<div className="text-[var(--azul-niebla)]">{member.role}</div>
69+
<div className="dark:text-[var(--azul-niebla)]">{member.role}</div>
7070
<Button
7171
variant="outline"
7272
className="mt-4 dark:hover:bg-[#121212] hover:bg-[var(--azul-niebla)] hover:text-[var(--azul-electrico)] hover:border-[var(--azul-crayon)] transition-colors duration-200"

src/components/home/sections/hero.tsx

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,8 @@
11
"use client";
2-
import React, { useEffect } from "react";
2+
import React from "react";
33
import ThreeBlobs from "../three-blobs";
44

55
export function Hero() {
6-
// Add mouse movement handler for the cursor
7-
useEffect(() => {
8-
const handleMouseMove = (event: MouseEvent) => {
9-
const cursor = document.getElementById('custom-cursor');
10-
if (cursor) {
11-
cursor.style.left = `${event.clientX}px`;
12-
cursor.style.top = `${event.clientY}px`;
13-
}
14-
};
15-
16-
window.addEventListener('mousemove', handleMouseMove);
17-
18-
// Cleanup
19-
return () => {
20-
window.removeEventListener('mousemove', handleMouseMove);
21-
};
22-
}, []);
236

247
return (
258
<section
@@ -75,19 +58,6 @@ export function Hero() {
7558
{/* Enhanced gradient overlay for depth */}
7659
<div
7760
className="absolute inset-0 bg-gradient-to-b from-transparent via-transparent to-white/25 dark:to-white/15 pointer-events-none z-10"></div>
78-
79-
{/* Custom cursor with higher z-index to ensure it's always on top */}
80-
<div
81-
className="hidden xl:flex fixed rounded-full w-6 h-6 border-2 border-azul-noche dark:border-white pointer-events-none"
82-
style={{
83-
left: 0,
84-
top: 0,
85-
transform: 'translate(-50%, -50%)',
86-
transition: 'transform 0.05s ease',
87-
zIndex: 999 // Very high z-index to stay above all other elements
88-
}}
89-
id="custom-cursor"
90-
/>
9161
</section>
9262
);
9363
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { useEffect } from "react";
2+
3+
export const CursorWrapper = ({ children }) => {
4+
5+
// Add mouse movement handler for the cursor
6+
useEffect(() => {
7+
const handleMouseMove = (event: MouseEvent) => {
8+
const cursor = document.getElementById('custom-cursor');
9+
if (cursor) {
10+
cursor.style.left = `${event.clientX}px`;
11+
cursor.style.top = `${event.clientY}px`;
12+
}
13+
};
14+
15+
window.addEventListener('mousemove', handleMouseMove);
16+
17+
// Cleanup
18+
return () => {
19+
window.removeEventListener('mousemove', handleMouseMove);
20+
};
21+
}, []);
22+
23+
return <div className="cursor-none">
24+
25+
{children}
26+
27+
{/* Custom cursor with higher z-index to ensure it's always on top */}
28+
<div
29+
className="hidden xl:flex fixed rounded-full w-6 h-6 border-2 border-azul-noche dark:border-white pointer-events-none"
30+
style={{
31+
left: 0,
32+
top: 0,
33+
transform: 'translate(-50%, -50%)',
34+
transition: 'transform 0.05s ease',
35+
zIndex: 999 // Very high z-index to stay above all other elements
36+
}}
37+
id="custom-cursor"
38+
/>
39+
</div>
40+
}

0 commit comments

Comments
 (0)