Skip to content

Commit e2d8d37

Browse files
committed
feat: general improvements
1 parent 17ec180 commit e2d8d37

File tree

12 files changed

+168
-373
lines changed

12 files changed

+168
-373
lines changed

src/app.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
Projects,
99
Technologies,
1010
} from "@/components/ui"
11+
import { glitchPrimary, glitchSecondary } from "@/data/colors"
1112

1213
export const App = () => {
1314
// ? On load animation
@@ -17,17 +18,19 @@ export const App = () => {
1718
<LetterGlitch
1819
centerVignette={true}
1920
className="fixed top-0"
20-
glitchColors={["#3a2813", "#6c4a24"]}
21+
glitchColors={[glitchPrimary, glitchSecondary]}
2122
glitchSpeed={60}
2223
outerVignette={true}
2324
smooth={true}
2425
/>
2526
<div className="relative z-1 flex h-full flex-col">
26-
<div className="fixed z-2 w-full border-2 border-dashed border-[#6c4a24] bg-[#3a2813]" />
27+
<div className="fixed z-2 w-full border-2 border-dashed border-glitch-primary bg-glitch-secondary" />
2728
<div className="mx-auto mt-4 max-w-screen-max-px flex-1 px-3 sm:px-6">
2829
<Header />
2930
<Hero />
3031
<About />
32+
{/* TODO: github activity */}
33+
<div />
3134
<Technologies />
3235
<Projects />
3336
<Contact />

src/components/ui/About.tsx

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,57 @@
11
import { Age } from "./dynamics/Age"
2-
import { TaggedText } from "./TaggedText"
32

4-
import { useText } from "@/hooks"
3+
import { useLanguage } from "@/hooks"
4+
5+
const translation = {
6+
ru: {
7+
about:
8+
"y/o, студент и разработчик из России. Вовлечен в изучении новых технологий и разработке масштабируемых систем. Варюсь в сфере Backend и сетевых технологий. Обожаю",
9+
status: [
10+
"Вношу вклад в open source и разрабатываю свои пет-проекты. Например,",
11+
"(書き留める - to write down, to make a note of)",
12+
],
13+
},
14+
en: {
15+
about:
16+
"y/o, student & developer from Russia. I'm passionate about learning new things and creating scalable systems. Mostly Backend & Networking. In love with",
17+
status: [
18+
"Contributing to open source and developing my own pet projects. For example,",
19+
"(書き留める - to write down, to make a note of)",
20+
],
21+
},
22+
}
523

624
export const About = () => {
7-
const { about } = useText()
25+
const { language } = useLanguage()
826

927
return (
1028
<section className="mt-8">
1129
<p className="base-text">
12-
<Age />{" "}
13-
<TaggedText inserts={about.inserts.about} text={about.text.about} />
30+
<Age /> {translation[language].about}{" "}
31+
<span className="text-primary">
32+
<a
33+
href="https://rateyourmusic.com/list/Hyp3r10n/_dariacore-hyperflip/"
34+
rel="noreferrer"
35+
target="_blank"
36+
>
37+
#hyperflip
38+
</a>{" "}
39+
<a href="https://gleam.run" rel="noreferrer" target="_blank">
40+
#gleam
41+
</a>
42+
</span>
1443
</p>
1544
<p className="base-text mt-4">
16-
<TaggedText inserts={about.inserts.current} text={about.text.current} />
45+
{translation[language].status[0]}{" "}
46+
<a
47+
className="text-primary underline"
48+
href="https://github.com/kakitomeru/kakitomeru"
49+
rel="noreferrer"
50+
target="_blank"
51+
>
52+
Kakitomeru
53+
</a>{" "}
54+
{translation[language].status[1]}
1755
</p>
1856
</section>
1957
)

src/components/ui/Contact.tsx

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,32 @@
11
import { discordId, email, telegramId } from "@/data/config"
2-
import { useLanyard, useText } from "@/hooks"
2+
import { useLanguage, useLanyard } from "@/hooks"
3+
4+
const translation = {
5+
ru: {
6+
title: "Контакты",
7+
text: [
8+
"Есть вопрос, или хотите связаться? Не стесняйтесь, пишите мне в",
9+
"или",
10+
],
11+
},
12+
en: {
13+
title: "Contact me",
14+
text: [
15+
"Have an inquiry, or want to connect? Feel free to get in touch via",
16+
"or",
17+
],
18+
},
19+
}
320

421
export const Contact = () => {
522
const { data } = useLanyard({ userId: discordId })
6-
const { contact } = useText()
23+
const { language } = useLanguage()
724

825
return (
926
<section className="mt-8">
10-
<h2 className="text-2xl font-bold">{contact.title}</h2>
27+
<h2 className="text-2xl font-bold">{translation[language].title}</h2>
1128
<p className="base-text mt-4">
12-
{contact.text}{" "}
29+
{translation[language].text[0]}{" "}
1330
<a
1431
className="text-primary underline"
1532
href={`https://discord.com/users/${discordId}`}
@@ -27,7 +44,7 @@ export const Contact = () => {
2744
>
2845
telegram
2946
</a>
30-
, {contact.or}{" "}
47+
, {translation[language].text[1]}{" "}
3148
<a
3249
className="text-primary underline"
3350
href={`mailto:${email}`}
@@ -38,22 +55,6 @@ export const Contact = () => {
3855
</a>
3956
.
4057
</p>
41-
{amISleeping() ? (
42-
<p className="base-text mt-4 text-secondary">{contact.asleep}</p>
43-
) : (
44-
<p className="base-text mt-4 text-primary">{contact.awake}</p>
45-
)}
4658
</section>
4759
)
4860
}
49-
50-
const amISleeping = () => {
51-
const moscowTime = new Date().toLocaleString("en-US", {
52-
timeZone: "Europe/Moscow",
53-
})
54-
55-
const moscowDate = new Date(moscowTime)
56-
const hours = moscowDate.getHours()
57-
58-
return hours < 9 || hours >= 21
59-
}

src/components/ui/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const Footer = () => {
1010
©/{new Date().getFullYear()}
1111
</p>
1212
<p className="base-text text-secondary">
13-
{success ? data!.flag : "..."}
13+
wskiy.de | {success ? data!.flag : "🏴‍☠️"}
1414
</p>
1515
</div>
1616
</footer>

src/components/ui/Projects.tsx

Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,86 @@
1-
import { TaggedText } from "./TaggedText"
2-
1+
import sakuraImg from "@/assets/sakura.png"
2+
import wwwImg from "@/assets/www.png"
33
import { GithubIcon } from "@/components/svgs"
4-
import { useText } from "@/hooks"
4+
import { primary, sakura } from "@/data/colors"
5+
import { useLanguage } from "@/hooks"
6+
7+
const translation = {
8+
ru: {
9+
title: "Проекты",
10+
},
11+
en: {
12+
title: "Projects",
13+
},
14+
}
15+
16+
const projects = [
17+
{
18+
name: "Sakura🌸",
19+
theme: sakura,
20+
image: sakuraImg,
21+
github: "sakura",
22+
text: {
23+
ru: 'Sakura - это HTTP фреймворк, разработанный без зависимостей и поддержкой валидации zod, которая позволяет создать сервер, "растущий органически", черпая вдохновение из грациозного изящества дерева сакуры.',
24+
en: "Sakura is a HTTP framework built without dependencies and with zod validation support, which allows you to create a server that grows organically, drawing inspiration from the graceful elegance of a cherry blossom tree.",
25+
},
26+
},
27+
{
28+
name: "www🗺️",
29+
theme: primary,
30+
image: wwwImg,
31+
github: "www",
32+
text: {
33+
ru: "Уютненькое портфолио с капелькой креатива, разработанное с использованием React и Tailwind CSS. Оно содержит информацию обо мне, мои навыки и проекты.",
34+
en: "A cozy portfolio with a touch of creativity, developed using React and Tailwind CSS. It contains information about me, my skills, and projects.",
35+
},
36+
},
37+
]
538

639
export const Projects = () => {
7-
const { projects } = useText()
40+
const { language } = useLanguage()
841

942
return (
1043
<section className="mt-8">
11-
<h2 className="text-2xl font-bold md:text-3xl">{projects.title}</h2>
12-
<p className="base-text mt-4">{projects.text}</p>
44+
<h2 className="text-2xl font-bold md:text-3xl">
45+
{translation[language].title}
46+
</h2>
1347
<div className="mt-4 flex flex-col flex-wrap gap-2 md:flex-row">
14-
{projects.list.map(({ data, inserts }) => (
48+
{projects.map((project) => (
1549
<div
16-
key={data.name}
50+
key={project.name}
1751
className="flex flex-col rounded-md p-2 sm:p-4 md:flex-1/3 xl:flex-1/4"
1852
style={{
19-
backgroundColor: `${data.theme}25`,
53+
backgroundColor: `${project.theme}25`,
2054
}}
2155
>
2256
<div className="flex items-center justify-between">
2357
<h2
2458
className="text-lg sm:text-xl lg:text-2xl"
2559
style={{
26-
color: data.theme,
60+
color: project.theme,
2761
}}
2862
>
29-
{data.name}
63+
{project.name}
3064
</h2>
3165
<a
3266
className="base-text inline-block text-secondary"
33-
href={`https://github.com/vshakitskiy/${data.github}`}
67+
href={`https://github.com/vshakitskiy/${project.github}`}
3468
rel="noreferrer"
3569
target="_blank"
3670
>
3771
<GithubIcon
3872
className="size-5 sm:size-6"
3973
style={{
40-
fill: data.theme,
74+
fill: project.theme,
4175
}}
4276
/>
4377
</a>
4478
</div>
45-
<p className="base-text mt-4 flex-1">
46-
<TaggedText inserts={inserts} text={data.text} />
47-
</p>
79+
<p className="base-text mt-4 flex-1">{project.text[language]}</p>
4880
<img
49-
alt={data.name}
81+
alt={project.name}
5082
className="mx-auto mt-4 w-full rounded-md"
51-
src={data.image}
83+
src={project.image}
5284
/>
5385
</div>
5486
))}

src/components/ui/TaggedText.tsx

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/components/ui/Technologies.tsx

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { TaggedText } from "./TaggedText"
2-
31
import {
42
BunIcon,
53
DenoIcon,
@@ -17,7 +15,16 @@ import {
1715
ViteIcon,
1816
VscodeIcon,
1917
} from "@/components/svgs"
20-
import { useText } from "@/hooks"
18+
import { useLanguage } from "@/hooks"
19+
20+
const translation = {
21+
ru: {
22+
title: "Технологии",
23+
},
24+
en: {
25+
title: "Technologies",
26+
},
27+
}
2128

2229
const icons = [
2330
{ name: "Go", icon: GoIcon, className: "size-12 sm:size-14 md:size-15" },
@@ -38,28 +45,28 @@ const icons = [
3845
]
3946

4047
export const Technologies = () => {
41-
const { technologies } = useText()
48+
const { language } = useLanguage()
4249

4350
return (
4451
<section className="mt-8">
4552
<h2 className="text-2xl font-bold md:text-3xl">
46-
{technologies.text.title}
53+
{translation[language].title}
4754
</h2>
48-
<p className="base-text mt-4">
49-
<TaggedText
50-
inserts={technologies.inserts}
51-
text={technologies.text.text}
52-
/>
53-
</p>
5455
<div className="mt-4 flex flex-wrap gap-1">
5556
{icons.map((technology) => (
5657
<div
5758
key={technology.name}
58-
className="flex h-20 flex-1/4 items-center justify-center rounded-md bg-[#b3b3b325] sm:flex-1/5 md:flex-1/6 lg:flex-1/7 xl:flex-1/8"
59+
className="group relative flex h-20 flex-1/4 items-center justify-center gap-2 rounded-md bg-primary/10 p-3 hover:border hover:border-glitch-primary/40 hover:bg-primary/20 sm:flex-1/5 md:flex-1/6 lg:flex-1/7 xl:flex-1/8"
5960
>
6061
<technology.icon
6162
className={`size-8 fill-primary sm:size-10 md:size-11 ${technology.className ? ` ${technology.className}` : ""}`}
6263
/>
64+
<span className="hidden font-bold text-primary group-hover:sm:block">
65+
{technology.name}
66+
</span>
67+
<span className="absolute -top-4 left-1/2 hidden -translate-x-1/2 rounded-sm border border-glitch-primary bg-background px-2 text-primary group-hover:block group-hover:sm:hidden">
68+
{technology.name}
69+
</span>
6370
</div>
6471
))}
6572
</div>

0 commit comments

Comments
 (0)