Changes to be committed: modified: app/(root)/page.jsx modified: app/about/components/about/about.jsx deleted: app/about/components/about/spotify/animation.jsx deleted: app/about/components/about/spotify/card.jsx deleted: app/about/components/about/spotify/fetch.js modified: app/about/components/education.jsx modified: app/about/layout.jsx modified: app/about/loading.jsx modified: app/about/page.jsx modified: app/layout.jsx modified: app/not-found.jsx modified: app/projects/[slug]/page.jsx modified: app/projects/archive/page.jsx modified: app/projects/layout.jsx modified: app/projects/loading.jsx modified: app/projects/page.jsx deleted: components/Chat.jsx modified: components/Footer.jsx modified: components/Navbar.jsx modified: json/data.json modified: pnpm-lock.yaml new file: public/image/me.jpeg deleted: public/image/me.jpg new file: public/image/me1.jpeg deleted: public/image/me1.jpg new file: public/image/me2.jpeg new file: public/image/me3.jpeg deleted: public/image/me3.jpg deleted: public/image/me4.jpeg new file: public/image/me4.jpg new file: public/image/me7.jpg deleted: vite-to_VS/README.md
397 lines
14 KiB
JavaScript
397 lines
14 KiB
JavaScript
"use client";
|
||
import ReactFullpage from "@fullpage/react-fullpage";
|
||
import Image from "next/legacy/image";
|
||
// import "../globals.css";
|
||
import { motion } from "framer-motion";
|
||
import Link from "next/link";
|
||
|
||
// Компоненты
|
||
import Button from "@/components/Button";
|
||
import Me from "@/public/image/me.jpeg";
|
||
import MeAbout from "@/public/image/me7.jpg";
|
||
import Setup from "@/public/image/setup.jpg";
|
||
import ProjectAll from "@/public/image/projects.png";
|
||
import Hr from "@/components/Hr";
|
||
// Значки
|
||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||
import { faGithub } from "@fortawesome/free-brands-svg-icons";
|
||
import { faEnvelope } from "@fortawesome/free-solid-svg-icons";
|
||
import { faVk } from "@fortawesome/free-brands-svg-icons";
|
||
import { faTelegram } from "@fortawesome/free-brands-svg-icons";
|
||
|
||
const MyPage = () => {
|
||
const fullpageOptions = {
|
||
anchors: ["home", "about", "projects", "contact"],
|
||
scrollingSpeed: 1000,
|
||
licenseKey: "gplv3-license",
|
||
menu: "#sidebar",
|
||
lockAnchors: false,
|
||
};
|
||
|
||
return (
|
||
<div>
|
||
<ReactFullpage
|
||
render={({ state, fullpageApi }) => (
|
||
<ReactFullpage.Wrapper>
|
||
<div className="section">
|
||
<div className="mx-auto container grid grid-cols-1 md:grid-cols-3 gap-4 p-10 overflow-hidden md:px-20">
|
||
<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",
|
||
}}>
|
||
<div className="block md:hidden col-span-1 mx-auto my-5">
|
||
<div className="bg-slate-500 rounded h-40 w-40 grayscale hover:grayscale-0 transition-all ease duration-300">
|
||
<Image
|
||
src={Me}
|
||
width={500}
|
||
height={500}
|
||
className="rounded w-half h-half object-cover "
|
||
alt="V.Korobtsev"
|
||
placeholder="blur"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<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",
|
||
}}>
|
||
Виталий Коробцев
|
||
</motion.h3>
|
||
<motion.h1
|
||
className="text-black text-5xl md:text-6xl lg:text-7xl 2xl: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",
|
||
}}>
|
||
Главное
|
||
</motion.h1>
|
||
<motion.p
|
||
className="title text-md 2xl: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",
|
||
}}>
|
||
Привет! Я Виталий Коробцев. Создатель "Гибридной Офисной Системы". Под моим руководством (или с моим участием) создано множество крупных проектов. На данном сайте я решил собрать некоторые из них и рассказать о себе и своих проектах - завершенных, текущих, планируемых.
|
||
|
||
</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">
|
||
<a href="#projects">Проекты</a>
|
||
</Button>
|
||
<Button variation="secondary">
|
||
<a href="#contact">Связаться</a>
|
||
</Button>
|
||
</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",
|
||
}}>
|
||
<div className="rounded-full h-auto w-auto lg:px-12 grayscale hover:grayscale-0 transition-all ease duration-300">
|
||
<Image
|
||
src={Me}
|
||
width={400}
|
||
height={550}
|
||
placeholder="blur"
|
||
alt="Korobtsev"
|
||
className="rounded-full w-full h-full object-cover"
|
||
/>
|
||
</div>
|
||
</motion.div>
|
||
</div>
|
||
</div>
|
||
<div className="section">
|
||
<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 ">
|
||
<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",
|
||
stiffness: 100,
|
||
damping: 20,
|
||
}}>
|
||
<Image
|
||
src={MeAbout}
|
||
layout="fill"
|
||
className="object-cover"
|
||
alt="Korobtsev"
|
||
placeholder="blur"
|
||
/>
|
||
</motion.div>
|
||
</div>
|
||
<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
|
||
className="bg-white lg:bg-transparent bg-opacity-50 px-3 md-px-0 text-black text-5xl md:text-8xl font-bold"
|
||
initial={{ x: -100, opacity: 0 }}
|
||
whileInView={{ x: 0, opacity: 1 }}
|
||
transition={{
|
||
delay: 0.1,
|
||
type: "spring",
|
||
}}>
|
||
Обо мне
|
||
</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",
|
||
}}>
|
||
Немного обо мне и моих интересах.
|
||
</motion.p>
|
||
<motion.div
|
||
initial={{ y: 40, opacity: 0 }}
|
||
whileInView={{ y: 0, opacity: 1 }}
|
||
transition={{
|
||
delay: 0.3,
|
||
type: "spring",
|
||
}}>
|
||
<Button variation="primary">
|
||
<Link href="/about">Читать</Link>
|
||
</Button>
|
||
</motion.div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div className="section">
|
||
<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 ">
|
||
<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",
|
||
stiffness: 100,
|
||
damping: 20,
|
||
}}>
|
||
<Image
|
||
src={ProjectAll}
|
||
layout="fill"
|
||
className="object-cover"
|
||
alt="Рабочее место"
|
||
placeholder="blur"
|
||
/>
|
||
</motion.div>
|
||
</div>
|
||
<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
|
||
className="bg-white lg:bg-transparent bg-opacity-50 px-3 md-px-0 text-black text-5xl md:text-8xl font-bold"
|
||
initial={{ x: -100, opacity: 0 }}
|
||
whileInView={{ x: 0, opacity: 1 }}
|
||
transition={{
|
||
delay: 0.1,
|
||
type: "spring",
|
||
}}>
|
||
Проекты
|
||
</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",
|
||
}}>
|
||
Некоторые из проектов с моим учаcтием {" "}
|
||
<span className="bg-transparent md:bg-gray-100 bg-opacity-50 xl:bg-transparent">
|
||
{" "}
|
||
или под моим руководством.
|
||
</span>
|
||
</motion.p>
|
||
<motion.div
|
||
initial={{ y: 40, opacity: 0 }}
|
||
whileInView={{ y: 0, opacity: 1 }}
|
||
transition={{
|
||
delay: 0.3,
|
||
type: "spring",
|
||
}}>
|
||
<Button variation="primary">
|
||
<Link href="/projects">Просмотреть</Link>
|
||
</Button>
|
||
</motion.div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div className="section">
|
||
<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 ">
|
||
<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",
|
||
stiffness: 100,
|
||
damping: 20,
|
||
}}>
|
||
<Image
|
||
src={Setup}
|
||
layout="fill"
|
||
className="object-cover"
|
||
alt="Рабочее место"
|
||
placeholder="blur"
|
||
/>
|
||
</motion.div>
|
||
</div>
|
||
<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">
|
||
<motion.h1
|
||
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"
|
||
initial={{ x: -100, opacity: 0 }}
|
||
whileInView={{ x: 0, opacity: 1 }}
|
||
transition={{
|
||
delay: 0.1,
|
||
type: "spring",
|
||
}}>
|
||
Связаться
|
||
</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",
|
||
}}>
|
||
Не стесняйтесь связаться со мной,{" "}
|
||
<span className="bg-transparent md:bg-gray-100 bg-opacity-50 xl:bg-transparent">
|
||
можем посотрудничать и реализовать Ваш проект.
|
||
</span>
|
||
</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",
|
||
}}>
|
||
<a href="mailto:vk@gossys.dev?subject=Я с сайта Korobtsev.ru&body=Приветствую Виталий!">
|
||
vk@gossys.dev
|
||
</a>
|
||
</motion.p>
|
||
{/* icons */}
|
||
<div className="flex justify-center items-center space-x-4">
|
||
<motion.a
|
||
href="mailto:vk@gossys.dev?subject=Я с сайта Korobtsev.ru&body=Приветствую Виталий!"
|
||
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"
|
||
initial={{ y: 40, opacity: 0 }}
|
||
whileInView={{ y: 0, opacity: 1 }}
|
||
transition={{
|
||
y: { delay: 0.1 },
|
||
opacity: { delay: 0.2 },
|
||
}}>
|
||
<FontAwesomeIcon icon={faEnvelope} className="text-3xl" />
|
||
</motion.a>
|
||
|
||
<motion.a
|
||
href="https://dev.gossys.dev/v.korobtsev/"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
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"
|
||
initial={{ opacity: 0, y: 40 }}
|
||
whileInView={{ opacity: 1, y: 0 }}
|
||
transition={{
|
||
y: { delay: 0.2 },
|
||
opacity: { delay: 0.3 },
|
||
}}>
|
||
<FontAwesomeIcon icon={faGithub} className="text-3xl" />
|
||
</motion.a>
|
||
<motion.a
|
||
href="https://vk.ru/Miguelle74/"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
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"
|
||
initial={{ opacity: 0, y: 40 }}
|
||
whileInView={{ opacity: 1, y: 0 }}
|
||
transition={{
|
||
y: { delay: 0.3 },
|
||
opacity: { delay: 0.4 },
|
||
}}>
|
||
<FontAwesomeIcon
|
||
icon={faVk}
|
||
className="text-3xl"
|
||
/>
|
||
</motion.a>
|
||
<motion.a
|
||
href="https://t.me/Gosys_Maestro/"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
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"
|
||
initial={{ opacity: 0, y: 40 }}
|
||
whileInView={{ opacity: 1, y: 0 }}
|
||
transition={{
|
||
y: { delay: 0.4 },
|
||
opacity: { delay: 0.5 },
|
||
}}>
|
||
<FontAwesomeIcon icon={faTelegram}
|
||
className="text-3xl" />
|
||
</motion.a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</ReactFullpage.Wrapper>
|
||
)}
|
||
{...fullpageOptions}
|
||
/>
|
||
</div>
|
||
);
|
||
};
|
||
|
||
export default MyPage;
|