feat(projects): add project scope

This commit is contained in:
2025-11-27 22:49:43 +01:00
parent 6a219d84d0
commit c8ba41d7b5
14 changed files with 166 additions and 146 deletions

View File

@@ -30,55 +30,53 @@ export const useContactStore = defineStore("contact", {
animateIntro() {
this.isIntro = true;
const start = 2;
const timeline = gsap.timeline({
onComplete: () => {
this.isIntro = false;
},
});
gsap.fromTo(
this.intro,
{
stage1Opacity: 0,
titleY: SCREEN_HEIGHT,
},
{
stage1Opacity: 1,
titleY: SCREEN_HEIGHT - 23,
duration: 0.1,
delay: start,
ease: "none",
},
);
gsap.fromTo(
this.intro,
{
stage2Opacity: 0,
},
{
stage2Opacity: 1,
duration: 0.1,
delay: start + 0.15,
ease: "none",
},
);
gsap.fromTo(
this.intro,
{
stage3Opacity: 0,
topBarY: -20,
bottomBarY: SCREEN_HEIGHT - 4,
},
{
stage3Opacity: 1,
topBarY: 0,
bottomBarY: SCREEN_HEIGHT - 24,
duration: 0.1,
delay: start + 0.15 + 0.15,
ease: "none",
onComplete: () => {
this.isIntro = false;
timeline
.fromTo(
this.intro,
{
stage1Opacity: 0,
titleY: SCREEN_HEIGHT,
},
},
);
{
stage1Opacity: 1,
titleY: SCREEN_HEIGHT - 23,
duration: 0.1,
ease: "none",
},
2,
)
.fromTo(
this.intro,
{ stage2Opacity: 0 },
{
stage2Opacity: 1,
duration: 0.1,
ease: "none",
},
2.15,
)
.fromTo(
this.intro,
{
stage3Opacity: 0,
topBarY: -20,
bottomBarY: SCREEN_HEIGHT - 4,
},
{
stage3Opacity: 1,
topBarY: 0,
bottomBarY: SCREEN_HEIGHT - 24,
duration: 0.1,
ease: "none",
},
2.3,
);
},
pushNotification(content: string) {
@@ -94,49 +92,46 @@ export const useContactStore = defineStore("contact", {
animateOutro() {
this.isOutro = true;
gsap.fromTo(
this.outro,
{
stage1Opacity: 1,
const timeline = gsap.timeline({
onComplete: () => {
setTimeout(() => {
this.isOutro = false;
navigateTo("/");
}, 2000);
},
{
stage1Opacity: 0,
duration: 0.2,
ease: "none",
},
);
});
gsap.fromTo(
this.outro,
{
stage2Opacity: 1,
},
{
stage2Opacity: 0,
duration: 0.25,
delay: 0.25,
ease: "none",
},
);
gsap.fromTo(
this.outro,
{
stage3Opacity: 1,
},
{
stage3Opacity: 0,
duration: 0.3,
delay: 0.5,
ease: "none",
onComplete: () => {
setTimeout(() => {
this.isOutro = false;
navigateTo("/");
}, 2000);
timeline
.fromTo(
this.outro,
{ stage1Opacity: 1 },
{
stage1Opacity: 0,
duration: 0.2,
ease: "none",
},
},
);
0,
)
.fromTo(
this.outro,
{ stage2Opacity: 1 },
{
stage2Opacity: 0,
duration: 0.25,
ease: "none",
},
0.25,
)
.fromTo(
this.outro,
{ stage3Opacity: 1 },
{
stage3Opacity: 0,
duration: 0.3,
ease: "none",
},
0.5,
);
},
},
});