mirror of
https://github.com/MedzikUser/portfolio
synced 2024-08-15 03:26:01 +00:00
Compare commits
7 commits
e5b4fca60b
...
ae3c0c2ba2
Author | SHA1 | Date | |
---|---|---|---|
|
ae3c0c2ba2 | ||
|
31628cc5e0 | ||
|
2f828934b9 | ||
|
01ab9d1e23 | ||
|
dc91f8abe3 | ||
|
7aec943dc8 | ||
|
a228be69d5 |
21 changed files with 3867 additions and 3877 deletions
|
@ -1,30 +1,25 @@
|
|||
module.exports = {
|
||||
root: true,
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:svelte/recommended',
|
||||
'prettier'
|
||||
],
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: ['@typescript-eslint'],
|
||||
parserOptions: {
|
||||
sourceType: 'module',
|
||||
ecmaVersion: 2020,
|
||||
extraFileExtensions: ['.svelte']
|
||||
},
|
||||
env: {
|
||||
browser: true,
|
||||
es2017: true,
|
||||
node: true
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['*.svelte'],
|
||||
parser: 'svelte-eslint-parser',
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser'
|
||||
}
|
||||
}
|
||||
]
|
||||
root: true,
|
||||
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:svelte/recommended', 'prettier'],
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: ['@typescript-eslint'],
|
||||
parserOptions: {
|
||||
sourceType: 'module',
|
||||
ecmaVersion: 2020,
|
||||
extraFileExtensions: ['.svelte']
|
||||
},
|
||||
env: {
|
||||
browser: true,
|
||||
es2017: true,
|
||||
node: true
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['*.svelte'],
|
||||
parser: 'svelte-eslint-parser',
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
|
20
.prettierrc
20
.prettierrc
|
@ -1,9 +1,15 @@
|
|||
{
|
||||
"useTabs": true,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "none",
|
||||
"printWidth": 100,
|
||||
"plugins": ["prettier-plugin-svelte"],
|
||||
"pluginSearchDirs": ["."],
|
||||
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
|
||||
"tabWidth": 4,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "none",
|
||||
"printWidth": 120,
|
||||
"plugins": ["prettier-plugin-svelte"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": "*.svelte",
|
||||
"options": {
|
||||
"parser": "svelte"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# [Portfolio](https://medzik.dev)
|
||||
|
||||
![image](https://github.com/M3DZIK/portfolio/assets/87065584/160a190c-e39a-4801-8ee6-d5a89104e6b1)
|
||||
![website screenshot](https://github.com/M3DZIK/portfolio/assets/87065584/f283d0fd-1e4b-4aed-a057-bee4a21e03d0)
|
||||
|
||||
License: MIT
|
||||
Licensed under MIT
|
||||
|
|
7234
package-lock.json
generated
7234
package-lock.json
generated
File diff suppressed because it is too large
Load diff
70
package.json
70
package.json
|
@ -1,37 +1,37 @@
|
|||
{
|
||||
"name": "portfolio",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||
"lint": "prettier --plugin-search-dir . --check . && eslint .",
|
||||
"format": "prettier --plugin-search-dir . --write ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"@floating-ui/dom": "^1.4.0",
|
||||
"@skeletonlabs/skeleton": "^1.7.1",
|
||||
"@sveltejs/adapter-auto": "^2.0.0",
|
||||
"@sveltejs/kit": "^1.5.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
||||
"@typescript-eslint/parser": "^5.45.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint": "^8.28.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-svelte": "^2.26.0",
|
||||
"postcss": "^8.4.24",
|
||||
"prettier": "^2.8.0",
|
||||
"prettier-plugin-svelte": "^2.8.1",
|
||||
"svelte": "^3.54.0",
|
||||
"svelte-check": "^3.0.1",
|
||||
"svelte-icons": "^2.1.0",
|
||||
"tailwindcss": "^3.3.2",
|
||||
"tslib": "^2.4.1",
|
||||
"typescript": "^5.0.0",
|
||||
"vite": "^4.3.0"
|
||||
},
|
||||
"type": "module"
|
||||
"name": "portfolio",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||
"lint": "prettier --plugin-search-dir . --check . && eslint .",
|
||||
"format": "prettier --plugin-search-dir . --write ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"@floating-ui/dom": "^1.4.0",
|
||||
"@skeletonlabs/skeleton": "^1.7.1",
|
||||
"@sveltejs/adapter-auto": "^2.0.0",
|
||||
"@sveltejs/kit": "^1.5.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
||||
"@typescript-eslint/parser": "^5.45.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint": "^8.28.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-svelte": "^2.26.0",
|
||||
"postcss": "^8.4.24",
|
||||
"prettier": "^2.8.0",
|
||||
"prettier-plugin-svelte": "^2.8.1",
|
||||
"svelte": "^3.54.0",
|
||||
"svelte-check": "^3.0.1",
|
||||
"svelte-icons": "^2.1.0",
|
||||
"tailwindcss": "^3.3.2",
|
||||
"tslib": "^2.4.1",
|
||||
"typescript": "^5.0.0",
|
||||
"vite": "^4.3.0"
|
||||
},
|
||||
"type": "module"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {}
|
||||
}
|
||||
};
|
||||
|
|
8
src/app.d.ts
vendored
8
src/app.d.ts
vendored
|
@ -2,8 +2,8 @@
|
|||
// for information about these interfaces
|
||||
// and what to do when importing types
|
||||
declare namespace App {
|
||||
// interface Locals {}
|
||||
// interface PageData {}
|
||||
// interface Error {}
|
||||
// interface Platform {}
|
||||
// interface Locals {}
|
||||
// interface PageData {}
|
||||
// interface Error {}
|
||||
// interface Platform {}
|
||||
}
|
||||
|
|
17
src/app.html
17
src/app.html
|
@ -1,11 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" class="light">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
%sveltekit.head%
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
<div style="display: contents">%sveltekit.body%</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%sveltekit.assets%/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
%sveltekit.head%
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
<div style="display: contents">%sveltekit.body%</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*place global styles here */
|
||||
html,
|
||||
body {
|
||||
@apply h-full;
|
||||
@apply h-full;
|
||||
}
|
||||
|
|
Binary file not shown.
17
src/assets/avatar.svg
Normal file
17
src/assets/avatar.svg
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="144.49777mm" height="144.49777mm" viewBox="0 0 511.99998 511.99998" id="svg2" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="layer1" transform="matrix(1, 0, 0, 1, -132.389832, -111.211441)">
|
||||
<rect style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(132, 126, 237);" id="rect4405" width="512" height="512" x="132.38983" y="111.21142"/>
|
||||
<path style="opacity:1;fill:#212121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 146.53197,522.09515 389.7767,118.33718 634.43565,611.89771 Z" id="path4222"/>
|
||||
<circle r="56.154" cy="274.796" cx="433.733" id="circle-1" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; stroke-width: 5px; fill: rgb(255, 255, 255);"/>
|
||||
<path style="opacity:1;fill:#212121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 435.169 239.865 L 400.52 295.373 L 415.085 295.373 L 435.169 263.199 L 454.022 295.373 L 467.694 295.373 L 435.169 239.865 Z" id="path4249"/>
|
||||
<circle r="56.154327" cy="285.96564" cx="291.86502" id="circle4582" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; stroke-width: 5px; fill: rgb(255, 255, 255);"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(255, 255, 255);" d="M 105.58594 320.02148 L 87.222656 424.33398 L 394.07617 480.8125 L 412.85938 374.11328 L 105.58594 320.02148 z " id="rect4224" transform="translate(132.38983,111.21144)"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(255, 255, 255);" d="M 223.44531 235.52148 L 223.44531 340.76953 L 267.28711 348.48633 L 267.28711 235.52148 L 223.44531 235.52148 z " transform="translate(132.38983,111.21144)" id="rect4264"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(33, 33, 33);" d="M 370.60352 235.52148 L 392.33398 279.36133 L 418.25391 279.36133 L 418.25391 235.52148 L 370.60352 235.52148 z " id="rect4266" transform="translate(132.38983,111.21144)"/>
|
||||
<rect transform="matrix(0,1,-1,0,0,0)" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(132, 126, 237);" id="rect4268" width="43.13353" height="47.376015" x="400.82635" y="-457.30527"/>
|
||||
<path style="opacity:1;fill:#212121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 223.44531 340.76953 L 223.44531 376.23633 L 267.28711 376.23633 L 267.28711 348.48633 L 223.44531 340.76953 z " transform="translate(132.38983,111.21144)" id="path4277"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(255, 255, 255);" d="M 277.53906 235.52148 L 277.53906 279.36133 L 392.33398 279.36133 L 370.60352 235.52148 L 277.53906 235.52148 z " transform="translate(132.38983,111.21144)" id="rect4285"/>
|
||||
<circle r="15" cy="286.465" cx="292.846" id="circle-2" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(33, 33, 33);"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.6 KiB |
|
@ -5,10 +5,7 @@
|
|||
</script>
|
||||
|
||||
<div class="card variant-glass md:p-10 shadow-lg space-y-4 text-center btn whitespace-normal grid">
|
||||
<div
|
||||
class="mx-auto variant-glass rounded-2xl p-2"
|
||||
style="width: 50px; height: 50px;"
|
||||
>
|
||||
<div class="mx-auto variant-glass rounded-2xl p-2" style="width: 50px; height: 50px;">
|
||||
<svelte:component this={icon} />
|
||||
</div>
|
||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 12 KiB |
|
@ -1,7 +1,7 @@
|
|||
<script>
|
||||
import '@skeletonlabs/skeleton/themes/theme-skeleton.css';
|
||||
import '@skeletonlabs/skeleton/styles/skeleton.css';
|
||||
import '../app.postcss';
|
||||
import '@skeletonlabs/skeleton/themes/theme-skeleton.css';
|
||||
import '@skeletonlabs/skeleton/styles/skeleton.css';
|
||||
import '../app.postcss';
|
||||
</script>
|
||||
|
||||
<slot />
|
||||
|
|
|
@ -1,147 +1,102 @@
|
|||
<script>
|
||||
import { ProgressBar } from "@skeletonlabs/skeleton";
|
||||
import { ProgressBar } from '@skeletonlabs/skeleton';
|
||||
|
||||
import DiJava from 'svelte-icons/di/DiJava.svelte'
|
||||
import DiGo from 'svelte-icons/di/DiGo.svelte'
|
||||
import DiJavascript from 'svelte-icons/di/DiJavascript1.svelte'
|
||||
import FaGithub from "svelte-icons/fa/FaGithub.svelte";
|
||||
import FaGitlab from "svelte-icons/fa/FaGitlab.svelte";
|
||||
import FaCreditCard from "svelte-icons/fa/FaCreditCard.svelte";
|
||||
import FaYoutube from "svelte-icons/fa/FaYoutube.svelte";
|
||||
import FaTelegram from "svelte-icons/fa/FaTelegram.svelte";
|
||||
import MdEmail from "svelte-icons/md/MdEmail.svelte";
|
||||
import MdSecurity from "svelte-icons/md/MdSecurity.svelte";
|
||||
import FaGithub from 'svelte-icons/fa/FaGithub.svelte';
|
||||
import FaGitlab from 'svelte-icons/fa/FaGitlab.svelte';
|
||||
import FaCreditCard from 'svelte-icons/fa/FaCreditCard.svelte';
|
||||
import MdEmail from 'svelte-icons/md/MdEmail.svelte';
|
||||
import MdSecurity from 'svelte-icons/md/MdSecurity.svelte';
|
||||
|
||||
import SkillCard from "$lib/SkillCard.svelte";
|
||||
import Svelte from "$lib/icons/Svelte.svelte";
|
||||
import Card from '$lib/Card.svelte';
|
||||
|
||||
import avatar from '../assets/avatar.avif'
|
||||
import avatar from '../assets/avatar.svg';
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Medzik</title>
|
||||
<meta name="description" content="I'm a self-taught programmer with a passion for open-source software. Currently working on LibrePass, a password manager, and using Fedora with KDE. Explore my portfolio for more projects and achievements.">
|
||||
<meta name="keywords" content="self-taught programmer, open-source software, LibrePass, password manager, Fedora, KDE, portfolio, projects, achievements">
|
||||
<title>Medzik</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="I'm a self-taught programmer with a passion for open-source software. Currently working on LibrePass, a password manager, and using Fedora with KDE. Explore my portfolio for more projects and achievements."
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="self-taught programmer, open-source software, LibrePass, password manager, Fedora, KDE, portfolio, projects, achievements"
|
||||
/>
|
||||
</svelte:head>
|
||||
|
||||
<div class="first-gradient h-full mx-auto flex justify-center items-center">
|
||||
<div class="max-w-[640px] variant-glass rounded-container-token shadow-xl">
|
||||
<div class="grid grid-cols-3 gap-8 items-center p-6">
|
||||
<img src={avatar} class="w-full aspect-square rounded-full" alt="Avatar" />
|
||||
<div class="card-gradient min-h-[100vh] mx-auto flex justify-center items-center">
|
||||
<div class="max-w-[640px] variant-glass rounded-container-token shadow-xl">
|
||||
<div class="grid grid-cols-3 gap-8 items-center p-6">
|
||||
<img src={avatar} class="w-full aspect-square rounded-full" alt="Avatar" />
|
||||
|
||||
<div class="col-span-2 space-y-2">
|
||||
<div class="text-on-primary-token text-lg opacity-75">Self-Taught Programmer</div>
|
||||
<div class="col-span-2 space-y-2">
|
||||
<div class="text-on-primary-token text-lg opacity-75">Self-Taught Programmer</div>
|
||||
|
||||
<div class="text-on-primary-token font-bold text-xl sm:text-3xl">Oskar</div>
|
||||
<div class="text-on-primary-token font-bold text-xl sm:text-3xl">Oskar</div>
|
||||
|
||||
<div class="text-on-primary-token text-lg sm:text-2xl">Creating the Future</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-on-primary-token text-lg sm:text-2xl">Creating the Future</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ProgressBar rounded="rounded-none" />
|
||||
<ProgressBar rounded="rounded-none" value={100} />
|
||||
|
||||
<footer class="grid grid-cols-4 place-items-center p-6 gap-10">
|
||||
<a class="btn-icon bg-surface-200 p-2" href="https://github.com/M3DZIK">
|
||||
<FaGithub />
|
||||
</a>
|
||||
<footer class="grid grid-cols-4 place-items-center p-6 gap-10">
|
||||
<a class="btn-icon bg-surface-200 p-2" href="https://github.com/M3DZIK">
|
||||
<FaGithub />
|
||||
</a>
|
||||
|
||||
<a class="btn-icon bg-surface-200 p-2" href="https://gitlab.com/Medzik">
|
||||
<FaGitlab />
|
||||
</a>
|
||||
<a class="btn-icon bg-surface-200 p-2" href="https://gitlab.com/Medzik">
|
||||
<FaGitlab />
|
||||
</a>
|
||||
|
||||
<a class="btn-icon bg-surface-200 p-2" href="mailto:me@medzik.dev">
|
||||
<MdEmail />
|
||||
</a>
|
||||
<a class="btn-icon bg-surface-200 p-2" href="mailto:me@medzik.dev">
|
||||
<MdEmail />
|
||||
</a>
|
||||
|
||||
<a class="btn-icon bg-surface-200 p-2" href="https://liberapay.com/Medzik/">
|
||||
<FaCreditCard />
|
||||
</a>
|
||||
</footer>
|
||||
</div>
|
||||
<a class="btn-icon bg-surface-200 p-2" href="https://liberapay.com/Medzik/">
|
||||
<FaCreditCard />
|
||||
</a>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<div class="absolute bottom-4">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
class="h-8 w-8 text-on-primary-token animate-bounce"
|
||||
>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 14l-7 7m0 0l-7-7m7 7V3" />
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-auto flex justify-center items-center bg-primary-100 p-16">
|
||||
<div class="container space-y-10">
|
||||
<h2 class="h2 text-center card-header">Languages</h2>
|
||||
<div class="project-gradient mx-auto flex justify-center items-center p-16">
|
||||
<div class="container space-y-10">
|
||||
<h2 class="h2 text-center card-header">My Project</h2>
|
||||
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
||||
<SkillCard
|
||||
icon={DiJava}
|
||||
title="Java/Kotlin"
|
||||
description="After several years of writing code, Java and Kotlin seem to work best for me."
|
||||
/>
|
||||
|
||||
<SkillCard
|
||||
icon={DiGo}
|
||||
title="Go"
|
||||
description="Golang is my second favorite language because it is fast and easy to use."
|
||||
/>
|
||||
|
||||
<SkillCard
|
||||
icon={DiJavascript}
|
||||
title="JavaScript"
|
||||
description="Unfortunately, the use of JavaScript is a must in web development."
|
||||
/>
|
||||
|
||||
<SkillCard
|
||||
icon={Svelte}
|
||||
title="Svelte"
|
||||
description="However, sometimes when I need to write a website, I use Svelte."
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-center">
|
||||
<a href="https://librepass.org" target="_blank" class="max-w-xl">
|
||||
<Card
|
||||
icon={MdSecurity}
|
||||
title="LibrePass"
|
||||
description="Currently, I'm developing LibrePass, a password manager, driven by the belief in online privacy and security. My goal is to create a secure and convenient tool for managing passwords."
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-auto flex justify-center items-center bg-secondary-100 p-16">
|
||||
<div class="container space-y-10">
|
||||
<h2 class="h2 text-center card-header">My Project</h2>
|
||||
|
||||
<div class="grid grid-cols-1 gap-4">
|
||||
<a href="https://librepass.medzik.dev" target="_blank">
|
||||
<SkillCard
|
||||
icon={MdSecurity}
|
||||
title="LibrePass"
|
||||
description="Currently, I'm developing LibrePass, a password manager, driven by the belief in online privacy and security. My goal is to create a secure and convenient tool for managing passwords."
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-auto flex justify-center items-center bg-tertiary-100 p-16">
|
||||
<div class="container space-y-10">
|
||||
<h2 class="h2 text-center card-header">Instances</h2>
|
||||
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
||||
<a href="https://piped.medzik.dev" target="_blank">
|
||||
<SkillCard
|
||||
icon={FaYoutube}
|
||||
title="Piped"
|
||||
description="An alternative privacy-friendly YouTube frontend."
|
||||
/>
|
||||
</a>
|
||||
|
||||
<a href="https://teledrive.medzik.dev" target="_blank">
|
||||
<SkillCard
|
||||
icon={FaTelegram}
|
||||
title="TeleDrive"
|
||||
description="Your free unlimited cloud storage service using the Telegram API."
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="container mx-auto flex justify-center items-center p-6">
|
||||
<div class="text-on-primary-token opacity-75">
|
||||
© 2023 Medzik
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<style lang="postcss">
|
||||
.first-gradient {
|
||||
background-image:
|
||||
radial-gradient(at 0% 0%, rgba(var(--color-secondary-500) / 0.33) 0px, transparent 50%),
|
||||
radial-gradient(at 98% 1%, rgba(var(--color-error-500) / 0.33) 0px, transparent 50%);
|
||||
}
|
||||
.card-gradient {
|
||||
background-image: radial-gradient(at 0% 0%, rgba(var(--color-secondary-500) / 0.33) 0px, transparent 50%),
|
||||
radial-gradient(at 98% 1%, rgba(var(--color-error-500) / 0.33) 0px, transparent 50%),
|
||||
radial-gradient(at 0% 100%, rgba(var(--color-secondary-500) / 0.5) 0px, transparent 50%);
|
||||
}
|
||||
|
||||
.project-gradient {
|
||||
background-image: radial-gradient(at 0% 0%, rgba(var(--color-secondary-500) / 0.5) 0px, transparent 50%),
|
||||
radial-gradient(at 100% 100%, rgba(var(--color-primary-500) / 0.24) 0px, transparent 50%);
|
||||
}
|
||||
</style>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 264 KiB |
17
static/favicon.svg
Normal file
17
static/favicon.svg
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="144.49777mm" height="144.49777mm" viewBox="0 0 511.99998 511.99998" id="svg2" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="layer1" transform="matrix(1, 0, 0, 1, -132.389832, -111.211441)">
|
||||
<rect style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(132, 126, 237);" id="rect4405" width="512" height="512" x="132.38983" y="111.21142"/>
|
||||
<path style="opacity:1;fill:#212121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 146.53197,522.09515 389.7767,118.33718 634.43565,611.89771 Z" id="path4222"/>
|
||||
<circle r="56.154" cy="274.796" cx="433.733" id="circle-1" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; stroke-width: 5px; fill: rgb(255, 255, 255);"/>
|
||||
<path style="opacity:1;fill:#212121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 435.169 239.865 L 400.52 295.373 L 415.085 295.373 L 435.169 263.199 L 454.022 295.373 L 467.694 295.373 L 435.169 239.865 Z" id="path4249"/>
|
||||
<circle r="56.154327" cy="285.96564" cx="291.86502" id="circle4582" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; stroke-width: 5px; fill: rgb(255, 255, 255);"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(255, 255, 255);" d="M 105.58594 320.02148 L 87.222656 424.33398 L 394.07617 480.8125 L 412.85938 374.11328 L 105.58594 320.02148 z " id="rect4224" transform="translate(132.38983,111.21144)"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(255, 255, 255);" d="M 223.44531 235.52148 L 223.44531 340.76953 L 267.28711 348.48633 L 267.28711 235.52148 L 223.44531 235.52148 z " transform="translate(132.38983,111.21144)" id="rect4264"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(33, 33, 33);" d="M 370.60352 235.52148 L 392.33398 279.36133 L 418.25391 279.36133 L 418.25391 235.52148 L 370.60352 235.52148 z " id="rect4266" transform="translate(132.38983,111.21144)"/>
|
||||
<rect transform="matrix(0,1,-1,0,0,0)" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(132, 126, 237);" id="rect4268" width="43.13353" height="47.376015" x="400.82635" y="-457.30527"/>
|
||||
<path style="opacity:1;fill:#212121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 223.44531 340.76953 L 223.44531 376.23633 L 267.28711 376.23633 L 267.28711 348.48633 L 223.44531 340.76953 z " transform="translate(132.38983,111.21144)" id="path4277"/>
|
||||
<path style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(255, 255, 255);" d="M 277.53906 235.52148 L 277.53906 279.36133 L 392.33398 279.36133 L 370.60352 235.52148 L 277.53906 235.52148 z " transform="translate(132.38983,111.21144)" id="rect4285"/>
|
||||
<circle r="15" cy="286.465" cx="292.846" id="circle-2" style="opacity: 1; fill-opacity: 1; fill-rule: nonzero; stroke: none; stroke-width: 20; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 1; fill: rgb(33, 33, 33);"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.6 KiB |
|
@ -2,18 +2,18 @@ import adapter from '@sveltejs/adapter-auto';
|
|||
import { vitePreprocess } from '@sveltejs/kit/vite';
|
||||
/** @type {import('@sveltejs/kit').Config} */
|
||||
const config = {
|
||||
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
|
||||
// for more information about preprocessors
|
||||
preprocess: vitePreprocess(),
|
||||
|
||||
vitePlugin: {
|
||||
inspector: true,
|
||||
},
|
||||
kit: {
|
||||
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
|
||||
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
|
||||
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
|
||||
adapter: adapter()
|
||||
}
|
||||
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
|
||||
// for more information about preprocessors
|
||||
preprocess: vitePreprocess(),
|
||||
|
||||
vitePlugin: {
|
||||
inspector: true
|
||||
},
|
||||
kit: {
|
||||
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
|
||||
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
|
||||
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
|
||||
adapter: adapter()
|
||||
}
|
||||
};
|
||||
export default config;
|
||||
export default config;
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
import { join } from 'path'
|
||||
import skeleton from '@skeletonlabs/skeleton/tailwind/skeleton.cjs'
|
||||
import { join } from 'path';
|
||||
import skeleton from '@skeletonlabs/skeleton/tailwind/skeleton.cjs';
|
||||
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
darkMode: 'class',
|
||||
content: ['./src/**/*.{html,js,svelte,ts}', join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}')],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [...skeleton()],
|
||||
}
|
||||
darkMode: 'class',
|
||||
content: [
|
||||
'./src/**/*.{html,js,svelte,ts}',
|
||||
join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}')
|
||||
],
|
||||
theme: {
|
||||
extend: {}
|
||||
},
|
||||
plugins: [...skeleton()]
|
||||
};
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
"extends": "./.svelte-kit/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"checkJs": true,
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"sourceMap": true,
|
||||
"strict": true
|
||||
}
|
||||
// Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
|
||||
//
|
||||
// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
|
||||
// from the referenced tsconfig.json - TypeScript does not merge them in
|
||||
"extends": "./.svelte-kit/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"checkJs": true,
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"sourceMap": true,
|
||||
"strict": true
|
||||
}
|
||||
// Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
|
||||
//
|
||||
// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
|
||||
// from the referenced tsconfig.json - TypeScript does not merge them in
|
||||
}
|
||||
|
|
|
@ -2,5 +2,5 @@ import { sveltekit } from '@sveltejs/kit/vite';
|
|||
import { defineConfig } from 'vite';
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [sveltekit()]
|
||||
plugins: [sveltekit()]
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue