diff --git a/.prettierrc b/.prettierrc index a77fdde..d8bcc7b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,6 @@ { - "useTabs": true, + "useTabs": false, + "tabWidth": 4, "singleQuote": true, "trailingComma": "none", "printWidth": 100, diff --git a/package.json b/package.json index 77aedd3..f37eedc 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "type": "module", "dependencies": { "@tailwindcss/vite": "^4.1.6", + "svelte-toasts": "^1.1.2", "tailwindcss": "^4.1.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51330df..cfc69cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@tailwindcss/vite': specifier: ^4.1.6 version: 4.1.6(vite@6.3.5(jiti@2.4.2)(lightningcss@1.29.2)) + svelte-toasts: + specifier: ^1.1.2 + version: 1.1.2 tailwindcss: specifier: ^4.1.6 version: 4.1.6 @@ -789,6 +792,9 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' + svelte-toasts@1.1.2: + resolution: {integrity: sha512-m+yL4eEKXyJoyjTYaH1j1GFwF0Pi8YDqnVfwWPDmwi4712iZesv+TNCmToSNlav3R5Vkmc8ZBRkT8DOcu3sywQ==} + svelte@5.28.2: resolution: {integrity: sha512-FbWBxgWOpQfhKvoGJv/TFwzqb4EhJbwCD17dB0tEpQiw1XyUEKZJtgm4nA4xq3LLsMo7hu5UY/BOFmroAxKTMg==} engines: {node: '>=18'} @@ -1461,6 +1467,8 @@ snapshots: transitivePeerDependencies: - picomatch + svelte-toasts@1.1.2: {} + svelte@5.28.2: dependencies: '@ampproject/remapping': 2.3.0 diff --git a/src/app.css b/src/app.css index a461c50..4a5c8e5 100644 --- a/src/app.css +++ b/src/app.css @@ -1 +1 @@ -@import "tailwindcss"; \ No newline at end of file +@import "tailwindcss" \ No newline at end of file diff --git a/src/lib/components/ThemeSwitcher.svelte b/src/lib/components/ThemeSwitcher.svelte deleted file mode 100644 index 67c6428..0000000 --- a/src/lib/components/ThemeSwitcher.svelte +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - -
- -
\ No newline at end of file diff --git a/src/lib/components/Toasts/CloseIcon.svelte b/src/lib/components/Toasts/CloseIcon.svelte deleted file mode 100644 index 6423df4..0000000 --- a/src/lib/components/Toasts/CloseIcon.svelte +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/lib/components/Toasts/ErrorIcon.svelte b/src/lib/components/Toasts/ErrorIcon.svelte deleted file mode 100644 index 60b814a..0000000 --- a/src/lib/components/Toasts/ErrorIcon.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/src/lib/components/Toasts/InfoIcon.svelte b/src/lib/components/Toasts/InfoIcon.svelte deleted file mode 100644 index 4f4908d..0000000 --- a/src/lib/components/Toasts/InfoIcon.svelte +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/lib/components/Toasts/SuccessIcon.svelte b/src/lib/components/Toasts/SuccessIcon.svelte deleted file mode 100644 index 4998608..0000000 --- a/src/lib/components/Toasts/SuccessIcon.svelte +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/lib/components/Toasts/Toast.svelte b/src/lib/components/Toasts/Toast.svelte deleted file mode 100644 index 553204e..0000000 --- a/src/lib/components/Toasts/Toast.svelte +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/src/lib/components/Toasts/Toasts.svelte b/src/lib/components/Toasts/Toasts.svelte deleted file mode 100644 index 5a0bc71..0000000 --- a/src/lib/components/Toasts/Toasts.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - -{#if $toasts} -
- {#each $toasts as toast (toast.id)} - dismissToast(toast.id)} /> - {/each} -
-{/if} - - diff --git a/src/lib/components/timeline/Timeline.svelte b/src/lib/components/timeline/Timeline.svelte index d4e5151..8250bbb 100644 --- a/src/lib/components/timeline/Timeline.svelte +++ b/src/lib/components/timeline/Timeline.svelte @@ -1,8 +1,8 @@ diff --git a/src/lib/components/timeline/TimelineContent.svelte b/src/lib/components/timeline/TimelineContent.svelte index 914fd4a..490b687 100644 --- a/src/lib/components/timeline/TimelineContent.svelte +++ b/src/lib/components/timeline/TimelineContent.svelte @@ -1,7 +1,7 @@ diff --git a/src/lib/components/timeline/TimelineOppositeContent.svelte b/src/lib/components/timeline/TimelineOppositeContent.svelte index 055ddb0..7720bae 100644 --- a/src/lib/components/timeline/TimelineOppositeContent.svelte +++ b/src/lib/components/timeline/TimelineOppositeContent.svelte @@ -1,7 +1,7 @@
diff --git a/src/main.svelte b/src/main.svelte index f5b6564..222a87f 100644 --- a/src/main.svelte +++ b/src/main.svelte @@ -1,105 +1,48 @@ {#await getJson('/json/me.json')} {:then info} -
-
-

{info.name}

-

{info.job_title}

+
+ {toasts.add({ + title: 'Welcome', + duration: 5000, + type: 'success', + placement: 'bottom-center', + showProgress: true + })} +
+ +
+
+

+ {info.name} +

+

{info.job_title}

-
-
- {info.name}'s Profile Photo -

{@html info.about}

+
+
+ Avatar +

{@html info.about}

- - -
-

Skills

-
- -
- -
-

Experience

-
- -
- - - {:catch} -
-
-

Unable to load portfolio overview data

-
+
+ {toasts.add({ + title: 'Error', + description: 'There was an error loading static site data', + duration: 0, + placement: 'bottom-center', + showProgress: true + })}
- {/await} - - \ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 29beaa0..1c17e2e 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,17 +1,23 @@ - +
+ -
- - +
+ + + + +
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index c60d686..3194ecf 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -2,4 +2,6 @@ import Main from '../main.svelte'; -
\ No newline at end of file +
+
+
\ No newline at end of file diff --git a/src/routes/contact/+page.svelte b/src/routes/contact/+page.svelte index d639840..58e64b4 100644 --- a/src/routes/contact/+page.svelte +++ b/src/routes/contact/+page.svelte @@ -1,149 +1,14 @@ - -
-

Contact

-
-
-
- - - -
- - -
-
- -
-
- -
- - - - - - - -
-
- -
- -
- -
-
-
- -
- - +
+ {toasts.add({ + title: 'Warning', + description: 'This page is under construction', + duration: 0, + type: 'warning', + placement: 'center-center', + showProgress: true + })} +
diff --git a/src/routes/repos/+page.svelte b/src/routes/repos/+page.svelte index 10b9d09..978f83d 100644 --- a/src/routes/repos/+page.svelte +++ b/src/routes/repos/+page.svelte @@ -1,64 +1,18 @@ -

My Projects

-

This here is a list of my most recently worked on projects. Note this does not show any private repositories. For more in depth information Click Here.

- -
- {#if $repos.length > 0} -
{addToast(new Toast("See a snapshot of my latest work.", ToastType.Info, true, 8_000))}
-
- {#each $repos as repo} - {#await checkImage(repo)} - - {:then hasImage} - {#if hasImage} - -
-

{repo.name}

- {repo.language} -
-
-

{@html repo.description}

-
-
- {repo.name} -
-
- - {repo.name} - {timeSince(repo.updated_at)} -
-
- {:else} - -
-

{repo.name}

- {repo.language} -
-
-

{@html repo.description}

-
-
- - {repo.name} - {timeSince(repo.updated_at)} -
-
- {/if} - {/await} - {/each} -
- {:else} - - {/if} +
+ {toasts.add({ + title: 'Warning', + description: 'This page is under construction', + duration: 0, + type: 'warning', + placement: 'center-center', + showProgress: true + })}
diff --git a/src/skills.svelte b/src/skills.svelte deleted file mode 100644 index ed9bae5..0000000 --- a/src/skills.svelte +++ /dev/null @@ -1,63 +0,0 @@ - - -
- {#each skills as skill} -
- {showModal = true; activeModal = skill}}> -
-

{skill.skill}

- -
-
-

{@html skill.usage}

-
-
- - View More - Repos -
-
-
- {/each} -
- - -{#if activeModal != null} - -

- {activeModal.skill} - -

- -

- {activeModal.about} -

- - -
-{/if} - - \ No newline at end of file diff --git a/static/themes/cool-modern.css b/static/themes/cool-modern.css deleted file mode 100644 index 950f365..0000000 --- a/static/themes/cool-modern.css +++ /dev/null @@ -1,18 +0,0 @@ -:root { - --bg: #f2f6f7; /* Soft blue-tinted white */ - --bg-secondary: #d7e1e4; /* Cool grey-blue */ - --accent: #92a9b0; /* Subtle blue-green */ - - --header: #5d7075; /* Deep slate blue-green */ - --fg: #3c4649; /* Rich dark grey */ - - --input: #e0e6e8; /* Light desaturated blue-grey */ - - --link: #678d97; /* Muted sea blue */ - --glow: #b2c4c8; /* Gentle cool glow */ - --hover: #8fa7af; /* Soft grey-blue hover */ - - --green: #78a890; /* Balanced green */ - --red: #e08c96; /* Soft dusty red */ - --blue: #729da5; /* Medium desaturated blue */ -} \ No newline at end of file diff --git a/static/themes/frosted-blue.css b/static/themes/frosted-blue.css deleted file mode 100644 index cb6ba16..0000000 --- a/static/themes/frosted-blue.css +++ /dev/null @@ -1,17 +0,0 @@ -:root { - --bg: #1e1f2a; - --bg-secondary: #3a3f4b; - --accent: #777f8d; - - --header: #cad1da; - --fg: #e4e1db; - - --input: #2e3438; - - --link: #95add8; - --glow: #bcc3ca; - --hover: #cdd8e2; - - --green: #98C379; - --red: #E06C75; -} \ No newline at end of file diff --git a/static/themes/jet-brains-dracula.css b/static/themes/jet-brains-dracula.css deleted file mode 100644 index e32d258..0000000 --- a/static/themes/jet-brains-dracula.css +++ /dev/null @@ -1,18 +0,0 @@ -:root { - --bg: #2b2b2b; /* Dark but not too harsh */ - --bg-secondary: #3c3f41; /* Deep warm grey */ - --accent: #6897bb; /* Muted but clear blue */ - - --header: #a9b7c6; /* Softer contrast */ - --fg: #bbbbbb; /* Light but not pure white */ - - --input: #414141; /* Dark grey input */ - - --link: #519aba; /* Soft coding blue */ - --glow: #4e5d68; /* Subtle bluish glow */ - --hover: #8c9da8; /* Brighter on hover */ - - --green: #6a8759; /* Classic Darcula green */ - --red: #cc6666; /* Softer, warm red */ - --blue: #6897bb; /* Standard coding blue */ -} \ No newline at end of file diff --git a/static/themes/monokai-dark.css b/static/themes/monokai-dark.css deleted file mode 100644 index c39c63e..0000000 --- a/static/themes/monokai-dark.css +++ /dev/null @@ -1,18 +0,0 @@ -:root { - --bg: #272822; /* Classic Monokai dark */ - --bg-secondary: #3e3d32; /* Darker olive grey */ - --accent: #f92672; /* Monokai’s signature pink-red */ - - --header: #a6e22e; /* Neon green */ - --fg: #f8f8f2; /* Soft off-white */ - - --input: #373831; /* Slightly lighter grey-green */ - - --link: #66d9ef; /* Monokai cyan */ - --glow: #49483e; /* Muted background glow */ - --hover: #fd7c95; /* Lighter pink hover */ - - --green: #a6e22e; /* Bright Monokai green */ - --red: #f92672; /* Soft pinkish-red */ - --blue: #66d9ef; /* Bright cyan */ -} \ No newline at end of file diff --git a/static/themes/vscode-dark.css b/static/themes/vscode-dark.css deleted file mode 100644 index 9223bda..0000000 --- a/static/themes/vscode-dark.css +++ /dev/null @@ -1,18 +0,0 @@ -:root { - --bg: #1e1e1e; /* Dark neutral background */ - --bg-secondary: #252526; /* Slightly lighter for separation */ - --accent: #569cd6; /* Signature VS Code blue */ - - --header: #9cdcfe; /* Brighter cyan for contrast */ - --fg: #d4d4d4; /* Light grey for readability */ - - --input: #333; /* Dark but still visible */ - - --link: #4fc1ff; /* Brighter blue for hyperlinks */ - --glow: #2a3f5f; /* Soft deep blue glow */ - --hover: #7bb8e8; /* Brighter accent on hover */ - - --green: #4ec9b0; /* Soft green */ - --red: #d16969; /* Coding red */ - --blue: #9cdcfe; /* Soft bright cyan */ -} \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..7814a0d --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,19 @@ +module.exports = { + theme: { + extend: { + colors: { + 'one-bg': '#282c34', + 'one-bg-light': '#3a3f4b', + 'one-fg': '#abb2bf', + 'one-accent': '#61afef', + 'one-green': '#98c379', + 'one-orange': '#d19a66', + 'one-red': '#e06c75', + 'one-yellow': '#e5c07b', + 'one-purple': '#c678dd', + 'one-cyan': '#56b6c2', + 'one-comment': '#5c6370', + } + } + } +} \ No newline at end of file