Skip to content

reco-gui: flat control language restyle - #433

Open
RufanMelfor wants to merge 1 commit into
reco-project:mainfrom
RufanMelfor:feat/reco-gui-flat-restyle
Open

reco-gui: flat control language restyle#433
RufanMelfor wants to merge 1 commit into
reco-project:mainfrom
RufanMelfor:feat/reco-gui-flat-restyle

Conversation

@RufanMelfor

@RufanMelfor RufanMelfor commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

One consistent flat visual language across the toolbar and panels,
replacing std-widgets Button and the earlier ad-hoc SectionHeader.

  • New FlatButton component (28px, 7px radius, flat fill + hover
    lighten, blue primary variant) replaces all std-widgets Button
    usages across the toolbar, panels, and dialogs.
  • New TransportButton component for the tight playback-controls
    cluster (jump/step/play icons); the play/pause button gets an
    emphasized (accent-tinted, wider) variant.
  • SectionHeader rebuilt: a filled yellow square when expanded
    (visible at a glance across a stack of collapsed sections) plus a
    ›/⌄ chevron, instead of a plain ▸/▾ text glyph.
  • Color tokens re-based to cool-biased dark neutrals (a hint of blue
    toward the cyan accent); accent green brightened. Light-mode values
    are unchanged.
  • SegmentList file rows: taller, bordered, more rounded; red hover
    on the remove ×.
  • New FOV pill overlaid top-center on the preview (FOV 75° · Constrained), non-interactive so pan/zoom drag underneath still
    works.
  • Fixed the toolbar's floating panel-toggle: it was a bare Rectangle
    with no x, sibling to the toolbar's HorizontalBox - Slint
    centers an unpositioned element inside its parent, so the ◀/▶ glyph
    floated in the middle of the toolbar instead of sitting at the far
    right. Moved into the toolbar row's own flow as a proper icon button
    (⇤/⇥).

Pure visual/styling change - no new functionality, no property or
callback signature changes, no Rust changes.

This is a deliberately scoped-down extraction: the original fork
implementation bundled this restyle together with 7 unrelated
functional features (sync-offset auto-detection, variable playback
speed, ground/top-plane tilt sliders, etc.) in one commit. Splitting it
out cleanly meant re-deriving the visual-only pieces against current
main, rather than cherry-picking.

Test plan

  • cargo check -p reco-gui --all-targets clean
  • cargo test -p reco-gui — 6/6 passing (no test coverage change,
    this PR touches only .slint)
  • cargo clippy -p reco-gui --all-targets -- -D warnings — no new
    findings; failures shown are the same pre-existing reco-core
    dead-code/unsafe-ptr issues already tracked by Clear pre-existing clippy -D warnings failures on Windows #423
  • Manually reviewed every converted ButtonFlatButton call
    site for property compatibility (text/enabled/clicked only
    - no usages relied on Button-only features like checkable)
GUI

One consistent flat visual language across the toolbar and panels,
replacing std-widgets Button and the earlier ad-hoc SectionHeader.

- New FlatButton component (28px, 7px radius, flat fill + hover
  lighten, blue `primary` variant) replaces all std-widgets Button
  usages across toolbar, panels, and dialogs.
- New TransportButton component for the tight playback-controls
  cluster (jump/step/play icons); the play/pause button gets an
  `emphasized` (accent-tinted, wider) variant.
- SectionHeader rebuilt: filled yellow square when expanded (visible
  at a glance across a stack of collapsed sections) plus a ›/⌄
  chevron, instead of a plain ▸/▾ text glyph.
- Color tokens re-based to cool-biased dark neutrals (a hint of blue
  toward the cyan accent); accent green brightened. Light-mode values
  unchanged.
- SegmentList file rows: taller, bordered, more rounded; red hover on
  the remove ×.
- New FOV pill overlaid top-center on the preview (`FOV 75° ·
  Constrained`), non-interactive so pan/zoom drag underneath still
  works.
- Fixed the toolbar's floating panel-toggle: it was a bare Rectangle
  with no `x` sibling to the toolbar's HorizontalBox, which Slint
  centers inside the parent instead of placing it at the far right.
  Moved into the toolbar row's own flow as a proper icon button
  (⇤/⇥).

Pure visual/styling change - no new functionality, no property or
callback signature changes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

All contributors have signed the CLA. Thank you!
Posted by the CLA Assistant Lite bot.

@RufanMelfor

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

2 participants