vkorobtsev-nextJs/app/(root)/page.jsx

428 lines
14 KiB
React
Raw Normal View History

2023-08-30 19:06:48 +07:00
"use client";
import ReactFullpage from "@fullpage/react-fullpage";
2023-09-03 14:45:00 +07:00
import Image from "next/legacy/image";
2023-09-02 11:12:47 +07:00
import "../globals.css";
2023-09-03 11:21:56 +07:00
import { motion } from "framer-motion";
2023-09-02 11:12:47 +07:00
import Link from "next/link";
2023-09-03 13:23:39 +07:00
// components
import Button from "@/components/Button";
2023-09-02 11:12:47 +07:00
import Me from "../../public/img/me.jpg";
2023-09-03 14:41:19 +07:00
import MeAbout from "@/public/img/me2.jpg";
2023-09-03 20:26:08 +07:00
import Setup from "@/public/img/setup.jpg";
import ProjectAll from "@/public/img/projects-all.jpg";
2023-09-03 11:21:56 +07:00
import Hr from "@/components/Hr";
// icons
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faGithub } from "@fortawesome/free-brands-svg-icons";
import { faInstagram } from "@fortawesome/free-brands-svg-icons";
import { faLinkedin } from "@fortawesome/free-brands-svg-icons";
import { faDiscord } from "@fortawesome/free-brands-svg-icons";
import { faEnvelope } from "@fortawesome/free-solid-svg-icons";
2023-08-29 16:57:18 +07:00
2023-08-30 19:06:48 +07:00
const MyPage = () => {
const fullpageOptions = {
2023-09-02 21:23:37 +07:00
anchors: ["home", "about", "projects", "contact"],
2023-08-30 19:06:48 +07:00
scrollingSpeed: 1000,
licenseKey: "gplv3-license",
2023-09-02 21:23:37 +07:00
menu: "#sidebar",
2023-09-03 13:23:39 +07:00
lockAnchors: false,
2023-08-30 19:06:48 +07:00
};
2023-08-29 16:57:18 +07:00
2023-08-30 19:06:48 +07:00
return (
<div>
<ReactFullpage
render={({ state, fullpageApi }) => (
<ReactFullpage.Wrapper>
<div className="section">
2023-09-03 11:21:56 +07:00
<div className="mx-auto container grid grid-cols-1 md:grid-cols-3 gap-4 p-10 overflow-hidden">
<motion.div
className="col-span-2 flex flex-col justify-center items-center md:items-start text-center md:text-start"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
type: "spring",
}}>
2023-08-30 19:06:48 +07:00
<div className="block md:hidden col-span-1 mx-auto my-10">
2023-09-05 21:39:08 +07:00
<div className="bg-slate-500 rounded-full h-60 w-60 grayscale hover:grayscale-0">
<Image
2023-09-02 11:12:47 +07:00
src={Me}
2023-09-03 14:51:08 +07:00
width={500}
height={500}
className="rounded-full w-full h-full object-cover "
alt="Alvalens"
2023-09-02 11:12:47 +07:00
placeholder="blur"
/>
</div>
2023-08-30 19:06:48 +07:00
</div>
2023-09-03 11:21:56 +07:00
<motion.h3
className="uppercase text-xl mb-3 font-normal text tracking-[.5rem] text-gray-500"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.2,
type: "spring",
}}>
Alvalen Shafel
2023-09-03 11:21:56 +07:00
</motion.h3>
<motion.h1
className="text-black text-5xl md:text-8xl font-bold my-2 md:my-5"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.3,
type: "spring",
}}>
2023-08-30 19:06:48 +07:00
Full Stack Developer
2023-09-03 11:21:56 +07:00
</motion.h1>
<motion.p
className="title text-md md:text-xl mt-4 tracking-wider text-gray-500 leading-[1.7rem]"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.4,
type: "spring",
}}>
2023-08-30 19:06:48 +07:00
A junior fullstack developer who
currently focused on Web Development.
Other than that, I also interested in
UX/UI Design, Mobile and AI Development.
I love to learn new things and always
open to new opportunities.
2023-09-03 11:21:56 +07:00
</motion.p>
<motion.div
className="buttons flex flex-row justify-center items-center space-x-4 mt-10"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.5,
type: "spring",
}}>
<Button variation="primary">
Download CV
</Button>
<Button variation="secondary">
Contact Me
</Button>
2023-09-03 11:21:56 +07:00
</motion.div>
</motion.div>
<motion.div
className="hidden md:flex col-span-1 mx-auto justify-center items-center "
initial={{ x: 100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.7,
type: "spring",
}}>
2023-09-03 20:26:08 +07:00
<div className="rounded-full h-auto w-auto lg:px-12 grayscale hover:grayscale-0">
<Image
src={Me}
width={400}
height={550}
placeholder="blur"
alt="Alvalens"
className="rounded-full w-full h-full object-cover"
/>
</div>
2023-09-03 11:21:56 +07:00
</motion.div>
2023-08-30 19:06:48 +07:00
</div>
</div>
<div className="section">
2023-09-03 11:21:56 +07:00
<div className="relative md:h-screen w-screen gap-4 flex justify-center items-center flex-col overflow-hidden">
<div className="z-0 mb-48 md:mb-0 md:absolute top-1/4 md:right-[10%] md:-translate-y-16 ">
2023-09-02 11:12:47 +07:00
<motion.div
2023-09-03 20:26:08 +07:00
className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw] grayscale hover:grayscale-0"
2023-09-03 11:21:56 +07:00
initial={{
x: 300,
opacity: 0,
z: -100,
}}
whileInView={{
x: 0,
opacity: 1,
z: 0,
}}
transition={{
delay: 0.5,
type: "spring",
2023-09-03 20:26:08 +07:00
}}>
2023-09-03 14:51:08 +07:00
<Image
src={MeAbout}
layout="fill"
className="object-cover"
alt="Alvalens"
placeholder="blur"
/>
</motion.div>
</div>
2023-09-03 11:21:56 +07:00
<div className="z-10 w-full absolute md:w-auto md:left-[10%] top-[60%] md:top-1/3 col-span-2 flex flex-col justify-center items-start md:items-start text-start px-10 py-5">
<motion.h1
2023-09-04 22:10:11 +07:00
className="bg-white lg:bg-transparent bg-opacity-50 px-3 md-px-0 text-black text-5xl md:text-8xl font-bold"
2023-09-03 11:21:56 +07:00
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.1,
type: "spring",
}}>
About Me
2023-09-03 11:21:56 +07:00
</motion.h1>
<Hr />
<motion.p
className="title text-xl mt-4 tracking-wider text-gray-500 leading-[1.7rem] mb-5"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.2,
type: "spring",
}}>
A brief introduction about me and my
interest.
2023-09-03 11:21:56 +07:00
</motion.p>
<motion.div
2023-09-03 13:23:39 +07:00
initial={{ y: 40, opacity: 0 }}
2023-09-03 11:21:56 +07:00
whileInView={{ y: 0, opacity: 1 }}
transition={{
delay: 0.3,
type: "spring",
}}>
2023-09-02 21:23:37 +07:00
<Button variation="primary">
2023-09-03 11:21:56 +07:00
<Link href="/about">
Learn More
</Link>
2023-09-02 21:23:37 +07:00
</Button>
2023-09-03 11:21:56 +07:00
</motion.div>
</div>
</div>
2023-08-30 19:06:48 +07:00
</div>
<div className="section">
2023-09-03 11:21:56 +07:00
<div className="relative md:h-screen w-screen gap-4 p-10 flex justify-center items-center flex-col overflow-hidden">
<div className="z-0 mb-48 md:mb-0 md:absolute top-1/4 md:right-[10%] md:-translate-y-16 ">
2023-09-03 11:21:56 +07:00
<motion.div
2023-09-03 20:26:08 +07:00
className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw] grayscale hover:grayscale-0"
2023-09-03 11:21:56 +07:00
initial={{
x: 300,
opacity: 0,
z: -100,
}}
whileInView={{
x: 0,
opacity: 1,
z: 0,
}}
transition={{
delay: 0.5,
type: "spring",
2023-09-03 20:26:08 +07:00
}}>
<Image
src={ProjectAll}
layout="fill"
className="object-cover"
alt="Alvalens Setup"
placeholder="blur"
/>
</motion.div>
</div>
2023-09-03 13:23:39 +07:00
<div className="z-10 w-full absolute md:w-auto md:left-[10%] top-[60%] md:top-1/3 col-span-2 flex flex-col justify-center items-start md:items-start text-start px-10 py-5">
2023-09-03 11:21:56 +07:00
<motion.h1
2023-09-04 22:10:11 +07:00
className="bg-white lg:bg-transparent bg-opacity-50 px-3 md-px-0 text-black text-5xl md:text-8xl font-bold"
2023-09-03 11:21:56 +07:00
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.1,
type: "spring",
}}>
My Projects
2023-09-03 11:21:56 +07:00
</motion.h1>
<Hr />
<motion.p
className="title text-xl mt-4 tracking-wider text-gray-500 leading-[1.7rem] mb-5"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.2,
type: "spring",
}}>
This is some of my projects that I have
2023-09-04 22:10:11 +07:00
done{" "}
<span className="bg-transparent md:bg-gray-100 bg-opacity-50 xl:bg-transparent">
{" "}
and currently working on.
</span>
2023-09-03 11:21:56 +07:00
</motion.p>
<motion.div
2023-09-03 13:23:39 +07:00
initial={{ y: 40, opacity: 0 }}
2023-09-03 11:21:56 +07:00
whileInView={{ y: 0, opacity: 1 }}
transition={{
delay: 0.3,
type: "spring",
}}>
<Button variation="primary">
<Link href="/projects">
Learn More
</Link>
</Button>
</motion.div>
</div>
</div>
2023-08-30 19:06:48 +07:00
</div>
<div className="section">
2023-09-02 11:12:47 +07:00
<div className="relative md:h-screen w-screen gap-4 p-10 flex justify-center items-center flex-col">
2023-09-05 20:06:59 +07:00
<div className="z-0 mb-48 md:mb-0 md:absolute top-1/4 md:right-[10%] md:-translate-y-16 overflow-x-hidden">
2023-09-04 22:10:11 +07:00
<motion.div
className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw] grayscale hover:grayscale-0"
initial={{
x: 300,
opacity: 0,
z: -100,
}}
whileInView={{
x: 0,
opacity: 1,
z: 0,
}}
transition={{
delay: 0.5,
type: "spring",
}}>
2023-09-03 20:26:08 +07:00
<Image
src={Setup}
layout="fill"
className="object-cover"
alt="Alvalens Setup"
placeholder="blur"
/>
2023-09-04 22:10:11 +07:00
</motion.div>
</div>
2023-09-03 13:23:39 +07:00
<div className="z-10 w-full absolute md:w-auto md:left-[10%] top-[60%] md:top-1/3 col-span-2 flex flex-col justify-center items-start md:items-start text-start px-10 overflow-hidden">
2023-09-03 11:21:56 +07:00
<motion.h1
2023-09-05 20:06:59 +07:00
className="bg-white lg:bg-transparent bg-opacity-50 px-3 md-px-0 text-black text-5xl md:text-8xl font-bold mb-3"
2023-09-03 11:21:56 +07:00
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.1,
type: "spring",
}}>
Get In Touch
2023-09-03 11:21:56 +07:00
</motion.h1>
<Hr />
<motion.p
className="title text-xl mt-4 tracking-wider text-gray-500 leading-[1.7rem] md:mb-5"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.2,
type: "spring",
}}>
2023-09-04 22:10:11 +07:00
Feel free to contact me if you have any{" "}
2023-09-05 20:06:59 +07:00
<span className="bg-transparent md:bg-gray-100 bg-opacity-50 xl:bg-transparent">
questions or just want to say hi.
</span>
2023-09-03 11:21:56 +07:00
</motion.p>
<motion.p
className="title text-xl mt-4 tracking-wider text-gray-500 leading-[1.7rem] mb-5"
initial={{ x: -100, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
transition={{
delay: 0.3,
type: "spring",
}}>
2023-09-05 20:06:59 +07:00
<a href="mailto:Alvalen.shafel04@gmail.com?subject=Hello&body=Hello Alvalens,">
alvalen.shafel04@gmail.com
</a>
2023-09-03 11:21:56 +07:00
</motion.p>
{/* icons */}
<div className="flex justify-center items-center space-x-4">
2023-09-03 11:21:56 +07:00
<motion.a
2023-09-05 20:06:59 +07:00
href="mailto:Alvalen.shafel04@gmail.com?subject=Hello&body=Hello Alvalens,"
2023-09-05 21:39:08 +07:00
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"
2023-09-03 13:23:39 +07:00
initial={{ y: 40, opacity: 0 }}
2023-09-03 11:21:56 +07:00
whileInView={{ y: 0, opacity: 1 }}
transition={{
y: { delay: 0.1 },
opacity: { delay: 0.2 },
}}>
<FontAwesomeIcon
icon={faEnvelope}
2023-09-02 11:12:47 +07:00
className="text-3xl"
/>
2023-09-03 11:21:56 +07:00
</motion.a>
2023-09-03 11:21:56 +07:00
<motion.a
2023-09-05 20:06:59 +07:00
href="https://github.com/Alvalens"
target="_blank"
rel="noopener noreferrer"
2023-09-05 21:39:08 +07:00
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"
2023-09-03 13:23:39 +07:00
initial={{ opacity: 0, y: 40 }}
2023-09-03 11:21:56 +07:00
whileInView={{ opacity: 1, y: 0 }}
transition={{
y: { delay: 0.2 },
opacity: { delay: 0.3 },
}}>
<FontAwesomeIcon
icon={faGithub}
2023-09-02 11:12:47 +07:00
className="text-3xl"
/>
2023-09-03 11:21:56 +07:00
</motion.a>
<motion.a
2023-09-05 20:06:59 +07:00
href="https://www.instagram.com/alvalens_/"
target="_blank"
rel="noopener noreferrer"
2023-09-05 21:39:08 +07:00
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"
2023-09-03 13:23:39 +07:00
initial={{ opacity: 0, y: 40 }}
2023-09-03 11:21:56 +07:00
whileInView={{ opacity: 1, y: 0 }}
transition={{
y: { delay: 0.3 },
opacity: { delay: 0.4 },
}}>
<FontAwesomeIcon
icon={faInstagram}
2023-09-02 11:12:47 +07:00
className="text-3xl"
/>
2023-09-03 11:21:56 +07:00
</motion.a>
<motion.a
2023-09-05 20:06:59 +07:00
href="https://www.linkedin.com/in/alvalen-shafel-8a081a254/"
target="_blank"
rel="noopener noreferrer"
2023-09-05 21:39:08 +07:00
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"
2023-09-03 13:23:39 +07:00
initial={{ opacity: 0, y: 40 }}
2023-09-03 11:21:56 +07:00
whileInView={{ opacity: 1, y: 0 }}
transition={{
y: { delay: 0.4 },
opacity: { delay: 0.5 },
}}>
<FontAwesomeIcon
icon={faLinkedin}
2023-09-02 11:12:47 +07:00
className="text-3xl"
/>
2023-09-03 11:21:56 +07:00
</motion.a>
<motion.a
2023-09-05 20:06:59 +07:00
href="https://discordapp.com/users/bloody#6118"
target="_blank"
rel="noopener noreferrer"
2023-09-05 21:39:08 +07:00
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"
2023-09-03 13:23:39 +07:00
initial={{ opacity: 0, y: 40 }}
2023-09-03 11:21:56 +07:00
whileInView={{ opacity: 1, y: 0 }}
transition={{
y: { delay: 0.5 },
opacity: { delay: 0.6 },
}}>
<FontAwesomeIcon
icon={faDiscord}
2023-09-02 11:12:47 +07:00
className="text-3xl"
/>
2023-09-03 11:21:56 +07:00
</motion.a>
</div>
</div>
</div>
2023-08-30 19:06:48 +07:00
</div>
</ReactFullpage.Wrapper>
)}
2023-09-03 11:21:56 +07:00
{...fullpageOptions}
2023-08-30 19:06:48 +07:00
/>
</div>
);
};
2023-08-29 16:57:18 +07:00
2023-08-30 19:06:48 +07:00
export default MyPage;