diff --git a/src/components/styles/About.styled.ts b/src/components/styles/About.styled.ts
index dfa720e..24f79e9 100644
--- a/src/components/styles/About.styled.ts
+++ b/src/components/styles/About.styled.ts
@@ -5,7 +5,6 @@ export const StyledAbout = styled.section`
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 3em;
- margin-top: 100px;
img {
border-radius: 1em;
diff --git a/src/components/styles/Global.styled.ts b/src/components/styles/Global.styled.ts
index 43ddfd2..4c819b0 100644
--- a/src/components/styles/Global.styled.ts
+++ b/src/components/styles/Global.styled.ts
@@ -16,9 +16,7 @@ export const GlobalStyles = createGlobalStyle`
scroll-behavior: smooth;
}
- * {
- box-sizing: border-box;
- }
+
body {
margin: 0;
@@ -62,44 +60,14 @@ export const GlobalStyles = createGlobalStyle`
}
a {
- color: white;
- text-decoration: none;
-
- transition: all 0.25s;
-
&:hover {
- color: ${({ theme }) => theme.colors.accent};
+ color: ${({ theme }) => theme.colors.accent};
}
}
- img, svg {
- vertical-align: middle;
- }
-
-
button {
font-family: ${({ theme }) => theme.fonts.primary};
border: none;
}
- ul {
- list-style: none;
- margin: 0;
- padding: 0;
- }
-
- p {
- padding: 0;
- margin: 0;
- }
-
- @keyframes typing {
- to { left: 100% }
- }
-
- @keyframes blinking {
- 0% { opacity: 0 }
- 50% { opacity: 1 }
- 100% { opacity: 0 }
- }
`;
diff --git a/src/index.scss b/src/index.scss
index e69de29..0ee5a07 100644
--- a/src/index.scss
+++ b/src/index.scss
@@ -0,0 +1,43 @@
+* {
+ box-sizing: border-box;
+}
+
+ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+p {
+ padding: 0;
+ margin: 0;
+}
+
+@keyframes typing {
+ to {
+ left: 100%;
+ }
+}
+
+@keyframes blinking {
+ 0% {
+ opacity: 0;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+img,
+svg {
+ vertical-align: middle;
+}
+
+a {
+ color: white;
+ text-decoration: none;
+ transition: all 0.25s;
+}
diff --git a/src/main.tsx b/src/main.tsx
index db8ad16..ebcebe1 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -3,9 +3,13 @@ import ReactDOM from 'react-dom/client';
import App from './App.tsx';
import './index.scss';
+import { gsap } from 'gsap';
+import { ScrollTrigger } from 'gsap/ScrollTrigger';
+
+gsap.registerPlugin(ScrollTrigger);
+
ReactDOM.createRoot(document.getElementById('root')!).render(
);
-
diff --git a/src/sections/AboutSection.tsx b/src/sections/AboutSection.tsx
index c3bc4ca..e2b0094 100644
--- a/src/sections/AboutSection.tsx
+++ b/src/sections/AboutSection.tsx
@@ -4,7 +4,29 @@ import { StyledCursor } from '../components/styles/Cursor.styled';
import { StyledSectionHeader } from '../components/styles/SectionHeader.styled';
import { SiNestjs } from 'react-icons/si';
+import { useGSAP } from '@gsap/react';
+import { gsap } from 'gsap';
+
function AboutSection() {
+ useGSAP(() => {
+ const tl = gsap.timeline({
+ scrollTrigger: {
+ trigger: '.about-grid',
+ },
+ });
+
+ tl.from('.about-gif', { opacity: 0 });
+ tl.from('.about-content', { opacity: 0 });
+ tl.from('.stat-item', {
+ duration: 0.5,
+ ease: 'power1.in',
+ opacity: 0,
+ stagger: {
+ each: 0.5,
+ },
+ });
+ });
+
return (