From e235aa6cf4914cbff6c72f19e0fcf6888da349f7 Mon Sep 17 00:00:00 2001 From: axtloss Date: Tue, 20 Aug 2024 01:20:30 +0200 Subject: yayyy new website!! --- src/app.d.ts | 13 ++ src/app.html | 18 ++ src/lib/#decoder.ts# | 17 ++ src/lib/assets/close.svg | 4 + src/lib/assets/xmpp.svg | 31 ++++ src/lib/decoder.ts | 16 ++ src/lib/images/github.svg | 16 ++ src/lib/images/svelte-logo.svg | 1 + src/lib/images/svelte-welcome.png | Bin 0 -> 360807 bytes src/lib/images/svelte-welcome.webp | Bin 0 -> 115470 bytes src/lib/mobile.js | 4 + src/lib/styles/contact.scss | 38 ++++ src/lib/styles/index.scss | 2 + src/lib/styles/shadow.scss | 9 + src/routes/+error.svelte | 41 +++++ src/routes/+layout.svelte | 31 ++++ src/routes/+page.svelte | 205 ++++++++++++++++++++++ src/routes/+page.ts | 3 + src/routes/ContactCard.svelte | 40 +++++ src/routes/Header.svelte | 299 ++++++++++++++++++++++++++++++++ src/routes/projects/+page.svelte | 53 ++++++ src/routes/projects/+page.ts | 9 + src/routes/projects/ProjectEntry.svelte | 36 ++++ src/routes/styles.scss | 48 +++++ 24 files changed, 934 insertions(+) create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/lib/#decoder.ts# create mode 100644 src/lib/assets/close.svg create mode 100644 src/lib/assets/xmpp.svg create mode 100644 src/lib/decoder.ts create mode 100644 src/lib/images/github.svg create mode 100644 src/lib/images/svelte-logo.svg create mode 100644 src/lib/images/svelte-welcome.png create mode 100644 src/lib/images/svelte-welcome.webp create mode 100644 src/lib/mobile.js create mode 100644 src/lib/styles/contact.scss create mode 100644 src/lib/styles/index.scss create mode 100644 src/lib/styles/shadow.scss create mode 100644 src/routes/+error.svelte create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/+page.ts create mode 100644 src/routes/ContactCard.svelte create mode 100644 src/routes/Header.svelte create mode 100644 src/routes/projects/+page.svelte create mode 100644 src/routes/projects/+page.ts create mode 100644 src/routes/projects/ProjectEntry.svelte create mode 100644 src/routes/styles.scss (limited to 'src') diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..743f07b --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..3f56455 --- /dev/null +++ b/src/app.html @@ -0,0 +1,18 @@ + + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/#decoder.ts# b/src/lib/#decoder.ts# new file mode 100644 index 0000000..3e5613f --- /dev/null +++ b/src/lib/#decoder.ts# @@ -0,0 +1,17 @@ +export function decode(value: string): string { + var offset: number = parseInt(value.substring(0,2), 16); + var n: number = 2; + var final: string = ""; + for (inti ; n < value.length; n=n+3) { + var num: string = value.substring(n, n+3); + var charAscii: number = parseInt(num, 16)-offset; + final = final + String.fromCharCode(charAscii) + } + return final; +} + + +export function isDecoded(value: string): boolean { + var offset: number = Number(value.substring(0,2)); + return isNaN(offset); +} diff --git a/src/lib/assets/close.svg b/src/lib/assets/close.svg new file mode 100644 index 0000000..cbb7654 --- /dev/null +++ b/src/lib/assets/close.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/lib/assets/xmpp.svg b/src/lib/assets/xmpp.svg new file mode 100644 index 0000000..f660926 --- /dev/null +++ b/src/lib/assets/xmpp.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/src/lib/decoder.ts b/src/lib/decoder.ts new file mode 100644 index 0000000..f28bbbc --- /dev/null +++ b/src/lib/decoder.ts @@ -0,0 +1,16 @@ +export function decode(value: string): string { + var offset: number = parseInt(value.substring(0,2), 16); + var final: string = ""; + for (let i = 2; i < value.length; i=i+3) { + var num: string = value.substring(i, i+3); + var charAscii: number = parseInt(num, 16)-offset; + final = final + String.fromCharCode(charAscii) + } + return final; +} + + +export function isDecoded(value: string): boolean { + var offset: number = Number(value.substring(0,2)); + return isNaN(offset); +} diff --git a/src/lib/images/github.svg b/src/lib/images/github.svg new file mode 100644 index 0000000..bc5d249 --- /dev/null +++ b/src/lib/images/github.svg @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/src/lib/images/svelte-logo.svg b/src/lib/images/svelte-logo.svg new file mode 100644 index 0000000..49492a8 --- /dev/null +++ b/src/lib/images/svelte-logo.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/src/lib/images/svelte-welcome.png b/src/lib/images/svelte-welcome.png new file mode 100644 index 0000000..fe7d2d6 Binary files /dev/null and b/src/lib/images/svelte-welcome.png differ diff --git a/src/lib/images/svelte-welcome.webp b/src/lib/images/svelte-welcome.webp new file mode 100644 index 0000000..6ec1a28 Binary files /dev/null and b/src/lib/images/svelte-welcome.webp differ diff --git a/src/lib/mobile.js b/src/lib/mobile.js new file mode 100644 index 0000000..1f2416c --- /dev/null +++ b/src/lib/mobile.js @@ -0,0 +1,4 @@ +export function isMobile() { + a = navigator.userAgent||navigator.vendor||window.opera; + return (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) +} diff --git a/src/lib/styles/contact.scss b/src/lib/styles/contact.scss new file mode 100644 index 0000000..910cac6 --- /dev/null +++ b/src/lib/styles/contact.scss @@ -0,0 +1,38 @@ +@use "sass:color"; +@use "sass:meta"; + +@mixin contact($color, $text-color: $color) { + cursor: pointer; + color: $text-color; + background-color: color.adjust($color, $alpha: -0.1); + padding: 7px 25px; + min-width: 70px; + max-width: 70vw; + overflow-wrap: break-word; + border-radius: 10px; + align-items: center; + justify-content: center; + box-shadow: 0 1px 4px 1px color.change(black, $alpha: 0.10), + 0 1px 10px 5px color.change(black, $alpha: 0.09), + 0 3px 16px 8px color.change(black, $alpha: 0.04), + 0 0 0 1px color.change(black, $alpha: 0.05); + transition: box-shadow 0.3s ease-in-out; + + &:hover { + box-shadow: 0 1px 4px 1px color.change($color, $alpha: 0.10), + 0 1px 10px 5px color.change($color, $alpha: 0.09), + 0 3px 16px 8px color.change($color, $alpha: 0.04), + 0 0 0 1px color.change($color, $alpha: 0.05); + } + & h3 { + text-align: center; + } + + & p { + user-select: none; + } + + & noscript { + text-overflow: ellipsis; + } +} diff --git a/src/lib/styles/index.scss b/src/lib/styles/index.scss new file mode 100644 index 0000000..f8b00dd --- /dev/null +++ b/src/lib/styles/index.scss @@ -0,0 +1,2 @@ +@forward "$lib/styles/shadow.scss"; +@forward "$lib/styles/contact.scss"; diff --git a/src/lib/styles/shadow.scss b/src/lib/styles/shadow.scss new file mode 100644 index 0000000..382c337 --- /dev/null +++ b/src/lib/styles/shadow.scss @@ -0,0 +1,9 @@ +@use "sass:color"; +@use "sass:meta"; + +@mixin shadow($color: black) { + box-shadow: 0 1px 4px 1px color.change($color, $alpha: 0.13), + 0 1px 10px 5px color.change($color, $alpha: 0.09), + 0 3px 16px 8px color.change($color, $alpha: 0.04), + 0 0 0 1px color.change($color, $alpha: 0.05); +} diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte new file mode 100644 index 0000000..2ced366 --- /dev/null +++ b/src/routes/+error.svelte @@ -0,0 +1,41 @@ + + +
+
+

{$page.status ?? "oopsie daisies!"}

+

{$page.error?.message ?? "website broke >w< "}

+
+ {#if displayDog} +
+ dog looking at the camera with a question mark edited next to it +
+ {/if} +
+ + + diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..7772574 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,31 @@ + + +
+
+
+ +
+
+
+ + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..c046cd7 --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,205 @@ + + + + rose + + + + + + + + + + + +
+

Hi! I'm Rose

+
+
+

About me!

+

+ I'm a software engineer with an interest in Containers and OSdev. + I currently live in germany and study Computer Science. +

+

+ Apart from Coding and tinkering with Hardware, I enjoy listening to music, reading books and going on walks! +

+
+
+

My work

+

+ Currently most of my time is spent working on + vib, + as the maintainer of vib I handle any project management, + while actively expanding it with more features. +

+

+ In connection to vib. I am currently reviving an older + project called Project Shards, an arch based immutable + distribution, that went through many different designs, + but has settled on using systemd-sysupdate in the same vein as + GNOME OS. +

+

+ A more thorough list of Projects can be found in the + Projects page. +

+
+
+

Contact

+

Click on an element to copy its address

+

+ You can contact me on these platforms! +

+ {#if !browser} +

+ You seem to have disable javascript! But this website uses js to deobfuscate the contacts >w< + The obfuscated codes are displayed in the boxes below, you can use this shell script to debofuscate them locally! +

+ {/if} + +
+
+ + diff --git a/src/routes/+page.ts b/src/routes/+page.ts new file mode 100644 index 0000000..a72419a --- /dev/null +++ b/src/routes/+page.ts @@ -0,0 +1,3 @@ +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/src/routes/ContactCard.svelte b/src/routes/ContactCard.svelte new file mode 100644 index 0000000..d347deb --- /dev/null +++ b/src/routes/ContactCard.svelte @@ -0,0 +1,40 @@ + + +
+ + {@html svg} + +
+ + + {@html svg} + + + diff --git a/src/routes/Header.svelte b/src/routes/Header.svelte new file mode 100644 index 0000000..0366e6d --- /dev/null +++ b/src/routes/Header.svelte @@ -0,0 +1,299 @@ + + + + +
+
+ + + {#if $currentMessage != null} +
+

+ {$currentMessage.message} +

+ {#if $currentMessage.options.dismissable} + + {/if} +
+ {/if} + + +
+ +
+ + diff --git a/src/routes/projects/+page.svelte b/src/routes/projects/+page.svelte new file mode 100644 index 0000000..dbe5516 --- /dev/null +++ b/src/routes/projects/+page.svelte @@ -0,0 +1,53 @@ + + + +
+

Projects

+
+
+

+ A list of most projects I have worked on or am a part of, note that not all of them are still maintained. +

+
+ + + + The FsVerify logo drawn with BVG + + + + + + + + + + + + + +
+ + diff --git a/src/routes/projects/+page.ts b/src/routes/projects/+page.ts new file mode 100644 index 0000000..e739ef4 --- /dev/null +++ b/src/routes/projects/+page.ts @@ -0,0 +1,9 @@ +import { dev } from '$app/environment'; + +// we don't need any JS on this page, though we'll load +// it in dev so that we get hot module replacement +export const csr = dev; + +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/src/routes/projects/ProjectEntry.svelte b/src/routes/projects/ProjectEntry.svelte new file mode 100644 index 0000000..53c69b5 --- /dev/null +++ b/src/routes/projects/ProjectEntry.svelte @@ -0,0 +1,36 @@ + + +
+

{name}

+ + +

+ {description} +

+
+ + + diff --git a/src/routes/styles.scss b/src/routes/styles.scss new file mode 100644 index 0000000..0fe7ab6 --- /dev/null +++ b/src/routes/styles.scss @@ -0,0 +1,48 @@ +@import "@fontsource-variable/inter"; + +body { + font-family: + 'Inter Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + font-size: 1.2em; + color: #150129; +} + +h1 { + width: 100%; + font-size-adjust: 0.7; + margin-bottom: 2px; +} + +page { + display: flex; + flex-direction: column; + align-items: center; + + width: 100%; + height: 0; + padding: 0 0 calc(100% * 495 / 2048) 0; +} + +.permalink { + color: #150129; +} + +.subheader { + font-size: 0.9em; + margin-top: 0px; +} + + +@media (prefers-color-scheme: dark) { + /* If the operating system is using dark mode, then apply this CSS */ + body { + background: #292b33; + color: #f5f5f5 + } + a:link:not(.permalink),a:visited:not(.permalink) { + color: #b9cffb; + } +} + +a:link:not(.permalink),a:visited:not(.permalink) { color: #2160ad; } -- cgit v1.2.3