mirror of
https://github.com/Xevion/xevion.dev.git
synced 2025-12-06 01:16:58 -06:00
CSR only Dots component, tune drop shadow
This commit is contained in:
@@ -69,11 +69,14 @@ const Dots: React.FC = () => {
|
|||||||
const nx = x + cos(rad) * length;
|
const nx = x + cos(rad) * length;
|
||||||
const ny = y + sin(rad) * length;
|
const ny = y + sin(rad) * length;
|
||||||
|
|
||||||
let opacity = 0.5;
|
let opacity = 1;
|
||||||
const center_distance = Math.sqrt((x - w / 2) ** 2 + (y - h / 2) ** 2);
|
|
||||||
|
// const center_distance = Math.sqrt((x - w / 2) ** 2 + (y - h / 2) ** 2);
|
||||||
// if (center_distance < 350)
|
// if (center_distance < 350)
|
||||||
|
// opacity = 0;
|
||||||
|
|
||||||
// opacity =
|
// opacity =
|
||||||
stroke(200, 200, 200, (Math.abs(cos(rad)) * 0.8 + 0.2) * p.opacity * 255 * opacity);
|
stroke(200, 200, 200, (Math.abs(cos(rad)) * 0.8 + 0.2) * p.opacity * 255 * 0.5 * opacity);
|
||||||
circle(nx, ny - offsetY, 1);
|
circle(nx, ny - offsetY, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,22 +99,13 @@ const Dots: React.FC = () => {
|
|||||||
|
|
||||||
window.addEventListener('resize', handleResize);
|
window.addEventListener('resize', handleResize);
|
||||||
|
|
||||||
// Uncomment to enable scroll-based animation
|
|
||||||
// Tho there is some lag when scrolling, not sure if it's solvable
|
|
||||||
// const handleScroll = () => {
|
|
||||||
// offsetY = window.scrollY;
|
|
||||||
// addPoints();
|
|
||||||
// };
|
|
||||||
// window.addEventListener('scroll', handleScroll, { passive: true });
|
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
window.removeEventListener('resize', handleResize);
|
window.removeEventListener('resize', handleResize);
|
||||||
// window.removeEventListener('scroll', handleScroll);
|
|
||||||
unmount();
|
unmount();
|
||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return <div ref={canvasRef} className='fixed left-0 right-0 top-0 bottom-0 pointer-events-none -z-1 animate-bg' />;
|
return <div ref={canvasRef} className='fixed left-0 right-0 top-0 bottom-0 pointer-events-none -z-1 animate-bg delay-500' />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Dots;
|
export default Dots;
|
||||||
@@ -8,7 +8,7 @@ import AppWrapper from "@/components/AppWrapper";
|
|||||||
import ItemCard from "@/components/ItemCard";
|
import ItemCard from "@/components/ItemCard";
|
||||||
import directus, { type Project } from "@/utils/directus";
|
import directus, { type Project } from "@/utils/directus";
|
||||||
import { useBreakpointValue } from "@/utils/helpers";
|
import { useBreakpointValue } from "@/utils/helpers";
|
||||||
import Dots from "@/components/Dots";
|
import dynamic from "next/dynamic";
|
||||||
|
|
||||||
type IndexProps = {
|
type IndexProps = {
|
||||||
tagline: string;
|
tagline: string;
|
||||||
@@ -16,6 +16,11 @@ type IndexProps = {
|
|||||||
buttons: { text: string; href: string }[];
|
buttons: { text: string; href: string }[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const DotsDynamic = dynamic(
|
||||||
|
() => import('@/components/Dots'),
|
||||||
|
{ ssr: false }
|
||||||
|
)
|
||||||
|
|
||||||
export async function getStaticProps(): Promise<
|
export async function getStaticProps(): Promise<
|
||||||
GetStaticPropsResult<IndexProps>
|
GetStaticPropsResult<IndexProps>
|
||||||
> {
|
> {
|
||||||
@@ -63,7 +68,7 @@ const Home: NextPage<IndexProps> = ({
|
|||||||
</Head>
|
</Head>
|
||||||
<AppWrapper hideNavigation={true} className="overflow-x-hidden">
|
<AppWrapper hideNavigation={true} className="overflow-x-hidden">
|
||||||
<div className="flex h-screen w-screen items-center justify-center overflow-hidden">
|
<div className="flex h-screen w-screen items-center justify-center overflow-hidden">
|
||||||
<Dots />
|
<DotsDynamic />
|
||||||
<div className="flex w-full flex-col items-center justify-start">
|
<div className="flex w-full flex-col items-center justify-start">
|
||||||
<nav className="animate-fade-in">
|
<nav className="animate-fade-in">
|
||||||
<ul className="flex items-center justify-center gap-4">
|
<ul className="flex items-center justify-center gap-4">
|
||||||
@@ -79,8 +84,8 @@ const Home: NextPage<IndexProps> = ({
|
|||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<div className="hidden w-screen h-px animate-glow md:block animate-fade-left bg-gradient-to-r from-zinc-300/0 via-zinc-300/50 to-zinc-300/0" />
|
<div className="hidden w-screen h-px animate-glow md:block animate-fade-left bg-gradient-to-r from-zinc-300/0 via-zinc-300/50 to-zinc-300/0" />
|
||||||
<h1 className="font-hanken select-none py-3.5 px-0.5 z-10 text-transparent duration-1000 bg-white cursor-default text-edge-outline animate-title font-display text-5xl sm:text-6xl md:text-9xl lg:text-10xl whitespace-nowrap bg-clip-text ">
|
<h1 className="font-hanken uppercase select-none py-3.5 px-0.5 z-10 text-transparent duration-1000 bg-white cursor-default text-edge-outline animate-title font-display text-5xl sm:text-6xl md:text-9xl lg:text-10xl whitespace-nowrap bg-clip-text drop-shadow-extreme">
|
||||||
XEVION
|
Xevion
|
||||||
</h1>
|
</h1>
|
||||||
<div className="hidden w-screen h-px animate-glow md:block animate-fade-right bg-gradient-to-r from-zinc-300/0 via-zinc-300/50 to-zinc-300/0" />
|
<div className="hidden w-screen h-px animate-glow md:block animate-fade-right bg-gradient-to-r from-zinc-300/0 via-zinc-300/50 to-zinc-300/0" />
|
||||||
{/* <div className="sm:text-9x cursor-default select-none py-10 font-hanken text-6xl font-black uppercase tracking-widest min-[300px]:text-7xl min-[500px]:text-8xl lg:text-10xl">
|
{/* <div className="sm:text-9x cursor-default select-none py-10 font-hanken text-6xl font-black uppercase tracking-widest min-[300px]:text-7xl min-[500px]:text-8xl lg:text-10xl">
|
||||||
|
|||||||
@@ -31,6 +31,9 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
dropShadow: {
|
||||||
|
"extreme": "0 0 50px black",
|
||||||
|
},
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
inter: ['"Inter"', "sans-serif"],
|
inter: ['"Inter"', "sans-serif"],
|
||||||
roboto: ['"Roboto"', "sans-serif"],
|
roboto: ['"Roboto"', "sans-serif"],
|
||||||
@@ -44,7 +47,7 @@ module.exports = {
|
|||||||
"radial-gradient(50% 50% at 50% 50%, var(--tw-gradient-stops))",
|
"radial-gradient(50% 50% at 50% 50%, var(--tw-gradient-stops))",
|
||||||
},
|
},
|
||||||
animation: {
|
animation: {
|
||||||
bg: "bg 5s ease-in-out forwards",
|
bg: "fade-in 3s ease-in forwards",
|
||||||
"fade-in": "fade-in 3s ease-in-out forwards",
|
"fade-in": "fade-in 3s ease-in-out forwards",
|
||||||
title: "title 3s ease-out forwards",
|
title: "title 3s ease-out forwards",
|
||||||
"fade-left": "fade-left 3s ease-in-out forwards",
|
"fade-left": "fade-left 3s ease-in-out forwards",
|
||||||
|
|||||||
Reference in New Issue
Block a user