• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support Themes & Styles ♾️ Finity

     
    • 0 Vote(s) - 0 Average

    ♾️ Finity

    a sleek, modern, immersive Jellyfin theme
    prism2001
    Offline

    Junior Member

    Posts: 6
    Threads: 2
    Joined: 2023 Dec
    Reputation: 2
    #1
    2025-05-14, 10:06 AM (This post was last modified: Today, 06:44 AM by prism2001. Edited 2 times in total.)
    https://github.com/prism2001/finity

    10.11.x NOTES:
    the theme should be mostly functional on 10.11 now. there are some bugs and minor styling issues i need to work out soon, but it's more or less the same now and not completely broken.

    users of the complete theme WILL have to make a few minor changes though:
    1. in your Jellyfin webroot's index.html, in the line that imports the slideshowpure.js script, change async to defer
    2. move the list.txt file OUT of the avatars folder, and into the webroot itself.
    3. remove the Featured line from list.txt. all that should remain are the media IDs, there is no need for a label as the first line anymore.

    if there are any 10.10.x holdouts, there is a legacy-10.10 branch for you, which will be a permanently frozen, as-is version of the theme and its scripts before the 10.11 update. if you wish to use that version, make sure to update the imports in index.html as shown in the legacy-10.10 branch's README.


    original description:

    my friend and i have spent several weeks working on our own jellyfin theme, and i think it's finally at a point where it's ready to be tested by a wider group of people. please check the github repo for more info, such as theme installation, updates, etc. - additional setup is required for all the features of this theme

    there is still polishing to be done here and there, and some areas of the UI haven't been completely finalized yet, but most of the main styling is present. PRs are welcomed - whether it be to make things more efficient, performant, or to polish the overall theme. this is our first theme so things may not be perfect

    some important notes:
    - this theme is meant to be used in conjunction with Jellyfin's included "Dark" user theme (found in your user settings). using any other built-in Jellyfin theme is NOT supported at this time, and will almost certainly look terrible.
    - music libraries are not supported at this time, and at the moment I have no immediate plans to work on this. however, I will gladly look at any PRs for them.
    - make sure to enable blurred placeholders for images and disable backdrops in your user display settings. not doing so may cause several important aspects of the theme to not render correctly (such as the gradient mask for show backdrops)


    screenshots:

    home screen (featured content)
    [Image: home_featured.png?raw=true]

    home screen (media drawers)
    [Image: home_drawers.png?raw=true]

    show - season page
    [Image: show_season.png?raw=true]

    movie page
    [Image: movie.png?raw=true]

    minimal theme - home page
    [Image: minimal_home_drawers.png?raw=true]

    minimal theme installation:
    Code:
    @import url("https://cdn.jsdelivr.net/gh/prism2001/finity@main/minimal/finity-minimal.css");
    1
    1
    1
    1
    Rethgash
    Offline

    Junior Member

    Posts: 5
    Threads: 0
    Joined: 2025 May
    Reputation: 0
    Country:Brazil
    #2
    2025-05-15, 12:32 AM
    Beautiful theme.

    Just one change:

    - Add a scroll menu for Subtitles and Audio.

    Code:
    html {
      box-sizing: border-box;
      font-family: var(--font-family-base) !important;
      margin: 0;
      padding: 0;
      background-color: var(--theme-background-color);
      <div class="scroll-menu">
        <button class="scroll-menu-item">Option 1</button>
        <button class="scroll-menu-item">Option 2</button>
        <button class="scroll-menu-item">Option 3</button>
        <button class="scroll-menu-item">Option 4</button>
        <button class="scroll-menu-item">Option 5</button>
        <!-- Add more items as needed; scrolling will activate if content exceeds max-height -->
    </div>
    }


    Code:
    /* Center specific context menus (e.g., Cast, SyncPlay) and adjust their width */
    .dialogContainer .focuscontainer.dialog.actionsheet-not-fullscreen.actionSheet.opened.centeredDialog:not(:has(button[data-id="edit"], button[data-id="delete"], button[data-id="addtocollection"], button[data-id="refresh"], button[data-id="download"])),
    .dialogContainer .focuscontainer.dialog.actionsheet-not-fullscreen.actionSheet.opened.syncPlayGroupMenu {
        position: fixed !important;
        top: 77% !important;
        left: 85% !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;
        box-sizing: border-box;
        border-radius: var(--theme-roundness-large) !important;
        background-color: var(--header-bg) !important;

        height: auto;
        max-height: 40vh;
        overflow-y: auto;
        padding: 8px 0; /* Padding for menu items */

        /* --- Responsive Width --- */
        /* Default for larger screens (tablets and desktops) */
        width: clamp(340px, 30vw, 600px) !important;

        /* Custom scrollbar styling */
        scrollbar-width: thin; /* Firefox */
        scrollbar-color: var(--scrollbar-thumb, rgba(255, 255, 255, 0.5)) var(--scrollbar-track, transparent); /* Firefox */

        /* Webkit browsers (Chrome, Safari, Edge) */
        &::-webkit-scrollbar {
            width: 8px;
        }

        &::-webkit-scrollbar-track {
            background: var(--scrollbar-track, transparent);
        }

        &::-webkit-scrollbar-thumb {
            background: var(--scrollbar-thumb, rgba(255, 255, 255, 0.5));
            border-radius: 4px;
        }

        &::-webkit-scrollbar-thumb:hover {
            background: var(--scrollbar-thumb-hover, rgba(255, 255, 255, 0.7));
        }

        /* Scroll menu container */
        .scroll-menu {
            display: flex;
            flex-direction: column;
            width: 100%;
        }

        /* Scroll menu items */
        .scroll-menu-item {
            display: block;
            padding: 12px 16px;
            color: var(--text-color, #fff);
            text-decoration: none;
            background: none;
            border: none;
            width: 100%;
            text-align: left;
            cursor: pointer;
            transition: background-color 0.2s ease;
            font-size: 1rem;
        }

        .scroll-menu-item:hover {
            background-color: var(--hover-bg, rgba(255, 255, 255, 0.1));
        }

        /* Optional: Active/selected state */
        .scroll-menu-item.active {
            background-color: var(--active-bg, rgba(255, 255, 255, 0.2));
        }
    }

    /* Responsive adjustments for smaller screens */
    @media (max-width: 768px) {
        .dialogContainer .focuscontainer.dialog.actionsheet-not-fullscreen.actionSheet.opened.centeredDialog,
        .dialogContainer .focuscontainer.dialog.actionsheet-not-fullscreen.actionSheet.opened.syncPlayGroupMenu {
            width: clamp(280px, 80vw, 400px) !important;
            top: 50% !important;
            left: 50% !important;
        }

        .scroll-menu-item {
            padding: 10px 12px;
            font-size: 0.9rem;
        }
    }
    prism2001
    Offline

    Junior Member

    Posts: 6
    Threads: 2
    Joined: 2023 Dec
    Reputation: 2
    #3
    2025-05-15, 01:08 AM (This post was last modified: 2025-05-15, 01:11 AM by prism2001. Edited 1 time in total.)
    (2025-05-15, 12:32 AM)Rethgash Wrote: Beautiful theme.

    Just one change:

    - Add a scroll menu for Subtitles and Audio.

    i just checked and there's already scroll bars for subs and audio - both on the episode page, as well as the web player. unless this is for some different menu or browser? (i mainly test on FF, sometimes having a peek with Edge and the Jellyfin Media Player app)

    [Image: 9x9xk4.png]
    [Image: 68u432.png]

    also your changes seem to break the positioning of the context menus, instead of being centered they show up near the bottom right of the screen

    [Image: 13r9po.png]
    Rethgash
    Offline

    Junior Member

    Posts: 5
    Threads: 0
    Joined: 2025 May
    Reputation: 0
    Country:Brazil
    #4
    2025-05-15, 01:59 AM
    My bad, my file didn't have enough subtitles for me to see the scroll  Upside-down-face

    (This is personal one) 

    I don't like to see the name of the file (again) in "My Media"

    Code:
    /* Hide card library name*/
    @media all and (min-width: 50em) {
      #specialsCollapsible .emby-scroller,
      #musicVideosCollapsible.emby-scroller,
      #scenesCollapsible.emby-scroller {
        margin-right: 0;
      }
      #specialsCollapsible .emby-scrollbuttons,
      #musicVideosCollapsible .emby-scrollbuttons,
      #scenesCollapsible .emby-scrollbuttons {
        display: none;
      }
      #specialsCollapsible .itemsContainer,
      #musicVideosCollapsible .itemsContainer,
      #scenesCollapsible .itemsContainer {
        flex-wrap: wrap;
      }
      #specialsCollapsible .overflowBackdropCard,
      #musicVideosCollapsible .overflowBackdropCard,
      #scenesCollapsible .overflowBackdropCard {
        max-width: 13.4vw !important;
      }
      .verticalSection.section0 .textActionButton {
        display: none;
      }
    }

    .itemsContainer > .card > .cardBox:hover {
      transform: translateY(-5px);
    }

    [Image: PRQaYHr.png]

    -------------------------------------

    (Also personal)

    I like to see the metadata icons xD

    Code:
    /* Metadata Icons */
    a[href*="imdb.com"]::before,
    a[href*="trakt.tv"]::before,
    a[href*="themoviedb.org"]::before,
    a[href*="themoviedb.org/collection"]::before,
    a[href*="thetvdb.com/movies"]::before,
    a[href*="thetvdb.com/series"]::before,
    a[href*="thetvdb.com/tv"]::before,
    a[href*="thetvdb.com/?tab=series"]::before,
    a[href*="tvmaze.com"]::before,
    a[href*="anidb.net"]::before {
      content: "";
      display: inline-block;
      width: 36px;
      height: 18px;
      background-size: contain;
      background-repeat: no-repeat;
      background-position: center;
      vertical-align: middle;
      box-sizing: border-box;
    }
    a[href*="imdb.com"]::before {
      background-image: url(https://upload.wikimedia.org/wikipedia/commons/6/69/IMDB_Logo_2016.svg);
    }
    a[href*="trakt.tv"]::before {
      background-image: url(https://trakt.tv/assets/logos/logo.default.negative-7c28b25bb270dc291faa5d7794b9bfd6fcdf4698ee5e6504151167fbecd8a197.svg);
      transform: scale(1.2);
    }
    a[href*="themoviedb.org"]::before {
      background-image: url(https://www.themoviedb.org/assets/2/v4/logos/v2/blue_square_1-5bdc75aaebeb75dc7ae79426ddd9be3b2be1e342510f8202baf6bffa71d7f5c4.svg);
    }
    a[href*="themoviedb.org/collection"]::before {
      background-image: url(https://i.imgur.com/Vguav7a.png);
    }
    a[href*="thetvdb.com/movies"]::before,
    a[href*="thetvdb.com/series"]::before,
    a[href*="thetvdb.com/tv"]::before,
    a[href*="thetvdb.com/?tab=series"]::before {
      background-image: url(https://www.thetvdb.com/images/logo.svg);
    }
    a[href*="tvmaze.com"]::before {
      background-image: url(https://static.tvmaze.com/images/tvm-header-logo.png);
      transform: scale(1.2);
    }
    a[href*="anidb.net"]::before {
      background-image: url(https://i.imgur.com/7hpyHRn.png);
    }
    a[href*="imdb.com"],
    a[href*="trakt.tv"],
    a[href*="themoviedb.org"],
    a[href*="themoviedb.org/collection"],
    a[href*="thetvdb.com"],
    a[href*="tvmaze.com"],
    a[href*="anidb.net"] {
      font-size: 0;
      display: flex;
      align-items: center;
    }
    .itemExternalLinks.focuscontainer-x {
      display: flex;
      align-items: center;
      gap: 8px;
      color: #fff0 !important;
      margin: 1.5em 0 !important;
    }

    [Image: bn9QsDj.png]
    Rethgash
    Offline

    Junior Member

    Posts: 5
    Threads: 0
    Joined: 2025 May
    Reputation: 0
    Country:Brazil
    #5
    2025-10-23, 04:32 AM
    Just one question, are you going to update CSS to version 10.11.0?

    I really like your theme.
    prism2001
    Offline

    Junior Member

    Posts: 6
    Threads: 2
    Joined: 2023 Dec
    Reputation: 2
    #6
    2025-10-24, 05:55 PM
    (2025-10-23, 04:32 AM)Rethgash Wrote: Just one question, are you going to update CSS to version 10.11.0?

    I really like your theme.

    i don't have an active Jellyfin server at the moment, is it broken in 10.11?
    Rethgash
    Offline

    Junior Member

    Posts: 5
    Threads: 0
    Joined: 2025 May
    Reputation: 0
    Country:Brazil
    #7
    Yesterday, 06:07 AM
    (2025-10-24, 05:55 PM)prism2001 Wrote:
    (2025-10-23, 04:32 AM)Rethgash Wrote: Just one question, are you going to update CSS to version 10.11.0?

    I really like your theme.

    i don't have an active Jellyfin server at the moment, is it broken in 10.11?

    Some parts are broken  Weary-face
    prism2001
    Offline

    Junior Member

    Posts: 6
    Threads: 2
    Joined: 2023 Dec
    Reputation: 2
    #8
    Today, 06:38 AM
    the theme should be mostly functional now. there are some bugs and minor styling issues i need to work out soon but it's more or less the same now.

    users of the complete theme WILL have to make a few minor changes though:
    1. in your Jellyfin webroot's index.html, in the line that imports the slideshowpure.js script, change async to defer
    2. **move** the list.txt file OUT of the avatars folder, and into the webroot itself.
    3. remove the Featured line from list.txt. all that should remain are the media IDs, there is no need for a label as the first line anymore.

    let me know how it goes for you. if there are any 10.10.x holdouts, there is a legacy-10.10 branch for you, which will be a permanently frozen, as-is version of the script before the 10.11 update. if you wish to use that version, make sure to update the imports in index.html as shown in the legacy-10.10 branch's README.
    1
    1
    Rethgash
    Offline

    Junior Member

    Posts: 5
    Threads: 0
    Joined: 2025 May
    Reputation: 0
    Country:Brazil
    #9
    6 hours ago
    (Today, 06:38 AM)prism2001 Wrote: the theme should be mostly functional now. there are some bugs and minor styling issues i need to work out soon but it's more or less the same now.

    users of the complete theme WILL have to make a few minor changes though:
    1. in your Jellyfin webroot's index.html, in the line that imports the slideshowpure.js script, change async to defer
    2. **move** the list.txt file OUT of the avatars folder, and into the webroot itself.
    3. remove the Featured line from list.txt. all that should remain are the media IDs, there is no need for a label as the first line anymore.

    let me know how it goes for you. if there are any 10.10.x holdouts, there is a legacy-10.10 branch for you, which will be a permanently frozen, as-is version of the script before the 10.11 update. if you wish to use that version, make sure to update the imports in index.html as shown in the legacy-10.10 branch's README.

    Thank you S2
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode