From edd01d784738c5367986903ea4a67a5ba7b3f8c9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 22:40:01 +0000 Subject: [PATCH 1/2] Initial plan From 6e76e8e1ad2bb2584869dd1355ee3e7ea0d75892 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 22:49:08 +0000 Subject: [PATCH 2/2] Implement features from PR #8: Dark Mode, Back to Top, Typing Animation, Skills Proficiency Bars, About Me section Co-authored-by: Yasar2019 <60102921+Yasar2019@users.noreply.github.com> --- src/App.jsx | 30 +++++++- src/Components/AboutMe.jsx | 5 +- src/Components/BackToTop.jsx | 59 ++++++++++++++ src/Components/DarkModeToggle.jsx | 36 +++++++++ src/Components/Header.jsx | 69 ++++++++++++++--- src/Components/Skills.jsx | 124 ++++++++++++++++++++---------- src/data/skills.js | 11 +++ src/styles/GlobalStyles.js | 29 ++++++- tests/skills.test.js | 15 ++++ 9 files changed, 322 insertions(+), 56 deletions(-) create mode 100644 src/Components/BackToTop.jsx create mode 100644 src/Components/DarkModeToggle.jsx create mode 100644 src/data/skills.js create mode 100644 tests/skills.test.js diff --git a/src/App.jsx b/src/App.jsx index b67887f..c009a9b 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,6 +1,6 @@ // src/App.js -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; import GlobalStyles from './styles/GlobalStyles'; import Header from './Components/Header'; import AboutMe from './Components/AboutMe'; @@ -13,8 +13,31 @@ import Footer from './Components/Footer'; import GithubRepos from './Components/GithubRepos'; import ProjectsWithGithub from './Components/ProjectsWithGithub'; import ScrollReveal from './Components/ScrollReveal'; +import DarkModeToggle from './Components/DarkModeToggle'; +import BackToTop from './Components/BackToTop'; function App() { + const [isDark, setIsDark] = useState(() => { + try { + return localStorage.getItem('darkMode') === 'true'; + } catch { + return false; + } + }); + + useEffect(() => { + if (isDark) { + document.body.classList.add('dark-mode'); + } else { + document.body.classList.remove('dark-mode'); + } + try { + localStorage.setItem('darkMode', isDark); + } catch { + // ignore storage errors + } + }, [isDark]); + useEffect(() => { let ticking = false; @@ -50,8 +73,12 @@ function App() { return ( <> + setIsDark(d => !d)} />
+ + + @@ -69,6 +96,7 @@ function App() {