git.lucas.co / cce-authenticator
login authentication (PAM + fingerprint)
git clone https://git.lucas.co/cce-authenticator.git

commit3e4756f50684fe940e79844660ec4d5b51034bc2
parent555b6d62ff
authorLucas Galante <[email protected]>
date2026-09-24 12:47
Root plate: the toolkit's standard spec, not a hand copy

The window's base is now cce-ui's PlateSpec::window (PaintCtx::root_plate)
— the DE root material at its opacity, the shared silhouette arc on all
four corners, the perimeter rolled over bevel_width — in place of the
eight-line block every app carried. The opacity override in that block
was a no-op (root_plate_opacity IS page_low_color's alpha), so the
pixels are unchanged; what changes is that the standard has one home.

Co-Authored-By: Claude Fable 5.1 <[email protected]>

 src/main.rs | 31 +++++--------------------------
 1 file changed, 5 insertions(+), 26 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 992be3a..78f313a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -674,32 +674,11 @@ impl Application for AuthenticatorApp {
 
         // ── The window plate ──
         //
-        // The window IS the dialog. This used to dim the whole surface and draw a
-        // fixed 540x320 "card" inside it, outlined in four 1.5px square-cornered
-        // quads — a hard blue rectangle floating 50px inside a window the compositor
-        // clips to a ~35px superellipse, with the card's fill barely separable from
-        // the scrim behind it. The plate replaces all six quads: one lit slab whose
-        // rolled perimeter reads as the physical edge the silhouette already implies.
-        //
-        // Nominal radius, NOT span-widened here: `Prim::Plate` widens its own corners
-        // (`plate_push_constants`' `scale_corners`), so pre-multiplying by
-        // `corner_span_factor` would apply it twice and detach the arc from the
-        // silhouette. It must be the SHARED root plate radius via
-        // `layout::window_corner_radius` rather than `colors::root_plate_corner_radius`,
-        // which merges a per-app override the compositor never sees.
-        let mut plate_color = cce_ui::color::page_low_color();
-        if plate_color[3] > 0.001 {
-            plate_color[3] = cce_ui::color::root_plate_opacity();
-        }
-        // PlateSpec (cce-ui RFC 7b): this plate already followed the shared
-        // window radius; the spec adds the corner-span widening so the arc
-        // matches the compositor's clip exactly.
-        pc.plate_spec(&cce_ui::scene::paint::PlateSpec {
-            rect: Rect { x: 0.0, y: 0.0, width: sw, height: sh },
-            material: cce_ui::scene::Material::opaque(plate_color),
-            window_corners: (true, true, true, true),
-            depth: cce_ui::layout::bevel_width(),
-        });
+        // The window IS the dialog: the standard root plate (cce-ui
+        // `PlateSpec::window`), one lit slab whose rolled perimeter reads as
+        // the physical edge the silhouette already implies. It replaced a
+        // dimmed surface with a 540x320 "card" outlined in four square quads.
+        pc.root_plate(sw, sh);
 
         // ── Layout ──
         let pad = 24.0f32;