Repository navigation
Themes: Steam Deck themes look like their store screenshots; Shelf library layout - #2413
Conversation
… themes Fonts shipped as .woff are converted to a plain font file when a theme is resolved. The theme model gains separate top bar and footer styles, heading and subtitle colours, switch, slider and button styles, a focus style, a menu style and layered (linear and radial) fills, and the translator fills them from the theme CSS.
… https Top bar, footer, switches, sliders, buttons, focus, menus, dialogs and side panels draw the theme's own style when one is set and the original code otherwise. The built-in Custom theme can set every theme value, grouped in sections, with a font picker. Fonts a theme names by https url are downloaded once at install. At app start the theme folder is only loaded when a theme is enabled.
|
Caution Review failedThe pull request is closed.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
…all only The translated result of the enabled themes is saved and read back at app start, so no theme CSS is read or translated then. Disabled themes are translated only for the theme manager. The class-name table is fetched when an installed or updated theme uses names the saved table does not know; the daily refresh is removed. Idle sound threads are stopped.
…ng gradients, wider UI coverage WOFF2 theme fonts are decoded (adds the org.brotli decoder). Themes can set text scale, weights, letter spacing and uppercase labels, the strength of the home hero artwork, and sliding gradient fills. Pop-up dialogs, outlined buttons, sliders, progress tracks and rows that draw their own focus take the theme's style.
…nd themed bars Text on a theme fill keeps the theme's color when it reads on the fill and falls back to another theme color, then black or white. Off switches keep a minimum contrast with their row, destructive buttons stay red, focused rows in the system menu span the row. Themed top bars and footers blur what is behind them when the theme asks for it (adds the Haze library). Sliding gradients are drawn on switches, sliders, progress bars, panels and focus underlines. A font download no longer changes the theme while a game runs.
… frame, hero art shows at start The sliding fill is drawn at its stretched size so it pans, and its frame loop starts when animations are enabled. The theme font is loaded before the saved theme is published. With a themed hero, the carousel backdrop follows the centered item once the list has loaded.
A fourth library layout: the focused game's artwork above, its title and playtime at the left, and a flat row of covers along the bottom with a wide first tile. It shares the carousel's pane. Themes that restyle the Steam home shelf select it.
While a Steam Deck theme is on and no theme picks a layout, the library uses the Shelf layout. A layout the user picks while themed is kept separately and does not replace the layout they use without a theme.
The Shelf layout uses the recently played sort unless a sort is picked while it is shown; that pick is kept for Shelf only. The wide tile is the first library game, not a recommendation placed ahead of it.
…op bar without a color stays clear
…nts; Themes moves to the side menu The translator reads the selected tab's fill and text, picks the upright regular face of a font family, reads the settings page background, and flattens a translucent accent over its base color. The theme manager opens from a Themes item in the side menu and leaves Settings.
…d title color, skewed covers
… is in place from the first list Sign-in completion updates the Home screen in place instead of navigating to a new one, so the library keeps its list, scroll and focus. The first list is published once every local source has been read. The last recommendation is kept across starts and replaced in place.
|
This PR has 11,137 reviewable changed lines after ignored/generated files are excluded, above this repository's 5,000-changed-line automatic review limit. The raw diff is 19,284 lines before ignored/generated files are excluded. Most of the diff comes from:
Comment |
Description
Steam Deck (CSS Loader) themes did not look like their store screenshots in the app: a theme was reduced to a few app-wide values, theme fonts did not load, and the library did not resemble the Steam home the themes are drawn on. This PR closes most of that gap. Each theme was compared with its store screenshot on an AYN Odin 3.
Themes
.woffand.woff2theme fonts are converted to plain font files (adds theorg.brotli:decdecoder). Fonts a theme names byhttpsurl are downloaded once when the theme is installed or switched on,httpsonly and size-limited, never at app start. The upright regular face of a family is preferred.Library
Cost without a theme
gradle.propertiesgives the Kotlin compiler 4g: the app module needs about 2.5g of live heap to compile.Known limits
Recording
Not attached yet.
Type of Change
Checklist
#code-changes, I have discussed this change there and it has been green-lighted. If I do not have access, I have still provided clear context in this PR. If I skip both, I accept that this change may face delays in review, may not be reviewed at all, or may be closed.CONTRIBUTING.md.