Navigation: a sidebar led by New game, My games once there is one, the account in its footer #404

Closed
opened 2026-10-14 14:37:49 +00:00 by root · 11 comments
root commented 2026-10-14 14:37:49 +00:00 (Migrated from gitlab.core-project.space)

Parent

#400

Seam: S1 — the app shell through the router harness; plus the S6 navigation steps in my-games.spec

What to build

The site navigation as chosen in the prototype (variant D on prototype/399-front-screens).

  • Desktop: shadcn's Sidebar, added to the design system, 256px wide, with a sticky header, content and footer.
  • Header: the site name.
  • Content:
    • New game, the first and only highlighted item, linking to home.
    • My games with an icon, shown only when account.me answers hasGames.
  • Footer:
    • While the Session is being read: an empty block of the same height.
    • No Session: Sign in and a Language control. On desktop, a Guest with Games also sees a short note that their Games live on this browser only, with a link to create an Account.
    • Signed in: a Username button opening a menu with Account, Language (each language named in itself) and Sign out.
  • Removed: the settings cog.
  • Below lg: a slim top bar with the site name, a "My games" icon button when hasGames, New game, and Sign in or the account menu. No menu sheet and no Guest note.
  • The navigation reads only account.me, so / and /local still ask the server nothing else. All copy goes into the Paraglide catalogue in English and French.

Acceptance criteria

  • Each state renders its footer as above, and nothing reading "Sign in" flashes while the Session is read.
  • "My games" is absent when hasGames is false and present (active on its page) when true, on desktop and on a phone.
  • The account menu reaches the account page, switches Language and signs out.
  • The router smoke tests still find / and /local asking nothing but account.me.
  • The app-shell tests for the cog are rewritten to the new sidebar and phone bar, not deleted.
  • my-games.spec reaches My games from the navigation after a Game. The link and the list named "My games" keep their accessible names.
  • French copy on every new string.
  • The gate is green.
## Parent #400 Seam: S1 — the app shell through the router harness; plus the S6 navigation steps in `my-games.spec` ## What to build The site navigation as chosen in the prototype (variant D on `prototype/399-front-screens`). - **Desktop:** shadcn's `Sidebar`, added to the design system, 256px wide, with a sticky header, content and footer. - **Header:** the site name. - **Content:** - **New game**, the first and only highlighted item, linking to home. - **My games** with an icon, shown only when `account.me` answers `hasGames`. - **Footer:** - While the Session is being read: an empty block of the same height. - No Session: Sign in and a Language control. On desktop, a Guest with Games also sees a short note that their Games live on this browser only, with a link to create an Account. - Signed in: a Username button opening a menu with Account, Language (each language named in itself) and Sign out. - **Removed:** the settings cog. - **Below `lg`:** a slim top bar with the site name, a "My games" icon button when `hasGames`, New game, and Sign in or the account menu. No menu sheet and no Guest note. - The navigation reads only `account.me`, so `/` and `/local` still ask the server nothing else. All copy goes into the Paraglide catalogue in English and French. ## Acceptance criteria - [ ] Each state renders its footer as above, and nothing reading "Sign in" flashes while the Session is read. - [ ] "My games" is absent when `hasGames` is false and present (active on its page) when true, on desktop and on a phone. - [ ] The account menu reaches the account page, switches Language and signs out. - [ ] The router smoke tests still find `/` and `/local` asking nothing but `account.me`. - [ ] The app-shell tests for the cog are rewritten to the new sidebar and phone bar, not deleted. - [ ] `my-games.spec` reaches My games from the navigation after a Game. The link and the list named "My games" keep their accessible names. - [ ] French copy on every new string. - [ ] The gate is green.
root commented 2026-10-14 14:37:57 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #400

marked this issue as related to #400
root commented 2026-10-14 14:37:59 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #401

marked this issue as related to #401
root commented 2026-10-14 14:52:27 +00:00 (Migrated from gitlab.core-project.space)

mentioned in merge request !527

mentioned in merge request !527
root commented 2026-10-14 15:15:41 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 00da4b69f9

mentioned in commit 00da4b69f9406de19eadd687501645f14369e13b
root commented 2026-10-14 15:15:41 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit a39d06f0cb

mentioned in commit a39d06f0cbf181178cd98299ac79265e96578068
root commented 2026-10-14 15:46:04 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 9f6a463fe2

mentioned in commit 9f6a463fe2f30bc91909d5b6f01ad32a5cccca5e
root commented 2026-10-14 15:46:04 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 1e0802dedd

mentioned in commit 1e0802dedd30e3fc9dff18fdc21667690b99b569
root commented 2026-10-14 15:56:43 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 72e84b1235

mentioned in commit 72e84b123513e714adadf0e1cea6bbadea49c0db
root commented 2026-10-14 15:56:43 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit f298e4ffbc

mentioned in commit f298e4ffbc5bfc9dc30cf6f0d04fe3ad75838411
root commented 2026-10-14 15:56:44 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit e60fd92072

mentioned in commit e60fd920728a76eba434548b1427925418d1a86d
root commented 2026-10-14 15:56:44 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit a5d7c300c5

mentioned in commit a5d7c300c53266afedc7cccf6e4d1d94f4dd4f83
root (Migrated from gitlab.core-project.space) closed this issue 2026-10-14 16:10:10 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
amaurycoudr/chess-project#404
No description provided.