GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git
7a-2: backplate_* wrappers deprecated — Phase 7a complete
All caller crates are migrated onto the root_plate_* getters (11 app repos,
one commit each; cce-designer led as the exemplar), and the compositor —
whose census hits turned out to be entirely its own vocabulary, zero cce-ui
calls — instead gained the canonical plate{root} KDL alias for the
silhouette block it parses from the shared config itself. The legacy
wrappers now carry #[deprecated] pointing at the canonical names; the only
deprecation warning left in a full workspace build is the pre-existing png
set_srgb one. The legacy config spelling and the wrappers remain
indefinitely for out-of-tree configs. RFC updated: 7a COMPLETE, including
the census correction and the substring-collision rename trap for the
record.
docs/rfc-core-rebuild.md | 17 ++++++++++++++---
src/color.rs | 8 ++++++++
src/layout.rs | 2 ++
3 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index 577fb9e..0474c5c 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -2423,8 +2423,17 @@ Constraint respected: **each crate still builds standalone** — the new core is
reads through canonical getters (legacy-config → canonical-getter equivalence), plus
a canonical-spelling test proving parse, precedence over legacy, and legacy-only
fallback. 245 lib tests green; designer A/B AE=0.
- - **7a-2 — pending.** Migrate the other crates' callers per-repo, then flip the
- `backplate_*` wrappers to `#[deprecated]`. The 7a-1 census, by call sites:
+ - **7a-2 — DONE (2026-08-25).** All caller crates migrated per-repo and the
+ `backplate_*` wrappers flipped to `#[deprecated]`. Census correction: the compositor's
+ 9 census hits were all its OWN vocabulary (serde fields + a local default fn) — zero
+ cce-ui getter calls; what it actually needed was the CANONICAL KDL alias, since it
+ parses the silhouette block from the shared config.kdl itself (`plate { root ... }`
+ accepted canonical-first, legacy `backplate` unchanged, tested both ways —
+ cce-compositor@0ef2901). Implementation trap for the record: exact-match renaming of
+ `backplate_corner_radius()` also matched the compositor's
+ `default_backplate_corner_radius()` calls while its serde `default = "..."` string
+ attribute did not — audit renames for substring collisions against local wrappers.
+ The original census, by call sites:
cce-compositor `server/config.rs` (9 — reads the SHARED silhouette values; the
migration must not change which slot it reads), cce-files (10 across main/
preview_pane/pages), cce-test-interface (11), cce-data-editor (5), cce-terminal (3),
@@ -2434,7 +2443,9 @@ Constraint respected: **each crate still builds standalone** — the new core is
(its bar styling reads `module { }` keys + `/style/status/*`, not the root-plate
getters — verified by its owning session 2026-08-25). The
`Application::is_movable_backplate_at` trait-method NAME is 7b vocabulary
- (behavioral role naming), not 7a's.
+ (behavioral role naming), not 7a's. With 7a-2 done, 7a is COMPLETE: new code uses
+ `root_plate_*` / `plate.root.*`; the deprecated wrappers and the legacy config
+ spelling remain indefinitely for out-of-tree configs.
- **7b — `PlateSpec` + window-corner math toolkit-side.** Introduce the spec, port
`pane_plate_radii` in, and give the engine a root-plate paint path fed by a spec instead of
each app's hand-rolled quads (DemoApp first, then the clients). The designer's per-pane
diff --git a/src/color.rs b/src/color.rs
index cb9da34..2457a6f 100644
--- a/src/color.rs
+++ b/src/color.rs
@@ -1234,6 +1234,7 @@ pub fn root_plate_corner_radius() -> f32 {
/// Legacy alias for [`root_plate_corner_radius`] (RFC Phase 7a; callers
/// migrate in 7a-2, after which this gains `#[deprecated]`).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_corner_radius() -> f32 {
root_plate_corner_radius()
}
@@ -1565,6 +1566,7 @@ pub fn root_plate_opacity() -> f32 {
}
/// Legacy alias for [`root_plate_opacity`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn active_backplate_opacity() -> f32 {
root_plate_opacity()
}
@@ -1655,6 +1657,7 @@ pub fn root_plate_menubar_color() -> [f32; 4] {
}
/// Legacy alias for [`root_plate_menubar_color`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_menubar_color() -> [f32; 4] {
root_plate_menubar_color()
}
@@ -1668,6 +1671,7 @@ pub fn root_plate_menubar_text_color() -> [f32; 4] {
}
/// Legacy alias for [`root_plate_menubar_text_color`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_menubar_text_color() -> [f32; 4] {
root_plate_menubar_text_color()
}
@@ -1681,6 +1685,7 @@ pub fn root_plate_menubar_blur() -> bool {
}
/// Legacy alias for [`root_plate_menubar_blur`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_menubar_blur() -> bool {
root_plate_menubar_blur()
}
@@ -1694,6 +1699,7 @@ pub fn root_plate_statusbar_color() -> [f32; 4] {
}
/// Legacy alias for [`root_plate_statusbar_color`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_statusbar_color() -> [f32; 4] {
root_plate_statusbar_color()
}
@@ -1707,6 +1713,7 @@ pub fn root_plate_statusbar_text_color() -> [f32; 4] {
}
/// Legacy alias for [`root_plate_statusbar_text_color`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_statusbar_text_color() -> [f32; 4] {
root_plate_statusbar_text_color()
}
@@ -1720,6 +1727,7 @@ pub fn root_plate_statusbar_blur() -> bool {
}
/// Legacy alias for [`root_plate_statusbar_blur`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_statusbar_blur() -> bool {
root_plate_statusbar_blur()
}
diff --git a/src/layout.rs b/src/layout.rs
index 9cd649a..c250f14 100644
--- a/src/layout.rs
+++ b/src/layout.rs
@@ -1781,6 +1781,7 @@ pub fn root_plate_padding() -> f32 {
/// Legacy alias for [`root_plate_padding`] (RFC Phase 7a; callers migrate in
/// 7a-2, after which this gains `#[deprecated]`).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_padding() -> f32 {
root_plate_padding()
}
@@ -1795,6 +1796,7 @@ pub fn root_plate_gap() -> f32 {
}
/// Legacy alias for [`root_plate_gap`] (RFC Phase 7a).
+#[deprecated(note = "renamed in RFC Phase 7a; use the root_plate_* getter")]
pub fn backplate_gap() -> f32 {
root_plate_gap()
}