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

commit80783b2185c0fae26fe1db7ab41061a36833a9c2
parent812697362f
authorLucas Galante <[email protected]>
date2026-07-12 18:13
docs(rfc): record the first 6bd shrink batch — Element 79->73, bridge gone

 docs/rfc-core-rebuild.md | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index ab9641b..605b4ca 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -1914,6 +1914,29 @@ Constraint respected: **each crate still builds standalone** — the new core is
        Everything else on today's Element (79 methods plus the
        generic-only surface) either moves to inherent `Adapted<W>`
        methods for the generic render machinery or dies.
+       **Execution mode: shrink Element IN PLACE toward the blueprint,
+       then rename it to `WidgetHost` when it matches** — a parallel
+       trait can't be reached from the existing trait object, but
+       removing non-blueprint methods one census-driven commit at a
+       time keeps every state shippable. **First shrink batch (DONE
+       2026-07-12, 79→73):** `highlight_color` folded into the
+       `highlight_quad` default (zero overrides); `set_drag_bounds` +
+       `intrinsic_size` moved to inherent `Adapted<W>` methods (their
+       concrete callers — designer's network panel, fonts'/graph's
+       hand-laid sizing — resolve unchanged); `layout_style`/
+       `layout_children` deleted with **scene/bridge.rs itself** (its
+       last production user was retired in 6aa; the narrow
+       `Layout::intrinsic_size` hook stays — `Adapted::measure` reads
+       it); `layout_ignore` deleted with its only consumers, the
+       uncalled `layout_widgets`/`layout_widget_ptors`. Census
+       lesson: grep BOTH `.method(` and UFCS `::method(` forms — the
+       fonts/graph `Element::intrinsic_size(&x)` callers only
+       surfaced at compile. Remaining non-blueprint candidates:
+       `clear_children`, `corner_radius`/`rounded_corners`
+       (consolidate into `corner_radii`), `hovered`/`set_hovered`,
+       `on_cursor_moved` (belongs in the direct-dispatch block —
+       blueprint addition, not a deletion), `preferred_height`
+       (generic render machinery), `set_parent`, `value`.
     Former slices 4/5 fold in: the app `as_ptr_mut` dispatch sites
     are rewritten by whichever of routed-events (per app) or the
     phase-4 flip reaches them first; no standalone pointer-to-id