massive update: moved to Bun, modified content

This commit is contained in:
liyunze 2024-05-05 15:41:43 +08:00
parent 2bd51de3ad
commit f7aad3af6c
22 changed files with 750 additions and 7407 deletions

View file

@ -1,39 +1,48 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy to GitHub Pages
on:
# Trigger the workflow every time you push to the `main` branch
# Using a different branch name? Replace `main` with your branchs name
# Runs on pushes targeting the default branch
push:
branches: [main]
# Allows you to run this workflow manually from the Actions tab on GitHub.
branches: ["main"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Allow this job to clone the repo and create a page deployment
# Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout your repository using git
uses: actions/checkout@v3
- name: Install, build, and upload your site
uses: withastro/action@v1
# with:
# path: . # The root location of your Astro project inside the repository. (optional)
# node-version: 18 # The specific version of Node that should be used to build your site. Defaults to 18. (optional)
# package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
# Single deploy job since we're just deploying
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install
- name: Build
run: bun run build
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
# Upload dist repository
path: "./dist"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

BIN
bun.lockb Normal file

Binary file not shown.

6711
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
{
"name": "dev-portfolio",
"type": "module",
"version": "2.0.0",
"version": "3.0.0",
"scripts": {
"dev": "astro dev",
"start": "astro dev",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16Z" fill="#0F0F0F"/>
<path d="M18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5Z" fill="#0F0F0F"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.65396 4.27606C1 5.55953 1 7.23969 1 10.6V13.4C1 16.7603 1 18.4405 1.65396 19.7239C2.2292 20.8529 3.14708 21.7708 4.27606 22.346C5.55953 23 7.23969 23 10.6 23H13.4C16.7603 23 18.4405 23 19.7239 22.346C20.8529 21.7708 21.7708 20.8529 22.346 19.7239C23 18.4405 23 16.7603 23 13.4V10.6C23 7.23969 23 5.55953 22.346 4.27606C21.7708 3.14708 20.8529 2.2292 19.7239 1.65396C18.4405 1 16.7603 1 13.4 1H10.6C7.23969 1 5.55953 1 4.27606 1.65396C3.14708 2.2292 2.2292 3.14708 1.65396 4.27606ZM13.4 3H10.6C8.88684 3 7.72225 3.00156 6.82208 3.0751C5.94524 3.14674 5.49684 3.27659 5.18404 3.43597C4.43139 3.81947 3.81947 4.43139 3.43597 5.18404C3.27659 5.49684 3.14674 5.94524 3.0751 6.82208C3.00156 7.72225 3 8.88684 3 10.6V13.4C3 15.1132 3.00156 16.2777 3.0751 17.1779C3.14674 18.0548 3.27659 18.5032 3.43597 18.816C3.81947 19.5686 4.43139 20.1805 5.18404 20.564C5.49684 20.7234 5.94524 20.8533 6.82208 20.9249C7.72225 20.9984 8.88684 21 10.6 21H13.4C15.1132 21 16.2777 20.9984 17.1779 20.9249C18.0548 20.8533 18.5032 20.7234 18.816 20.564C19.5686 20.1805 20.1805 19.5686 20.564 18.816C20.7234 18.5032 20.8533 18.0548 20.9249 17.1779C20.9984 16.2777 21 15.1132 21 13.4V10.6C21 8.88684 20.9984 7.72225 20.9249 6.82208C20.8533 5.94524 20.7234 5.49684 20.564 5.18404C20.1805 4.43139 19.5686 3.81947 18.816 3.43597C18.5032 3.27659 18.0548 3.14674 17.1779 3.0751C16.2777 3.00156 15.1132 3 13.4 3Z" fill="#0F0F0F"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View file

@ -0,0 +1,67 @@
<a href="https://github.com/liyunze-coding" target="_blank">
<div
class="bg-white rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:invert transition-[filter] duration-150"
>
<img
src="/images/socials/github.svg"
alt="github"
class="aspect-square max-w-full"
width="20"
/>
</div>
</a>
<a href="https://codepen.io/liyunze-coding" target="_blank">
<div
class="bg-white rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:invert transition-[filter] duration-150"
>
<img
src="/images/socials/codepen.svg"
alt="codepen"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://youtube.com/@RythonDev" target="_blank">
<div
class="bg-white rounded-full w-7 h-7 flex justify-center items-center mr-3 transition-[filter,background-color] duration-150 hover:invert hover:bg-[#00ffff]"
>
<img
src="/images/socials/youtube.svg"
alt="youtube"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://twitch.tv/RythonDev" target="_blank">
<div
class="bg-white rounded-full w-7 h-7 flex justify-center items-center mr-3 transition-[filter,background-color] duration-150 hover:invert hover:bg-[#6eb900]"
>
<img
src="/images/socials/twitch.svg"
alt="twitch"
class="w-4 h-4 aspect-square"
/>
</div>
</a>
<a href="https://instagram.com/RythonDev" target="_blank">
<div
class="bg-white rounded-full w-7 h-7 flex justify-center items-center mr-3 transition-[filter,background-color] duration-150 hover:invert hover:bg-[#1bbfa0]"
>
<img
src="/images/socials/instagram.svg"
alt="twitch"
class="w-4 h-4 aspect-square"
/>
</div>
</a>
<a href="https://ko-fi.com/rython" target="_blank">
<div
class="bg-white rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-[#FF5E5B] transition-colors duration-150"
>
<img
src="/images/socials/kofi.webp"
alt="twitch"
class="w-4 h-4 aspect-square translate-x-[1px] scale-125"
/>
</div>
</a>

View file

@ -1,96 +0,0 @@
<div
class="w-full h-fit pb-40 flex flex-col justify-center items-center relative"
>
<div class="flex flex-col justify-center items-center">
<div
id="title"
class="animate-gradient text-3xl text-center font-bold mb-3"
>
Get in Touch with me!
</div>
<div class="text-lg text-center mb-10 px-5">
I'm always open to new opportunities and collaborations!
</div>
<a
class="text-center flex flex-row justify-center items-center border-2 border-blue-300 text-blue-300 px-5 py-5 hover:bg-blue-300 hover:text-black transition-colors duration-500 ease-in-out rounded-xl"
href="mailto:rythondev@gmail.com"
><span class="text-3xl mr-2">&#9993;</span> Send me an email</a
>
</div>
<div
class="absolute bottom-20 left-1/2 -translate-x-1/2 text-white flex flex-row"
>
<a href="https://github.com/liyunze-coding" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-gray-200"
>
<img
src="/images/socials/github.svg"
alt="github"
class="aspect-square max-w-full"
width="20"
/>
</div>
</a>
<a href="https://codepen.io/liyunze-coding" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-gray-200 transition-colors duration-150"
>
<img
src="/images/socials/codepen.svg"
alt="codepen"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://youtube.com/@RythonDev" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-red-400 transition-colors duration-150"
>
<img
src="/images/socials/youtube.svg"
alt="youtube"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://twitch.tv/RythonDev" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-purple-400 transition-colors duration-150"
>
<img
src="/images/socials/twitch.svg"
alt="twitch"
class="w-4 h-4 aspect-square"
/>
</div>
</a>
</div>
<div
class="absolute sm:bottom-10 bottom-5 left-1/2
-translate-x-1/2
text-gray-300
flex flex-row text-center"
>
© 2023-2024 RythonDev
</div>
</div>
<style>
#title {
background: linear-gradient(
90deg,
#85e6c5 0%,
#a084e8 45%,
#33bbc5 100%
);
background-size: 300%;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>

View file

@ -0,0 +1,56 @@
<script lang="ts">
import Socials from "../elements/Socials.svelte";
</script>
<div
class="w-full h-fit pb-40 flex flex-col justify-center items-center relative"
>
<div class="flex flex-col justify-center items-center">
<div
id="title"
class="animate-gradient text-3xl text-center font-bold mb-3"
>
Get in Touch with me!
</div>
<div class="text-lg text-center mb-10 px-5">
I'm always open to new opportunities and collaborations!
</div>
<a
class="text-center flex flex-row justify-center items-center border-2 border-blue-300 text-blue-300 px-5 py-5 hover:bg-blue-300 hover:text-black transition-colors duration-300 ease-in-out rounded-xl"
href="mailto:rythondev@gmail.com"
><span class="text-3xl mr-2">&#9993;</span> Send me an email</a
>
</div>
<div
class="absolute bottom-20 left-1/2 -translate-x-1/2 text-white flex flex-row"
>
<Socials />
</div>
<div
class="absolute sm:bottom-10 bottom-5 left-1/2
-translate-x-1/2
text-gray-300
flex flex-row text-center"
>
© 2023-{new Date().getFullYear()} RythonDev
</div>
</div>
<style>
#title {
background: linear-gradient(
90deg,
#85e6c5 0%,
#a084e8 45%,
#33bbc5 100%
);
background-size: 300%;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>

View file

@ -1,64 +0,0 @@
---
import Card from "../elements/Card.astro";
import Line from "../elements/NetworkLine.astro";
---
<div id="Experience" class="h-fit py-20">
<h1 class="text-5xl text-center">Education</h1>
<div class="flex flex-col items-center pt-10">
<div class="w-[90%] md:w-[600px]">
<Card primaryColor="#FFAC21">
<div class="card-content">
<div class="flex flex-col justify-left w-full mb-3">
<h2 class="font-bold text-xl">
Diploma in Computer Science
</h2><h3>Jan 2022 - 2024</h3>
</div>
<hr class="w-full mb-3" />
<h3 class="mb-1 font-bold text-lg">Achievements</h3>
<ul class="list-disc list-inside">
<li>
4-time Dean's List Award recipient (&gt;3.5 GPA)
</li>
<li>3.8 CGPA</li>
<li>President of Computer Programming Club</li>
<li>Vice President of Diploma Union</li>
</ul>
</div>
</Card>
<Line height="50px" />
<Card primaryColor="#EEBB00">
<div class="card-content">
<div class="flex flex-col justify-left w-full mb-3">
<h2 class="font-bold text-xl">Cambridge IGCSE</h2><h3>
Sep 2016 - June 2021
</h3>
</div>
<hr class="w-full mb-3" />
<h3 class="mb-1 font-bold text-lg">Achievements</h3>
<ul class="list-disc list-inside">
<li>IGCSE 5 A*s, 3 A's</li>
<li>President of Magnus Technology Society</li>
<li>Technology Manager of Prefects' Board</li>
</ul>
</div>
</Card>
</div>
</div>
</div>
<style>
.card-content {
display: flex;
flex-direction: column;
background-image: radial-gradient(
rgba(255, 255, 255, 0.1) 1px,
transparent 1px
);
background-position: 50% 50%;
background-size: 1.1rem 1.1rem;
padding: 2rem 2rem;
border-radius: 1.25rem;
overflow: hidden;
}
</style>

View file

@ -0,0 +1,73 @@
---
import Card from "../elements/Card.astro";
import Line from "../elements/NetworkLine.astro";
---
<div id="Experience" class="h-fit py-20">
<h1 class="text-5xl text-center">Experience</h1>
<div class="flex flex-col items-center pt-10">
<div class="w-[90%] md:w-[600px]">
<Card primaryColor="#F6DFD8">
<div class="card-content md:px-8 md:py-8 px-4 py-4">
<div class="flex flex-col justify-start w-full mb-3 gap-1">
<h2 class="font-bold text-xl">
Frontend Web Developer Intern
</h2>
<h3 class="font-bold">@ Studio20 Malaysia</h3>
<h3>Jan - April 2024</h3>
</div>
<hr class="w-full mb-3" />
<p class="mb-3">
During my internship, I learnt how to do WordPress and
further enhanced my skills in PHP. I also learnt how to
closely work with UI/UX designers and pay close
attention to details with the design I am given.
</p>
<h3 class="mb-1 font-bold text-lg">Relevant skills:</h3>
<ul class="list-disc list-inside">
<li>WordPress & PHP</li>
<li>NextJS</li>
<li>Typescript</li>
<li>TailwindCSS</li>
<li>Adobe XD</li>
</ul>
</div>
</Card>
<Line height="50px" />
<Card primaryColor="#FFAC21">
<div class="card-content md:px-8 md:py-8 px-4 py-4">
<div class="flex flex-col justify-start w-full mb-3 gap-1">
<h2 class="font-bold text-xl">
Diploma in Computer Science
</h2><h3>Jan 2022 - 2024</h3>
</div>
<hr class="w-full mb-3" />
<h3 class="mb-1 font-bold text-lg">Achievements</h3>
<ul class="list-disc list-inside">
<li>
4-time Dean's List Award recipient (&gt;3.5 GPA)
</li>
<li>3.8 CGPA</li>
<li>President of Computer Programming Club</li>
<li>Vice President of Diploma Union</li>
</ul>
</div>
</Card>
</div>
</div>
</div>
<style>
.card-content {
display: flex;
flex-direction: column;
background-image: radial-gradient(
rgba(255, 255, 255, 0.1) 1px,
transparent 1px
);
background-position: 50% 50%;
background-size: 1.1rem 1.1rem;
border-radius: 1.25rem;
overflow: hidden;
}
</style>

View file

@ -1,5 +1,6 @@
<script lang="ts">
import { onMount } from "svelte";
import Socials from "../elements/Socials.svelte";
// Greeting
let date = new Date();
@ -134,51 +135,7 @@
<b>data science</b>.
</p>
<div class="flex flex-row justify-center items-center mt-5">
<a href="https://github.com/liyunze-coding" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-gray-200"
>
<img
src="/images/socials/github.svg"
alt="github"
class="aspect-square max-w-full"
width="20"
/>
</div>
</a>
<a href="https://codepen.io/liyunze-coding" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-gray-200 transition-colors duration-150"
>
<img
src="/images/socials/codepen.svg"
alt="codepen"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://youtube.com/@RythonDev" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-red-400 transition-colors duration-150"
>
<img
src="/images/socials/youtube.svg"
alt="youtube"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://twitch.tv/RythonDev" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-purple-400 transition-colors duration-150"
>
<img
src="/images/socials/twitch.svg"
alt="twitch"
class="w-4 h-4 aspect-square"
/>
</div>
</a>
<Socials />
</div>
</div>
</div>

View file

@ -29,7 +29,7 @@
>
<a
class="sidebar-url px-5 py-2 mt-2 text-center rounded-md hover:text-gray-600 hover:bg-gray-100 transition-colors duration-300"
href="../education">Education</a
href="../experience">Experience</a
>
<a
class="sidebar-url px-5 py-2 mt-2 text-center rounded-md hover:text-gray-600 hover:bg-gray-100 transition-colors duration-300"
@ -66,7 +66,7 @@
>
<a
class="px-3 mx-2 py-1 text-white hover:bg-gray-200 hover:text-black transition-colors duration-300 rounded-md"
href="../education">education</a
href="../experience">experience</a
>
<a
class="px-3 mx-2 py-1 text-white hover:bg-gray-200 hover:text-black transition-colors duration-300 rounded-md"

View file

@ -289,37 +289,83 @@
>
</div>
<div
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center"
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center lg:items-start"
>
<h2 class="text-3xl font-bold mb-5 text-center">
<h2 class="text-3xl font-bold mb-5 text-center lg:text-left">
Coworking Guide
</h2>
<p
class="text-xl text-center lg:text-left lg:max-w-none max-w-lg"
class="text-xl text-center lg:text-left lg:max-w-none max-w-lg text-balance"
>
A guide to coworking streams for Twitch streamers, covers
wide range of topics from tips on how to get started with
setting up stream to how to grow your audience!
A guide to coworking streams for streamers, covers wide
range of topics from tips on how to get started with setting
up stream to how to grow your audience!
</p>
<div class="w-full flex flex-row flex-wrap mt-5">
<div
class="w-fit bg-white text-black
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
Astro
</div>
<div
class="w-fit bg-[#3178C6] text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
TypeScript
</div>
<div
class="w-fit bg-black text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
Markdown
</div>
</div>
</div>
</div>
<div
class="flex flex-col-reverse lg:flex-row justify-center h-fit w-full px-10 lg:px-16 mt-10"
>
<div
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center"
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center lg:items-end"
>
<h2 class="text-3xl font-bold mb-5 lg:text-right text-center">
Chat-Task-Tic Widget
</h2>
<p
class="text-xl lg:text-right text-center lg:max-w-none max-w-lg"
class="text-xl lg:text-right text-center lg:max-w-none max-w-lg text-balance"
>
Used by 100+ Twitch streamers, allow viewers and streamers
to add their own tasks to the widget for accountability!
Easy to setup and the customization possibilities are
endless!
</p>
<div class="w-full flex flex-row flex-wrap justify-end mt-5">
<div
class="w-fit bg-[#E34F26] text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
HTML
</div>
<div
class="w-fit bg-blue-700 text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
CSS
</div>
<div
class="w-fit bg-yellow-400 text-black
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
Javascript
</div>
</div>
</div>
<div class="lg:hidden flex justify-center items-center mb-10">
<a
@ -361,7 +407,7 @@
>
{#each streamers as { streamer, task }}
<div
class="w-full px-5 py-1 bg-white text-black my-2 rounded-full
class="w-full px-5 py-1 bg-[#404040] text-white my-2 rounded-md
whitespace-nowrap overflow-hidden overflow-ellipsis"
>
O {streamer} : {task}
@ -373,7 +419,7 @@
>
{#each streamers as { streamer, task }}
<div
class="w-full px-5 py-1 bg-white text-black my-2 rounded-full
class="w-full px-5 py-1 bg-[#404040] text-white my-2 rounded-md
whitespace-nowrap overflow-hidden overflow-ellipsis"
>
O {streamer} : {task}
@ -406,7 +452,7 @@
>
{#each streamers as { streamer, task }}
<div
class="w-full px-5 py-1 bg-white text-black my-2 rounded-full
class="w-full px-5 py-1 bg-[#404040] text-white my-2 rounded-md
whitespace-nowrap overflow-hidden overflow-ellipsis"
>
O {streamer} : {task}
@ -418,7 +464,7 @@
>
{#each streamers as { streamer, task }}
<div
class="w-full px-5 py-1 bg-white text-black my-2 rounded-full
class="w-full px-5 py-1 bg-[#404040] text-white my-2 rounded-md
whitespace-nowrap overflow-hidden overflow-ellipsis"
>
O {streamer} : {task}
@ -508,38 +554,78 @@
>
</div>
<div
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center"
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center lg:items-start"
>
<h2 class="text-3xl font-bold mb-5 text-center">HexGuess</h2>
<p
class="text-xl text-center lg:text-left lg:max-w-none max-w-lg"
class="text-xl text-center lg:text-left lg:max-w-none max-w-lg text-balance"
>
Decode colours in 5 attempts. Guess the hexadecimal code and
receive instant feedback! Built with Next.JS, TailwindCSS
and TypeScript.
</p>
<div class="w-full flex flex-row flex-wrap justify-start mt-5">
<div
class="w-fit bg-black text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
NextJS
</div>
<div
class="w-fit bg-[#3178C6] text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
Typescript
</div>
<div
class="w-fit bg-[#07B6D4] text-black
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
TailwindCSS
</div>
</div>
</div>
</div>
<div
class="flex flex-col-reverse lg:flex-row justify-center h-fit w-full px-10 lg:px-16 mt-10"
>
<div
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center"
class="w-full h-fit lg:w-1/2 lg:h-[340px] flex flex-col justify-center lg:px-10 items-center lg:items-end"
>
<h2 class="text-3xl font-bold mb-5 lg:text-right text-center">
ProductiVue
Twitch Plays X
</h2>
<p
class="text-xl text-center lg:text-right lg:max-w-none max-w-lg"
class="text-xl text-center lg:text-right lg:max-w-none max-w-lg text-balance"
>
Boost your productivity streaming with ProductiVue, a sleek
minimalism-focused desktop app for Twitch streamers. Built
using Vue, Tauri, Typescript and TailwindCSS.
Allow Twitch chatters play games such as Pokemon! Chatters
can enter messages such as "up up down down left right B A"
and the Python program will trigger the corresponding
keypresses.
</p>
<div class="w-full flex flex-row flex-wrap justify-end mt-5">
<div
class="w-fit bg-[#3776AB] text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
Python
</div>
<div
class="w-fit bg-[#0078D4] text-white
rounded-full px-3 py-1 mr-1 my-1
transition-colors duration-300"
>
win32API
</div>
</div>
</div>
<div class="lg:hidden flex justify-center items-center mb-10">
<a
href="https://www.github.com/liyunze-coding/ProductiVue"
href="https://github.com/liyunze-coding/TwitchPlaysX"
target="_blank"
class="
px-5 py-3 bg-blue-500 rounded-xl opacity-1
@ -554,7 +640,7 @@
class="image-container flex w-full lg:ml-auto lg:w-1/2 mb-5 lg:mb-0 aspect-video [perspective:200px] relative lg:mr-5"
>
<img
src="/images/projects/ProductiVue.webp"
src="/images/projects/twitchplays.webp"
alt="Hex Guess"
class="absolute max-w-full
top-1/2 left-1/2 [transform:translateX(-48%)_translateY(-48%)_translateZ(-50px)_rotateY(-3deg)] opacity-40
@ -562,7 +648,7 @@
width="700"
/>
<img
src="/images/projects/ProductiVue.webp"
src="/images/projects/twitchplays.webp"
alt="Hex Guess"
width="700"
class="absolute max-w-full
@ -579,7 +665,7 @@
max-w-full"
>
<a
href="https://www.github.com/liyunze-coding/ProductiVue"
href="https://github.com/liyunze-coding/TwitchPlaysX"
target="_blank"
class="absolute [transform:translateX(-50%)_translateY(-50%)] top-1/2 left-1/2
px-5 py-3 bg-blue-500 rounded-xl opacity-1
@ -587,7 +673,7 @@
hidden lg:block
transition-colors duration-300
hover:bg-white hover:text-blue-500
">View Repo</a
">View repository</a
>
</div>
</div>

View file

@ -4,349 +4,349 @@ import Line from "../elements/NetworkLine.astro";
---
<div class="w-full h-fit pt-20">
<h1 class="text-center text-5xl">Skills</h1>
<div class="flex flex-col items-center">
<div class="w-[90%] md:w-[600px] pt-10">
<Card primaryColor="#19a7ce">
<div class="card-content">
<div class="flex flex-col justify-left w-full">
<h2 class="font-bold text-2xl">Frontend Development</h2>
</div>
<hr class="w-full" />
<p class="text-left">
I started my web development journey by building
websites and widgets using vanilla HTML, CSS, Javascript
and Express. As I learnt more about the fundamentals of
web development, I delved into frontend frameworks such
as Svelte, React and Astro.
</p>
<div class="w-full flex flex-row flex-wrap justify-start">
<div
class="w-fit text-white bg-gray-500 hover:bg-orange-700
<h1 class="text-center text-5xl">Skills</h1>
<div class="flex flex-col items-center">
<div class="w-[90%] md:w-[600px] pt-10">
<Card primaryColor="#19a7ce">
<div class="card-content">
<div class="flex flex-col justify-left w-full">
<h2 class="font-bold text-2xl">Frontend Development</h2>
</div>
<hr class="w-full" />
<p class="text-left">
I started my web development journey by building
websites and widgets using vanilla HTML, CSS, Javascript
and Express. As I learnt more about the fundamentals of
web development, I delved into frontend frameworks such
as Svelte, React and Astro.
</p>
<div class="w-full flex flex-row flex-wrap justify-start">
<div
class="w-fit text-white bg-orange-700 md:bg-gray-500 hover:bg-orange-700
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
HTML
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-blue-700
>
HTML
</div>
<div
class="w-fit text-white bg-blue-700 md:bg-gray-500 hover:bg-blue-700
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
CSS
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-yellow-400 hover:text-black
>
CSS
</div>
<div
class="w-fit md:text-white bg-yellow-400 md:bg-gray-500 hover:bg-yellow-400 text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Javascript
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-blue-400 hover:text-black
>
Javascript
</div>
<div
class="w-fit md:text-white bg-[#3178C6] md:bg-gray-500 hover:bg-[#3178C6] text-white md:hover:text-white
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
TypeScript
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#FF3E00]
>
TypeScript
</div>
<div
class="w-fit text-white bg-[#FF3E00] md:bg-gray-500 hover:bg-[#FF3E00]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Svelte
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#00D8FF] hover:text-black
>
Svelte
</div>
<div
class="w-fit md:text-white bg-[#00D8FF] md:bg-gray-500 hover:bg-[#00D8FF] text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
React
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-green-500 hover:text-black
>
React
</div>
<div
class="w-fit md:text-white bg-green-500 md:bg-gray-500 hover:bg-green-500 text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Vue
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-white hover:text-black
>
Vue
</div>
<div
class="w-fit md:text-white bg-gray-500 hover:bg-white text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Astro
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#3366CC] hover:text-white
>
Astro
</div>
<div
class="w-fit text-white bg-[#3366CC] md:bg-gray-500 hover:bg-[#3366CC] hover:text-white
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
HTMX
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#07B6D4] hover:text-black
>
HTMX
</div>
<div
class="w-fit md:text-white bg-[#07B6D4] md:bg-gray-500 hover:bg-[#07B6D4] text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
TailwindCSS
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#646CFF]
>
TailwindCSS
</div>
<div
class="w-fit text-white bg-[#646CFF] md:bg-gray-500 hover:bg-[#646CFF]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Vite
</div>
</div>
</div>
</Card>
<Line height="50px" />
<Card primaryColor="#474F7A">
<div class="card-content">
<div class="flex flex-col justify-left w-full">
<h2 class="font-bold text-2xl">Backend Development</h2>
</div>
<hr class="w-full" />
<p class="text-left">
In the beginning, I used my Python skills to entertain
and to automate the boring stuff, such as using Selenium
for automation + web scraping, play chess by automating
mouse controls and build Discord bots. Now, I am
experienced with backend web development, managing
databases and building performant applications.
</p>
<div class="w-full flex flex-row flex-wrap justify-start">
<div
class="w-fit text-white bg-gray-500 hover:bg-[#3776AB]
>
Vite
</div>
</div>
</div>
</Card>
<Line height="50px" />
<Card primaryColor="#474F7A">
<div class="card-content">
<div class="flex flex-col justify-left w-full">
<h2 class="font-bold text-2xl">Backend Development</h2>
</div>
<hr class="w-full" />
<p class="text-left">
In the beginning, I used my Python skills to entertain
and to automate the boring stuff, such as using Selenium
for automation + web scraping, play chess by automating
mouse controls and build Discord bots. Now, I am
experienced with backend web development, managing
databases and building performant applications.
</p>
<div class="w-full flex flex-row flex-wrap justify-start">
<div
class="w-fit text-white bg-[#3776AB] md:bg-gray-500 hover:bg-[#3776AB]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Python
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-yellow-400 hover:text-black
>
Python
</div>
<div
class="w-fit md:text-white bg-yellow-400 md:bg-gray-500 hover:bg-yellow-400 text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Javascript
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-blue-400 hover:text-black
>
Javascript
</div>
<div
class="w-fit md:text-white bg-[#3178C6] md:bg-gray-500 hover:bg-[#3178C6] text-white md:hover:text-white
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
TypeScript
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#617CBE]
>
TypeScript
</div>
<div
class="w-fit text-white bg-[#617CBE] md:bg-gray-500 hover:bg-[#617CBE]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
PHP
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#00ADD8]
>
PHP
</div>
<div
class="w-fit text-white bg-[#00ADD8] md:bg-gray-500 hover:bg-[#00ADD8]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Go
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-black
>
Go
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Rust
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#4479A1]
>
Rust
</div>
<div
class="w-fit text-white bg-[#4479A1] md:bg-gray-500 hover:bg-[#4479A1]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
MySQL
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-yellow-500 hover:text-black
>
MySQL
</div>
<div
class="w-fit md:text-white bg-yellow-500 md:bg-gray-500 hover:bg-yellow-500 text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Express
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#339933]
>
Express
</div>
<div
class="w-fit text-white bg-[#339933] md:bg-gray-500 hover:bg-[#339933]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Node.js
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#FBEFDF] hover:text-black
>
Node.js
</div>
<div
class="w-fit md:text-white bg-[#FBEFDF] md:bg-gray-500 hover:bg-[#FBEFDF] text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Bun
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#FF3E00]
>
Bun
</div>
<div
class="w-fit text-white bg-[#FF3E00] md:bg-gray-500 hover:bg-[#FF3E00]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Sveltekit
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-black
>
Sveltekit
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Next.js
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#21759B]
>
NextJS
</div>
<div
class="w-fit text-white bg-[#21759B] md:bg-gray-500 hover:bg-[#21759B]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
WordPress
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#24C8D8] hover:text-black
>
WordPress
</div>
<div
class="w-fit md:text-white bg-[#24C8D8] md:bg-gray-500 hover:bg-[#24C8D8] text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Tauri
</div>
</div>
</div>
</Card>
<Line height="50px" />
<Card primaryColor="#a1eebd">
<div class="card-content">
<div class="flex flex-col justify-left w-full">
<h2 class="font-bold text-2xl">Data Science</h2>
</div>
<hr class="w-full" />
<p class="text-left">
My first exposure to data science was through learning
Computer Vision. I learn how to use OpenCV in Python to
open a webcam and detect faces. Later on, I took a
Diploma course that is focused in data science, where I
learnt how to do the fundamentals of data science such
as extracting, transforming and loading data, as well as
data visualisation.
</p>
<div class="w-full flex flex-row flex-wrap justify-start">
<div
class="w-fit text-white bg-gray-500 hover:bg-[#3776AB]
>
Tauri
</div>
</div>
</div>
</Card>
<Line height="50px" />
<Card primaryColor="#a1eebd">
<div class="card-content">
<div class="flex flex-col justify-left w-full">
<h2 class="font-bold text-2xl">Data Science</h2>
</div>
<hr class="w-full" />
<p class="text-left">
My first exposure to data science was through learning
Computer Vision. I learn how to use OpenCV in Python to
open a webcam and detect faces. Later on, I took a
Diploma course that is focused in data science, where I
learnt how to do the fundamentals of data science such
as extracting, transforming and loading data, as well as
data visualisation.
</p>
<div class="w-full flex flex-row flex-wrap justify-start">
<div
class="w-fit text-white bg-[#3776AB] md:bg-gray-500 hover:bg-[#3776AB]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Python
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-cyan-500
>
Python
</div>
<div
class="w-fit text-white bg-cyan-500 md:bg-gray-500 hover:bg-cyan-500
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
R
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-green-600
>
R
</div>
<div
class="w-fit text-white bg-green-600 md:bg-gray-500 hover:bg-green-600
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
OpenCV
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-blue-500 hover:text-black
>
OpenCV
</div>
<div
class="w-fit md:text-white bg-blue-500 md:bg-gray-500 hover:bg-blue-500 text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
SAS
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-[#4479A1]
>
SAS
</div>
<div
class="w-fit text-white bg-[#4479A1] md:bg-gray-500 hover:bg-[#4479A1]
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
MySQL
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-blue-800
>
MySQL
</div>
<div
class="w-fit text-white bg-blue-800 md:bg-gray-500 hover:bg-blue-800
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Pandas
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-green-700
>
Pandas
</div>
<div
class="w-fit text-white bg-green-700 md:bg-gray-500 hover:bg-green-700
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
Selenium
</div>
<div
class="w-fit text-white bg-gray-500 hover:bg-gray-200 hover:text-black
>
Selenium
</div>
<div
class="w-fit md:text-white bg-gray-200 md:bg-gray-500 hover:bg-gray-200 text-black md:hover:text-black
rounded-full px-3 py-1 mr-1 my-1
cursor-default
transition-colors duration-300"
>
BeautifulSoup4
</div>
</div>
</div>
</Card>
</div>
</div>
>
BeautifulSoup4
</div>
</div>
</div>
</Card>
</div>
</div>
</div>
<style>
.card-content {
display: flex;
flex-direction: column;
gap: 1rem;
background-image: radial-gradient(
rgba(255, 255, 255, 0.1) 1px,
transparent 1px
);
background-position: 50% 50%;
background-size: 1.1rem 1.1rem;
padding-top: 2rem;
padding-left: 2rem;
padding-right: 2rem;
padding-bottom: 0.5rem;
border-radius: 1.25rem;
overflow: hidden;
}
.card-content {
display: flex;
flex-direction: column;
gap: 1rem;
background-image: radial-gradient(
rgba(255, 255, 255, 0.1) 1px,
transparent 1px
);
background-position: 50% 50%;
background-size: 1.1rem 1.1rem;
padding-top: 2rem;
padding-left: 2rem;
padding-right: 2rem;
padding-bottom: 0.5rem;
border-radius: 1.25rem;
overflow: hidden;
}
</style>

View file

@ -1,55 +1,55 @@
---
import NavBar from "../components/sections/NavBar.astro";
import Layout from "../layouts/Layout.astro";
import ContactComponent from "../components/sections/ContactComponent.astro";
import ContactComponent from "../components/sections/ContactComponent.svelte";
import Card from "../components/elements/Card.astro";
---
<Layout
title="Contact"
description="Find out how to contact RythonDev, for sponsorship offers or collaboration opportunities!"
title="Contact"
description="Find out how to contact RythonDev, for sponsorship offers or collaboration opportunities!"
>
<NavBar />
<div id="what-i-do" class="mt-10 pt-20">
<h1 class="text-center text-5xl">Contact</h1>
<div class="mt-10 flex justify-center items-center">
<div class="w-[90%] md:w-[600px]">
<Card primaryColor="#40A2D8">
<div class="card-content">
<div class="flex flex-col justify-left w-full mb-3">
<h2 class="font-bold text-xl text-center">
Seeking a young dev with fresh ideas and a
hunger to make a difference?
</h2>
</div>
<hr class="w-full mb-3" />
<div class="text-center">
Whether it's sponsorships or collaboration
opportunities, drop me a line and let's spark some
digital magic!
</div>
</div>
</Card>
</div>
</div>
<div class="mt-10">
<ContactComponent />
</div>
</div>
<NavBar />
<div id="what-i-do" class="mt-10 pt-20">
<h1 class="text-center text-5xl">Contact</h1>
<div class="mt-10 flex justify-center items-center">
<div class="w-[90%] md:w-[600px]">
<Card primaryColor="#40A2D8">
<div class="card-content">
<div class="flex flex-col justify-left w-full mb-3">
<h2
class="font-bold text-xl text-center text-balance"
>
Looking for a young developer with fresh ideas?
</h2>
</div>
<hr class="w-full mb-3" />
<div class="text-center text-balance">
Whether it's sponsorships or collaboration
opportunities, hit me up!
</div>
</div>
</Card>
</div>
</div>
<div class="mt-10">
<ContactComponent />
</div>
</div>
</Layout>
<style>
.card-content {
display: flex;
flex-direction: column;
background-image: radial-gradient(
rgba(255, 255, 255, 0.1) 1px,
transparent 1px
);
background-position: 50% 50%;
background-size: 1.1rem 1.1rem;
padding: 2rem 2rem;
border-radius: 1.25rem;
overflow: hidden;
}
.card-content {
display: flex;
flex-direction: column;
background-image: radial-gradient(
rgba(255, 255, 255, 0.1) 1px,
transparent 1px
);
background-position: 50% 50%;
background-size: 1.1rem 1.1rem;
padding: 2rem 2rem;
border-radius: 1.25rem;
overflow: hidden;
}
</style>

View file

@ -1,12 +0,0 @@
---
import NavBar from "../components/sections/NavBar.astro";
import Layout from "../layouts/Layout.astro";
import EducationComponent from "../components/sections/EducationComponent.astro";
---
<Layout title="Education" description="Find out RythonDev's previous education">
<NavBar />
<div id="Education" class="mt-10">
<EducationComponent />
</div>
</Layout>

View file

@ -0,0 +1,15 @@
---
import NavBar from "../components/sections/NavBar.astro";
import Layout from "../layouts/Layout.astro";
import EducationComponent from "../components/sections/ExperienceComponent.astro";
---
<Layout
title="Experience"
description="Find out RythonDev's previous education"
>
<NavBar />
<div id="Experience" class="mt-10">
<EducationComponent />
</div>
</Layout>

View file

@ -5,39 +5,39 @@ import NetworkLine from "../components/elements/NetworkLine.astro";
import WhatIDo from "../components/sections/WhatIDoComponent.astro";
import Intro from "../components/sections/IntroComponent.svelte";
import Projects from "../components/sections/ProjectsComponent.svelte";
import Education from "../components/sections/EducationComponent.astro";
import Education from "../components/sections/ExperienceComponent.astro";
import Skills from "../components/sections/SkillsComponent.astro";
import Contact from "../components/sections/ContactComponent.astro";
import Contact from "../components/sections/ContactComponent.svelte";
import Card from "../components/elements/Card.astro";
---
<Layout
title="Ryan's Portfolio"
description="Ryan is a software developer, streamer and Computer Science undergraduate. Learn more about him and his skills here!"
title="Ryan's Portfolio"
description="Ryan is a software developer, streamer and Computer Science undergraduate. Learn more about him and his skills here!"
>
<NavBar />
<div id="home" class="pt-20 flex justify-center items-center">
<div class="w-[90%] xl:w-1/2 lg:w-1/2 max-w-[1080px]">
<Card bgColor="#252525" primaryColor="#BEADFA">
<Intro client:load />
</Card>
</div>
</div>
<NetworkLine height="70px" />
<div id="what-i-do">
<div class="h-[1px] w-1/3 bg-[#404040] mb-10 mx-auto"></div>
<WhatIDo />
</div>
<div id="projects">
<Projects client:visible />
</div>
<div id="skills">
<Skills />
</div>
<div id="education">
<Education />
</div>
<div id="contact">
<Contact />
</div>
<NavBar />
<div id="home" class="pt-20 flex justify-center items-center">
<div class="w-[90%] xl:w-1/2 lg:w-1/2 max-w-[1080px]">
<Card bgColor="#252525" primaryColor="#BEADFA">
<Intro client:load />
</Card>
</div>
</div>
<NetworkLine height="70px" />
<div id="what-i-do">
<div class="h-[1px] w-1/3 bg-[#404040] mb-10 mx-auto"></div>
<WhatIDo />
</div>
<div id="projects">
<Projects client:visible />
</div>
<div id="skills">
<Skills />
</div>
<div id="education">
<Education />
</div>
<div id="contact">
<Contact client:visible />
</div>
</Layout>

View file

@ -1,82 +1,39 @@
---
import Layout from "../layouts/Layout.astro";
import SocialsComponent from "../components/elements/Socials.svelte";
---
<Layout title="Skills" description="Check out Ryan's socials">
<!-- twitch, youtube, github, codepen, discord, instagram, ko-fi, -->
<div class="px-0 pt-10">
<div class="flex flex-col justify-center items-center">
<div
class="overflow-hidden rounded-full
<!-- twitch, youtube, github, codepen, discord, instagram, ko-fi, -->
<div class="px-0 pt-10">
<div class="flex flex-col justify-center items-center">
<div
class="overflow-hidden rounded-full
border-2 border-white border-solid"
>
<img
src="/images/RyanPogSmol.webp"
alt="Ryan's Avatar"
width="100"
/>
</div>
<h2 class="text-lg text-center">@RythonDev</h2>
<h3 class="mt-5 text-center">Web Developer, Twitch streamer</h3>
<div class="flex flex-row justify-center items-center py-5">
<a href="https://github.com/liyunze-coding" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-gray-200"
>
<img
src="/images/socials/github.svg"
alt="github"
class="aspect-square max-w-full"
width="20"
/>
</div>
</a>
<a href="https://codepen.io/liyunze-coding" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-gray-200 transition-colors duration-150"
>
<img
src="/images/socials/codepen.svg"
alt="codepen"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://youtube.com/@RythonDev" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-red-400 transition-colors duration-150"
>
<img
src="/images/socials/youtube.svg"
alt="youtube"
class="w-5 h-5 aspect-square"
/>
</div>
</a>
<a href="https://twitch.tv/RythonDev" target="_blank">
<div
class="bg-gray-300 rounded-full w-7 h-7 flex justify-center items-center mr-3 hover:bg-purple-400 transition-colors duration-150"
>
<img
src="/images/socials/twitch.svg"
alt="twitch"
class="w-4 h-4 aspect-square"
/>
</div>
</a>
</div>
</div>
<div
class="w-full
>
<img
src="/images/RyanPogSmol.webp"
alt="Ryan's Avatar"
width="100"
/>
</div>
<h2 class="text-lg text-center">@RythonDev</h2>
<h3 class="mt-5 text-center">Web Developer, Twitch streamer</h3>
<div class="flex flex-row justify-center items-center py-5">
<SocialsComponent />
</div>
</div>
<div
class="w-full
grid grid-cols-1 place-items-center gap-5
px-0 py-5
text-white"
>
<!-- SOCIALS START HERE -->
<a
href="https://twitch.tv/RythonDev"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
>
<!-- SOCIALS START HERE -->
<a
href="https://twitch.tv/RythonDev"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
relative
rounded-full
bg-[#9146FF] border-[#9146FF]
@ -85,13 +42,13 @@ import Layout from "../layouts/Layout.astro";
text-center text-white
hover:bg-transparent hover:text-[#9146FF]
transition-colors duration-150"
>
Twitch
</a>
<a
href="https://youtube.com/@RythonDev"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
>
Twitch
</a>
<a
href="https://youtube.com/@RythonDev"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
relative
rounded-full
bg-[#ff0000] border-[#ff0000]
@ -100,13 +57,13 @@ import Layout from "../layouts/Layout.astro";
text-center text-white
hover:bg-transparent hover:text-[#ff0000]
transition-colors duration-150"
>
YouTube
</a>
<a
href="https://rython.dev/discord"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
>
YouTube
</a>
<a
href="https://rython.dev/discord"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
relative
rounded-full
bg-[#5865F2] border-[#5865F2]
@ -114,13 +71,13 @@ import Layout from "../layouts/Layout.astro";
px-7 py-2
text-center text-white
hover:bg-transparent hover:text-[#5865F2]"
>
Discord
</a>
<a
href="https://instagram.com/rythondev"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
>
Discord
</a>
<a
href="https://instagram.com/rythondev"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
relative
rounded-full
bg-gradient-to-r from-purple-600 via-red-600 to-yellow-400
@ -128,13 +85,13 @@ import Layout from "../layouts/Layout.astro";
px-7 py-2
text-center text-white
hover:from-transparent hover:via-transparent hover:to-transparent"
>
Instagram
</a>
<a
href="https://ko-fi/rython"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
>
Instagram
</a>
<a
href="https://ko-fi/rython"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
relative
rounded-full
bg-cyan-500 border-cyan-500
@ -142,13 +99,13 @@ import Layout from "../layouts/Layout.astro";
px-7 py-2
text-center text-white
hover:bg-transparent hover:text-cyan-500"
>
Ko-fi
</a>
<a
href="https://github.com/liyunze-coding"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
>
Ko-fi
</a>
<a
href="https://github.com/liyunze-coding"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
relative
rounded-full
bg-gray-100 border-gray-100
@ -156,13 +113,13 @@ import Layout from "../layouts/Layout.astro";
px-7 py-2
text-center text-black
hover:bg-transparent hover:text-gray-100"
>
Github
</a>
<a
href="https://codepen.io/liyunze-coding"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
>
Github
</a>
<a
href="https://codepen.io/liyunze-coding"
target="_blank"
class="inline-block w-[clamp(200px,50vw,600px)]
relative
rounded-full
bg-gray-100 border-gray-100
@ -170,9 +127,9 @@ import Layout from "../layouts/Layout.astro";
px-7 py-2
text-center text-black
hover:bg-transparent hover:text-gray-100"
>
Codepen
</a>
</div>
</div>
>
Codepen
</a>
</div>
</div>
</Layout>