12.4.1 • Public • Published


Vibrant, minimal, and sprinkled with tons of animations
CSS theme for Jellyfin

npm (tag) jsDelivr hits (npm) GitHub
GitHub Repo stars

ℹ️ Usage

  • To use the JellySkin theme copy the line below into "Dashboard -> General -> Custom CSS" and click save, it will apply immediately server-wide to all users on top of any theme they may be using. To remove the theme, clear the "Custom CSS" field and then click save. NOTE: Theme may not work when using Nginx Reverse Proxy. Scroll down below to learn how to fix this.

    @import url("");
  • To enable Logos add this to custom css:

    @import url("");
  • You can also use Jellyfin-Skin-Manager-Plugin :

    Note : Jellyfin Skin Manager has not been updated for some time and doesn't have the latest JellySkin css available.

🧩 Addons

  • Improve Performance

  • Remove BackdropFilter

    This remove the frosted glass like effect from every place.
    @import url("");
  • Remove scroll fade

    This remove the faded scroll view
    @import url("");
  • Compact Poster

    Want to use compact posters instead of normal cards, add this to your custom css:

    @import url("");


    Warning : Compact posters might not look as expected for some screen sizes

  • Horizontal My Media

    Brings back the horizontal section for My Media

    @import url("");
  • Using/Changing default gradient accent

    If you want want to change the default jellyfin gradient accent to some other preset gradient use:

    Note : Remember to put gradient css files below the main.css file import. Also this won't affect the login mesh background's colors.

    • Mauve

      @import url("");


    • NightSky

      @import url("");


    • Sea

      @import url("");


    • Custom

      If you need to add your own gradient use:

      :root {
        --accent1-light: YOUR ACCENT COLOR 1(LIGHTER SHADE);
        --accent1-dark: YOUR ACCENT COLOR 1(DARKER SHADE);
        --accent1-light-opacity1: YOUR ACCENT COLOR 1(WITH OPACITY 0.4);
        --accent2-light: YOUR ACCENT COLOR 2(LIGHTER SHADE);
        --accent2-dark: YOUR ACCENT COLOR 2(DARKER SHADE);

💻 Screenshots

  • Login Page


  • Home Screen

    Home Screen

  • Library View


  • Title Screen


  • Episode View


  • Settings


  • Dashboard


  • Dialog


❓ Common Problem Fixes

  • Unable to see blured background in Firefox

    Deaktiviert From version 70: this feature is behind the layout.css.backdrop-filter.enabled preference (needs to be set to true) and the gfx.webrender.all preference (needs to be set to true). To change preferences in Firefox, visit about:config

  • Logos are not visible even with logo.css

    • Get Fanart Plugin, Dashboard -> Plugin -> Catalog
    • Enable Fanart as a metadata provider for your libraries in the library settings, Dashboard -> Library -> Click on 3 dots on your Library -> Manage Library -> Scroll to find Metadata provider and enable Fanart in all of them.
    • Rescan your drive and also enable Replace Metadata and scan
  • Background not visible

    • Go to Settings -> Display -> and enable Backdrops option
  • Fix for Nginx Reverse Proxy

    When using the Nginx Reverse proxy config from the Jellyfin docs the theme will probably not work by default. (If you are using the subpath config, you can ignore all this.)

    This config includes an CSP (Content Security Policy) with headers that don't allow for loading in external content that are not defined there.

    In the nginx config you should add the URLs of all the CSS files you've imported through the "Custom CSS" box. this:

    add_header Content-Security-Policy "default-src https: data: blob:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'";

    becomes (with only adding the default style):

    add_header Content-Security-Policy "default-src https: data: blob:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'";

    If you don't do this the theme will simply not load (reverts back to default theme) and the browser console will spit out an error. Even if you paste in all the CSS, the font will still not load since it is loaded from a disallowed external source.

  • How to report a Bug or request a Feature?

  • How to contribute

    • Fork this repository.
    • Add your patch/feature
    • Create a pull request and thats it



Package Sidebar


npm i jellyskin

Weekly Downloads






Unpacked Size

98.5 kB

Total Files


Last publish


  • prayag17