Spotlight shell font makes bread app text hard to read #60

Closed
opened 2026-10-01 15:52:41 +08:00 by Breadway · 3 comments
Owner

Bug

Selecting the Spotlight shell theme makes application text very narrow and small. The attached user screenshots show this in breadhelp's timezone setup screen and breadclip's history popup. Labels, list entries, buttons, and search text become hard to read.

How found

User report on 2026-10-01 while Spotlight was selected, with screenshots of breadhelp's "Timezone" step and breadclip's clipboard popup. The screenshots show the same condensed typography across two separate apps.

Code inspection confirms the path: bread-theme/assets/shell/spotlight/theme.toml sets font_family = "Big Shoulders Display" and font_size_base = 13. bread-theme/src/lib.rs builds Typography::active() from those shell tokens, and stylesheet() emits a universal * { font-family: ...; font-size: ...; font-weight: ...; } rule. Apps load that shared stylesheet through bread_theme::gtk::apply_shared(). The current docs in lib.rs explicitly say these shell tokens re-font every bread GUI, so this appears to be a scope/design bug rather than an app-specific CSS mistake.

Confidence

High that this is a real user-facing bug: the user supplied screenshots from two apps and the shared CSS path explains the visible result. The exact installed package versions were not checked.

Expected

Changing the shell theme may change shell surfaces such as breadbar, but ordinary app UI text should keep a readable application font and type scale. In particular, Spotlight's condensed display face should not replace body and control text in breadhelp or breadclip.

Actual impact

The Spotlight display font and 13px base size propagate to app labels, controls, and lists. This makes setup and clipboard history difficult to read and affects any bread GUI that loads the shared stylesheet.

Suggested fix and verification

Separate shell display typography from shared application typography. Scope Spotlight's Big Shoulders Display face to its intended shell display elements, and keep app body/control text on a readable UI font with a stable size. Check at least breadhelp and breadclip after switching between Spotlight and another shell theme, including hot reload, and confirm shell display elements still use Spotlight's intended face.

Screenshots

## Bug Selecting the Spotlight shell theme makes application text very narrow and small. The attached user screenshots show this in breadhelp's timezone setup screen and breadclip's history popup. Labels, list entries, buttons, and search text become hard to read. ## How found User report on 2026-10-01 while Spotlight was selected, with screenshots of breadhelp's "Timezone" step and breadclip's clipboard popup. The screenshots show the same condensed typography across two separate apps. Code inspection confirms the path: `bread-theme/assets/shell/spotlight/theme.toml` sets `font_family = "Big Shoulders Display"` and `font_size_base = 13`. `bread-theme/src/lib.rs` builds `Typography::active()` from those shell tokens, and `stylesheet()` emits a universal `* { font-family: ...; font-size: ...; font-weight: ...; }` rule. Apps load that shared stylesheet through `bread_theme::gtk::apply_shared()`. The current docs in `lib.rs` explicitly say these shell tokens re-font every bread GUI, so this appears to be a scope/design bug rather than an app-specific CSS mistake. ## Confidence High that this is a real user-facing bug: the user supplied screenshots from two apps and the shared CSS path explains the visible result. The exact installed package versions were not checked. ## Expected Changing the shell theme may change shell surfaces such as breadbar, but ordinary app UI text should keep a readable application font and type scale. In particular, Spotlight's condensed display face should not replace body and control text in breadhelp or breadclip. ## Actual impact The Spotlight display font and 13px base size propagate to app labels, controls, and lists. This makes setup and clipboard history difficult to read and affects any bread GUI that loads the shared stylesheet. ## Suggested fix and verification Separate shell display typography from shared application typography. Scope Spotlight's Big Shoulders Display face to its intended shell display elements, and keep app body/control text on a readable UI font with a stable size. Check at least breadhelp and breadclip after switching between Spotlight and another shell theme, including hot reload, and confirm shell display elements still use Spotlight's intended face. ## Screenshots - [breadhelp timezone setup](https://git.breadway.dev/attachments/bc459c31-a0f5-49c6-a3a8-fe83ca863d7a) - [breadclip history popup](https://git.breadway.dev/attachments/351629eb-d886-4f3d-81e1-e19a70fbceb3)
Author
Owner

Implemented in PR #62. Shared app body and control text now uses stable Varela Round 14px typography; shell theme fonts remain in shell CSS. Local bread-theme tests and Clippy checks pass. Full workspace test CI is pending; local Bakery loopback tests were blocked by sandbox policy.

Implemented in PR https://git.breadway.dev/Breadway/bread-ecosystem/pulls/62. Shared app body and control text now uses stable Varela Round 14px typography; shell theme fonts remain in shell CSS. Local bread-theme tests and Clippy checks pass. Full workspace test CI is pending; local Bakery loopback tests were blocked by sandbox policy.
Author
Owner

Verification update: all repository-wide test configurations now pass locally: cargo test --workspace --locked, the same command with --features gtk, and with --features extract. Workspace Clippy passed for default, gtk, and extract. The first unprivileged test attempt was blocked by sandbox loopback restrictions; rerunning in the isolated worktree with permission for the tests' local listeners passed.

Verification update: all repository-wide test configurations now pass locally: `cargo test --workspace --locked`, the same command with `--features gtk`, and with `--features extract`. Workspace Clippy passed for default, gtk, and extract. The first unprivileged test attempt was blocked by sandbox loopback restrictions; rerunning in the isolated worktree with permission for the tests' local listeners passed.
Author
Owner

PR #62 has passed local checks across default, gtk, and extract configurations. Forgejo CI was queued at last check. Moving the PR card to REVIEW to match the implemented issue; if CI fails, return it to TODO with the failure recorded.

PR #62 has passed local checks across default, gtk, and extract configurations. Forgejo CI was queued at last check. Moving the PR card to REVIEW to match the implemented issue; if CI fails, return it to TODO with the failure recorded.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/bread-ecosystem#60
No description provided.