Skip to content
60plus edited this page Jul 7, 2026 · 9 revisions

Themes

GamesDownloader ships with a rich appearance system that lets every user restyle the whole interface for themselves. You choose a layout mode, a colour skin, and a set of display and card effects, and the interface repaints live. On top of the two built-in layouts, theme plugins can deliver complete custom Vue layouts installed straight from the Plugin Store.

Everything on this page lives under Settings → Appearance (plus a compact quick-panel at the bottom of the sidebar). Preferences are per-user, so each account keeps its own look.

Contents

Layout modes: Modern and Classic

Modern Classic
Modern Classic

Two layouts are built in. Pick one from the Layout cards at the top of Settings → Appearance (each card shows a live mini-preview).

  • Modern - a cover grid with 3D card effects, a list view with animated hero backgrounds, and an alphabet sidebar for fast jumping. This is the default (gameyfin) layout and lands on the home page (/).
  • Classic - a game-detail layout built around a left sidebar. It presents all three libraries (GOG, Custom Games and ROM / Emulation), a platform switcher, and SteamGridDB icons in the sidebar. It lands on the library page (/library).
Capability Modern Classic
Cover grid with tilt / shine / glow +
List view with Ken Burns hero art +
Alphabet quick-jump sidebar +
Game-detail sidebar layout +
Sidebar platform switcher (GOG / Custom / ROM) +
SteamGridDB icons in the sidebar +
Optional hero background on the detail view + +

Colour skins, card effects and every display option hot-swap instantly with no page reload - the theme store writes data- attributes onto the page root and every element re-reads its colours live. Switching between the two layout modes themselves is different: because Modern and Classic are structurally distinct views, choosing the other one reloads into that layout's landing page. The same applies when you switch to (or away from) a plugin layout.

Colour skins

A skin changes the colour palette without touching the layout. There are 14 skins in total: 7 solid and 7 dual-gradient, and both built-in layouts offer all of them.

  • Solid (7): Purple (default), Blue, Teal, Pink, Green, Red, Orange.
  • Dual-gradient (7): two distinct hues blended for a vivid dual-tone accent (Neon Dusk, Synthwave, Sunset, Aurora, Vulcan, Midnight, Cosmic).

Every accent colour, glow, active state and toggle highlight in the UI adapts to the active skin, so the whole interface stays visually consistent. Switch skins from the Skin swatches in Settings → Appearance or from the sidebar quick-panel.

Glass UI and theme-aware accents

The interface uses a unified "glass" style throughout: panels use a backdrop blur, borders and fills are derived from the active skin with color-mix accents, and glows are tinted to match the current palette. Buttons, toggles and chips all follow the same glass pattern rather than solid colour blocks, so a skin change ripples across the entire UI at once.

Additional Display Options (in Settings → Appearance, and mirrored in the sidebar quick-panel) let you toggle:

  • Animations - global UI motion on or off.
  • Ambient - glowing ambient background orbs, with an Orb Motion sub-toggle and per-theme orb size / count / speed controls.
  • Grid - a subtle grid overlay pattern.

Card and cover effects

The Card Effects section controls how cover cards behave on hover in the Modern grid. Five independent toggles are available:

Effect What it does
3D Tilt Cards tilt in 3D towards the cursor
Specular Shine A moving highlight sweeps across the cover
Zoom The cover scales up on hover
Glow A theme-coloured glow appears behind the card
Lift shadow The card lifts with a drop shadow

A counter shows how many of the five are active, and a Reset card effects to defaults button restores them in one click.

Ambient background and hero artwork

GamesDownloader uses a game's hero artwork as an ambient backdrop. On the game detail page the hero image becomes a soft, blurred background behind the content, and in the Modern list view hero art animates behind the currently focused title.

The Game Page Settings section tunes this effect:

  • Hero Background (Classic layout) - toggle the blurred hero backdrop on or off.
  • Hero blur - adjustable blur strength from 0 to 40 px.
  • Hero animation - enable subtle motion on the backdrop, choosing a style of Ken Burns, Drift or Pulse, at Slow, Normal or Fast speed.
  • Hero to body fade - the fade height where the hero blends into the page body.

A separate Emulation Library section adds a Platform Photo Header toggle for the ROM / emulation views.

Per-library view mode and sort

Your chosen view mode and sort order are remembered per library. Set a library to grid or list, pick a sort, and GamesDownloader restores that choice the next time you open the same library, independently of your other libraries.

Where your appearance settings are saved

Appearance choices are stored in two places. They persist in the browser's localStorage for instant application on load, and while you are signed in they are also synced to your account through /api/users/me/preferences (debounced so slider drags do not hammer the backend). Because the settings live on your user record, your theme, skin, effects and toggles follow you when you sign in on another device or browser.

Theme plugins

Neon Horizon (plugin) Vapor (plugin)
Neon Horizon (plugin) Vapor (plugin)

Beyond the two built-in layouts, theme plugins can supply an entire custom Vue layout - their own navbar, home page, detail views and styling - not just a colour skin. The example themes NEON HORIZON (a Netflix-style layout with a hero banner, library tabs and particle effects) and Vapor (a Steam / Epic-style storefront layout) are full plugin themes.

How theme plugins work:

  • A theme plugin ships .vue single-file components. These are compiled by Vite on container startup; the compiled bundles are then loaded by the app from a plugin layout manifest (with cache-busting on each rebuild).
  • Once registered, a plugin theme appears as another card in the Layout picker alongside Modern and Classic, with its own preview.
  • Plugin code reaches the running app through the window.__GD__ bridge, which exposes the Vue runtime, the Pinia stores and the API so a custom layout can render real library data, react to theme changes, and drive navigation.

Because plugin .vue layouts are compiled at container startup, installing or updating a theme plugin needs a container restart before the new layout is available. The Plugin Store provides a restart button for exactly this.

For a full walkthrough of building a theme (the Theme object, registerTheme, custom layouts and the __GD__ API surface), see Plugin Development. Note that plugins run with real access to the app, so review Plugin Trust Model before installing third-party themes.

Installing themes from the Plugin Store

Browsing themes and plugins in the Plugin Store

Browsing themes and plugins in the Plugin Store

Theme plugins are installed like any other plugin, from Settings → Plugins:

  1. Open the Store tab to browse configured store sources. Each listing includes a screenshot gallery with a fullscreen lightbox.
  2. Click install. Dependencies are handled automatically, and updates are detected later with a changelog preview and version transition display.
  3. For a theme plugin, use the container restart button so its Vue layout compiles.
  4. Open Settings → Appearance and pick the new theme from the Layout cards.

You can also install a plugin directly by uploading its ZIP in Settings → Plugins. When updates are available, a badge appears on your avatar in the user menu.

The About dialog

An About entry is available from the user menu (click your avatar). It opens the About dialog with project and community information. Plugins can also open this dialog programmatically through the __GD__ UI bridge, which is how themes such as NEON HORIZON surface it from their own menus.

Next: Plugin Development - build your own theme; or Library to see the views these layouts render.

Clone this wiki locally