Default layout with sticky AppHeader (nav, LanguageSwitcher, mobile hamburger), AppFooter with social links. Minimal layout for express mode. 7 placeholder pages with localized EN routes. Page transitions (fade+slide), prefers-reduced-motion support, custom scroll behavior, error.vue, useSeo composable, SVG favicon. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
28 lines
853 B
Vue
28 lines
853 B
Vue
<template>
|
|
<div class="min-h-screen bg-sky-dark text-sky-text flex flex-col">
|
|
<header class="p-4 flex justify-between items-center">
|
|
<NuxtLink :to="localePath('/')" class="text-sky-accent font-narrative font-bold">
|
|
Skycel
|
|
</NuxtLink>
|
|
<div class="flex items-center gap-4">
|
|
<NuxtLink :to="localePath('/')" class="text-sky-text/70 hover:text-sky-accent text-sm font-ui transition-colors">
|
|
{{ $t('common.back_to_adventure') }}
|
|
</NuxtLink>
|
|
<UiLanguageSwitcher />
|
|
</div>
|
|
</header>
|
|
|
|
<main class="flex-1">
|
|
<slot />
|
|
</main>
|
|
|
|
<footer class="p-4 text-center text-sky-text/50 text-sm font-ui">
|
|
{{ $t('footer.copyright', { year: new Date().getFullYear() }) }}
|
|
</footer>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
const localePath = useLocalePath()
|
|
</script>
|