Repository navigation
Fit the click track to the row instead of piling it up - #628
Merged
Merged
Conversation
The footer's only collapse for the click-track cluster capped its options panel at a fixed 190px and let it wrap in place. 190px is narrower than two of those controls side by side, so on a 15" laptop with the library open the wrap was a five-row column and the footer grew to roughly three times its height. The width is now measured rather than written down. footerFit asks for exactly the pixels the row is short and no more, floored at half the panel's inline width so it stays a two-row wrap. Past that floor the options move into a popover opened from a disclosure beside the on/off pill, and in that state the clusters spread, because the popover frees more width than the row was short and the surplus used to pool as a hole before Export Mix. The click volume was the widest single control in the cluster and the only thing on a row of 34px pills that was neither a pill nor 34px tall. It is now a pill of its own beside the on/off toggle, opening a vertical fader, and it stays on the row at the widths where the rest goes behind the disclosure. The two loop bound fields were clipping the last digit of their own value: fmtTimeMs writes nine characters and the box is eight wide, so 00:56.000 read as 00:56.00. They drop the minutes field and show total seconds. parseTimecode still accepts mm:ss.mmm on the way in, so typing is unchanged. Also gone: the standing "Groups" label, whose box already carries the same text as a placeholder, and two dead characters in "Auto (detected)".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #625
Closes #626
Closes #627
The transport footer ran out of width on a laptop and dealt with it by stacking the click track options into a column. This sizes the collapse to what the row is actually short, gives the volume a shape that lines up with its neighbours, and stops the loop fields cutting off their own last digit.
The collapse is measured, not a constant (#625)
footerFithad one move for the click cluster: cap the options panel at 190px and let it wrap. That is narrower than two of those controls side by side, so the wrap was a five-row column and the footer grew to about three times its height.It now asks for exactly the pixels the row is short, floored at half the panel's inline width so it stays a two-row wrap. Past that floor the options move into a popover, opened from a disclosure beside the on/off pill. In that state the clusters spread across the row, because the popover frees more width than the row was short and the surplus used to stand as a hole before Export Mix.
Measured against the e2e fixture, gap before Export Mix:
One thing worth flagging for review: the panel is
position: fixed, not absolute..footer-clustersisoverflow-x: auto, which computesoverflow-yto auto as well, so an absolutely positioned panel gets clipped by the strip it belongs to.transport.jsplaces it from the trigger's rect, the same shape.search-panelalready uses.The volume is a pill now (#626)
It was a 116px horizontal slider with a percentage after it, on a row of 34px pills. It is a pill beside the on/off toggle, opening a vertical fader with the level above it. Same
#t-metro-volinput underneath, so prefs, the K key and the export click render are untouched.Putting it beside the toggle rather than among the options means the level stays on the row at the widths where everything else goes behind the disclosure.
The fader uses
writing-mode: vertical-rlwith-webkit-appearance: slider-verticalbehind it. On a browser that honours neither it stays horizontal inside the popover: smaller than intended, still working.The loop fields fit their own value (#627)
fmtTimeMswrote nine characters into an eight-character box, so00:56.000displayed as00:56.00. They now show total seconds and drop the minutes field.parseTimecodealready accepted both forms, somm:ss.mmmstill types fine.Also in here
The standing "Groups" label went: the box beside it already carries
3+2+2as its placeholder and explains itself in its title. "Auto (detected)" became "Auto" in all ten locales.Testing
Full local gate.
npx playwright test171 passed,npm run test:jsclean,node --checkclean,ruff checkandruff format --checkclean, bandit clean at medium and above,uv.lockuntouched, i18n coverage clean. No Rust in the diff.pytesthas two failures,test_all_stems_zip_oggandtest_ogg_is_still_streamed. Both fail the same way on a clean checkout ofmain, so they are not from this branch. They look like a local ffmpeg without vorbis.Three e2e specs moved with the behaviour rather than around it:
waitForClickTrackopens the popover when there is one, so the click-track specs keep driving real controls instead of ones that exist but cannot be clicked.