From 46f7530e713383fc611ad5872c15834264b3c4ce Mon Sep 17 00:00:00 2001 From: Radiquum Date: Fri, 25 Jul 2025 03:03:13 +0500 Subject: [PATCH] refactor: add background to links and headers feat: add skills --- app/Section/Characters.tsx | 7 ++-- app/Section/Contacts.tsx | 6 ++- app/Section/Photos.tsx | 8 ++-- app/Section/Projects.tsx | 4 +- app/Section/Skills.tsx | 72 +++++++++++++++++++++++++++++++++ app/Section/Socials.tsx | 4 +- app/components/IconWithText.tsx | 13 +++--- app/page.tsx | 2 + 8 files changed, 99 insertions(+), 17 deletions(-) create mode 100644 app/Section/Skills.tsx diff --git a/app/Section/Characters.tsx b/app/Section/Characters.tsx index 457c2fc..d1b702e 100644 --- a/app/Section/Characters.tsx +++ b/app/Section/Characters.tsx @@ -33,14 +33,15 @@ export const Characters = () => { return (
-

Characters

-
+

Characters

+
{links.map((item) => ( - + ))} diff --git a/app/Section/Contacts.tsx b/app/Section/Contacts.tsx index df4bf5a..d81da57 100644 --- a/app/Section/Contacts.tsx +++ b/app/Section/Contacts.tsx @@ -32,8 +32,8 @@ const links = [ export const Contacts = () => { return (
-

Contacts

-
+

Contacts

+
{links.map((item) => { if (item.url) { return ( @@ -42,6 +42,7 @@ export const Contacts = () => { icon={item.icon} text={item.text} desc={item.desc} + backgroundColor={"#1c1e20"} /> ); @@ -52,6 +53,7 @@ export const Contacts = () => { icon={item.icon} text={item.text} desc={item.desc} + backgroundColor={"#1c1e20"} /> ); } diff --git a/app/Section/Photos.tsx b/app/Section/Photos.tsx index 1adc4ea..532d1d5 100644 --- a/app/Section/Photos.tsx +++ b/app/Section/Photos.tsx @@ -41,14 +41,16 @@ export const Photos = () => {
-

Photos

-
+

Photos

+
{links.map((item) => ( - + ))} diff --git a/app/Section/Projects.tsx b/app/Section/Projects.tsx index 66335b6..307a6d9 100644 --- a/app/Section/Projects.tsx +++ b/app/Section/Projects.tsx @@ -42,7 +42,7 @@ const links = [ { icon: "/icons/ic_baseline-telegram.svg", text: "Red Pandas Stickers", - desc: "Collection of Red Panda related sticker packs", + desc: "Collection of Red Panda sticker packs", url: "https://t.me/red_panda_stickers", }, ]; @@ -50,7 +50,7 @@ const links = [ export const Projects = () => { return (
-

Projects

+

Projects

{links.map((item) => ( diff --git a/app/Section/Skills.tsx b/app/Section/Skills.tsx new file mode 100644 index 0000000..577bd4c --- /dev/null +++ b/app/Section/Skills.tsx @@ -0,0 +1,72 @@ +import { Section } from "../components/Section"; + +const skills = { + "Front-end": [ + "HTML", + "CSS", + "JavaScript", + "TypeScript", + "React", + "Next.js", + "Tailwind CSS", + "Django", + "Flask", + ], + "Back-end": ["Node.js", "Express.js", "FastAPI"], + API: [ + "REST", + "Postman/Hoppscotch", + // "Swagger", + "mitmproxy", + "HTTP Toolkit", + ], + Collaboration: ["Git", "GitHub"], + Deployment: [ + "Docker", + "Docker-compose", + "Vercel", + "GitHub Actions", + "Cloudflare Workers & Pages", + ], + Tools: ["Figma", "Adobe Photoshop", "Cloudflare DNS"], +}; + +export const Skills = () => { + return ( +
+

Skills

+
+
+ {Object.entries(skills).map(([category, skills], index) => { + if (index < 3) + return ( +
+

{category}

+
+ {skills.map((skill) => ( +

{skill}

+ ))} +
+
+ ); + })} +
+
+ {Object.entries(skills).map(([category, skills], index) => { + if (index > 2) + return ( +
+

{category}

+
+ {skills.map((skill) => ( +

{skill}

+ ))} +
+
+ ); + })} +
+
+
+ ); +}; diff --git a/app/Section/Socials.tsx b/app/Section/Socials.tsx index 43e98c3..e0e195c 100644 --- a/app/Section/Socials.tsx +++ b/app/Section/Socials.tsx @@ -50,8 +50,8 @@ const links = [ export const Socials = () => { return (
-

Socials

-
+

Socials

+
{links.map((item) => ( diff --git a/app/components/IconWithText.tsx b/app/components/IconWithText.tsx index 2778f7f..2679bb4 100644 --- a/app/components/IconWithText.tsx +++ b/app/components/IconWithText.tsx @@ -2,20 +2,23 @@ type IconWithTextProps = { icon: string; text: string; desc: string; - hoverTextColor?: string | null; + backgroundColor?: string | null; + backgroundOpacity?: string | null; }; export const IconWithText = ({ icon, text, desc, - hoverTextColor, + backgroundColor, + backgroundOpacity }: IconWithTextProps) => { return (
{/* eslint-disable-next-line @next/next/no-img-element */} {""} diff --git a/app/page.tsx b/app/page.tsx index 93f83cc..50981a7 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -4,6 +4,7 @@ import { Footer } from "./Section/Footer"; import { Intro } from "./Section/Intro"; import { Photos } from "./Section/Photos"; import { Projects } from "./Section/Projects"; +import { Skills } from "./Section/Skills"; import { Socials } from "./Section/Socials"; export default function Home() { @@ -14,6 +15,7 @@ export default function Home() { +