From c8d7c98dd452fb88c17fa9b932111e17bb039a4a Mon Sep 17 00:00:00 2001 From: Riyadh Date: Sun, 10 May 2026 09:35:21 +0000 Subject: [PATCH] Task #451: pin Notes header via an internal scroll container MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Despite Tasks #448–#450 (sticky header + fixing .os-bg / html,body overflow rules), the user kept reporting the bar disappears on scroll. position: sticky is sensitive — the browser was picking the wrong scroll container in this layout. Robust fix: stop relying on document/body for scrolling on the Notes page. Changed the page wrapper className in artifacts/tx-os/src/pages/notes.tsx from min-h-screen os-bg flex flex-col to h-screen os-bg flex flex-col overflow-y-auto Now the Notes wrapper is a known scroll container that's exactly one viewport tall. The sticky header inside it pins reliably to the top edge of that container (== top of the viewport). Composer flush-placement (Task #448), index.css overflow-x:clip on html,body (Task #450), and other pages using .os-bg are all untouched. Single-line change, no other refactors. --- artifacts/tx-os/src/pages/notes.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/artifacts/tx-os/src/pages/notes.tsx b/artifacts/tx-os/src/pages/notes.tsx index 50f749f7..dada7d58 100644 --- a/artifacts/tx-os/src/pages/notes.tsx +++ b/artifacts/tx-os/src/pages/notes.tsx @@ -304,7 +304,7 @@ export default function NotesPage() { return (