git.lucas.co / cce-designer
graphic design tool
git clone https://git.lucas.co/cce-designer.git

commit1e34f4f07b0e6ef7f3f068e2a7d09073351363f9
parent13d7a0f454
authorLucas Galante <[email protected]>
date2026-08-28 12:32
fix: the network breadcrumb floats clear of the plate's edge

Offset the strip from the plate's top-left by the plate's rolled lip
width plus the run's own boss roll, so the two shadings never overlap —
flush at the corner the raised run read as one clipped lump, not a part
in front of a plate. The circular pane keeps its own arc-derived
placement.

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

 src/app.rs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/app.rs b/src/app.rs
index 67b53b5..5aca799 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -3995,7 +3995,14 @@ pub(crate) fn geometry_to_spreadsheet_data(geom: &Geometry) -> (Vec<String>, Vec
 
                 self.positions[VIEWPORT_IDX] = (col_c_x, vp_y, col_c_w, vp_h);
                 self.positions[RIGHT_MENUBAR_IDX] = (0.0, 0.0, 0.0, 0.0);
-                self.positions[BREADCRUMB_IDX] = (px, py + mb_h, pw, bc_h);
+                // The raised run floats clear of the plate's edge: offset past
+                // the plate's rolled lip (bevel_width) plus the run's own boss
+                // roll, so the two shadings never overlap — flush at the corner
+                // they read as one clipped lump, not a part in front of a plate.
+                let bc_pad = cce_ui::layout::bevel_width()
+                    + cce_ui::layout::bevel_width().min(BREADCRUMB_H * 0.2);
+                self.positions[BREADCRUMB_IDX] =
+                    (px + bc_pad, py + mb_h + bc_pad, (pw - 2.0 * bc_pad).max(0.0), bc_h);
                 self.positions[LEFT_MENUBAR_IDX] = (0.0, 0.0, 0.0, 0.0);
 
                 self.positions[SPREADSHEET_MENUBAR_IDX] = (0.0, 0.0, 0.0, 0.0);