Skip to content

Commit a13de07

Browse files
committed
-
1 parent 6532030 commit a13de07

File tree

16 files changed

+220
-111
lines changed

16 files changed

+220
-111
lines changed

components/Avatar.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import Image from "next/image";
1+
// import Image from "next/image";
22

33
const Avatar = () => {
44
return (
55
<div className="hidden xl:flex xl:max-w-none pointer-events-none select-none">
6-
<Image
7-
src="/avatar.png"
8-
alt="avatar"
9-
width={737}
10-
height={678}
11-
className="translate-z-0 w-full h-full"
12-
/>
6+
{/*<Image*/}
7+
{/* src="/avatar.png"*/}
8+
{/* alt="avatar"*/}
9+
{/* width={737}*/}
10+
{/* height={678}*/}
11+
{/* className="translate-z-0 w-full h-full"*/}
12+
{/*/>*/}
1313
</div>
1414
);
1515
};

components/Header.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import Image from "next/image";
21
import Link from "next/link";
2+
import { Logotype } from "@/components/Logotype";
33
import Socials from "../components/Socials";
44

55
const Header = () => {
@@ -8,13 +8,7 @@ const Header = () => {
88
<div className="container mx-auto">
99
<div className="flex flex-col lg:flex-row justify-between items-center gap-y-6 py-8">
1010
<Link href="/">
11-
<Image
12-
src="/logo.svg"
13-
alt="logo"
14-
width={220}
15-
height={48}
16-
priority
17-
/>
11+
<Logotype />
1812
</Link>
1913

2014
<Socials />

components/Layout.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { FC, HTMLAttributes } from "react";
22
import { Sora } from "next/font/google";
33
import Head from "next/head";
4+
import { WEBSITE } from "@/constants";
45
import { cn } from "@/utils";
56
import Header from "../components/Header";
67
import Nav from "../components/Nav";
78
import TopLeftImg from "../components/TopLeftImg";
89

9-
// setup font
1010
const sora = Sora({
1111
subsets: ["latin"],
1212
variable: "--font-sora",
@@ -26,16 +26,12 @@ const Layout: FC<Props> = ({ className, children, ...rest }) => {
2626
{...rest}
2727
>
2828
<Head>
29-
<title>Ethan Smith | Portfolio</title>
30-
<meta
31-
name="description"
32-
content="Ethan Smith is a Full-stack web developer with 10+ years of experience."
33-
/>
34-
<meta
35-
name="keywords"
36-
content="react, next, nextjs, html, css, javascript, js, modern-ui, modern-ux, portfolio, framer-motion, 3d-website, particle-effect"
37-
/>
38-
<meta name="author" content="Sanidhya Kumar Verma" />
29+
<title>
30+
{WEBSITE.name} | {WEBSITE.tagline}
31+
</title>
32+
<meta name="description" content={WEBSITE.description} />
33+
<meta name="keywords" content={WEBSITE.keywords.join(", ")} />
34+
<meta name="author" content={WEBSITE.author} />
3935
<meta name="theme-color" content="#f13024" />
4036
</Head>
4137

components/Logotype.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { FC, HTMLAttributes } from "react";
2+
import { cn } from "@/utils";
3+
4+
type Props = HTMLAttributes<HTMLDivElement>;
5+
6+
export const Logotype: FC<Props> = ({ className, ...rest }) => {
7+
return (
8+
<div className={cn("text-3xl", className)} {...rest}>
9+
<span className="font-bold">[dmitrii]</span>{" "}
10+
<span className="">selikhov</span>{" "}
11+
<span className="text-accent font-bold">.</span>
12+
</div>
13+
);
14+
};

components/Nav.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const Nav = () => {
3333

3434
return (
3535
<nav className="flex flex-col items-center xl:justify-center gap-y-4 fixed h-max bottom-0 mt-auto xl:right-[2%] z-50 top-0 w-full xl:w-16 xl:max-w-md xl:h-screen">
36-
<div className="flex w-full xl:flex-col items-center justify-between xl:justify-center gap-y-10 px-4 md:px-40 xl:px-0 h-[80px] xl:h-max py-8 bg-white/10 backdrop-blur-sm text-3xl xl:text-xl xl:rounded-full">
36+
<div className="flex w-full xl:flex-col items-center justify-between xl:justify-center gap-y-10 px-4 md:px-40 xl:px-0 h-[80px] xl:h-max py-8 bg-white/10 backdrop-blur-sm text-3xl xl:text-2xl xl:rounded-full">
3737
{navData.map((link, i) => (
3838
<Link
3939
className={`${

components/ParticlesContainer.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { loadFull } from "tsparticles";
44
import type { Engine } from "tsparticles-engine";
55

66
const ParticlesContainer = () => {
7-
// init
87
const particlesInit = useCallback(async (engine: Engine) => {
98
await loadFull(engine);
109
}, []);

components/ProjectsBtn.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const ProjectsBtn = () => {
77
<div className="mx-auto xl:mx-0">
88
<Link
99
href="/work"
10-
className="relative w-[185px] h-[185px] flex justify-center items-center bg-circleStar bg-cover bg-center bg-no-repeat group"
10+
className="relative w-[185px] h-[185px] z-10 flex justify-center items-center bg-circleStar bg-cover bg-center bg-no-repeat group"
1111
>
1212
<Image
1313
src="/rounded-text.png"

components/Socials.tsx

Lines changed: 24 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,31 @@
1-
import {
2-
RiDribbbleLine,
3-
RiFacebookLine,
4-
RiGithubLine,
5-
RiInstagramLine,
6-
RiPinterestLine,
7-
RiYoutubeLine,
8-
} from "react-icons/ri";
91
import Link from "next/link";
10-
11-
export const socialData = [
12-
{
13-
name: "YouTube",
14-
link: "https://youtube.com",
15-
Icon: RiYoutubeLine,
16-
},
17-
{
18-
name: "Instagram",
19-
link: "https://instagram.com",
20-
Icon: RiInstagramLine,
21-
},
22-
{
23-
name: "Facebook",
24-
link: "https://facebook.com",
25-
Icon: RiFacebookLine,
26-
},
27-
{
28-
name: "Dribbble",
29-
link: "https://dribbble.com",
30-
Icon: RiDribbbleLine,
31-
},
32-
{
33-
name: "Pinterest",
34-
link: "https://pinterest.com",
35-
Icon: RiPinterestLine,
36-
},
37-
{
38-
name: "Github",
39-
link: "https://github.com/sanidhyy/modern-portfolio",
40-
Icon: RiGithubLine,
41-
},
42-
];
2+
import { SOCIALS } from "@/constants";
3+
import { Social } from "@/types";
4+
import { cn } from "@/utils";
435

446
const Socials = () => {
457
return (
46-
<div className="flex items-center gap-x-5 text-lg">
47-
{socialData.map((social, i) => (
48-
<Link
49-
key={i}
50-
title={social.name}
51-
href={social.link}
52-
target="_blank"
53-
rel="noreferrer noopener"
54-
className={`${
55-
social.name === "Github"
56-
? "bg-accent rounded-full p-[5px] hover:text-white"
57-
: "hover:text-accent"
58-
} transition-all duration-300`}
59-
>
60-
<social.Icon aria-hidden />
61-
<span className="sr-only">{social.name}</span>
62-
</Link>
63-
))}
8+
<div className="flex items-center gap-x-5 text-2xl">
9+
{Object.values(SOCIALS)
10+
.filter((social) => social.link)
11+
.map((social) => (
12+
<Link
13+
key={social.name}
14+
title={social.title}
15+
href={social.link}
16+
target="_blank"
17+
rel="noreferrer noopener"
18+
className={cn(
19+
social.name === Social.GitHub
20+
? "bg-accent rounded-full p-[5px] hover:text-white"
21+
: "hover:text-accent",
22+
"transition-all duration-300",
23+
)}
24+
>
25+
<social.icon aria-hidden />
26+
<span className="sr-only">{social.name}</span>
27+
</Link>
28+
))}
6429
</div>
6530
);
6631
};

constants/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

constants/index.tsx

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
import type { IconType } from "react-icons";
2+
import {
3+
RiCalendarLine,
4+
RiEarthLine,
5+
RiFacebookLine,
6+
RiGithubLine,
7+
RiInstagramLine,
8+
RiLinkedinLine,
9+
RiMailLine,
10+
RiNpmjsLine,
11+
RiPhoneLine,
12+
RiTelegramLine,
13+
RiTwitterLine,
14+
} from "react-icons/ri";
15+
import { Social } from "@/types";
16+
17+
export const WEBSITE = {
18+
name: "Dmitrii Selikhov",
19+
author: "Dmitrii Selikhov",
20+
tagline: "CTO, Software Architect, Technical Lead, 3X Founder.",
21+
description:
22+
"CTO, Software Architect, Technical Lead, 3X Founder. Linking companies with top tech talents.",
23+
keywords: [""],
24+
about: "",
25+
};
26+
27+
export const SOCIALS: Record<
28+
Social,
29+
{ name: string; title: string; icon: IconType; link: string }
30+
> = {
31+
[Social.Email]: {
32+
name: "Email",
33+
title: `Email ${WEBSITE.author}`,
34+
icon: RiMailLine,
35+
link: "mailto:[email protected]",
36+
},
37+
[Social.Phone]: {
38+
name: "Phone",
39+
title: `Call ${WEBSITE.author}`,
40+
icon: RiPhoneLine,
41+
link: "tel:+18299576440",
42+
},
43+
[Social.Facebook]: {
44+
name: "Facebook",
45+
title: `${WEBSITE.author} on Facebook`,
46+
icon: RiFacebookLine,
47+
link: "",
48+
},
49+
[Social.Instagram]: {
50+
name: "Instagram",
51+
title: `${WEBSITE.author} on Instagram`,
52+
icon: RiInstagramLine,
53+
link: "",
54+
},
55+
[Social.Twitter]: {
56+
name: "Twitter",
57+
title: `${WEBSITE.author} on Twitter`,
58+
icon: RiTwitterLine,
59+
link: "https://x.com/idimetrix",
60+
},
61+
[Social.LinkedIn]: {
62+
name: "LinkedIn",
63+
title: `${WEBSITE.author} on LinkedIn`,
64+
icon: RiLinkedinLine,
65+
link: "https://www.linkedin.com/in/dimetrix",
66+
},
67+
[Social.Telegram]: {
68+
name: "Telegram",
69+
title: `${WEBSITE.author} on Telegram`,
70+
icon: RiTelegramLine,
71+
link: "https://t.me/dmitrii_selikhov",
72+
},
73+
[Social.Npm]: {
74+
name: "NPM",
75+
title: `${WEBSITE.author} on NPM`,
76+
icon: RiNpmjsLine,
77+
link: "https://www.npmjs.com/~dimetrix",
78+
},
79+
[Social.Website]: {
80+
name: "Website",
81+
title: `Visit ${WEBSITE.author}’s Website`,
82+
icon: RiEarthLine,
83+
link: "https://dmitrii-selikhov.vercel.app",
84+
},
85+
[Social.Calendly]: {
86+
name: "Calendly",
87+
title: `Schedule with ${WEBSITE.author} on Calendly`,
88+
icon: RiCalendarLine,
89+
link: "https://calendly.com/dmitry-selikhov",
90+
},
91+
[Social.GitHub]: {
92+
name: "GitHub",
93+
title: `${WEBSITE.author} on GitHub`,
94+
icon: RiGithubLine,
95+
link: "https://github.com/idimetrix",
96+
},
97+
};
98+
99+
export * from "./variants";

0 commit comments

Comments
 (0)