Hey, I'm Leo 👋🏻
-
A passionate software engineer and freelancer from Tirane, Albania, specializing in full-stack web development, desktop applications, and TUI apps. I have a deep interest in low-level programming, often building projects like CPU emulators from scratch.
+
+ A passionate software engineer and freelancer from Tirane,
+ Albania, specializing in full-stack web development, desktop
+ applications, and TUI apps. I have a deep interest in low-level
+ programming, often building projects like CPU emulators from
+ scratch.
+
+
+
+
+
+
+
+
+
+
+
Pinned Projects
-
+
{/* Experience and skill */}
{/* skill */}
@@ -30,22 +66,20 @@ export default function App() {
My Skills
- {/* Experience */}
-
diff --git a/src/app/pricing/page.tsx b/src/app/pricing/page.tsx
index 3cd7da7..6a2fb86 100644
--- a/src/app/pricing/page.tsx
+++ b/src/app/pricing/page.tsx
@@ -1,61 +1,101 @@
import Background from "@/components/Background";
-import { faCheck, faCode, faDatabase, faRocket } from "@fortawesome/free-solid-svg-icons";
+import {
+ faCheck,
+ faCode,
+ faRocket,
+} from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
export default function Pricing() {
- return (
-
-
-
-
-
Choose a plan
-
-
-
- Standard
- $25
-
-
-
- Up to a day
-
-
-
- Simple projects or tasks (e.g., bug fixes)
-
-
-
- Response via Email or Discord
-
-
-
-
-
-
- Premium
- $50
-
-
-
- Up to a week
-
-
-
- Complex projects
-
-
-
- Large tasks (e.g., refractoring, bug hunting)
-
-
-
- Documenting
-
-
-
-
-
+ return (
+
+
+
+
+
Choose a plan
+
+
+
+
Standard
+
$25
+
+
+
+ Up to a day
+
+
+
+ Simple projects or tasks (e.g., bug fixes)
+
+
+
+ Response via Email or Discord
+
+
+
+
+
+
Premium
+
$50
+
+
+
+ Up to a week
+
+
+
+ Complex projects
+
+
+
+ Large tasks (e.g., refractoring, bug hunting)
+
+
+
+ Documenting
+
+
+
+
- )
-}
\ No newline at end of file
+
+
+ );
+}
diff --git a/src/components/Background.css b/src/components/Background.css
index 3b81c4b..405e000 100644
--- a/src/components/Background.css
+++ b/src/components/Background.css
@@ -1,6 +1,6 @@
@keyframes move {
100% {
- transform: translate3d(0, 0, 1px) rotate(360deg);
+ transform: translate3d(0, 0, 1px) rotate(360deg);
}
}
@@ -27,7 +27,6 @@
animation-iteration-count: infinite;
}
-
.background span:nth-child(0) {
color: #f5304c;
top: 24%;
diff --git a/src/components/Background.tsx b/src/components/Background.tsx
index 2407574..d27006d 100644
--- a/src/components/Background.tsx
+++ b/src/components/Background.tsx
@@ -1,4 +1,4 @@
-import './Background.css';
+import "./Background.css";
const Background = () => {
return (
@@ -32,7 +32,7 @@ const Background = () => {
-
+
);
};
diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx
index 49ecc45..8b5692e 100644
--- a/src/components/Navbar.tsx
+++ b/src/components/Navbar.tsx
@@ -1,6 +1,6 @@
-'use client'
+"use client";
-import { usePathname } from 'next/navigation';
+import { usePathname } from "next/navigation";
export default function Navbar() {
const pathname = usePathname();
@@ -9,17 +9,35 @@ export default function Navbar() {
);
-};
+}
diff --git a/src/components/PinnedRepos.tsx b/src/components/PinnedRepos.tsx
index a4bf4a8..142ebb1 100644
--- a/src/components/PinnedRepos.tsx
+++ b/src/components/PinnedRepos.tsx
@@ -1,14 +1,21 @@
type PinnedRepo = {
- author: string,
- name: string,
- description: string,
- language: string,
- stars: number,
- forks: number,
- href?: string,
+ author: string;
+ name: string;
+ description: string;
+ language: string;
+ stars: number;
+ forks: number;
+ href?: string;
};
-export function Repo({name, description: desc, language: lang, stars, forks, href}: PinnedRepo) {
+export function Repo({
+ name,
+ description: desc,
+ language: lang,
+ stars,
+ forks,
+ href,
+}: PinnedRepo) {
return (
{name}
@@ -49,7 +56,10 @@ export function Repo({name, description: desc, language: lang, stars, forks, hre
-
+
{stars}
-
-
- )
+ );
}
export default async function PinnedRepos() {
- const pinned: PinnedRepo[] = await (await fetch('https://pinned.berrysauce.dev/get/kleo-dev')).json();
+ const pinned: PinnedRepo[] = await (
+ await fetch("https://pinned.berrysauce.dev/get/kleo-dev")
+ ).json();
return (
@@ -129,8 +148,9 @@ export default async function PinnedRepos() {
language={repo.language}
stars={repo.stars}
forks={repo.forks}
- href={`https://github.com/${repo.author}/${repo.name}`}/>
+ href={`https://github.com/${repo.author}/${repo.name}`}
+ />
))}
- )
-}
\ No newline at end of file
+ );
+}
diff --git a/src/components/Skill.tsx b/src/components/Skill.tsx
index 12842cb..5aa9ff7 100644
--- a/src/components/Skill.tsx
+++ b/src/components/Skill.tsx
@@ -1,13 +1,19 @@
import { IconProp } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-export default function Skill({skill, icon, mt}: {skill: string, icon: IconProp, mt?: string}) {
+export default function Skill({
+ skill,
+ icon,
+ mt,
+}: {
+ skill: string;
+ icon: IconProp;
+ mt?: string;
+}) {
return (
-
- {skill}
-
+ {skill}
);
-}
\ No newline at end of file
+}
diff --git a/tailwind.config.ts b/tailwind.config.ts
index c5bc5cd..241e5f8 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -14,7 +14,16 @@ export default {
red: '#f5304c',
'red-400': '#fa5770',
'red-600': '#eb2642',
- 'transparent-ish': '#0000006F'
+ 'transparent-ish': '#0000006F',
+ },
+ animation: {
+ fadeIn: "fadeIn 1s ease-in-out",
+ },
+ keyframes: {
+ fadeIn: {
+ "0%": { opacity: "0", transform: "translateY(10px)" },
+ "100%": { opacity: "1", transform: "translateY(0px)" },
+ },
},
},
},