Repository navigation
feat(ui): redesign Cockpit as a calm, consistent desktop app - #1
Merged
Merged
Conversation
…d fix typography spacing
…t with badge counter
…d accurate issue counting
…lease date formatting
…ping, and EOL issue counts
…ages, and filter bar
…e-drawer and fix feature-band patches
…rt uninstall strategies
…ponsive layout fixes
… every change Support dates, end-of-life state and the timeline now come from the official release metadata instead of fixed text, and an unavailable catalog is reported as unknown. The ring, action list and navigation badge share one count. Every change asks first through a shared dialog, with a /confirm page for browsers without JavaScript, and shows a busy state while it runs. Preferences move to a settings file because the free port changes the browser origin on every launch, which also makes the pre-flight setting work for the first time. The client script is split into modules, drawers render from server templates, and placeholder package sizes, release dates and the fixed workspace name are gone. The unused downloads section and the previews setting are removed.
…lter model Versions and tools now use color only where something needs attention: a check mark replaces the Latest tag, Remove stays neutral until hovered, and all row and channel actions share one column. Drawers overlay the list instead of reflowing it. Filters share one model everywhere: a segmented control for the main dimension, toggle chips for extras, one search field, a result count and a reset, all on one baseline. Sorting moves into its own menu. The stylesheet is rewritten on tokens with six type sizes, three radii and semantic colors that meet 4.5:1 in both themes, in cascade layers without !important. Fluent UI is removed, because nothing used it beyond badges.
…idths The Install .NET sheet filters on the server through links, script-only controls stay hidden until the script has loaded, and the theme switch and pre-flight choice are plain forms. Tables no longer scroll sideways down to 1024 px. Menus, the palette and the drawers handle Escape, focus return and focus containment, and the result message no longer repeats on reload.
Fixture pages render healthy, mixed and empty systems with a fixed date, and Playwright compares them in both themes, at 1024 px and with overlays open. The comparison runs on macOS in CI, where the baselines were created. Also fixes the tools table scrolling sideways at 1100 px, which slipped into the previous commit, and reduces the corner radii to the three tokens.
… from test feedback The content starts next to the navigation and grows to 1600 px, navigation counts share one column, and the overview ring shows the actions in proportion by severity. The page looks again when the window regains focus or the install sheet closes, so an installer finishing elsewhere shows up without polling. Success now appears as a short toast with the changed row highlighted. Installing a tool goes through the shared confirmation, which replaces the command footers. No search result is singled out, channels in the install sheet collapse, counts say when only the newest releases are listed, unsupported channels appear in the timeline only when installed, and the inline search stays hidden with script.
Each removal used to start its own elevated process, so cleaning up asked for the password once per item, and more for runtimes with several frameworks. On macOS all removals now run in one elevated shell. Every item is attempted and a failure is reported at the end. The shown command now names every framework of a runtime, matching what runs.
…logos unframed Below 960 px the page grid shared spare height with the navigation row, which made it grow on short pages. Tool logos now appear without a tile or border.
Settings offers four palettes with a live preview, each for light and dark. They override color roles only, so shape and spacing stay the same. The choice is kept in the settings file and also works without JavaScript. A test holds every palette to 4.5:1 on the main pages in both themes, and screenshots cover them.
Cockpit reads the accent color from the macOS settings, because the CSS system color depends on the browser. All eight choices have variants that meet 4.5:1 in light and dark, and a changed color is picked up when the window regains focus.
…visible Bars faded through opacity almost vanished on neutral palettes such as Codex. They now use a tinted fill with a solid outline, and the Codex bar colors are stronger. Fixtures gain a channel that is not installed, and refreshing baselines rewrites all of them, because small differences otherwise stay below the comparison tolerance.
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.
Rebuilds the UI as a calm, consistent desktop app and makes it report only what it can back up.
What changes
/confirmpage without JavaScript. Actions show a busy state. Several removals need one administrator approval on macOS.settings.json, because the free port changes the browser origin on every launch.Testing
Not verified