Skip to content

feat: favicon, site header with docs/GitHub links, mobile nav, hero motion - #25

Merged
YazarAyobami merged 2 commits into
mainfrom
feat/site-polish
Oct 8, 2026
Merged

YazarAyobami merged 2 commits into
mainfrom
feat/site-polish

Conversation

@abrcrmb

@abrcrmb abrcrmb commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

What and why

Four fixes to the live app's public-facing polish: no favicon/app icon, no way to reach the docs site or GitHub repos except a buried footer link, no mobile navigation (nothing collapsed, nothing to collapse), and no motion anywhere on the site.

Changes

  • app/icon.svg, app/apple-icon.png: favicon and iOS home-screen icon, from the org's new lock mark (kinlock-icon/icon.svg / icon-light-1024.png).
  • components/nav/SiteHeader.tsx: a persistent header on every page (wired into app/layout.tsx). Desktop: brand mark, primary nav (Send / Request / Verify), and two buttons styled differently on purpose since they go to different places: an outline "Documentation" button to kinlock-org.github.io, and a filled-neutral "GitHub" button to github.com/Kinlock-Org. Below md, both collapse into a hamburger disclosure menu (morphing icon, closes on route change and on Escape).
  • Fixed the landing page footer's "How it works, in detail" link, which pointed at a raw ARCHITECTURE_ESSENTIALS.md file on GitHub instead of the actual hosted docs site.
  • Installed the emilkowalski/skills animate skill (Emil Kowalski's animation philosophy: animations.dev) and used it for two motivated, CSS-only animations: the mobile menu's entrance, and a staggered fade/slide-up on the landing page hero (headline, subtext, CTA). Both are plain CSS @keyframes, no new npm dependency, and both degrade to near-instant under prefers-reduced-motion.

Hard rules / invariants touched

None. UI/navigation/styling only; no SDK calls, no money-moving logic touched.

Tests

pnpm lint, pnpm typecheck, pnpm test (93/93, including the inline-strings guard scanning the new component) and pnpm build all green. Visually verified with Playwright screenshots: desktop nav, mobile closed/open hamburger states, and dark mode (all checked, not just built).

Docs / ADR

None needed.

Roadmap

New row M3-25 added (app, P2, DONE): favicon, header/nav, mobile menu, reduced-motion-safe entrance motion. Phase 4 App: 9→10 DONE, total 24→25 (38%→40%). All rows: 39→40 DONE, total 199→200 (22%→23%). Changelog entry added.

Assumptions and open questions

The GitHub org avatar (profile picture) itself isn't set here: there's no gh/API command to upload it, and it's an account-level change outside this repo. Recommended file: kinlock-icon/icon-light-1024.png (opaque, matches the brand's paper token). Needs a human to upload it via the org's GitHub settings page.

…otion

- app/icon.svg, app/apple-icon.png: favicon and iOS home-screen icon
  from the org's new lock mark (kinlock-icon/).
- components/nav/SiteHeader.tsx: persistent header across every page.
  Desktop: brand, primary nav (Send/Request/Verify), and two
  separately-styled, separately-destined buttons (outline Documentation
  -> kinlock-org.github.io, filled-neutral GitHub -> github.com/Kinlock-Org).
  Collapses to a hamburger disclosure menu below md, closes on route
  change and Escape.
- Fixed the landing page footer's stale "How it works, in detail" link,
  which pointed at a raw GitHub markdown file instead of the real docs
  site.
- globals.css: a strong --ease-out token (animate skill) used by the
  mobile menu's entrance and a staggered hero fade/slide-up on the
  landing page, both gated under prefers-reduced-motion. No new
  dependency: pure CSS, following the animate skill's "cheapest tool
  that works" rule.
@abrcrmb
abrcrmb requested a review from a team as a code owner October 8, 2026 11:03
@YazarAyobami
YazarAyobami merged commit 871554f into main Oct 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants