vkorobtsev-nextJs/app/(root)/page.jsx
Коробцев Виталий Сергеевич 55249b5aa6 On branch master
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
2025-09-12 14:56:00 +05:00

397 lines
14 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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;