HASH fbd8b09e1fb3
DATE 2025-08-11
SUBJECT web: 404 page
FILES 1 CHANGED
HASH fbd8b09e1fb3
DATE 2025-08-11
SUBJECT web: 404 page
FILES 1 CHANGED
┌─ web/src/pages/404.astro ──────────────────────────────────────────────────┐
│ diff --git a/web/src/pages/404.astro b/web/src/pages/404.astro │
│ new file mode 100644 │
│ index 0000000..3f843c0 │
│ --- /dev/null │
│ +++ b/web/src/pages/404.astro │
│ @@ -0,0 +1,114 @@ │
│ +--- │
│ +import PageLayout from "../components/PageLayout.astro"; │
│ +--- │
│ + │
│ +<PageLayout title="404"> │
│ + <div class="error-container"> │
│ + <div class="error-content"> │
│ + <h2 class="error-title">Page Not Found</h2> │
│ + <p class="error-message"> │
│ + The page you're looking for doesn't exist or has been moved. │
│ + </p> │
│ + <div class="error-actions"> │
│ + <a href="/" class="btn-primary">Go Home</a> │
│ + </div> │
│ + </div> │
│ + </div> │
│ +</PageLayout> │
│ + │
│ +<style> │
│ + .error-container { │
│ + display: flex; │
│ + align-items: center; │
│ + justify-content: center; │
│ + min-height: 60vh; │
│ + padding: 40px 20px; │
│ + } │
│ + │
│ + .error-content { │
│ + text-align: center; │
│ + max-width: 500px; │
│ + } │
│ + │
│ + .error-code { │
│ + font-size: 8rem; │
│ + font-weight: bold; │
│ + color: var(--highlight-color); │
│ + margin: 0; │
│ + line-height: 1; │
│ + } │
│ + │
│ + .error-title { │
│ + font-size: 2rem; │
│ + color: var(--text-primary); │
│ + margin: 20px 0 10px 0; │
│ + font-weight: 600; │
│ + } │
│ + │
│ + .error-message { │
│ + font-size: 1.1rem; │
│ + color: var(--text-secondary); │
│ + margin: 0 0 30px 0; │
│ + line-height: 1.5; │
│ + } │
│ + │
│ + .error-actions { │
│ + display: flex; │
│ + gap: 15px; │
│ + justify-content: center; │
│ + flex-wrap: wrap; │
│ + } │
│ + │
│ + .btn-primary, │
│ + .btn-secondary { │
│ + padding: 12px 24px; │
│ + border-radius: 6px; │
│ + text-decoration: none; │
│ + font-weight: 600; │
│ + transition: all 0.2s ease; │
│ + display: inline-block; │
│ + } │
│ + │
│ + .btn-primary { │
│ + background-color: var(--highlight-color); │
│ + color: var(--bg-primary); │
│ + } │
│ + │
│ + .btn-primary:hover { │
│ + background-color: #b8860b; │
│ + transform: translateY(-1px); │
│ + } │
│ + │
│ + .btn-secondary { │
│ + background-color: transparent; │
│ + color: var(--text-primary); │
│ + border: 2px solid var(--border-color); │
│ + } │
│ + │
│ + .btn-secondary:hover { │
│ + border-color: var(--highlight-color); │
│ + color: var(--highlight-color); │
│ + transform: translateY(-1px); │
│ + } │
│ + │
│ + @media (max-width: 768px) { │
│ + .error-code { │
│ + font-size: 6rem; │
│ + } │
│ + │
│ + .error-title { │
│ + font-size: 1.5rem; │
│ + } │
│ + │
│ + .error-actions { │
│ + flex-direction: column; │
│ + align-items: center; │
│ + } │
│ + │
│ + .btn-primary, │
│ + .btn-secondary { │
│ + min-width: 200px; │
│ + } │
│ + } │
│ +</style> │
│ + │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ web/src/pages/404.astro ────────────┐
│ diff --git a/web/src/pages/404.astro b/web/s │
│ rc/pages/404.astro │
│ new file mode 100644 │
│ index 0000000..3f843c0 │
│ --- /dev/null │
│ +++ b/web/src/pages/404.astro │
│ @@ -0,0 +1,114 @@ │
│ +--- │
│ +import PageLayout from "../components/PageL │
│ ayout.astro"; │
│ +--- │
│ + │
│ +<PageLayout title="404"> │
│ + <div class="error-container"> │
│ + <div class="error-content"> │
│ + <h2 class="error-title">Page Not Foun │
│ d</h2> │
│ + <p class="error-message"> │
│ + The page you're looking for doesn't │
│ exist or has been moved. │
│ + </p> │
│ + <div class="error-actions"> │
│ + <a href="/" class="btn-primary">Go │
│ Home</a> │
│ + </div> │
│ + </div> │
│ + </div> │
│ +</PageLayout> │
│ + │
│ +<style> │
│ + .error-container { │
│ + display: flex; │
│ + align-items: center; │
│ + justify-content: center; │
│ + min-height: 60vh; │
│ + padding: 40px 20px; │
│ + } │
│ + │
│ + .error-content { │
│ + text-align: center; │
│ + max-width: 500px; │
│ + } │
│ + │
│ + .error-code { │
│ + font-size: 8rem; │
│ + font-weight: bold; │
│ + color: var(--highlight-color); │
│ + margin: 0; │
│ + line-height: 1; │
│ + } │
│ + │
│ + .error-title { │
│ + font-size: 2rem; │
│ + color: var(--text-primary); │
│ + margin: 20px 0 10px 0; │
│ + font-weight: 600; │
│ + } │
│ + │
│ + .error-message { │
│ + font-size: 1.1rem; │
│ + color: var(--text-secondary); │
│ + margin: 0 0 30px 0; │
│ + line-height: 1.5; │
│ + } │
│ + │
│ + .error-actions { │
│ + display: flex; │
│ + gap: 15px; │
│ + justify-content: center; │
│ + flex-wrap: wrap; │
│ + } │
│ + │
│ + .btn-primary, │
│ + .btn-secondary { │
│ + padding: 12px 24px; │
│ + border-radius: 6px; │
│ + text-decoration: none; │
│ + font-weight: 600; │
│ + transition: all 0.2s ease; │
│ + display: inline-block; │
│ + } │
│ + │
│ + .btn-primary { │
│ + background-color: var(--highlight-color │
│ ); │
│ + color: var(--bg-primary); │
│ + } │
│ + │
│ + .btn-primary:hover { │
│ + background-color: #b8860b; │
│ + transform: translateY(-1px); │
│ + } │
│ + │
│ + .btn-secondary { │
│ + background-color: transparent; │
│ + color: var(--text-primary); │
│ + border: 2px solid var(--border-color); │
│ + } │
│ + │
│ + .btn-secondary:hover { │
│ + border-color: var(--highlight-color); │
│ + color: var(--highlight-color); │
│ + transform: translateY(-1px); │
│ + } │
│ + │
│ + @media (max-width: 768px) { │
│ + .error-code { │
│ + font-size: 6rem; │
│ + } │
│ + │
│ + .error-title { │
│ + font-size: 1.5rem; │
│ + } │
│ + │
│ + .error-actions { │
│ + flex-direction: column; │
│ + align-items: center; │
│ + } │
│ + │
│ + .btn-primary, │
│ + .btn-secondary { │
│ + min-width: 200px; │
│ + } │
│ + } │
│ +</style> │
│ + │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET