- Rebuild complet SvelteKit 2 + Svelte 5 runes + TypeScript, adapter-static - Images self-hébergées optimisées au build (vite-imagetools), fonts Archivo/Inter en woff2 local — BunnyCDN et Google Fonts supprimés (corrige les 403 d'images) - Tokens charte OKI, thème sombre par défaut / clair opt-in, zéro emoji (set SVG) - Motion : KineticText (stagger syncopé gwoka), ScrollProgressBar, View Transitions - Village SVG isométrique pour les services hébergés + fallback accessible - PWA (manifest + SW hors-ligne), 404 en KA, CSP nettoyée (.htaccess + _headers) - Lighthouse mobile : 91/100/100/100 — JS initial 67 Ko gzip
56 lines
1.2 KiB
Svelte
56 lines
1.2 KiB
Svelte
<script lang="ts">
|
|
import { page } from '$app/state';
|
|
|
|
const status = $derived(page.status);
|
|
const is404 = $derived(status === 404);
|
|
</script>
|
|
|
|
<svelte:head>
|
|
<title>{status} — {is404 ? 'Paj la rivé périyòd…' : 'Erreur'} · ORGANISATION KA INTERNATIONALE</title>
|
|
<meta name="robots" content="noindex" />
|
|
</svelte:head>
|
|
|
|
<section class="error-page container">
|
|
<svg class="icon error-icon" aria-hidden="true"><use href="/icons.svg#ka" /></svg>
|
|
<h1>{status}</h1>
|
|
{#if is404}
|
|
<p class="ka" lang="gcf">« Paj la rivé périyòd… »</p>
|
|
<p class="fr">La page que vous cherchez n'existe pas ou a été déplacée. La route continue ailleurs.</p>
|
|
{:else}
|
|
<p class="fr">{page.error?.message ?? 'Une erreur est survenue.'}</p>
|
|
{/if}
|
|
<a class="btn" href="/">Retour à l'accueil</a>
|
|
</section>
|
|
|
|
<style>
|
|
.error-page {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
text-align: center;
|
|
gap: var(--space-3);
|
|
padding: var(--space-5) var(--space-4);
|
|
}
|
|
|
|
.error-icon {
|
|
width: 6rem;
|
|
height: 6rem;
|
|
color: var(--or-oki);
|
|
}
|
|
|
|
h1 {
|
|
font-weight: 900;
|
|
font-size: clamp(4rem, 15vw, 8rem);
|
|
}
|
|
|
|
.ka {
|
|
font-size: 1.25rem;
|
|
color: var(--or-oki);
|
|
}
|
|
|
|
.fr {
|
|
max-width: 52ch;
|
|
color: var(--muted);
|
|
}
|
|
</style>
|