From b4e2de497eb8787c9ca54981b29c7fc6b691aa97 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 17 Apr 2026 10:36:56 +0200 Subject: docs: add Week 6 planning, spec, and implementation plan (404 and Repository pages) --- .../2026-04-17-404-repository-pages-design.md | 645 +++++++++++++++++++++ 1 file changed, 645 insertions(+) create mode 100644 docs/superpowers/specs/2026-04-17-404-repository-pages-design.md (limited to 'docs/superpowers/specs') diff --git a/docs/superpowers/specs/2026-04-17-404-repository-pages-design.md b/docs/superpowers/specs/2026-04-17-404-repository-pages-design.md new file mode 100644 index 0000000..1dbe52b --- /dev/null +++ b/docs/superpowers/specs/2026-04-17-404-repository-pages-design.md @@ -0,0 +1,645 @@ +# 404 & Repository Pages Design Spec +**danix.xyz Hacker Theme — Week 6** + +**Date:** 2026-04-17 +**Project:** danix.xyz Hacker Theme (Hugo) +**Scope:** Design two new pages (404 error page, Repository/Slackware guide page) +**Status:** Design Phase (awaiting approval) + +--- + +## Overview + +This spec defines the design and implementation strategy for two new pages in Week 6: + +1. **404 Error Page** — User-friendly error page with hacker theme integration, search, recent articles, and interactive easter egg +2. **Repository Page** — Slackware package repository guide with hero section, installation/usage sections, and GitHub SlackBuild repo cards + +Both pages must: +- Maintain visual cohesion with existing theme (Weeks 1-5) +- Meet WCAG 2.1 AA accessibility standards +- Support multilingual content (EN/IT) +- Be fully responsive (320px, 768px, 1200px+) +- Work in light and dark modes +- Integrate animations and interactive elements from Week 5 + +--- + +## Part 1: 404 Error Page + +### Purpose & Audience +- **Purpose:** Display when users navigate to non-existent URLs; provide helpful navigation back to site content +- **Audience:** Users who've made typos or followed broken links +- **Success Criteria:** Users quickly understand the error, access search/articles, find their way back to site + +### Visual Design & Layout + +#### Structure +``` +Header (existing hamburger + theme toggle) +──────────────────────────────────────── +Main Content (centered, full-width, single column) + • 404 heading (large, accent color, themed) + • Error message (friendly, conversational) + ──────────────────────────────────────── + Search box (interactive, themed) + ──────────────────────────────────────── + "Recent Articles" section (3-5 articles) + - Article title + date + category + - Links to articles + ──────────────────────────────────────── + Quick navigation links (Home, Articles, Contact) + ──────────────────────────────────────── + Easter egg (interactive: "Follow the white rabbit") +──────────────────────────────────────── +Footer (existing) +``` + +#### Visual Elements +- **404 Heading:** Oversized (6xl/4rem), accent purple color, bold weight, animated entry (fade-in + subtle scale from Week 5 keyframes) +- **Error Message:** 1.125rem/18px, gray-600 (light mode) / gray-400 (dark mode), conversational tone +- **Search Box:** Styled to match form inputs from Week 4 (border, focus ring, label), full-width or max-width container +- **Article Cards:** Minimal style (title, date, category badge), inherit article list styling from Week 2-3 +- **Navigation Links:** Button styles from Week 2 (primary, secondary, outline variants) +- **Easter Egg:** Hidden by default, triggered by specific interaction (click "Follow the white rabbit" link or keyboard shortcut), displays blue pill/red pill choice (inline modal or overlay) + +#### Color & Typography +- **Accent:** Primary purple (#8B5CF6 or project's purple) +- **Text:** Inherit from project palette (gray-900/light, gray-50/dark) +- **Heading Font:** Inherit from project (likely mono or sans-serif bold) +- **Body Font:** Inherit from project +- **Focus Indicators:** 2px ring from Week 5 (visible in light & dark modes) + +#### Responsive Behavior +- **Mobile (320px):** Single column, search box full-width, article cards stacked, buttons stack vertically +- **Tablet (768px):** Single column, slightly wider max-width for content, buttons may be inline +- **Desktop (1200px+):** Single column, centered max-width (~600-800px), all elements readable + +#### Dark/Light Mode +- **Light Mode:** Light background, dark text, purple accents, focus rings with high contrast +- **Dark Mode:** Dark background, light text, purple accents, focus rings with high contrast (inherited from Week 5) + +### Functionality & Interactivity + +#### Search Box +- **Type:** Client-side search or Hugo search integration +- **Behavior:** On input, filter/search site content in real-time or on Enter +- **Display:** Show matching results (articles, pages) or "no results" message +- **Accessibility:** Label associated with input, ARIA live region for search results, keyboard-navigable results + +#### Recent Articles Section +- **Content:** Auto-pulled from Hugo's recent articles (3-5 most recent) +- **Display:** Title, date (formatted EN/IT), category badge, link to article +- **Accessibility:** Semantic list, headings, links keyboard-navigable, article titles descriptive + +#### Easter Egg (Optional Interactive Element) +- **Trigger:** Click "Follow the white rabbit" link or press a keyboard shortcut (e.g., Shift+? or Alt+W) +- **Display:** Modal or inline section with blue pill/red pill choice (humorous, non-intrusive) + - Blue pill: Stay on 404 page (or navigate to a funny "you chose the blue pill" page) + - Red pill: Navigate to a random article (or home page with a surprise) +- **Accessibility:** Modal must have focus trap (from Week 5), close button, keyboard-dismissible (Escape key) +- **Implementation:** Alpine.js for toggle, CSS animations for reveal + +#### Language Switching +- **EN/IT:** Page content, search results, article titles, labels all in current language +- **Logic:** Uses existing language switcher from header, maintains language context in URLs +- **i18n Strings:** All UI text (404 heading, error message, button labels, search placeholder) in `i18n/en.yaml` and `i18n/it.yaml` + +### Accessibility Requirements (WCAG 2.1 AA) + +#### Semantic HTML +- One `

` (404 heading, may be visual-only via CSS if needed, but semantically present) +- `

` for "Search" and "Recent Articles" sections (proper hierarchy) +- `
` wrapper around content +- Semantic `
` for each article in recent list +- `
` for search box with `