# MOCKUPS.md Master mockup document. High-fidelity SVG boards live beside this file (`M1…M6.svg`); this document specifies every required state, including those not economical to board. All measurements reference SPACING_SYSTEM tokens; colours reference COLOUR_SYSTEM tokens. Boards: - **M1** `M1-home-desktop-dark.svg` — homepage hero + proof strip + skills (dark, 1440) - **M2** `M2-home-desktop-light.svg` — same region, light theme - **M3** `M3-case-study-dark.svg` — JobTrack case-study page (dark, 1440) - **M4** `M4-mobile-dark.svg` — mobile homepage + open nav overlay (390) - **M5** `M5-header-states.svg` — navigation states, language switch, CV split button - **M6** `M6-projects-experience-contact.svg` — homepage lower half (projects cards, timeline, contact band) --- ## 1. Homepage — hero + narrative flow (M1/M2) ``` ┌────────────────────────────────────────────────────────────────────────┐ │ HEADER 72px: [CB●] Projects Experience About Contact │ EN|NO ☾ [CV ▾] │ ├────────────────────────────────────────────────────────────────────────┤ │ (faint dot-grid + accent halo, top-left biased) │ │ │ │ mono-label: SYSTEMS DEVELOPER · TØNSBERG, NORWAY ┌──────────┐ │ │ display: Connor Babbington │ portrait │ │ │ h3-weight: I design, build and run web systems. │ hairline │ │ │ body-lg: Eight-plus years delivering internal │ frame, │ │ │ software for UK local government — now │ mono │ │ │ building full-stack products in Norway. │ caption │ │ │ ── trace line ──┐___________ ● status: open to work └──────────┘ │ │ │ │ chips: [Tønsberg, Norway] [Work permit ✓] [Remote/hybrid/on-site] │ │ [English native · Norsk B1] │ │ CTAs: [■ View projects] [□ Download CV · pdf] │ ├────────────────────────────────────────────────────────────────────────┤ │ PROOF STRIP (4 tiles, surface-1, hairline): 8+ YRS · PUBLIC SECTOR · │ │ .NET/REACT/DOCKER · BASED IN NORWAY — mono labels, stat numerals │ └────────────────────────────────────────────────────────────────────────┘ ``` - Hero text column 7/12 cols; portrait 4/12, offset 1. Portrait: outdoor headshot, 4:5, radius 16, duotone in dark. - Scroll behaviour: header compresses at 120px; sections reveal per A2. - Hover states: CTAs per MICRO_INTERACTIONS buttons; portrait has no hover (non-interactive). ## 2. Skills section (M1 lower) Three `surface-1` cards, 4/12 each, mono-labels `01 — DEVELOPMENT` / `02 — DEVOPS & INFRASTRUCTURE` / `03 — PRACTICES`; one context sentence (ink-muted) + chip rows. Card hover: border-strong. No proficiency bars. ## 3. Projects section — case-study cards (M6) Two large cards (6/12 each): screenshot bleeding to top frame edge (browser-chrome mock), status chip overlaid top-right (`ACTIVE` accent / `IN DEVELOPMENT` amber), h3 title, 1-line problem statement, stack chips, ghost link `Read case study →`. Third slim full-width card for homelab: no screenshot; small topology glyph + one line. Hover per A3 (4px screenshot shift, border glow, arrow nudge). ## 4. Experience timeline (M6) Left hairline spine with period dots. Featured item (System Developer, Warwickshire County Council, 2015–2023): expanded — role h4, employer + location mono-meta, 3 outcome bullets. Earlier roles: compact one-liners at 60% emphasis (`2017–2021 · Sales Representative · Royal Vapes` etc.). Education node at bottom. Timeline draws on entry (A8). ## 5. About section 7/12 text (3 short paragraphs per CONTENT_STRATEGY), 4/12 photo (same portrait, natural grade in light). Language chips repeated (`English — native` `Norsk — B1, aktiv utvikling`). Interests one mono-meta line, no icons. ## 6. Contact (M6 band + page) Homepage band: `surface-2`, h2 "Looking for a systems developer in Norway?" / NO: "Ser dere etter en systemutvikler?", primary e-mail button (click-to-copy), secondary "Contact form →". Contact page: 6/12 form (name/e-mail/message, labels above, per MICRO_INTERACTIONS form), 5/12 direct channels card: e-mail (copy), LinkedIn, git.cesnimda.uk, response-time note. Success state per A9. ## 7. Navigation states (M5) Boards show: (a) default header, (b) scrolled/compressed with blur, (c) CV split-button open (EN/NO menu with file sizes), (d) language switch EN-active vs NO-active with sliding thumb, (e) focus-visible rings on nav item + toggle, (f) mobile header + full-screen overlay (nav stack, language segmented control, theme toggle, CV buttons, contact shortcuts). ## 8. Mobile layouts (M4) 390px reference. Order: slim header (56px: monogram · CV icon-button · burger) → mono-label + name (40px) → summary → chips (wrap, 2 rows) → CTAs stacked full-width → proof strip 2×2 tiles → skills cards stacked → project cards full-width (screenshot 16:10) → timeline (spine indented 16px) → about → contact band → footer. Touch targets ≥44px; no parallax; reveals opacity-only. ## 9. Dark + light (M1 vs M2) Identical geometry; token swap only. Light: shadows-card active on cards, dot-grid at 5% instead of 8%, accent `#0E8C72`, portrait natural. Boards demonstrate both to prove parity. ## 10. Loading states Specified in MOTION_GUIDELINES §4; visually: skeleton = `surface-2` rounded block, aspect-locked, mono caption `loading capture…` bottom-left, no shimmer sweep (shimmer reads as ad-tech; static + cross-fade is calmer). Form submit dots and language cross-fade per A7/A9. ## 11. Language switch UX (M5 detail) - Segmented `EN | NO` control, header right cluster, thumb slide 160ms. - Switching maps current page → same page other locale (URL strategy per IA §5); content cross-fade per A7; scroll ratio preserved. - First-visit hint (browser prefers nb): dismissible one-line banner under header: `Denne siden finnes på norsk → [Bytt] [×]` — shown once, never auto-redirect. - All chrome strings localise with content (nav labels, CV button, form labels, alt text, skip-link). ## 12. Case-study page (M3) ``` ┌ header ────────────────────────────────────────────────────────────────┐ │ mono-label: CASE STUDY · PERSONAL PRODUCT │ │ h1: JobTrack [ACTIVE ●] │ │ body-lg: A job-application workspace covering the full journey │ │ from application to follow-up. │ │ chips: .NET 9 · React · TypeScript · SQLite · FastAPI · Ollama · │ │ Docker links: [Repository ↗] │ ├─ hero screenshot (browser frame, full-bleed to 1200) ─────────────────┤ ├─ TL;DR box (surface-2, 3px accent left edge): What/Why/Stack/Role ────┤ │ ┌ mini-TOC (sticky) ──┐ │ │ ## Problem & context (72ch) │ Problem │ │ │ ## Architecture │ Architecture ● │ │ │ [diagram breakout 1200px] │ Decisions │ │ │ ## Key decisions & trade-offs │ Security │ │ │ numbered blocks: choice/alt/why │ Outcome │ │ │ ## Security & production notes │ Next │ │ │ ## Screenshots (lightbox gallery) └─────────────────────┘ │ │ ## What I'd improve next │ ├─ footer nav: ← InboxIntel | All projects ─────────────────────────────┤ ``` Diagram style per COLOUR_SYSTEM §3.5: surface nodes, accent flow, amber external systems (Gmail API), mono labels. ## 13. Asset integration notes - **Portraits:** outdoor headshot → hero/about; square crop → favicon-adjacent/OG fallback; suit photo → not used on site (kept for LinkedIn/CV). - **JobTrack media plan** (from `website_details.md`): applications table, job-details dialog, Gmail import view, dashboard analytics — 4 captures + 1 architecture diagram + workflow diagram. - **InboxIntel media plan:** dashboard grid, cleanup preview/confirm flow, architecture diagram (Clean Architecture layers), sync-worker sequence sketch. - Screenshots need a capture pass at 2× on seeded demo data — **flagged as a Phase 3 prerequisite task** (no real personal job-hunt data on the public site; seed fictional companies).