Added
- Compatibility tier badge on shelf cards (Steam Deck Verified / Playable) with themed colors
- CSS Loader / DeckThemes compatibility: shelf cards now receive native Steam card classes (
WYgDg9NyCcMIVuMyZ_NBC, art, img classes) injected at runtime so much theme CSS rules apply to shelf cards the same way they apply to native Recent Games cards in most of cases - Native focus animation colors:
--custom-sp-color-borderand its grow/fade variants set as:rootfallbacks so active themes cascade their accent color to the shelf focus ring without override conflicts - Runtime detection of native card art classes (
nativeCardArt,nativeCardArtOuter,nativeCardArtPortrait,nativeCardImg,nativeCardImgFade) injected into shelf card DOM elements
Changed
- Heading color detection (
--ds-native-heading-color) now applies a saturation check: white/gray vanilla headings are skipped so the CSS fallback (green play icon, inherit for text) is used when no theme is active --ds-native-heading-coloris cleared and re-detected on everyensureStyles()call so theme changes take effect live without requiring a Steam reload- Focus suppression rules scoped to
#deck-shelves-home-rootwith ID-prefix specificity to prevent Steam/Decky default focus visuals from overriding the themed focus ring - Ancestor elements (row scroll, shelf root) suppress their own focus visuals so only the card-level ring is visible
Fixed
- Install detection no longer infers installed from
display_status > 0alone; only explicitinstalled: trueinper_client_datamarks a game as installed — fixing false positives where games available on remote clients (ds=9) were shown with the play icon - Non-Steam shortcuts default to
installed: falsewhen no install evidence is present, rather thantrue enrichAppStateFlagssecondary check no longer skips Steam games — all items without confirmedinstalled: falseare re-verified viaGetAppOverviewByAppID--custom-sp-color-bordercascade: variables are now set on:rootas plain fallbacks instead of via a--ds-focus-colorindirection that could not resolve body-level theme values, so theme accent colors correctly reach the focus animation keyframes- Play icon color no longer persists as gray after a theme is removed (stale
--ds-native-heading-coloris now always cleared before re-detection) - Status text no longer inherits the wrong accent color in Outrun and similar themes (removed explicit
colorfrom.ds-card-status, allowing correct cascade from native card)