mirror of
https://github.com/Spythere/spythere-portfolio.git
synced 2026-05-02 21:18:15 +00:00
chore(projects): added projects gsap animations on scroll trigger
This commit is contained in:
@@ -3,6 +3,8 @@ import { StyledCursor } from '../components/styles/Cursor.styled';
|
|||||||
import { StyledProjects } from '../components/styles/Projects.styled';
|
import { StyledProjects } from '../components/styles/Projects.styled';
|
||||||
import { StyledSectionHeader } from '../components/styles/SectionHeader.styled';
|
import { StyledSectionHeader } from '../components/styles/SectionHeader.styled';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
import { useGSAP } from '@gsap/react';
|
||||||
|
import gsap from 'gsap';
|
||||||
|
|
||||||
const badges = {
|
const badges = {
|
||||||
HTML: 'https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white',
|
HTML: 'https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white',
|
||||||
@@ -27,7 +29,7 @@ const badges = {
|
|||||||
CSharp: 'https://img.shields.io/badge/C%20SHARP-orange?style=for-the-badge&logo=csharp&logoColor=white',
|
CSharp: 'https://img.shields.io/badge/C%20SHARP-orange?style=for-the-badge&logo=csharp&logoColor=white',
|
||||||
Dotnet: 'https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white',
|
Dotnet: 'https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white',
|
||||||
Tailwind: 'https://img.shields.io/badge/TAILWIND-blue?style=for-the-badge&logo=tailwindcss&logoColor=white',
|
Tailwind: 'https://img.shields.io/badge/TAILWIND-blue?style=for-the-badge&logo=tailwindcss&logoColor=white',
|
||||||
Electron: 'https://img.shields.io/badge/Electron%20JS-white?style=for-the-badge&logo=electron&logoColor=blue',
|
Electron: 'https://img.shields.io/badge/Electron%20JS-white?style=for-the-badge&logo=electron&logoColor=blue'
|
||||||
};
|
};
|
||||||
|
|
||||||
const projects = {
|
const projects = {
|
||||||
@@ -39,7 +41,7 @@ const projects = {
|
|||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.Vue, badges.TS, badges.SASS],
|
technologies: [badges.Vue, badges.TS, badges.SASS],
|
||||||
repoLink: 'https://github.com/Spythere/stacjownik',
|
repoLink: 'https://github.com/Spythere/stacjownik',
|
||||||
siteLink: 'https://stacjownik-td2.spythere.eu/',
|
siteLink: 'https://stacjownik-td2.spythere.eu/'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'pojazdownik',
|
id: 'pojazdownik',
|
||||||
@@ -48,7 +50,7 @@ const projects = {
|
|||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.Vue, badges.TS, badges.SASS],
|
technologies: [badges.Vue, badges.TS, badges.SASS],
|
||||||
repoLink: 'https://github.com/Spythere/pojazdownik',
|
repoLink: 'https://github.com/Spythere/pojazdownik',
|
||||||
siteLink: 'https://pojazdownik-td2.spythere.eu/',
|
siteLink: 'https://pojazdownik-td2.spythere.eu/'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'generator',
|
id: 'generator',
|
||||||
@@ -57,7 +59,7 @@ const projects = {
|
|||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.Vue, badges.TS, badges.SASS],
|
technologies: [badges.Vue, badges.TS, badges.SASS],
|
||||||
repoLink: 'https://github.com/Spythere/genera-tor',
|
repoLink: 'https://github.com/Spythere/genera-tor',
|
||||||
siteLink: 'https://generator-td2.spythere.eu/',
|
siteLink: 'https://generator-td2.spythere.eu/'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'srjp',
|
id: 'srjp',
|
||||||
@@ -66,7 +68,7 @@ const projects = {
|
|||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.Vue, badges.TS, badges.Tailwind],
|
technologies: [badges.Vue, badges.TS, badges.Tailwind],
|
||||||
repoLink: 'https://github.com/Spythere/srjp-td2',
|
repoLink: 'https://github.com/Spythere/srjp-td2',
|
||||||
siteLink: 'https://srjp-td2.spythere.eu/',
|
siteLink: 'https://srjp-td2.spythere.eu/'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'td2-discord-presence-ui',
|
id: 'td2-discord-presence-ui',
|
||||||
@@ -74,7 +76,7 @@ const projects = {
|
|||||||
iconSrc: 'td2-discord-presence-logo.png',
|
iconSrc: 'td2-discord-presence-logo.png',
|
||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.Node, badges.TS, badges.Electron],
|
technologies: [badges.Node, badges.TS, badges.Electron],
|
||||||
repoLink: 'https://github.com/Spythere/td2-discord-presence-ui',
|
repoLink: 'https://github.com/Spythere/td2-discord-presence-ui'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'stacjownik-manager',
|
id: 'stacjownik-manager',
|
||||||
@@ -83,8 +85,8 @@ const projects = {
|
|||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.Vue, badges.TS, badges.SASS],
|
technologies: [badges.Vue, badges.TS, badges.SASS],
|
||||||
repoLink: 'https://github.com/Spythere/station-manager-2.0',
|
repoLink: 'https://github.com/Spythere/station-manager-2.0',
|
||||||
siteLink: 'https://stacjownik-manager.spythere.eu/',
|
siteLink: 'https://stacjownik-manager.spythere.eu/'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
other: [
|
other: [
|
||||||
{
|
{
|
||||||
@@ -92,30 +94,49 @@ const projects = {
|
|||||||
iconSrc: null,
|
iconSrc: null,
|
||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.NestJS, badges.TS, badges.Postgresql],
|
technologies: [badges.NestJS, badges.TS, badges.Postgresql],
|
||||||
docsLink: 'https://stacjownik.spythere.eu/docs',
|
docsLink: 'https://stacjownik.spythere.eu/docs'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'stacjobot',
|
id: 'stacjobot',
|
||||||
iconSrc: null,
|
iconSrc: null,
|
||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.NestJS, badges.Discord, badges.TS],
|
technologies: [badges.NestJS, badges.Discord, badges.TS]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'td2-discord-presence',
|
id: 'td2-discord-presence',
|
||||||
iconSrc: null,
|
iconSrc: null,
|
||||||
subtitle: '',
|
subtitle: '',
|
||||||
technologies: [badges.CSharp, badges.Dotnet],
|
technologies: [badges.CSharp, badges.Dotnet],
|
||||||
repoLink: 'https://github.com/Spythere/TD2-Discord-Presence',
|
repoLink: 'https://github.com/Spythere/TD2-Discord-Presence'
|
||||||
},
|
}
|
||||||
],
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
function ProjectsSection() {
|
function ProjectsSection() {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
useGSAP(() => {
|
||||||
|
const tl = gsap.timeline({
|
||||||
|
scrollTrigger: {
|
||||||
|
trigger: '#projects',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
tl.from('.projects-header', { opacity: 0 });
|
||||||
|
tl.from('.sub-header', { opacity: 0 });
|
||||||
|
tl.from('.project-card', {
|
||||||
|
duration: 0.5,
|
||||||
|
ease: 'power1.in',
|
||||||
|
opacity: 0,
|
||||||
|
stagger: {
|
||||||
|
each: 0.25,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledProjects id="projects">
|
<StyledProjects id="projects">
|
||||||
<StyledSectionHeader>
|
<StyledSectionHeader className='projects-header'>
|
||||||
{t('projects.title-1') + ' '}
|
{t('projects.title-1') + ' '}
|
||||||
<span className="text--accent" style={{ position: 'relative' }}>
|
<span className="text--accent" style={{ position: 'relative' }}>
|
||||||
{t('projects.title-2')}
|
{t('projects.title-2')}
|
||||||
|
|||||||
Reference in New Issue
Block a user