Skip to content

feat(library): redesign library with Heroic Theme and Outfit font#5489

Draft
biliesilva wants to merge 20 commits intomainfrom
ui/library-page-redesign
Draft

feat(library): redesign library with Heroic Theme and Outfit font#5489
biliesilva wants to merge 20 commits intomainfrom
ui/library-page-redesign

Conversation

@biliesilva
Copy link
Copy Markdown
Contributor

@biliesilva biliesilva commented Apr 17, 2026

Summary

First pass of the Library page redesign, based on the Heroic redesign direction.

  • New Heroic Theme (dark minimal, cyan accent #22d3ee) added to themes.scss and registered in the theme picker.
  • Outfit replaces Rubik + Cabin as the single app font.
  • Library components restyled across all themes — the restyle applies regardless of which theme is active.
  • Outlined icon system: added lucide-react and migrated Library, Sidebar, Header, SearchBar, ActionIcons, filter dropdowns, AddGameButton, and QuitButton to Lucide outlined icons. MUI usages in Library scope were swapped to *Outlined variants.
  • Sidebar: narrower default width (350 → 240), section labels (LIBRARY / ACCOUNT / COMMUNITY), modern rounded active pill items, larger text + icons.
  • Header: Categories + Filters now render as pill-shaped dropdown buttons.
  • SearchBar: pill shape with / keyboard shortcut.
  • GameCard: 12px radius, layered shadow, animated title reveal, store badge moved to top-left, floating circular action buttons on hover.
  • Grid: min card width 168 → 220px for a more standard card size.
  • Typography: base Library/Sidebar text bumped (sm → md), icons 18 → 20-22px.
  • Heroic Theme text: lightened --text-secondary and --navbar-inactive for better contrast.

Deferred / not done

  • FA structural icons remaining in a few places (Winetricks, Install modal, Category manager, Header icons) — can migrate in follow-up PRs.
  • New components from the design (FeaturedBanner, RowScroller for "Continue playing" / "Recently added", StoreBadge component, CoverSizeToggle, redesigned ContextMenu, filter popover card style) — not added. Per direction, new components should only be added where matching product logic already exists.

Test plan

  • Launch app with existing theme (Midnight Mirage) → Library visuals updated (cards, spacing, icons), no layout breakage
  • Switch to new "Heroic Theme" in Settings → theme applies (dark bg, cyan accent) across all screens
  • Switch to Nord Light → GameCard status/store badges remain readable
  • Verify Outfit is the active font
  • Right-click a game card → context menu renders with outlined icons
  • Hover a card → title overlay animates smoothly, circular action reveals
  • Press / anywhere → search focuses; Esc to blur
  • pnpm codecheck passes

Adds the first pass of the library UI redesign:

- New "Heroic Theme" (dark minimal, cyan accent) in themes.scss and
  registered in the theme selector.
- Replace Rubik + Cabin with Outfit as the single app font family
  (default for both --primary-font-family and --secondary-font-family).
- Swap MUI filled icons to Outlined variants in GameCard, SideloadDialog,
  and Library root (ArrowDropUp). FA structural icons in ActionIcons
  unchanged — the free pack does not ship regular variants for them.
- Restyle GameCard: softer 12px radius, refined hover (translateY +
  layered shadow), pill-shaped store badge and status chip with blur
  overlay, smoother title reveal with gradient.
- Tighten library grid spacing and pill the "number of games" badge.
- Add --card-overlay-bg variable and a nord-light override so badges
  remain legible on light themes.
@biliesilva biliesilva self-assigned this Apr 17, 2026
@biliesilva biliesilva added the pr:wip WIP, don't merge. label Apr 17, 2026
@biliesilva biliesilva marked this pull request as draft April 17, 2026 23:01
- Restyle SearchBar: pill shape, subtle border, hover/focus states with accent ring
- Styled autocomplete dropdown (rounded, shadowed, hover highlight)
- Add "/" keyboard shortcut to focus search globally (Esc to blur)
- Kbd hint rendered inside the input when empty, hidden while focused
…over

- Add lucide-react as the primary outlined icon library
- Swap Library + Sidebar + filter buttons to Lucide icons
- Restyle CategoryFilter + LibraryFilters as pill-shaped dropdown buttons
  (Dropdown gains a .pill button variant)
- Restyle Sidebar: narrower default width (350 -> 240), section labels
  (LIBRARY / ACCOUNT / COMMUNITY), modern rounded active pill items,
  section grouping reflects design
- Reorganize SidebarItem: accepts ReactNode icon (was FA-only)
- Refined AlphabetFilter spacing/typography
- AddGameButton: ghost pill with + icon
- GameCard: floating circular action on hover, store badge moved to
  top-left (clearer corner hierarchy), status chip offset to the right
- Grid min column width 168 -> 220px for a more standard card size
- Sidebar items: font-size --text-sm -> --text-md, icon 18 -> 22px,
  padding bumped to 10px vertical
- ActionIcons icon 18 -> 20px
- Dropdown pill buttons (Filters, Categories): font --text-sm -> --text-md,
  padding 10x16, inline icons 16 -> 18px
- SearchBar: input font --text-sm -> --text-md, search icon 18 -> 20px,
  padding 6x12 -> 8x14
- AddGameButton: font --text-sm -> --text-md, Plus icon 14 -> 16
- LibraryHeader count pill: --text-sm -> --text-md with more padding
- GameCard title: --text-md -> --text-lg, wider horizontal padding
- AlphabetFilter: 12 -> 13px, text-tertiary -> text-secondary, wider hits
- Heroic Theme: lighten secondary/tertiary text and navbar-inactive
  (#a6b1c5 -> #c4cedd, #6e7a90 -> #8f99ad / #b4beca for sidebar)
@biliesilva biliesilva force-pushed the ui/library-page-redesign branch from 06e3083 to 154ee2a Compare April 17, 2026 23:32
- Wordmark: "Heroic" (title) + "Launcher" (uppercase tag) beside the
  shield icon; collapses to icon-only when the sidebar is narrow.
- Active item: accent-colored text with a subtle tinted background +
  inset ring (replaces the darker-only active bg), matching the design.
- Downloads item: shows a count badge on the right when there are
  active or queued installs in libraryStatus (reuses existing state).
- SidebarItem extended with an optional badge prop (ReactNode).

All existing sidebar items (Patreon, Ko-fi, Quit, etc.) preserved.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:wip WIP, don't merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant