Added some projects

This commit is contained in:
2024-09-27 23:16:59 +03:00
parent cb32524241
commit 9cb71c3a7d
5 changed files with 49 additions and 14 deletions

View File

@@ -11,10 +11,36 @@
"github": "Github" "github": "Github"
}, },
"pure_city": { "pure_city": {
"name": "Pure City" "name": "Pure City",
"description": "Website of a cleaning company with high standards and a wide range of services."
},
"vk_mute": {
"name": "VK Mute",
"description": "A Chromium extension that allows you to hide unwanted messages in Vkontakte group chats."
},
"tpk_artel": {
"name": "TPK Artel",
"description": "Website of a company providing construction, installation, maintenance and a host of other services."
},
"games": {
"name": "My games",
"description": "A site with games that I ve developed a long time ago using Lua. Some of them I ported to Wasm and made them playable from a browser."
},
"musanthrope": {
"name": "Musanthrope x PAYDAY 2",
"description": "A landing page for a PAYDAY 2 mod with soundtrack mashups by Musanthrope."
},
"vk_adult": {
"name": "VK Adult",
"description": "A Chromium extension that brings unsafe search back."
},
"sleepy_care": {
"name": "Sleepy Care",
"description": "Facts about sleep, background noise generator with the ability to share and select sounds from the community, dream log."
} }
}, },
"footer": { "footer": {
"made_with": "Made with SvelteKit and Tailwind" "made_with": "Made with SvelteKit and Tailwind",
"go_back": "Go back in time"
} }
} }

View File

@@ -12,7 +12,7 @@
}, },
"pure_city": { "pure_city": {
"name": "Pure City", "name": "Pure City",
"description": "Сайт клининговой компании с высокими стандартами и широким спектром услуг." "description": "Сайт клининговой компании с высокими стандартами и широким спектром услуг."
}, },
"vk_mute": { "vk_mute": {
"name": "VK Mute", "name": "VK Mute",
@@ -20,26 +20,27 @@
}, },
"vk_adult": { "vk_adult": {
"name": "VK Adult", "name": "VK Adult",
"description": "Расширение для Chromium возвращающее небезопасный поиск." "description": "Расширение для Chromium, возвращающее небезопасный поиск."
}, },
"tpk_artel": { "tpk_artel": {
"name": "ТПК Артель", "name": "ТПК Артель",
"description": "Сайт компании предоставляющей строительные услуги, услуги по монтажу, техническому обслуживанию и множество других." "description": "Сайт компании, предоставляющей строительные услуги, услуги по монтажу, техническому обслуживанию и множество других."
}, },
"games": { "games": {
"name": "Мои игры", "name": "Мои игры",
"description": "Сайт с играми, которые я разрабатывал в прошлой жизни используя Lua. Некоторые из них я транспилировал на js и сделал доступными для игры из браузера." "description": "Сайт с играми, которые я разрабатывал в прошлой жизни используя Lua. Некоторые из них я портировал на Wasm и сделал доступными для игры из браузера."
}, },
"musanthrope": { "musanthrope": {
"name": "Musanthrope x PAYDAY 2", "name": "Musanthrope x PAYDAY 2",
"description": "Лендинг мода для PAYDAY 2 с мешапами треков от Musanthrope." "description": "Лендинг мода для PAYDAY 2 с мешапами треков от Musanthrope."
}, },
"sleepy_care": { "sleepy_care": {
"name": "Sleepy Care", "name": "Sleepy Care",
"description": "Факты о сне, генератор фонового шума с возможностью делиться и выбирать звуки от сообщества, журнал снов." "description": "Факты о сне, генератор фонового шума с возможностью делиться и выбирать звуки от сообщества, журнал снов."
} }
}, },
"footer": { "footer": {
"made_with": "Сделано с SvelteKit и Tailwind" "made_with": "Сделано с SvelteKit и Tailwind",
"go_back": "Вернуться в прошлое"
} }
} }

View File

@@ -10,7 +10,8 @@
<a <a
class="text-sm text-slate-400" class="text-sm text-slate-400"
href="https://v1.kopyl.dev" href="https://v1.kopyl.dev"
target="_blank"
> >
Time Machine {$t('footer.go_back')}
</a> </a>
</footer> </footer>

View File

@@ -18,19 +18,19 @@ onMount(async () => {
ScrollTrigger.create({ ScrollTrigger.create({
trigger: logo, trigger: logo,
start: "top-=10% top+=64px", start: "top-=10% top+=64px",
scrub: 1,
onEnter: () => { onEnter: () => {
const state = Flip.getState(logo); const state = Flip.getState(logo);
logo.classList.add("hero__logo--in-nav") logo.classList.add("hero__logo--in-nav")
Flip.from(state, { Flip.from(state, {
duration: 1, duration: .6,
}) })
}, },
onLeaveBack: () => { onLeaveBack: () => {
const state = Flip.getState(logo); const state = Flip.getState(logo);
logo.classList.remove("hero__logo--in-nav") logo.classList.remove("hero__logo--in-nav")
Flip.from(state, { Flip.from(state, {
duration: 1, absolute: true,
duration: .6,
}) })
} }
}) })
@@ -133,6 +133,13 @@ const goTop = () => {
height: 48px; height: 48px;
color: white; color: white;
opacity: .8; opacity: .8;
transition: opacity .3s;
}
&:hover {
:global(svg) {
opacity: 1;
}
} }
} }
</style> </style>

View File

@@ -34,7 +34,7 @@
{/each} {/each}
</div> </div>
<div class="flex gap-4"> <div class="flex gap-2">
{#each project.links as link} {#each project.links as link}
<a <a
target="_blank" target="_blank"