Skip to content

feat(details): add immersive detail screen - #1345

Open
oskarkasprzyk wants to merge 1 commit into
Moonfin-Client:mainfrom
oskarkasprzyk:feat/immersive-detail-screen
Open

feat(details): add immersive detail screen#1345
oskarkasprzyk wants to merge 1 commit into
Moonfin-Client:mainfrom
oskarkasprzyk:feat/immersive-detail-screen

Conversation

@oskarkasprzyk

Copy link
Copy Markdown
Contributor

Pull Request

Summary

Adds a new Immersive detail screen style alongside the existing Classic and Modern layouts.

The new layout provides a more cinematic, full-screen presentation with vertically integrated sections instead of a tab-based structure, while keeping the existing detail screen functionality and adapting the experience across TV and mobile layouts.

Open to feedback on layout details and polish.

Related Issues

None.

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • UI/UX update
  • Documentation update
  • Build/CI change
  • Other (describe):

Changes Made

  • Added a new Immersive option to the detail screen style settings.
  • Added dedicated Immersive layouts for movies, series, episodes, people, and collections, including episodes, discovery, cast/crew, extras, details, chapters, and collection content where applicable.
  • Added responsive portrait/mobile layouts and TV-focused navigation, focus handling, and dynamic backdrop behavior.
  • Added shared Immersive media card components and widget tests for the new detail screen behavior.
  • Kept Classic and Modern detail screen styles available and unchanged in behavior.

Platform

  • Android
  • iOS
  • tvOS
  • Web
  • macOS
  • Windows
  • Linux
  • All / Shared code

Testing

  • Tested on emulator / simulator
  • Tested on physical device
  • Manual testing completed
  • Not tested (explain why):

Test Steps

  1. Select Immersive under the detail screen style setting.
  2. Open different item types such as a movie, series, episode, person, and collection.
  3. Navigate through the available sections and verify focus/navigation, playback actions, backdrop updates, and responsive behavior.
  4. Verify the layout on both TV/landscape and mobile/portrait sizes.

Screenshots

TV

tv-movie
Movie
tv-series
Series
tv-discovery
Discovery
tv-episodes
Episodes
tv-crew-details
Details / People
tv-person
Person

Mobile

mobile-movie
Movie
mobile-series
Series
mobile-person
Person
mobile-discovery
Discovery

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced

@github-actions

Copy link
Copy Markdown

✅ Build Successful

All platform builds passed. You can download the test artifacts below.

Platform Status Artifact
Android ✅ Passed Moonfin_Android_v* + Moonfin_AndroidTV_v*
iOS ✅ Passed Moonfin_iOS_v*_unsigned.ipa
macOS ✅ Passed Moonfin_macOS_v*.dmg
Windows x64 ✅ Passed Moonfin_Windows_v*.exe
Windows ARM64 ✅ Passed Moonfin_WindowsARM64_v*.exe
Linux x64 ✅ Passed Moonfin_Linux_v* (deb/rpm/AppImage/snap/flatpak/tar.gz)
Linux ARM64 ✅ Passed Moonfin_LinuxARM64_v* (deb/rpm/AppImage/snap/flatpak/tar.gz)
Property Value
Commit 83546ea
Workflow run Build #1211

@RadicalMuffinMan

Copy link
Copy Markdown
Contributor

I wouldn't call the details screen name "Immersive" per se, it looks nice but more of a mix of modern design and rows from classic

@oskarkasprzyk

Copy link
Copy Markdown
Contributor Author

I’m not really set on the name, so I’m open to changing it if there’s a better fit

@mattsigal

Copy link
Copy Markdown
Collaborator

Appreciate the work you've put in here but I'm not really seeing a striking difference between this and Modern, beyond the genres appearing above the name (which I hope is capped in some way, because sometimes people's metadata will have tons) and removing tabs?

To that end, I'm almost wondering if it wouldn't be more straightforward to add a conditional toggle to Modern to show/hide tabs, instead of implementing this as a full-blown option. Especially when we consider having to port it to Smart-TV and Roku, and having to keep it in mind when any changes to any of the impacted pages are made in the future, it might be less hassle? When @RadicalMuffinMan implemented Modern, it felt like a breath of fresh air/overhaul, whereas this feels more like Modern-lite to me but maybe I'm missing something from just looking at the screenshots and not testing it live.

@oskarkasprzyk

Copy link
Copy Markdown
Contributor Author

I can see the similarity to Modern, but the flow is quite different. Everything is on one continuous screen, the backdrop follows focus, and episodes can be played directly from the series screen. I do think the idea of making tabs optional in Modern makes sense too, though

@jmawet

jmawet commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

what about "nouveau"? gives vibes between modern and classic, since it's the design of modern with the layout of classic (sorta) and some new extras on top?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants