feat(projects): add project scope

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

View File

@@ -24,74 +24,72 @@ export const useHomeStore = defineStore("home", {
this.isIntro = true;
const start = 0.5;
const duration = 0.5;
const delay = 0.35;
const timeline = gsap.timeline({
onComplete: () => {
this.isIntro = false;
if (!appStore.booted) appStore.booted = true;
},
});
gsap.fromTo(
this.intro,
{ stage1Opacity: 0 },
{
stage1Opacity: 1,
duration,
delay: start,
ease: "none",
onComplete: () => {
this.isIntro = false;
if (!appStore.booted) appStore.booted = true;
timeline
.fromTo(
this.intro,
{ stage1Opacity: 0 },
{
stage1Opacity: 1,
duration: 0.5,
ease: "none",
},
},
);
gsap.fromTo(
this.intro,
{ statusBarY: -20 },
{
statusBarY: 0,
duration: duration - delay,
delay: start + delay,
ease: "none",
},
);
0.5,
)
.fromTo(
this.intro,
{ statusBarY: -20 },
{
statusBarY: 0,
duration: 0.15,
ease: "none",
},
0.85,
);
},
animateOutro(to: "contact" | "projects" | "settings") {
this.isOutro = true;
this.outro.animateTop = to !== "settings";
const duration = 0.4;
const delay = 0.08;
gsap.fromTo(
this.outro,
{
buttonOffsetY: 0,
stage1Opacity: 1,
const timeline = gsap.timeline({
onComplete: () => {
this.isOutro = true;
navigateTo(`/${to}`);
},
{
buttonOffsetY: -200,
stage1Opacity: 0,
duration,
delay,
ease: "none",
onComplete: () => {
this.isOutro = true;
navigateTo(`/${to}`);
});
timeline
.fromTo(
this.outro,
{ stage2Opacity: 1 },
{
stage2Opacity: 0,
duration: 0.16,
ease: "none",
},
},
);
gsap.fromTo(
this.outro,
{
stage2Opacity: 1,
},
{
stage2Opacity: 0,
ease: "none",
duration: duration / 2 - delay,
},
);
0,
)
.fromTo(
this.outro,
{
buttonOffsetY: 0,
stage1Opacity: 1,
},
{
buttonOffsetY: -200,
stage1Opacity: 0,
duration: 0.4,
ease: "none",
},
0.08,
);
},
},
});