feat(chrome): proportional type for prose, mono kept for every value - #444
Merged
Conversation
Every window and dock panel pins Geist Mono at its render root, so a Settings description, a dialog sentence or a toolbar caption reads in the same face as a price. Monospace prose is wider, harder to scan and looks unfinished next to the tables it explains. Apply one rule per element: a value the user compares across rows or reads as a figure (table cell, number, coin, core or strategy name, log line, axis label, timestamp, hotkey) stays mono; a label, sentence, heading or control caption takes the UI face. Settings, Login and the order-edit dialog flip their root and re-pin every value; Strategies, Analytics, the tuner and every table panel keep a mono root and flip prose per element. Every width that is measured for a flipped string is measured in the same face it renders in, through the new `ui_body_text_width` / `ui_caption_text_width` partners in design.rs. Window titles, dock tab labels, status-bar items, tooltips, dropdown triggers and group-box titles stay mono: MoonUI forces the face there and exposes no prop. A locale string that welds a label to a figure stays mono as a whole. No locale value changes. Claude-Session: https://claude.ai/code/session_01RaQ2tnAyr4pyiAiwGktPBv
The Sections list showed the Russian label with the schema title one hover away, the opposite of the field rows beside it, and a trader who knows a section by Moonbot's wording had to guess. The column also repeated the "select a strategy" sentence the parameters pane already shows, a duplicate an integration merge brought back. Rows now read the schema title first with the localized name as a muted caption under it, headings read "Main · Основные", and the measured column width follows the wider of the two lines. The empty column keeps only its heading. Claude-Session: https://claude.ai/code/session_01RaQ2tnAyr4pyiAiwGktPBv
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.
What & why
Every window pinned Geist Mono at its root, so a Settings description or a dialog sentence read in the same face as a price. One rule per element: a value the user compares or reads as a figure (table cell, number, coin/core/strategy name, log line, axis label, timestamp, hotkey) stays mono; a label, sentence, heading or control caption takes the UI face. Settings, Login and order-edit flip their root and re-pin values; Strategies, Analytics, the tuner and the table panels flip prose per element. Every measured width uses the face it renders in (
ui_body_text_width/ui_caption_text_width). Window titles, dock tabs, status bar, tooltips, dropdown triggers and group-box titles stay mono — MoonUI forces the face there.Rides along, since it needs the new
ui_font()helpers: the Strategies Sections column now leads each row with Moonbot's own title over the localized name (headings readMain · Основные), and the empty column no longer repeats the parameters pane's «select a strategy» sentence.How to verify
->mono, prose proportional.cargo test -p moon-ui-gpui --test theme_contract—fonts.rspins the data surfaces.https://claude.ai/code/session_01RaQ2tnAyr4yiwGktPBv