Skip to content

One progress bar style, and checkboxes on the panel edge - #50

Open
maralcbr wants to merge 2 commits into
mainfrom
ui/progress-alignment
Open

maralcbr wants to merge 2 commits into
mainfrom
ui/progress-alignment

Conversation

@maralcbr

@maralcbr maralcbr commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Progress bars look the same on every screen and move smoothly, and loose rows line up with the panels.

 ProgressTrack(fraction:)
-  height: 10 / 14 / 18 per call site
+  height: OmarchyTheme.progressHeight (8)
-  fill: linear 0.18 s steps
+  fill: easeOut 0.6 s, never thinner than a dot once started
-  unknown length: 32% block bouncing back and forth
-                  (Reduce Motion: frozen 32% fill, reads as stalled)
+  unknown length: SweepingHighlight, travels one way
+                  Reduce Motion: BreathingFill, whole bar pulses

 plan review
-  EncryptDiskToggle: Toggle label, 4 pt inset
-  acknowledgement: own HStack, 12 pt gap, 4 pt inset
+  CheckboxRow (shared): label gap 8, help text under the label,
+                        inset = Panel content inset (14)

 OnePageInstallerView
+  stage .id(stageKey): a new screen fades in (old one leaves at once)

stageKey groups phases that show the same screen (preparing/prepared, review/awaiting install), so replanning and the credential sheet keep their state.

Evidence

  • Before: in the simulator, the encrypt checkbox sat 4 pt in from the panel with its help under the box, and the backup checkbox had a wider gap. With Reduce Motion on, "Checking the release signature…" showed a static 32% fill.
    After: both checkboxes sit on the panel content edge with the same gap; the unknown-length bar pulses across the full width; download and install bars share one height.
  • swift build (debug and release), strict swift-format lint, swift test: 677 tests, 0 failures.
  • The one-way sweep was not seen on screen (the test Mac runs Reduce Motion); the pulse and the static layout were.

Merge Danger

Door: two-way

View-only change; no session, engine or helper code touched.

Blast Radius: layout

Plan review and progress screens shift slightly; a stage's views reset only when the screen really changes.

Progress bars were 10, 14 and 18 points tall depending on the screen, stepped in 0.18 s jumps, and the unknown-length bar bounced back and forth (or, with Reduce Motion, sat still as a 32% fill that read as stalled). Now every bar is 8 points, fills glide, the unknown-length bar travels one way, and under Reduce Motion the whole bar breathes instead.

The encryption and backup checkboxes used different gaps and sat 4 points in from the panels. They now share one checkbox row on the panel's content edge, with help text under the label. A new screen fades in instead of cutting.
…heckbox titles once

The sweep and the breathing fill shared one state flag, so switching Reduce Motion mid-run left the highlight clipped off the end or the fill static. Each mode is now its own view with its own animation state. The breathing fill is brighter, and a checkbox title is read once, by the checkbox.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant