Unified mode homes, branded sidebar, and global header/footer across all pages - #171
Merged
Conversation
All mode home screens (Services, Forms, Favourites, Differentials, Medications, Tools, Documents) now share the Answer home structure: centred hero with the search composer below the title, symmetric 3-card actions, centred quick-link pills, and a shared verification footer via ModeHomeTemplate/ModeHomeHero/ModeHomeMain. - Rebuild Services and Forms homes on ModeHomeTemplate; delete the diverged CompactRecordHomePage copy - Give FavouritesHub and the dashboard Tools launcher the shared centred hero and desktop composer slot - Render the shared desktop/mobile sidebar, Guide and Settings dialogs, and header utility menu in GlobalMockupSearchShell so /services, /forms, /favourites, and /differentials match the dashboard shell - Unify standalone header branding to "Clinical Guide" + mode description (removes per-mode Navigator titles) - Vertically centre Documents/Medications/Differentials home states in the dashboard and the standalone differentials home Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t bar - Render the Evidence/Sources footer chips for every mobile home composer (universal footer style), not just Answer, so all modes share the same floating global footer on phones - Reserve taller bottom padding on mobile so home content clears the taller footer (mode home main + shell content wrapper) - Modernise the floating chat pill: frosted translucent surface with backdrop blur, layered elevation shadows, hover/focus states, softer border, roomier internal spacing; matching treatment for the desktop hero pill and larger touch-friendly footer chips with hover states and a press affordance on the send button (reduced-motion safe) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d rail - New BrandMark logo (teal tile + ECG pulse, token-driven) at the top of the sidebar with the site title, in the mobile slide-in menu header, and as src/app/icon.svg favicon (dark-scheme aware) - Remove header identity block, "Local only"/"Saved"/"AK" chips, and the "..." utility menu (theme/settings live in the sidebar); drop the now unused header props and normalise header height across shells so the global header is just burger + centred mode pill + new chat - Collapsed rail: remove the graphite expand button (black-highlight bug); the brand mark now doubles as the expand affordance with a hover/focus reveal, plus a hairline group separator - Persist sidebar collapse in localStorage via useSidebarCollapsed so the dashboard and standalone shells stay in sync across routes - Harden the flaky differentials home geometry probe with a retry poll (Suspense swap after client navigation briefly detaches the heading) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Gives /differentials the same active-state treatment as the other modes: a "Diffs" tile in the sidebar Tools grid (now a symmetric 4x2) and a BrainCircuit rail icon with the accent-soft active highlight. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Shell /applications and /medications routes with the shared GlobalSearchShell (sidebar + global header) instead of their hand-rolled local header copies: delete the launcher's imitation header/mode-menu/mobile-menu (~280 lines) and demote the medication page's local header to an in-page back link - Add a searchComposerVisible shell prop so routes with their own search surface (/applications) show the header without a duplicate composer, with bottom padding adjusted to match - Header polish: mode pill always shows the MODE eyebrow + label and auto-sizes (no per-page description variants), one New chat treatment everywhere, and the redundant absolute-centring modeAlignment prop is removed (the symmetric grid centres the pill) - Update the launcher test to the shared header's Tools mode label Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e47dc95b0e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
BigSimmo
enabled auto-merge (squash)
July 2, 2026 11:20
BigSimmo
added a commit
that referenced
this pull request
Jul 2, 2026
The "purple" mode-home pill tone (Youth service pathway dot) used a raw Tailwind palette color, the only non-token color introduced by #171. It did not adapt to dark mode or forced-colors like the surrounding tokens. Add --tone-purple (light #7c3aed == violet-600 so light mode is unchanged; brighter #a78bfa on dark; CanvasText under forced-colors) and reference it via bg-[color:var(--tone-purple)]. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
BigSimmo
added a commit
that referenced
this pull request
Jul 2, 2026
…cal) The header + mode pill was the source of the recurring overlap/shadow bugs. Move edge-glass-header (+ responsive padding), universal-header, universal-header-mode-button, and universal-header-icon-control into @layer components so Tailwind utilities on those elements now win instead of silently losing to the unlayered class. Reconciled the three shadow conflicts so rendered output is unchanged: drop the dead shadow-[var(--shadow-tight)] on the two edge-glass-header headers (class already sets box-shadow:none), and drop shadow-[var(--shadow-inset)] on the mode button and the New-chat icon control so the layered class supplies its shadow directly (avoids Tailwind's shadow utility injecting transparent ring-placeholder layers). Verified byte-identical computed styles across 16 states (home/answer/focus/document x mobile/desktop x light/dark) with scripts/capture-chrome-parity.ts. The frosted COMPOSER chrome stays unlayered (deferred): PR #171 pushed it to ~92 conflicts in shared ui-primitives constants; tracked in docs/process-hardening.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
12 tasks
BigSimmo
pushed a commit
that referenced
this pull request
Jul 31, 2026
Two small things, both about not hiding information. A zero-count facet used `disabled`, which drops it out of the tab order. A keyboard or screen-reader user then loses the row entirely and never learns why it went quiet — and a `title` on a disabled control is not reliably announced. It now uses `aria-disabled` with the click guarded, so the row stays focusable and carries an sr-only explanation via `aria-describedby`. That is the disabled-affordance pattern docs/wiring-conventions.md already describes. `#175` corrects `#171`, which is already on main. `#171` claims the documents source-type control duplicates the `Document type` facet group. It does not, and the claim was made from a shared word rather than from the code: `resultTypeTabs`/`filterMatchesByResultType` filter on artefact properties — tableCount, imageCount, a .pdf extension — while the `Document type` facet comes from `document_type` labels meaning policy, guideline, form. A guideline containing a table is both. They are complementary axes. The real duplication is the scope chip `tables` against the source-type `Tables` tab. The merge `#171` recommends is still worth doing, but source-type becomes its own group rather than being absorbed, and the scope chips are the part that folds away. `#171`'s separate claim that `Sources` is navigation stands. The correction is appended rather than edited in: the ledger is append-only, and `#158` is precedent for keeping a withdrawn finding on record so it is not re-filed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification
Clinical governance preflight
🤖 Generated with Claude Code