fix(web-ui): draw the server mark as solid rack units - #3173
Merged
Merged
Conversation
The row-sized server mark was traced from the card artwork's outline rack, and it read as the one mark out of family: hollow where every system beside it is a solid logo, 13x10px of ink where the Apple, Tux and HarmonyOS marks draw 13x16 and the Windows mark 13x13. A device list is a row of those logos, so the server row looked lighter and smaller than the machines around it. Draw the machine instead: three rack units on the family's own 24-unit grid, each unit's status light punched out as negative space, in the same solid ink and the same view box as the Windows mark, so the mark takes the same room in a row. It renders 13x13px at the 16px slot the device list, the footer trigger and the account device card give it, and scales by the same rule at the mobile web sizes of 20px and 22px. The card artwork masks the same shape, so server.svg is redrawn on the same grid with its ink centred in the box, and the 2:1 artwork slot sizes it 30% wide by 24:29.4629 instead of the landscape 38.11849% by 91.484375:70.7421875: a portrait stack carries the weight the landscape laptop silhouettes carry beside it. The mark table's other entries, the resolver and the artwork-to-mark map are untouched. Co-authored-by: bitfun-ai <318544290+bitfun-ai@users.noreply.github.com>
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.
Summary
The mark a headless (CLI) host draws was the one mark out of family in a device list: hollow where every system beside it is a solid logo, and 13x10px of ink where the Apple, Tux and HarmonyOS marks draw 13x16 and the Windows mark 13x13. The same shape is masked behind the device card's 2:1 artwork, so both carriers change together.
It is now drawn as the machine instead: three rack units on the family's own 24-unit grid, each unit's status light punched out as negative space, in the same solid ink and the same view box as the Windows mark.
Fixes # (none - no issue filed)
Type and Areas
Type: Fix / UI/UX
Areas: web UI (shared device system marks, device card artwork)
Motivation / Impact
Measured at the sizes the product actually uses (a 16px slot in the desktop list, trigger and account device card; 20px and 22px in mobile web):
Every mark in the table renders at one width, so the box the server mark was given (91.4844 x 112.3082) normalised its width while leaving its landscape ink only 10px tall. The mark was also a stroked chassis: at 16px the unit dividers and status lights each landed on about half a pixel.
What changes:
src/shared/device-system/deviceSystemMarks.tsdraws the server as three rounded units (24 wide, 6 tall, 3 apart, radius 1.5) with a 1.5-radius light punched out at x=18.6 in each, in the Windows mark's box. The file's header records what the mark is, that it is this product's own drawing, and why it is deliberately not the artwork's outline rack.assets/server.svgmasks the same shape on the same grid, with the ink centred in its box, andNavPanel.scsssizes the 2:1 artwork slot30% / 24:29.4629instead of38.11849% / 91.484375:70.7421875. A portrait stack takes less width and more height than the landscape laptop silhouettes beside it, at the same weight.The status light is kept on purpose: three plain bars read as a generic list or layers icon at 13px, and the light is what makes the drawing a machine. It carries no live state.
The mark table's other entries,
deviceSystemKeyFromOs, and the artwork-to-mark map are untouched. No persisted shape, command, wire contract or CSS token changes.Verification
web UI:
pnpm run check:web- exit 0 (Appearance contract, theme color and theme visual governance, type-check)pnpm --dir src/web-ui run test:run src/app/components/NavPanel- 32 files, 186 tests passpnpm --dir src/web-ui run test:run src/app/components/RemoteConnectDialog- 17 files, 153 tests passpnpm --dir src/web-ui run test:run src/infrastructure/design-system/IconUsageIntegration.test.tsx src/app/startup/startupPreload.test.ts- 17 tests passpnpm --dir src/web-ui run icons:check- exit 0mobile web:
pnpm run type-check:mobile-web- exit 0pnpm run build:mobile-weband the built bundle was checked for the new path data and for absence of the old one - both as expectedpnpm --dir src/mobile-web run test:device-compatibility- 12 tests passrepository:
pnpm run check:repo-hygiene- exit 0node scripts/check-git-object-sizes.mjs --base upstream/main --head HEAD- exit 0Not verified: no real device, real Relay session or real browser pass was run for this change; it is a pure vector asset and geometry change, and the evidence above is the built bundle, the DOM tests and rendered comparisons at the product's own slot sizes.
Remote scenarios
Reviewer Notes
dwith opposite winding on the light circles, so the holes render under the default nonzero fill; renderers that ignore winding would paint three solid bars.0 -2.7315 24 29.4629, character for character the Windows mark's box, so the two marks take the same room and the same optical correction (0, measured: the stack is symmetric about its box centre).THIRD_PARTY_NOTICES.md.assets/server.svgand the two numbers inNavPanel.scssneed to change; the row mark does not depend on them..openbitfun/tmp/server-mark-before-after.pngin the author's workspace and can be dragged into this PR.Checklist