git.lucas.co / cce-ui
GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git

commit3c3b3f43038ab92e6205daada30e52a49393d781
parent1a4a27a4aa
authorLucas Galante <[email protected]>
date2026-07-12 00:19
docs(rfc): record Phase 6au — Layer + Page deleted, Paginator pages folded

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018u7qTwzX95dd5ysAkaSCLk

 docs/rfc-core-rebuild.md | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index 1562f2e..1ae2e65 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -1574,8 +1574,20 @@ Constraint respected: **each crate still builds standalone** — the new core is
     the retype, not by folding. Element: 112 → 107 methods. A/B: files
     AE=0, settings audio AE=0, designer diff = terminal behind the
     translucent window.
-  - Then the remaining raw-`Element` containers (JsonLayout, Layer, Page,
-    ScrollBox, ScrollBar, Menu/MenuBar internals, Ramp-family embeds) are
+  - **Layer + Page DELETED (6au).** Per the 5r survey, no app ever put
+    content in Paginator's pages — every consumer keys its own content
+    on `selected_page()` — so the `Vec<Page>` was empty containers being
+    arranged/registered/toggled/event-proxied for nothing. Their one
+    visual (the page-area bg quad, page_color × page_opacity) moved into
+    `Paint::paint`. With the stack gone Page had no constructor and
+    Layer's only constructor was Page's base: both files deleted, plus
+    `Element::is_page`, ScrollBar's Page-downcast write-back, and the
+    dead 8/11 of `PageSelector` (now just selected_page /
+    set_selected_page / sidebar_w; MenuBar's impls + `page_hidden` field
+    went with it). A/B: email/LI/files AE=0; live LI tab click switches
+    pages correctly.
+  - Then the remaining raw-`Element` containers (JsonLayout, ScrollBox,
+    ScrollBar, Menu/MenuBar internals, Ramp-family embeds) are
     constructed only by cce-ui itself and a few app remnants — each either
     dissolves app-side or converts, the `*mut dyn Element` tree/context
     machinery gets retyped, and `Element` + `Adapted` die last.