file manager
git clone https://git.lucas.co/cce-files.git
style: flat mirror matches — full-width well + raised segment plates
Co-Authored-By: Claude Fable 5 <[email protected]>
src/pages/browse.rs | 12 +++++++-----
src/pages/network.rs | 12 +++++++-----
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/pages/browse.rs b/src/pages/browse.rs
index 974b788..7c1c92c 100644
--- a/src/pages/browse.rs
+++ b/src/pages/browse.rs
@@ -198,14 +198,16 @@ pub fn view(state: &mut BrowseState, view_dropdown: &mut cce_ui::widget::Adapted
let breadcrumb_w = client_w - dropdown_w - gap;
let (bx, by, bw, bh) = layout.allocate(breadcrumb_w, breadcrumb_h);
cce_ui::layout::render_widget(&mut pc, &mut state.breadcrumb, bx, by, bw, bh, ctx);
- // The breadcrumb's per-segment button plates live in its modern paint();
- // the flat view this host renders through loses them, so carve each
- // segment's flush inset here (the dropdown-mirror idiom).
+ // The breadcrumb's well + per-segment button plates live in its modern
+ // paint(); the flat view this host renders through loses them, so carve
+ // here: the full-width recessed well, then each segment's raised button
+ // within it (the dropdown-mirror pairing).
{
- let r = cce_ui::layout::breadcrumb_corner_radius().min(bh * 0.5);
+ let r = cce_ui::layout::breadcrumb_corner_radius();
+ pc.relief_recessed(bx, by, bw, bh, r);
let rect = cce_ui::scene::layout::Rect { x: bx, y: by, width: bw, height: bh };
for (sx, sy, sw, sh) in state.breadcrumb.segment_boxes(rect) {
- pc.relief_inset(sx, sy, sw, sh, r);
+ pc.relief_raised(sx, sy, sw, sh, r.min(sh * 0.5));
}
}
cce_ui::layout::render_widget(&mut pc, view_dropdown, bx + bw + gap, by, dropdown_w, breadcrumb_h, ctx);
diff --git a/src/pages/network.rs b/src/pages/network.rs
index e94eabd..926a13d 100644
--- a/src/pages/network.rs
+++ b/src/pages/network.rs
@@ -115,14 +115,16 @@ pub fn view(state: &mut NetworkState, browse: &BrowseState, view_dropdown: &mut
let dropdown_w = 120.0;
let breadcrumb_w = cw - 16.0 - dropdown_w - 12.0;
cce_ui::layout::render_widget(&mut pc, &mut state.breadcrumb, cx + 4.0, cy + 6.0, breadcrumb_w, 24.0, ctx);
- // The breadcrumb's per-segment button plates live in its modern paint();
- // the flat view this host renders through loses them, so carve each
- // segment's flush inset here (the dropdown-mirror idiom).
+ // The breadcrumb's well + per-segment button plates live in its modern
+ // paint(); the flat view this host renders through loses them, so carve
+ // here: the full-width recessed well, then each segment's raised button
+ // within it (the dropdown-mirror pairing).
{
- let r = cce_ui::layout::breadcrumb_corner_radius().min(12.0);
+ let r = cce_ui::layout::breadcrumb_corner_radius();
+ pc.relief_recessed(cx + 4.0, cy + 6.0, breadcrumb_w, 24.0, r);
let rect = cce_ui::scene::layout::Rect { x: cx + 4.0, y: cy + 6.0, width: breadcrumb_w, height: 24.0 };
for (sx, sy, sw, sh) in state.breadcrumb.segment_boxes(rect) {
- pc.relief_inset(sx, sy, sw, sh, r);
+ pc.relief_raised(sx, sy, sw, sh, r.min(sh * 0.5));
}
}
cce_ui::layout::render_widget(&mut pc, view_dropdown, cx + 4.0 + breadcrumb_w + 12.0, cy + 6.0, dropdown_w, 24.0, ctx);