feat(contact): bottom screen navigation

This commit is contained in:
2025-11-14 23:22:32 +01:00
parent d54d52bff0
commit e65b97fa76
7 changed files with 91 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

View File

@@ -0,0 +1,17 @@
<script setup lang="ts">
const backgroundImage = useTemplateRef("backgroundImage");
useRender((ctx) => {
if (!backgroundImage.value) return;
ctx.drawImage(backgroundImage.value, 0, 0);
});
</script>
<template>
<img
ref="backgroundImage"
src="/assets/images/contact/bottom-screen/background.png"
hidden
/>
</template>

View File

@@ -0,0 +1,44 @@
<script setup lang="ts">
import Background from "./Background.vue";
import ButtonSelector from "~/components/Common/ButtonSelector.vue";
const { selectorPosition } = useButtonNavigation({
buttons: {
github: [26, 27, 202, 42],
email: [26, 59, 202, 42],
website: [26, 91, 202, 42],
cv: [26, 123, 202, 42],
},
navigation: {
github: {
down: "email",
},
email: {
up: "github",
down: "website",
},
website: {
up: "email",
down: "cv",
},
cv: {
up: "website",
},
},
initialButton: "github",
onButtonClick: (buttonName) => {
console.log("Clicked on selected button:", buttonName);
},
});
</script>
<template>
<Background />
<ButtonSelector
:x="selectorPosition[0]"
:y="selectorPosition[1]"
:width="selectorPosition[2]"
:height="selectorPosition[3]"
/>
</template>

View File

@@ -0,0 +1,17 @@
<script setup lang="ts">
const backgroundImage = useTemplateRef("backgroundImage");
useRender((ctx) => {
if (!backgroundImage.value) return;
ctx.drawImage(backgroundImage.value, 0, 0);
});
</script>
<template>
<img
ref="backgroundImage"
src="/assets/images/contact/top-screen/background.png"
hidden
/>
</template>

View File

@@ -0,0 +1,7 @@
<script setup lang="ts">
import Background from "./Background.vue";
</script>
<template>
<Background />
</template>

View File

@@ -6,8 +6,12 @@ definePageMeta({
<template> <template>
<NuxtLayout name="default"> <NuxtLayout name="default">
<template #top> </template> <template #top>
<ContactTopScreen />
</template>
<template #bottom> </template> <template #bottom>
<ContactBottomScreen />
</template>
</NuxtLayout> </NuxtLayout>
</template> </template>