Compare commits

...

7 Commits

Author SHA1 Message Date
M3DZIK ae3c0c2ba2
New librepass domain
LibrePass is now at librepass.org
2023-12-13 19:29:17 +01:00
M3DZIK 31628cc5e0
Update website 2023-12-13 18:37:52 +01:00
M3DZIK 2f828934b9
Update formatter 2023-12-13 18:16:45 +01:00
M3DZIK 01ab9d1e23
Update README 2023-12-13 18:15:05 +01:00
M3DZIK dc91f8abe3
Some changes 2023-10-22 17:22:52 +02:00
M3DZIK 7aec943dc8
Update avatar 2023-07-23 22:23:14 +02:00
M3DZIK a228be69d5
Fix 1 moderate severity vulnerability using npm audit 2023-07-23 21:51:08 +02:00
21 changed files with 3867 additions and 3877 deletions

View File

@ -1,30 +1,25 @@
module.exports = { module.exports = {
root: true, root: true,
extends: [ extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:svelte/recommended', 'prettier'],
'eslint:recommended', parser: '@typescript-eslint/parser',
'plugin:@typescript-eslint/recommended', plugins: ['@typescript-eslint'],
'plugin:svelte/recommended', parserOptions: {
'prettier' sourceType: 'module',
], ecmaVersion: 2020,
parser: '@typescript-eslint/parser', extraFileExtensions: ['.svelte']
plugins: ['@typescript-eslint'], },
parserOptions: { env: {
sourceType: 'module', browser: true,
ecmaVersion: 2020, es2017: true,
extraFileExtensions: ['.svelte'] node: true
}, },
env: { overrides: [
browser: true, {
es2017: true, files: ['*.svelte'],
node: true parser: 'svelte-eslint-parser',
}, parserOptions: {
overrides: [ parser: '@typescript-eslint/parser'
{ }
files: ['*.svelte'], }
parser: 'svelte-eslint-parser', ]
parserOptions: {
parser: '@typescript-eslint/parser'
}
}
]
}; };

View File

@ -1,9 +1,15 @@
{ {
"useTabs": true, "tabWidth": 4,
"singleQuote": true, "singleQuote": true,
"trailingComma": "none", "trailingComma": "none",
"printWidth": 100, "printWidth": 120,
"plugins": ["prettier-plugin-svelte"], "plugins": ["prettier-plugin-svelte"],
"pluginSearchDirs": ["."], "overrides": [
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] {
"files": "*.svelte",
"options": {
"parser": "svelte"
}
}
]
} }

View File

@ -1,5 +1,5 @@
# [Portfolio](https://medzik.dev) # [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

File diff suppressed because it is too large Load Diff

View File

@ -1,37 +1,37 @@
{ {
"name": "portfolio", "name": "portfolio",
"version": "0.0.1", "version": "0.0.1",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite dev", "dev": "vite dev",
"build": "vite build", "build": "vite build",
"preview": "vite preview", "preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --plugin-search-dir . --check . && eslint .", "lint": "prettier --plugin-search-dir . --check . && eslint .",
"format": "prettier --plugin-search-dir . --write ." "format": "prettier --plugin-search-dir . --write ."
}, },
"devDependencies": { "devDependencies": {
"@floating-ui/dom": "^1.4.0", "@floating-ui/dom": "^1.4.0",
"@skeletonlabs/skeleton": "^1.7.1", "@skeletonlabs/skeleton": "^1.7.1",
"@sveltejs/adapter-auto": "^2.0.0", "@sveltejs/adapter-auto": "^2.0.0",
"@sveltejs/kit": "^1.5.0", "@sveltejs/kit": "^1.5.0",
"@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/eslint-plugin": "^5.45.0",
"@typescript-eslint/parser": "^5.45.0", "@typescript-eslint/parser": "^5.45.0",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"eslint": "^8.28.0", "eslint": "^8.28.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-svelte": "^2.26.0", "eslint-plugin-svelte": "^2.26.0",
"postcss": "^8.4.24", "postcss": "^8.4.24",
"prettier": "^2.8.0", "prettier": "^2.8.0",
"prettier-plugin-svelte": "^2.8.1", "prettier-plugin-svelte": "^2.8.1",
"svelte": "^3.54.0", "svelte": "^3.54.0",
"svelte-check": "^3.0.1", "svelte-check": "^3.0.1",
"svelte-icons": "^2.1.0", "svelte-icons": "^2.1.0",
"tailwindcss": "^3.3.2", "tailwindcss": "^3.3.2",
"tslib": "^2.4.1", "tslib": "^2.4.1",
"typescript": "^5.0.0", "typescript": "^5.0.0",
"vite": "^4.3.0" "vite": "^4.3.0"
}, },
"type": "module" "type": "module"
} }

View File

@ -1,6 +1,6 @@
module.exports = { module.exports = {
plugins: { plugins: {
tailwindcss: {}, tailwindcss: {},
autoprefixer: {}, autoprefixer: {}
}, }
} };

8
src/app.d.ts vendored
View File

@ -2,8 +2,8 @@
// for information about these interfaces // for information about these interfaces
// and what to do when importing types // and what to do when importing types
declare namespace App { declare namespace App {
// interface Locals {} // interface Locals {}
// interface PageData {} // interface PageData {}
// interface Error {} // interface Error {}
// interface Platform {} // interface Platform {}
} }

View File

@ -1,11 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" class="light"> <html lang="en" class="light">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width" /> <link rel="icon" href="%sveltekit.assets%/favicon.svg" />
%sveltekit.head% <meta name="viewport" content="width=device-width" />
</head> %sveltekit.head%
<body data-sveltekit-preload-data="hover"> </head>
<div style="display: contents">%sveltekit.body%</div> <body data-sveltekit-preload-data="hover">
</body> <div style="display: contents">%sveltekit.body%</div>
</body>
</html> </html>

View File

@ -1,5 +1,5 @@
/*place global styles here */ /*place global styles here */
html, html,
body { body {
@apply h-full; @apply h-full;
} }

Binary file not shown.

17
src/assets/avatar.svg Normal file
View 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

View File

@ -5,10 +5,7 @@
</script> </script>
<div class="card variant-glass md:p-10 shadow-lg space-y-4 text-center btn whitespace-normal grid"> <div class="card variant-glass md:p-10 shadow-lg space-y-4 text-center btn whitespace-normal grid">
<div <div class="mx-auto variant-glass rounded-2xl p-2" style="width: 50px; height: 50px;">
class="mx-auto variant-glass rounded-2xl p-2"
style="width: 50px; height: 50px;"
>
<svelte:component this={icon} /> <svelte:component this={icon} />
</div> </div>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,7 +1,7 @@
<script> <script>
import '@skeletonlabs/skeleton/themes/theme-skeleton.css'; import '@skeletonlabs/skeleton/themes/theme-skeleton.css';
import '@skeletonlabs/skeleton/styles/skeleton.css'; import '@skeletonlabs/skeleton/styles/skeleton.css';
import '../app.postcss'; import '../app.postcss';
</script> </script>
<slot /> <slot />

View File

@ -1,147 +1,102 @@
<script> <script>
import { ProgressBar } from "@skeletonlabs/skeleton"; import { ProgressBar } from '@skeletonlabs/skeleton';
import DiJava from 'svelte-icons/di/DiJava.svelte' import FaGithub from 'svelte-icons/fa/FaGithub.svelte';
import DiGo from 'svelte-icons/di/DiGo.svelte' import FaGitlab from 'svelte-icons/fa/FaGitlab.svelte';
import DiJavascript from 'svelte-icons/di/DiJavascript1.svelte' import FaCreditCard from 'svelte-icons/fa/FaCreditCard.svelte';
import FaGithub from "svelte-icons/fa/FaGithub.svelte"; import MdEmail from 'svelte-icons/md/MdEmail.svelte';
import FaGitlab from "svelte-icons/fa/FaGitlab.svelte"; import MdSecurity from 'svelte-icons/md/MdSecurity.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 SkillCard from "$lib/SkillCard.svelte"; import Card from '$lib/Card.svelte';
import Svelte from "$lib/icons/Svelte.svelte";
import avatar from '../assets/avatar.avif' import avatar from '../assets/avatar.svg';
</script> </script>
<svelte:head> <svelte:head>
<title>Medzik</title> <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
<meta name="keywords" content="self-taught programmer, open-source software, LibrePass, password manager, Fedora, KDE, portfolio, projects, achievements"> 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> </svelte:head>
<div class="first-gradient h-full mx-auto flex justify-center items-center"> <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="max-w-[640px] variant-glass rounded-container-token shadow-xl">
<div class="grid grid-cols-3 gap-8 items-center p-6"> <div class="grid grid-cols-3 gap-8 items-center p-6">
<img src={avatar} class="w-full aspect-square rounded-full" alt="Avatar" /> <img src={avatar} class="w-full aspect-square rounded-full" alt="Avatar" />
<div class="col-span-2 space-y-2"> <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 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 class="text-on-primary-token text-lg sm:text-2xl">Creating the Future</div>
</div> </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"> <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"> <a class="btn-icon bg-surface-200 p-2" href="https://github.com/M3DZIK">
<FaGithub /> <FaGithub />
</a> </a>
<a class="btn-icon bg-surface-200 p-2" href="https://gitlab.com/Medzik"> <a class="btn-icon bg-surface-200 p-2" href="https://gitlab.com/Medzik">
<FaGitlab /> <FaGitlab />
</a> </a>
<a class="btn-icon bg-surface-200 p-2" href="mailto:me@medzik.dev"> <a class="btn-icon bg-surface-200 p-2" href="mailto:me@medzik.dev">
<MdEmail /> <MdEmail />
</a> </a>
<a class="btn-icon bg-surface-200 p-2" href="https://liberapay.com/Medzik/"> <a class="btn-icon bg-surface-200 p-2" href="https://liberapay.com/Medzik/">
<FaCreditCard /> <FaCreditCard />
</a> </a>
</footer> </footer>
</div> </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>
<div class="mx-auto flex justify-center items-center bg-primary-100 p-16"> <div class="project-gradient mx-auto flex justify-center items-center p-16">
<div class="container space-y-10"> <div class="container space-y-10">
<h2 class="h2 text-center card-header">Languages</h2> <h2 class="h2 text-center card-header">My Project</h2>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4"> <div class="flex justify-center">
<SkillCard <a href="https://librepass.org" target="_blank" class="max-w-xl">
icon={DiJava} <Card
title="Java/Kotlin" icon={MdSecurity}
description="After several years of writing code, Java and Kotlin seem to work best for me." 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."
/>
<SkillCard </a>
icon={DiGo} </div>
title="Go" </div>
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> </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">
&copy; 2023 Medzik
</div>
</footer>
<style lang="postcss"> <style lang="postcss">
.first-gradient { .card-gradient {
background-image: background-image: radial-gradient(at 0% 0%, rgba(var(--color-secondary-500) / 0.33) 0px, transparent 50%),
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 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> </style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

17
static/favicon.svg Normal file
View 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

View File

@ -2,18 +2,18 @@ import adapter from '@sveltejs/adapter-auto';
import { vitePreprocess } from '@sveltejs/kit/vite'; import { vitePreprocess } from '@sveltejs/kit/vite';
/** @type {import('@sveltejs/kit').Config} */ /** @type {import('@sveltejs/kit').Config} */
const config = { const config = {
// Consult https://kit.svelte.dev/docs/integrations#preprocessors // Consult https://kit.svelte.dev/docs/integrations#preprocessors
// for more information about preprocessors // for more information about preprocessors
preprocess: vitePreprocess(), preprocess: vitePreprocess(),
vitePlugin: { vitePlugin: {
inspector: true, inspector: true
}, },
kit: { kit: {
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. // 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. // 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. // See https://kit.svelte.dev/docs/adapters for more information about adapters.
adapter: adapter() adapter: adapter()
} }
}; };
export default config; export default config;

View File

@ -1,12 +1,15 @@
import { join } from 'path' import { join } from 'path';
import skeleton from '@skeletonlabs/skeleton/tailwind/skeleton.cjs' import skeleton from '@skeletonlabs/skeleton/tailwind/skeleton.cjs';
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
module.exports = { module.exports = {
darkMode: 'class', darkMode: 'class',
content: ['./src/**/*.{html,js,svelte,ts}', join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}')], content: [
theme: { './src/**/*.{html,js,svelte,ts}',
extend: {}, join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}')
}, ],
plugins: [...skeleton()], theme: {
} extend: {}
},
plugins: [...skeleton()]
};

View File

@ -1,17 +1,17 @@
{ {
"extends": "./.svelte-kit/tsconfig.json", "extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": { "compilerOptions": {
"allowJs": true, "allowJs": true,
"checkJs": true, "checkJs": true,
"esModuleInterop": true, "esModuleInterop": true,
"forceConsistentCasingInFileNames": true, "forceConsistentCasingInFileNames": true,
"resolveJsonModule": true, "resolveJsonModule": true,
"skipLibCheck": true, "skipLibCheck": true,
"sourceMap": true, "sourceMap": true,
"strict": true "strict": true
} }
// Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias // 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 // 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 // from the referenced tsconfig.json - TypeScript does not merge them in
} }

View File

@ -2,5 +2,5 @@ import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
export default defineConfig({ export default defineConfig({
plugins: [sveltekit()] plugins: [sveltekit()]
}); });