30 Commits
Author SHA1 Message Date
lscambo13 c8ef5af7de RELEASE: ElegantFin v26.06.06 2026-06-06 23:59:34 +05:30
lscambo13 61bf0407f1 Fix: Brought back small padding around cards on phones to account for multi-selection checkbox outline 2026-06-06 23:53:31 +05:30
lscambo13 a2a05e1ab6 Merge branch 'main' of https://github.com/lscambo13/ElegantFin 2026-06-06 23:39:55 +05:30
lscambo13 9c24801ff9 Docs: Update README for clarity and new customisation options 2026-06-06 23:32:19 +05:30
lscambo13 7f9aec6672 Docs: Add anime and sports cover properties to custom media covers add-on documentation 2026-06-06 22:56:59 +05:30
lscambo13 d337d1c7c0 Fix: Clear logos in the media-bar add-on were overlapping metadata at low resolutions 2026-06-06 21:36:20 +05:30
lscambo13 835d6a0fbd New: Updated Material Symbols to latest version 2026-06-05 22:58:57 +05:30
lscambo13 1fe0bfb13f Fix: Added left padding to disc headings in music lists 2026-06-05 22:57:44 +05:30
lscambo13 3b4f966833 Fix: Multi-selection checkboxes were not covering the cards fully because of minification
dev: updated calc() functions to prevent issues caused by minification
2026-06-05 22:56:27 +05:30
lscambo13 ba0aabd07b dev: use cssnano, postcss, postcss-cli and css-declaration-sorter packages for more control over minification
dev: exclude some files
dev: sort declarations alphabetically during minification
2026-06-05 22:37:30 +05:30
lscambo13 9972862b5e Fix: Added safe insets for #233 2026-06-05 22:27:59 +05:30
lscambo13 6ba7bf37dd dev: updated comments for clarity 2026-06-04 22:55:49 +05:30
lscambo13 b216efa4e4 Fix: Removed hardcoded padding value 2026-06-04 22:00:34 +05:30
lscambo13 5faa8f8d07 New: Disabled enlarged 'continue watching' cards by default; they can be enabled using --resumeCardScale 2026-06-04 21:07:25 +05:30
lscambo13 a6365ea3c7 dev: rearranged some code 2026-06-04 20:54:30 +05:30
lscambo13 115cb68b7a New: the three-dot menu button can now be toggled on or off 2026-06-04 20:50:35 +05:30
lscambo13 a20a4a18c7 Fix: Potential fix for #233 2026-06-04 20:48:47 +05:30
lscambo13 a2de79b1e3 Update tested version of Jellyfin Server to v10.11.10 2026-05-29 07:25:19 +05:30
lscambo13 8ff232ece0 Fix: Simplified the card hover overlay animation 2026-05-25 21:08:28 +05:30
lscambo13 45273ab2cd Fix: Added icon fallback to prevent the flash of invisible text 2026-05-25 21:06:43 +05:30
lscambo13 0f5925c429 New: Updated seek bar thumbs, and fixed their functionality on Firefox 2026-05-24 14:33:57 +05:30
lscambo13 47783d848d Fix: Exclude gap from vertical music lists 2026-05-24 14:26:47 +05:30
lscambo13 2e61005bde Fix: Exclude vertical lists from 4615ef4dcc 2026-05-23 21:25:47 +05:30
lscambo13 0863886a23 dev: updated formatting 2026-05-23 21:09:05 +05:30
lscambo13 d1c4cdf371 Fix: Some details tables were overflowing for some reason on phones 2026-05-23 21:05:41 +05:30
lscambo13 5a4ce02efc Fix: Restored the three-dot button permanently because newer Jellyfin versions disable the right-click context menu 2026-05-23 20:55:30 +05:30
lscambo13 42e962c6a3 Fix: Removed fixed font-size to prevent issues with indicator icons, and restored some compatibility properties 2026-05-23 20:51:56 +05:30
lscambo13andAhmed Hamdy d0da93dd8a New: Replaced music artist names with clear logos #273
- This can be configured using css variables
- Rearranged code for better manageability

Co-authored-by: Ahmed Hamdy <AhmedRadwan4@users.noreply.github.com>
2026-05-23 20:26:47 +05:30
lscambo13 a85a8127c4 Fix: Hover overlay gets stuck on latest Jellyfin versions; this workaround hides it 2026-05-23 20:10:34 +05:30
lscambo13 e6eeba4b54 Fix: Made the new minimal icons optional
This prevents breaking compatibility with some plugins
New: Updated to a newer version of Material Symbols
Fix: Added fallback to the stock icons for edge-cases
2026-05-23 20:05:47 +05:30
15 changed files with 6500 additions and 83 deletions

No files matched your search

+7
View File
@@ -1,2 +1,9 @@
/tmp.txt /tmp.txt
/commits.csv /commits.csv
/node_modules
/Theme/mod.css
/Theme/ElegantFin-theme-nightly-min.css
/Theme/assets/add-ons/custom-media-covers-nightly-min.css
/Theme/assets/add-ons/media-bar-plugin-support-nightly-min.css
/Theme/assets/add-ons/seamless-fork-compatibility-nightly.css
/Theme/assets/add-ons/seamless-fork-compatibility-nightly-min.css
+25 -6
View File
@@ -159,7 +159,7 @@ https://github.com/user-attachments/assets/bb7f3174-b703-4c98-a23c-e6bb4abba390
</details> </details>
<details> <details>
<summary><i>3. Enable extra overlay buttons on cards on desktop</i></summary> <summary><i>3. Enable or disable extra overlay buttons on cards on desktop</i></summary>
<img width="400" height="auto" alt="image" src="https://github.com/user-attachments/assets/cb8479c2-c577-4d54-a567-697f54291a3b" /> <img width="400" height="auto" alt="image" src="https://github.com/user-attachments/assets/cb8479c2-c577-4d54-a567-697f54291a3b" />
@@ -169,7 +169,8 @@ https://github.com/user-attachments/assets/bb7f3174-b703-4c98-a23c-e6bb4abba390
--extraCardButtonsVisibility: block; --extraCardButtonsVisibility: block;
} }
``` ```
- To hide them again, simply remove this code block or replace `block` with `none`. - To hide the three-dot button that shows up next to these buttons, also include `--menuButtonVisibility: none;` in `:root{}`
- To undo these changes, simply remove this code block or switch between `block` and `none`.
</details> </details>
<details> <details>
@@ -260,11 +261,28 @@ https://github.com/user-attachments/assets/b5868cd2-8df9-490d-a2b6-4386c6ddcd56
- You can also experiment and share your own take there if you wish. - You can also experiment and share your own take there if you wish.
</details> </details>
<details>
<summary><i>10. Increase the size of Continue Watching cards so that they stand out</i></summary>
<img width="640" height="auto" alt="image" src="https://github.com/user-attachments/assets/2222d5b1-00d8-4859-90fb-eeb14d488bbd" />
- You can adjust their scaling `--resumeCardScale`.
- Use any values over 1.0 to make them bigger.
```
:root{
--resumeCardScale: 1.25;
}
```
- To undo this change, simply remove this code block or set the value back to `1`.
</details>
<hr> <hr>
### 🆗 Tested on ### 🆗 Tested on
- Jellyfin Server v10.11.5 - Jellyfin Server v10.11.10
- Microsoft Edge (Chromium) - Microsoft Edge (Chromium)
- Jellyfin Android App v2.6.3 - Jellyfin Android App v2.6.3
@@ -273,12 +291,13 @@ https://github.com/user-attachments/assets/b5868cd2-8df9-490d-a2b6-4386c6ddcd56
### 🛠️ Troubleshooting ### 🛠️ Troubleshooting
<details> <details>
<summary>1️⃣ - <i>How do I check if I am using the latest version of ElegantFin?</i></summary> <summary>1️⃣ - <i>How do I check which version of ElegantFin I am using?</i></summary>
- Check the version number at the bottom in the Settings screen. - Check the version number at the bottom in the Settings screen.
- It should be something like `ElegantFin v25.XX.XX`. - It should be something like `ElegantFin v26.YY.ZZ`.
<img width="640" height="auto" alt="image" src="https://github.com/user-attachments/assets/c697f508-16db-4b1a-bfac-123decd943fa" />
<img width="380" height="300" alt="image" src="https://github.com/user-attachments/assets/aecca6f5-7bd3-4057-9131-aa60b3becbaf" />
</details> </details>
@@ -1,2 +1 @@
/* ElegantFin Theme v25.12.31 for Jellyfin by lscambo13 */ /*! ElegantFin Theme v26.06.06 for Jellyfin by lscambo13 */@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");:root{--activeColor:#775bf4;--activeColorAlpha:rgba(119,91,244,.9);--appBarHeight:5em;--artistClearLogoVisibility:block;--artistPageBackground:unset;--artistTitleVisibility:none;--backdropTrimFromTop:10%;--backgroundAlphaOverlay:linear-gradient(180deg,var(--darkerGradientPointAlpha) 80%,transparent);--backgroundGradient:linear-gradient(0deg,var(--darkerGradientPoint) 35%,var(--lighterGradientPoint));--blurDefault:blur(5px);--blurLarge:blur(10px);--blurLargest:blur(20px);--blurSmallest:blur(2px);--borderColor:#47505c;--borderWidth:0.06em;--borderWidthDouble:0.12em;--bottomOSDGradient:linear-gradient(0deg,rgba(0,0,0,.8),45%,transparent);--btnDeleteBorderColor:#d95454;--btnDeleteColor:#a91d1d;--btnMiniPlayBorderColor:#32a769;--btnMiniPlayColor:#299a5d;--btnSubmitBorderColor:#756fe2;--btnSubmitColor:#3d36b2;--cardBackgroundGradient:linear-gradient(0deg,var(--darkerGradientPoint),25%,var(--lighterGradientPoint));--cardFooterGradient:linear-gradient(0deg,rgba(0,0,0,.9),40%,transparent);--cardHoverEffect:"";--checkboxCheckedBgColor:#4f46e5;--clearLogoVisibility:block;--darkerBorderColor:#31373f;--darkerGradientPoint:#111827;--darkerGradientPointAlpha:rgba(17,24,39,.85);--defaultBorder:var(--borderWidth) solid var(--borderColor);--defaultLighterBorder:var(--borderWidth) solid var(--lighterBorderColor);--dimTextColor:#9ca3af;--drawerColor:rgba(30,40,54,.9);--elegantFinFooterText:"ElegantFin v26.06.06";--extraCardButtonsVisibility:none;--gradientPointAlpha:rgba(29,38,53,.3);--headerBackground:var(--headerColorGradient);--headerBlurLayerVisibility:"";--headerBlurMask:linear-gradient(180deg,#fff 50%,85%,transparent);--headerColor:rgba(30,40,54,.8);--headerColorGradient:linear-gradient(180deg,rgba(30,40,54,.95) 30%,55%,transparent 90%);--headerColorGradientAlt:linear-gradient(180deg,#1e2836,70%,transparent);--highlightOutlineColor:#2563eb;--hoverGradientH:linear-gradient(90deg,transparent,hsla(0,0%,100%,.35) 45%,hsla(0,0%,100%,.35) 55%,transparent);--hoverGradientV:linear-gradient(0deg,transparent,hsla(0,0%,100%,.35) 45%,hsla(0,0%,100%,.35) 55%,transparent);--iconPack:"Material Symbols Rounded";--itemBackdropMask:linear-gradient(180deg,rgba(0,0,0,.8),75%,transparent);--itemColumnGap:1em;--itemOriginalTitleVisibility:block;--itemTitleVisibility:none;--largeRadius:1em;--largerRadius:1.25em;--libraryLabelVisibility:none;--lighterBorderColor:hsla(0,0%,100%,.2);--lighterGradientPoint:#1d2635;--lighterGradientPointAlpha:rgba(29,38,53,.85);--loginPageBgUrl:url();--loginPageText:"Sign in to continue";--menuButtonVisibility:block;--minEpisodeCardWidth:26em;--miniOverlayButtonVisibility:block;--osdSeekBarBufferedColorAlpha:hsla(0,0%,50%,.5);--osdSeekBarPlayedColor:var(--textColor);--osdSeekBarThumbColor:#fff;--overlayPlayButtonPosition:2.8em;--resumeCardScale:1;--selectorBackgroundColor:#374151;--selectorBackgroundColorAlpha:rgba(55,65,81,.5);--shadow:0.1em 0.1em 0.15em rgba(0,0,0,.3);--sidePadding:3.3%;--smallerRadius:0.375em;--smallRadius:0.5em;--tableBodyColor:#1f2937;--textColor:#d1d5db;--topOSDGradient:linear-gradient(180deg,rgba(0,0,0,.8),45%,transparent);--uiAccentColor:#756fe2;color-scheme:dark}html{font-family:Inter,sans-serif;font-optical-sizing:auto;font-style:normal;font-weight:425;-webkit-tap-highlight-color:transparent!important}body{--clearLogoBottomSpace:11em;--primaryItemPageNegativeSpace:14vh;--secondaryItemPageNegativeSpace:60vh}select{text-overflow:ellipsis}.layout-desktop>body:has(>audio[src]){--primaryItemPageNegativeSpace:calc(14vh + 5em);--secondaryItemPageNegativeSpace:calc(60vh + 5em)}.layout-mobile{--blurLargest:blur(12px);--headerBlurMask:linear-gradient(180deg,#fff 60%,90%,transparent);--headerColorGradient:var(--headerColorGradientAlt);--itemColumnGap:0.5em}.layout-mobile>body{--secondaryItemPageNegativeSpace:45vh}@font-face{font-family:Material Symbols Rounded Minimal;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/l/font?kit=sykg-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjzarESMdAUY9qjb3u1M7e05tMSFFiwiIx7ihGnzWmz-lkbsBJUso54WUKiEWtV5-yu0mchXaMnO1vqpcxiqEd46a1XUtwWncyNNmxYr8hocRsPBG56BqeEkny0qMU_aSz_M2MYR8p9qc8uUfT0rnccAg__qWWJGuzJMRCBsajdQcef&skey=70ddea8fe54d532e&v=v346) format("woff2")}@font-face{font-family:Material Symbols Rounded;font-style:normal;font-weight:100 700;src:url(https://fonts.gstatic.com/s/materialsymbolsrounded/v346/sykg-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190Fjzag.woff2) format("woff2")}.material-icons{direction:ltr;display:inline-block;font-family:var(--iconPack),Material Icons!important;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-style:normal;font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 48;font-weight:400;letter-spacing:normal;line-height:1;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision;text-transform:none;vertical-aliLine truncated
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");:root{--elegantFinFooterText:"ElegantFin v25.12.31";color-scheme:dark;--darkerGradientPoint:#111827;--darkerGradientPointAlpha:rgba(17,24,39,.85);--lighterGradientPoint:#1d2635;--lighterGradientPointAlpha:rgba(29,38,53,.85);--gradientPointAlpha:rgba(29,38,53,.3);--headerColor:rgba(30,40,54,.8);--drawerColor:rgba(30,40,54,.9);--borderColor:hsl(214,13%,32%);--darkerBorderColor:hsl(214,13%,22%);--lighterBorderColor:hsla(0,0%,100%,.2);--selectorBackgroundColor:rgb(55,65,81);--selectorBackgroundColorAlpha:rgba(55,65,81,.5);--activeColorAlpha:rgba(119,91,244,.9);--activeColor:rgb(119,91,244);--osdSeekBarPlayedColor:var(--textColor);--osdSeekBarBufferedColorAlpha:rgba(128,128,128,.5);--osdSeekBarThumbColor:white;--tableBodyColor:rgb(31 41 55 / 1);--uiAccentColor:rgb(117 111 226);--btnMiniPlayColor:rgb(41 154 93);--btnMiniPlayBorderColor:rgb(50,167,105);--btnDeleteColor:rgb(169,29,29);--btnDeleteBorderColor:rgb(217,84,84);--btnSubmitColor:rgb(61,54,178);--btnSubmitBorderColor:rgb(117 111 226);--checkboxCheckedBgColor:rgb(79,70,229);--highlightOutlineColor:rgb(37,99,235);--defaultBorder:var(--borderWidth) solid var(--borderColor);--defaultLighterBorder:var(--borderWidth) solid var(--lighterBorderColor);--textColor:rgb(209,213,219);--dimTextColor:rgb(156,163,175);--backgroundGradient:linear-gradient(0deg,var(--darkerGradientPoint) 35%,var(--lighterGradientPoint));--cardBackgroundGradient:linear-gradient(0deg,var(--darkerGradientPoint),25%,var(--lighterGradientPoint));--headerColorGradient:linear-gradient(180deg,rgba(30,40,54,.95) 30%,55%,transparent 90%);--headerColorGradientAlt:linear-gradient(180deg,rgba(30,40,54,1),70%,transparent);--headerBlurMask:linear-gradient(180deg,white 50%,85%,transparent);--cardFooterGradient:linear-gradient(0deg,rgb(0 0 0 / 90%),40%,transparent);--topOSDGradient:linear-gradient(180deg,hsla(0,0%,0%,.8),45%,hsla(0,0%,0%,0));--bottomOSDGradient:linear-gradient(0deg,hsla(0,0%,0%,.8),45%,hsla(0,0%,0%,0));--hoverGradientV:linear-gradient(0deg,transparent,rgb(255 255 255 / 100%) 45%,rgb(255 255 255 / 100%) 55%,transparent);--hoverGradientH:linear-gradient(90deg,transparent,rgb(255 255 255 / 100%) 45%,rgb(255 255 255 / 100%) 55%,transparent);--itemBackdropMask:linear-gradient(180deg,rgba(0,0,0,.8),75%,transparent);--largerRadius:1.25em;--largeRadius:1em;--smallRadius:.5em;--smallerRadius:.375em;--borderWidth:.06em;--borderWidthDouble:.12em;--sidePadding:3.3%;--itemColumnGap:1em;--minEpisodeCardWidth:26em;--blurSmallest:blur(2px);--blurDefault:blur(5px);--blurLarge:blur(10px);--blurLargest:blur(20px);--shadow:.1em .1em .15em hsla(0,0%,0%,.3);--headerBlurLayerVisibility:"";--headerBackground:var(--headerColorGradient);--loginPageBgUrl:url("");--loginPageText:"Sign in to continue";--overlayPlayButtonPosition:2.8em;--iconPack:"Material Icons Round",Material Icons;--extraCardButtonsVisibility:none;--itemOriginalTitleVisibility:block;--libraryLabelVisibility:none;--clearLogoVisibility:block;--itemTitleVisibility:none;--miniOverlayButtonVisibility:block;--cardHoverEffect:"";--appBarHeight:5em;--backdropTrimFromTop:10%}html{font-family:"Inter",sans-serif;font-optical-sizing:auto;font-weight:425;font-style:normal;-webkit-tap-highlight-color:transparent!important}body{--primaryItemPageNegativeSpace:14vh;--secondaryItemPageNegativeSpace:60vh;--clearLogoBottomSpace:11em}.layout-desktop>body:has(>audio[src]){--primaryItemPageNegativeSpace:calc(14vh + 5em);--secondaryItemPageNegativeSpace:calc(60vh + 5em)}.layout-mobile{--itemColumnGap:0;--headerColorGradient:var(--headerColorGradientAlt);--blurLargest:blur(12px);--headerBlurMask:linear-gradient(180deg,white 60%,90%,transparent)}.layout-mobile>body{--secondaryItemPageNegativeSpace:45vh}@font-face{font-family:"Material Icons Round";font-style:normal;font-weight:100 700;font-display:swap;src:url(https://fonts.gstatic.com/s/materialsymbolsrounded/v267/sykg-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190Fjzag.woff2) format("woff2")}.material-icons{font-family:var(--iconPack)!important;font-weight:normal;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;line-height:1;vertical-align:middle;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 48}.material-icons.info_outline:before{content:"\e88e";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 48}.dashboardFooter{font-family:"Noto Sans",serif;transition:transform 50ms}#myPreferencesMenuPage>div:after,.dashboardFooter::after{content:var(--elegantFinFooterText);font-size:.8em;color:var(--borderColor);display:inline-grid;width:100%;width:-webkit-fill-available;justify-content:center;font-weight:600}::selection{background:var(--activeColorAlpha)}.cardImageIcon{color:vLine truncated
+151 -63
View File
@@ -1,4 +1,4 @@
/* ElegantFin Theme for Jellyfin by lscambo13 */ /*! ElegantFin Theme Nightly for Jellyfin by lscambo13 */
/* Add-ons: Uncomment to enable */ /* Add-ons: Uncomment to enable */
/* @import url(./assets/add-ons/media-bar-plugin-support-nightly.css); */ /* @import url(./assets/add-ons/media-bar-plugin-support-nightly.css); */
@@ -55,6 +55,7 @@
/* textures */ /* textures */
--backgroundGradient: linear-gradient(0deg, var(--darkerGradientPoint) 35%, var(--lighterGradientPoint)); --backgroundGradient: linear-gradient(0deg, var(--darkerGradientPoint) 35%, var(--lighterGradientPoint));
--cardBackgroundGradient: linear-gradient(0deg, var(--darkerGradientPoint), 25%, var(--lighterGradientPoint)); --cardBackgroundGradient: linear-gradient(0deg, var(--darkerGradientPoint), 25%, var(--lighterGradientPoint));
--backgroundAlphaOverlay: linear-gradient(180deg, var(--darkerGradientPointAlpha) 80%, transparent);
--headerColorGradient: linear-gradient(180deg, rgba(30, 40, 54, 0.95) 30%, 55%, transparent 90%); --headerColorGradient: linear-gradient(180deg, rgba(30, 40, 54, 0.95) 30%, 55%, transparent 90%);
--headerColorGradientAlt: linear-gradient(180deg, rgba(30, 40, 54, 1), 70%, transparent); --headerColorGradientAlt: linear-gradient(180deg, rgba(30, 40, 54, 1), 70%, transparent);
--headerBlurMask: linear-gradient(180deg, white 50%, 85%, transparent); --headerBlurMask: linear-gradient(180deg, white 50%, 85%, transparent);
@@ -66,15 +67,15 @@
--hoverGradientV: linear-gradient( --hoverGradientV: linear-gradient(
0deg, 0deg,
transparent, transparent,
rgb(255 255 255 / 100%) 45%, rgb(255 255 255 / 35%) 45%,
rgb(255 255 255 / 100%) 55%, rgb(255 255 255 / 35%) 55%,
transparent transparent
); );
--hoverGradientH: linear-gradient( --hoverGradientH: linear-gradient(
90deg, 90deg,
transparent, transparent,
rgb(255 255 255 / 100%) 45%, rgb(255 255 255 / 35%) 45%,
rgb(255 255 255 / 100%) 55%, rgb(255 255 255 / 35%) 55%,
transparent transparent
); );
@@ -118,14 +119,19 @@
use 50% to place it at the center of a card */ use 50% to place it at the center of a card */
--overlayPlayButtonPosition: 2.8em; --overlayPlayButtonPosition: 2.8em;
/* use 'Material Icons Round' for the new icons [default]; /* use 'Material Symbols Rounded' for the new icons (~5mb) [default];
use 'Material Icons' to revert to old icons */ use 'Material Symbols Rounded Minimal' to reduce bandwidth usage (~115kb) (may break compatibility with plugins);
--iconPack: "Material Symbols Rounded", Material Icons; use 'Material Icons' to revert to stock Jellyfin icons */
--iconPack: "Material Symbols Rounded";
/* none: hides the watched and mark favorite buttons on hover [default]; /* none: hides the watched and mark favorite buttons on hover [default];
block: makes them visible use block */ block: makes them visible */
--extraCardButtonsVisibility: none; --extraCardButtonsVisibility: none;
/* block: makes the three-dot menu button visible [default];
none: hides the three-dot menu button on hover */
--menuButtonVisibility: block;
/* block: keeps the original (foreign) title visible if it is available [default]; /* block: keeps the original (foreign) title visible if it is available [default];
none: always hides the original title of Movie/TV */ none: always hides the original title of Movie/TV */
--itemOriginalTitleVisibility: block; --itemOriginalTitleVisibility: block;
@@ -142,6 +148,18 @@
block: makes the title always visible */ block: makes the title always visible */
--itemTitleVisibility: none; --itemTitleVisibility: none;
/* block: shows the music artist clear logo if it is available [default];
none: makes the music artist clear logo always hidden */
--artistClearLogoVisibility: block;
/* none: makes the music artist title always hidden [default];
block: shows the text-based music artist title */
--artistTitleVisibility: none;
/* unset: makes the artist background dim for better clear logo visibility on desktops [default];
none: makes the music artist page background fully visible */
--artistPageBackground: unset;
/* block: shows the mini play or three-dot button on cards only on mobile [default]; /* block: shows the mini play or three-dot button on cards only on mobile [default];
none: makes them always hidden only on mobile */ none: makes them always hidden only on mobile */
--miniOverlayButtonVisibility: block; --miniOverlayButtonVisibility: block;
@@ -158,9 +176,9 @@
use a figure between 0% and 20% according to your liking */ use a figure between 0% and 20% according to your liking */
--backdropTrimFromTop: 10%; --backdropTrimFromTop: 10%;
/* use numbers greater than 1.0 to increase the size of 'Continue Watching' cards [default: 1.25]; /* use 1 to keep the size 'Continue Watching' cards normal [default];
use 1.0 to disable this effect */ use numbers greater than 1.0 to increase their size (example: 1.25) */
--resumeCardScale: 1.25; --resumeCardScale: 1;
} }
html { html {
@@ -197,20 +215,32 @@ select {
--secondaryItemPageNegativeSpace: 45vh; --secondaryItemPageNegativeSpace: 45vh;
} }
/* Material Icons Round */ /* Material Symbols Rounded - Minimal */
/* https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&icon_names=add,airplay,album,arrow_back,arrow_forward,arrow_upward,audiotrack,autorenew,backspace,book,brightness_high,call_split,cast,check,chevron_left,chevron_right,clear,close,closed_caption,cloud_download,content_copy,dashboard,delete,devices_other,download,drag_handle,dvr,exit_to_app,expand_more,explore,fast_forward,fast_rewind,favorite,fiber_manual_record,fiber_smart_record,file_download,filter_alt,folder,folder_open,forward_30,fullscreen,get_app,groups,home,image,info,info_outline,keyboard,keyboard_arrow_down,keyboard_arrow_left,keyboard_arrow_right,keyboard_arrow_up,keyboard_return,library_add_check,live_tv,local_movies,lock,lyrics,menu,mode_edit,more_vert,movie,music_note,music_video,navigate_before,navigate_next,pause,pause_circle_filled,pause_circle_outline,person,phonelink_lock,photo,photo_album,picture_in_picture_alt,play,play_arrow,play_circle_filled,play_circle_outline,playlist_add,preview,queue,queue_music,quiz,redo,refresh,remove_circle,remove_red_eye,repeat,repeat_one,replay,replay_10,save,schedule,search,settings,shuffle,skip_next,skip_previous,sort_by_alpha,space_bar,star,stop,storage,subtitles,sync,text_decrease,text_increase,theaters,toc,tv,undo,update,video_library,videocam,view_comfy,volume_off,volume_up */ /* https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&icon_names=add,airplay,album,arrow_back,arrow_forward,arrow_upward,audiotrack,autorenew,backspace,book,brightness_high,call_split,cast,check,chevron_left,chevron_right,clear,close,closed_caption,cloud_download,content_copy,dashboard,delete,devices_other,download,drag_handle,dvr,exit_to_app,expand_more,explore,fast_forward,fast_rewind,favorite,fiber_manual_record,fiber_smart_record,file_download,filter_alt,folder,folder_open,forward_30,fullscreen,get_app,groups,home,image,info,info_outline,keyboard,keyboard_arrow_down,keyboard_arrow_left,keyboard_arrow_right,keyboard_arrow_up,keyboard_return,library_add_check,live_tv,local_movies,lock,lyrics,menu,mode_edit,more_vert,movie,music_note,music_video,navigate_before,navigate_next,pause,pause_circle_filled,pause_circle_outline,person,phonelink_lock,photo,photo_album,picture_in_picture_alt,play,play_arrow,play_circle_filled,play_circle_outline,playlist_add,preview,queue,queue_music,quiz,redo,refresh,remove_circle,remove_red_eye,repeat,repeat_one,replay,replay_10,save,schedule,search,settings,shuffle,skip_next,skip_previous,sort_by_alpha,space_bar,star,stop,storage,subtitles,sync,text_decrease,text_increase,theaters,toc,tv,undo,update,video_library,videocam,view_comfy,volume_off,volume_up */
@font-face { @font-face {
font-family: 'Material Symbols Rounded'; font-family: "Material Symbols Rounded Minimal";
font-style: normal; font-style: normal;
font-weight: 100 700; font-weight: 100 700;
src: url(https://fonts.gstatic.com/l/font?kit=sykg-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjzarESMdAUY9qjb3u1M7e05tMSFFiwiIx7ihGnzWmz-lkbsBJUso54WUKiEWtV5-yu0mchXaMnO1vqpcxiqEd46a1XUtwWncyNNmxYr8hocRsPBG56BqeEkny0qMU_aSz_M2MYR8p9qc8uUfT0rnccAg__qWWJGuzJMRCBsajdQcef&skey=70ddea8fe54d532e&v=v338) format('woff2'); src: url(https://fonts.gstatic.com/l/font?kit=sykg-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjzarESMdAUY9qjb3u1M7e05tMSFFiwiIx7ihGnzWmz-lkbsBJUso54WUKiEWtV5-yu0mchXaMnO1vqpcxiqEd46a1XUtwWncyNNmxYr8hocRsPBG56BqeEkny0qMU_aSz_M2MYR8p9qc8uUfT0rnccAg__qWWJGuzJMRCBsajdQcef&skey=70ddea8fe54d532e&v=v346)
format("woff2");
}
/* Material Symbols Rounded - Full */
/* https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200 */
@font-face {
font-family: "Material Symbols Rounded";
font-style: normal;
font-weight: 100 700;
src: url(https://fonts.gstatic.com/s/materialsymbolsrounded/v346/sykg-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190Fjzag.woff2)
format("woff2");
} }
.material-icons { .material-icons {
font-family: var(--iconPack) !important; font-family:
var(--iconPack),
Material Icons !important;
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
font-size: 24px;
line-height: 1; line-height: 1;
letter-spacing: normal; letter-spacing: normal;
text-transform: none; text-transform: none;
@@ -218,9 +248,16 @@ select {
white-space: nowrap; white-space: nowrap;
word-wrap: normal; word-wrap: normal;
direction: ltr; direction: ltr;
-webkit-font-feature-settings: 'liga'; vertical-align: middle;
text-rendering: geometricPrecision;
-moz-osx-font-smoothing: grayscale;
-webkit-font-feature-settings: "liga";
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 48; font-variation-settings:
"FILL" 1,
"wght" 400,
"GRAD" 0,
"opsz" 48;
} }
.material-icons.info_outline:before { .material-icons.info_outline:before {
@@ -430,31 +467,29 @@ select {
.cardOverlayContainer:after { .cardOverlayContainer:after {
content: var(--cardHoverEffect); content: var(--cardHoverEffect);
transition: 0.5s; transition: 0.65s;
position: absolute; position: absolute;
top: 0; top: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
right: 0; right: 0;
transform: translateY(-50%) translateX(0); transform: translateY(-100%) translateX(0);
background: var(--hoverGradientV); background: var(--hoverGradientV);
} }
.card-hoverable:hover .cardOverlayContainer:after { .card-hoverable:hover .cardOverlayContainer:after {
transform: translateY(50%) translateX(0); transform: translateY(100%) translateX(0);
opacity: 0;
} }
.backdropCard.card-hoverable .cardOverlayContainer:after, .backdropCard.card-hoverable .cardOverlayContainer:after,
.overflowBackdropCard.card-hoverable .cardOverlayContainer:after { .overflowBackdropCard.card-hoverable .cardOverlayContainer:after {
transform: translateY(0) translateX(-50%); transform: translateY(0) translateX(-100%);
background: var(--hoverGradientH); background: var(--hoverGradientH);
} }
.backdropCard.card-hoverable:hover .cardOverlayContainer:after, .backdropCard.card-hoverable:hover .cardOverlayContainer:after,
.overflowBackdropCard.card-hoverable:hover .cardOverlayContainer:after { .overflowBackdropCard.card-hoverable:hover .cardOverlayContainer:after {
transform: translateY(0) translateX(50%); transform: translateY(0) translateX(100%);
opacity: 0;
} }
.cardBox:not(.visualCardBox) .cardPadder { .cardBox:not(.visualCardBox) .cardPadder {
@@ -487,23 +522,23 @@ select {
color: white; color: white;
} }
.cardOverlayButton-br .cardOverlayButton-hover[data-action="menu"],
.layout-desktop .listItemButton[data-action="menu"] {
display: none;
}
.layout-desktop .cardOverlayButton-br, .layout-desktop .cardOverlayButton-br,
[dir="ltr"].layout-desktop .cardOverlayButton-br { [dir="ltr"].layout-desktop .cardOverlayButton-br {
bottom: 0.75em; bottom: 1.2em;
right: 0.5em; right: 0.7em;
display: var(--extraCardButtonsVisibility);
z-index: 1; z-index: 1;
font-size: 0.8em;
} }
.layout-desktop .cardOverlayButton-br button { .layout-desktop .cardOverlayButton-br > button {
color: white; color: white;
display: var(--extraCardButtonsVisibility);
text-shadow: var(--shadow); text-shadow: var(--shadow);
} }
.cardOverlayButton-br .cardOverlayButton-hover[data-action="menu"],
.layout-desktop .listItemButton[data-action="menu"] {
display: var(--menuButtonVisibility);
}
.layout-mobile .cardOverlayButton { .layout-mobile .cardOverlayButton {
padding: 1em; padding: 1em;
@@ -963,6 +998,7 @@ select {
} }
.card .cardTextCentered { .card .cardTextCentered {
/* text-align-last: left; */
text-shadow: 1px 1px 2px hsla(0, 0%, 0%, 0.8); text-shadow: 1px 1px 2px hsla(0, 0%, 0%, 0.8);
} }
@@ -1092,13 +1128,13 @@ select {
padding-left: 0; padding-left: 0;
} }
.itemsContainer:not(.editorsChoiceItemsContainer) { .itemsContainer:not(.editorsChoiceItemsContainer, .vertical-list) {
column-gap: var(--itemColumnGap); column-gap: var(--itemColumnGap);
row-gap: 1em; row-gap: 1em;
} }
/* this is a workaround to add a gap between the last child and the edge of the screen on phones */ /* this is a workaround to add a gap between the last child and the edge of the screen on phones */
.layout-mobile .itemsContainer:not(.editorsChoiceItemsContainer, .vertical-wrap)::after { .layout-mobile .itemsContainer:not(.editorsChoiceItemsContainer, .vertical-wrap, .vertical-list)::after {
content: "13"; content: "13";
color: transparent; color: transparent;
} }
@@ -1256,6 +1292,7 @@ select {
#itemDetailPage:has(.subtitle) .itemBackdrop, #itemDetailPage:has(.subtitle) .itemBackdrop,
#itemDetailPage:has(.musicParentName) .itemBackdrop, #itemDetailPage:has(.musicParentName) .itemBackdrop,
#itemDetailPage:has(.detailImageContainer .backdropCard) .itemBackdrop, #itemDetailPage:has(.detailImageContainer .backdropCard) .itemBackdrop,
#itemDetailPage:has(.detailImageContainer .squareCard) .itemBackdrop,
#itemDetailPage:has(.detailImageContainer .person) .itemBackdrop, #itemDetailPage:has(.detailImageContainer .person) .itemBackdrop,
#itemDetailPage:has(.detailImageContainer .queue) .itemBackdrop, #itemDetailPage:has(.detailImageContainer .queue) .itemBackdrop,
#itemDetailPage:has(.detailImageContainer .book) .itemBackdrop, #itemDetailPage:has(.detailImageContainer .book) .itemBackdrop,
@@ -1263,8 +1300,8 @@ select {
height: calc(100vh - 27vh - var(--secondaryItemPageNegativeSpace)); height: calc(100vh - 27vh - var(--secondaryItemPageNegativeSpace));
} }
#itemDetailPage:has(.detailImageContainer .cardPadder-square:not(.person)) .itemBackdrop { #itemDetailPage:has(.detailImageContainer .cardPadder-square > .person) .itemBackdrop {
height: calc(100vh - 20vh - var(--secondaryItemPageNegativeSpace)); height: calc(100vh - 8vh - var(--secondaryItemPageNegativeSpace));
} }
.detailLogo { .detailLogo {
@@ -1303,6 +1340,10 @@ select {
top: calc(100vh - 6em - var(--secondaryItemPageNegativeSpace)); top: calc(100vh - 6em - var(--secondaryItemPageNegativeSpace));
} }
.layout-desktop #itemDetailPage:has(.detailImageContainer .person) .detailLogo {
top: calc(100vh - var(--secondaryItemPageNegativeSpace));
}
.layout-mobile #itemDetailPage:has(.subtitle) .detailLogo { .layout-mobile #itemDetailPage:has(.subtitle) .detailLogo {
top: calc(100vh - 11em - var(--secondaryItemPageNegativeSpace)); top: calc(100vh - 11em - var(--secondaryItemPageNegativeSpace));
} }
@@ -1384,25 +1425,33 @@ select {
/* this hides the detail logo when media card is visible */ /* this hides the detail logo when media card is visible */
#itemDetailPage:has(.detailImageContainer .backdropCard) .detailLogo, #itemDetailPage:has(.detailImageContainer .backdropCard) .detailLogo,
#itemDetailPage:has(.detailImageContainer .album) .detailLogo, #itemDetailPage:has(.detailImageContainer .album) .detailLogo {
#itemDetailPage:has(.detailImageContainer .person) .detailLogo {
z-index: 2; z-index: 2;
display: none; display: none;
} }
#itemDetailPage:has(.detailImageContainer .person) .detailLogo {
z-index: 2;
display: var(--artistClearLogoVisibility);
}
/* this hides the main media title when the clear logo is available*/ /* this hides the main media title when the clear logo is available*/
.detailLogo:not(.hide) ~ .detailPageWrapperContainer .nameContainer h1 { .detailLogo:not(.hide) ~ .detailPageWrapperContainer .nameContainer h1 {
z-index: 2; z-index: 2;
display: var(--itemTitleVisibility); display: var(--itemTitleVisibility);
} }
.detailImageContainer:has(.squareCard .person) ~ .nameContainer h1 {
display: var(--artistTitleVisibility);
}
/* this shows the main media title and the poster when the clear logo is unavailable*/ /* this shows the main media title and the poster when the clear logo is unavailable*/
.detailLogo.hide ~ .detailPageWrapperContainer .nameContainer h1 { .detailLogo.hide ~ .detailPageWrapperContainer .nameContainer h1 {
display: block !important; display: block !important;
} }
.detailImageContainer:has(.backdropCard, .squareCard) ~ .nameContainer h1, .detailImageContainer:has(.backdropCard) ~ .nameContainer h1,
.detailImageContainer:has(.cardImageIcon.person) ~ .nameContainer h1 { .detailImageContainer:has(.album) ~ .nameContainer h1 {
display: block !important; display: block !important;
} }
@@ -1440,7 +1489,11 @@ select {
#itemDetailPage:has(.subtitle), #itemDetailPage:has(.subtitle),
#itemDetailPage:has(.musicParentName) { #itemDetailPage:has(.musicParentName) {
background: linear-gradient(180deg, var(--darkerGradientPointAlpha) 80%, transparent); background: var(--backgroundAlphaOverlay);
}
#itemDetailPage:has(.detailImageContainer .cardPadder-square > .person) {
background: var(--artistPageBackground, var(--backgroundAlphaOverlay));
} }
.layout-mobile #itemDetailPage:has(.detailImageContainer .backdropCard) .itemBackdrop, .layout-mobile #itemDetailPage:has(.detailImageContainer .backdropCard) .itemBackdrop,
@@ -1737,9 +1790,9 @@ progress + span {
.mdl-slider::-webkit-slider-thumb { .mdl-slider::-webkit-slider-thumb {
background: var(--osdSeekBarThumbColor); background: var(--osdSeekBarThumbColor);
width: 4px !important; width: 0.4em !important;
height: 0.4em !important; height: 0.4em !important;
border-radius: 0em; border-radius: 0.4em;
} }
.sliderContainer:hover .mdl-slider::-webkit-slider-thumb { .sliderContainer:hover .mdl-slider::-webkit-slider-thumb {
@@ -1757,8 +1810,27 @@ progress + span {
transform: scale(1) scaleY(1.25); transform: scale(1) scaleY(1.25);
} }
/* These Firefox thumb styles are separate because combining them breaks the effect from chrome */
.mdl-slider::-moz-range-thumb { .mdl-slider::-moz-range-thumb {
background: var(--osdSeekBarThumbColor); background: var(--osdSeekBarThumbColor);
width: 0.4em !important;
height: 0.4em !important;
border-radius: 0.4em;
}
.sliderContainer:hover .mdl-slider::-moz-range-thumb {
width: 0.2em !important;
height: 0.8em !important;
border-radius: 0.2em;
transform: scale(1);
}
.sliderContainer:active .mdl-slider::-moz-range-thumb,
.mdl-slider.show-focus:focus::-moz-range-thumb {
width: 0.2em !important;
height: 0.8em !important;
border-radius: 0.2em;
transform: scale(1) scaleY(1.25);
} }
.sliderMarkerContainer { .sliderMarkerContainer {
@@ -1834,14 +1906,6 @@ progress + span {
font-size: 2em; font-size: 2em;
} }
.nowPlayingBar .playPauseButton {
font-size: 2em;
}
.nowPlayingInfoContainer .btnPlayPause {
font-size: 3em;
}
.osdControls { .osdControls {
display: flex; display: flex;
flex-direction: column-reverse; flex-direction: column-reverse;
@@ -1950,7 +2014,9 @@ progress + span {
.overview-expand.emby-button:after { .overview-expand.emby-button:after {
content: "keyboard_arrow_down"; content: "keyboard_arrow_down";
font-family: var(--iconPack); font-family:
var(--iconPack),
Material Icons;
font-feature-settings: "liga"; font-feature-settings: "liga";
background: var(--selectorBackgroundColor); background: var(--selectorBackgroundColor);
border-radius: 50%; border-radius: 50%;
@@ -2087,6 +2153,8 @@ progress + span {
background: var(--lighterGradientPoint); background: var(--lighterGradientPoint);
border-bottom: var(--defaultBorder); border-bottom: var(--defaultBorder);
backdrop-filter: var(--blurLarge); backdrop-filter: var(--blurLarge);
height: 3.5em;
padding-top: max(env(safe-area-inset-top), var(--safe-area-inset-top));
} }
.selectionCommandsPanel > h1 { .selectionCommandsPanel > h1 {
@@ -2132,7 +2200,7 @@ progress + span {
} }
.overflowBackdropCard .cardText-first + .itemSelectionPanel > .checkboxContainer { .overflowBackdropCard .cardText-first + .itemSelectionPanel > .checkboxContainer {
height: calc(100% - 0em); height: 100%;
} }
.checkboxContainer .emby-checkbox:checked + span + .checkboxOutline.multiSelectCheckboxOutline { .checkboxContainer .emby-checkbox:checked + span + .checkboxOutline.multiSelectCheckboxOutline {
@@ -2160,7 +2228,7 @@ progress + span {
.cardFooter + .itemSelectionPanel > .checkboxContainer, .cardFooter + .itemSelectionPanel > .checkboxContainer,
.cardScalable + .itemSelectionPanel > .checkboxContainer { .cardScalable + .itemSelectionPanel > .checkboxContainer {
height: calc(100% - 0em); height: 100%;
} }
.checkboxOutline.multiSelectCheckboxOutline { .checkboxOutline.multiSelectCheckboxOutline {
@@ -2701,9 +2769,9 @@ div[data-role="controlgroup"] a.ui-btn-active {
margin-bottom: 1.5em; margin-bottom: 1.5em;
} }
.layout-mobile .detailSection { /* .layout-mobile .detailSection {
grid-template-columns: 1fr !important; grid-template-columns: 1fr !important;
} } */
.detailPageContent { .detailPageContent {
gap: 1em; gap: 1em;
@@ -2740,6 +2808,7 @@ div[data-role="controlgroup"] a.ui-btn-active {
.trackSelections .selectContainer { .trackSelections .selectContainer {
max-width: unset !important; max-width: unset !important;
align-items: baseline; align-items: baseline;
/* margin: 0.25em !important; */
} }
.selectArrowContainer { .selectArrowContainer {
@@ -2953,12 +3022,16 @@ div[data-role="controlgroup"] a.ui-btn-active {
padding-right: 0 !important; padding-right: 0 !important;
} }
.vertical-list > .listGroupHeader {
padding-left: 0.5ch;
}
.listPaging > span { .listPaging > span {
padding: 0 0.5em; padding: 0 0.5em;
} }
.layout-mobile #myPreferencesMenuPage { .layout-mobile #myPreferencesMenuPage {
padding-top: 3.75em !important; padding-top: var(--appBarHeight) !important;
} }
.headerUserButton { .headerUserButton {
@@ -3015,7 +3088,7 @@ div[data-role="controlgroup"] a.ui-btn-active {
.sectionTitleTextButton > * { .sectionTitleTextButton > * {
text-align: left; text-align: left;
/* !important are needed for proper alignment on phones */ /* the !important are needed for proper alignment on phones */
padding: 0.3em 0 !important; padding: 0.3em 0 !important;
margin: 0 0 !important; margin: 0 0 !important;
/* this prevents long library names from breaking into another line */ /* this prevents long library names from breaking into another line */
@@ -3451,7 +3524,7 @@ table:not(.MuiTable-root.MuiTable-stickyHeader) {
} }
ul.MuiList-root.MuiMenu-list.MuiList-dense > div:first-child { ul.MuiList-root.MuiMenu-list.MuiList-dense > div:first-child {
/* ! Don't change these units. They are rem because that is standard for MUI */ /* Don't change these units. They are rem because that is standard for MUI */
gap: 0.5rem; gap: 0.5rem;
} }
@@ -3677,6 +3750,14 @@ ul.MuiList-root.MuiMenu-list.MuiList-dense > div:first-child {
aspect-ratio: 1 / 1; aspect-ratio: 1 / 1;
} }
.nowPlayingBar .playPauseButton {
font-size: 2em;
}
.nowPlayingInfoContainer .btnPlayPause {
font-size: 3em;
}
.nowPlayingBar .nowPlayingImage { .nowPlayingBar .nowPlayingImage {
background-size: cover; background-size: cover;
border-radius: var(--smallerRadius); border-radius: var(--smallerRadius);
@@ -3861,7 +3942,9 @@ ul.MuiList-root.MuiMenu-list.MuiList-dense > div:first-child {
} }
.noHomeButtonHeader .emby-tab-button:before { .noHomeButtonHeader .emby-tab-button:before {
font-family: var(--iconPack); font-family:
var(--iconPack),
Material Icons;
font-feature-settings: "liga"; font-feature-settings: "liga";
/* padding-inline-end: 0.5ch; */ /* padding-inline-end: 0.5ch; */
font-size: 1.2em; font-size: 1.2em;
@@ -4000,6 +4083,11 @@ ul.MuiList-root.MuiMenu-list.MuiList-dense > div:first-child {
} }
} }
.skinHeader {
/* this is for testing a fix for iOS */
padding-top: max(env(safe-area-inset-top), var(--safe-area-inset-top)) !important;
}
.nowPlayingPage { .nowPlayingPage {
background: linear-gradient(var(--darkerGradientPointAlpha), transparent); background: linear-gradient(var(--darkerGradientPointAlpha), transparent);
} }
File diff suppressed because it is too large. Load diff
+1 -2
View File
@@ -1,2 +1 @@
/* Add-on: Custom media covers v25.11.25 for the ElegantFin Theme for Jellyfin by lscambo13 */ /*! Add-on: Custom Media Covers v26.06.06 for the ElegantFin Theme for Jellyfin by lscambo13 */:root{--colorOverlayAnimeCover:#bdcb63;--colorOverlayBooksCover:#a64446;--colorOverlayBoxsetsCover:#dbb435;--colorOverlayFoldersCover:#ad3c71;--colorOverlayHomevideosCover:#275ab9;--colorOverlayLivetvCover:#11629f;--colorOverlayMixedCover:#c23a3a;--colorOverlayMoviesCover:#c16768;--colorOverlayMusicCover:#0b5d48;--colorOverlayPlaylistsCover:#763dd8;--colorOverlayRecordedmoviesCover:#343434;--colorOverlayRecordedtvCover:#78641c;--colorOverlaySportsCover:#e97e3c;--colorOverlayTvshowsCover:#8c952b;--urlAnimeCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/anime.webp);--urlBooksCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/books.webp);--urlBoxsetsCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/boxsets.webp);--urlFoldersCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/folders.webp);--urlHomevideosCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/homevideos.webp);--urlLivetvCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/livetv.webp);--urlMixedCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/mixed.webp);--urlMoviesCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/movies.webp);--urlMusicCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/music.webp);--urlPlaylistsCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/playlists.webp);--urlRecordedmoviesCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/recordedmovies.webp);--urlRecordedtvCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/recordedtv.webp);--urlSportsCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/sports.webp);--urlTvshowsCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/tvshows.webp)}[data-type=CollectionFolder] .cardContent,[data-type=CollectionFolder] .defaultCardBackground,[data-type=UserView] .cardContent,[data-type=UserView] .defaultCardBackground{background-blend-mode:multiply;background-position:50%!important;background-size:cover!important;filter:contrast(.85)}.layout-tv [data-type=CollectionFolder]:before,.layout-tv [data-type=UserView]:before,[data-type=CollectionFolder] .cardContent:before,[data-type=UserView] .cardContent:before{color:#fff;content:attr(aria-label);font-family:Noto Sans;font-size:clamp(1em,max(2.5vh,2vw),2em);font-weight:800;position:absolute;text-align:center;white-space:normal;width:94%}.layout-tv [data-type=CollectionFolder]:before,.layout-tv [data-type=UserView]:before{align-content:center;bottom:0;display:grid;top:0;z-index:1}[data-type=CollectionFolder] .cardImageIcon:not(.quiz):before,[data-type=UserView] .cardImageIcon:not(.quiz):before{display:none}[data-collectiontype=movies] .cardContent{background-color:var(--colorOverlayMoviesCover)!important;background-image:var(--urlMoviesCover)!important}[data-collectiontype=tvshows] .cardContent{background-color:var(--colorOverlayTvshowsCover)!important;background-image:var(--urlTvshowsCover)!important}[data-collectiontype=livetv] .cardContent{background-color:var(--colorOverlayLivetvCover)!important;background-image:var(--urlLivetvCover)!important}[data-collectiontype=music] .cardContent{background-color:var(--colorOverlayMusicCover)!important;background-image:var(--urlMusicCover)!important}[data-collectiontype=homevideos] .cardContent{background-color:var(--colorOverlayHomevideosCover)!important;background-image:var(--urlHomevideosCover)!important}[data-collectiontype=books] .cardContent{background-color:var(--colorOverlayBooksCover)!important;background-image:var(--urlBooksCover)!important}[data-collectiontype=boxsets] .cardContent{background-color:var(--colorOverlayBoxsetsCover)!important;background-image:var(--urlBoxsetsCover)!important}[data-collectiontype=folders] .cardContent{background-color:var(--colorOverlayFoldersCover)!important;background-image:var(--urlFoldersCover)!important}[data-collectiontype=playlists] .cardContent{background-color:var(--colorOverlayPlaylistsCover)!important;background-image:var(--urlPlaylistsCover)!important}[data-type=CollectionFolder][data-prefix=MIX] .cardContent{background-color:var(--colorOverlayMixedCover)!important;background-image:var(--urlMixedCover)!important}[dLine truncated
:root{--colorOverlayMoviesCover:rgb(193,103,104);--colorOverlayTvshowsCover:rgb(140,149,43);--colorOverlayLivetvCover:rgb(17,98,159);--colorOverlayPlaylistsCover:rgb(118,61,216);--colorOverlayBoxsetsCover:rgb(219,180,53);--colorOverlayMusicCover:rgb(11,93,72);--colorOverlayHomevideosCover:rgb(39,90,185);--colorOverlayBooksCover:rgb(166,68,70);--colorOverlayFoldersCover:rgb(173,60,113);--colorOverlayMixedCover:rgb(194,58,58);--colorOverlayRecordedmoviesCover:rgb(52,52,52);--colorOverlayRecordedtvCover:rgb(120,100,28);--urlMoviesCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/movies.webp);--urlTvshowsCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/tvshows.webp);--urlLivetvCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/livetv.webp);--urlPlaylistsCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/playlists.webp);--urlBoxsetsCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/boxsets.webp);--urlMusicCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/music.webp);--urlHomevideosCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/homevideos.webp);--urlBooksCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/books.webp);--urlFoldersCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/folders.webp);--urlMixedCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/mixed.webp);--urlRecordedmoviesCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/recordedmovies.webp);--urlRecordedtvCover:url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/recordedtv.webp)}[data-type="CollectionFolder"] .defaultCardBackground,[data-type="UserView"] .defaultCardBackground,[data-type="CollectionFolder"] .cardContent,[data-type="UserView"] .cardContent{filter:contrast(.85);background-size:cover!important;background-position:50%!important;background-blend-mode:multiply}[data-type="CollectionFolder"] .cardContent::before,[data-type="UserView"] .cardContent::before{content:attr(aria-label);position:absolute;font-size:clamp(1em,max(2.5vh,2vw),2em);font-weight:800;color:white;font-family:"Noto Sans";text-align:center;width:94%;white-space:normal}.layout-tv [data-type="CollectionFolder"]::before,.layout-tv [data-type="UserView"]::before{content:attr(aria-label);position:absolute;display:grid;align-content:center;top:0;bottom:0;font-size:clamp(1em,max(2.5vh,2vw),2em);font-weight:800;color:white;font-family:"Noto Sans";text-align:center;width:94%;white-space:normal;z-index:1}[data-type="CollectionFolder"] .cardImageIcon:not(.quiz)::before,[data-type="UserView"] .cardImageIcon:not(.quiz)::before{display:none}[data-collectiontype="movies"] .cardContent{background-color:var(--colorOverlayMoviesCover)!important;background-image:var(--urlMoviesCover)!important}[data-collectiontype="tvshows"] .cardContent{background-color:var(--colorOverlayTvshowsCover)!important;background-image:var(--urlTvshowsCover)!important}[data-collectiontype="livetv"] .cardContent{background-color:var(--colorOverlayLivetvCover)!important;background-image:var(--urlLivetvCover)!important}[data-collectiontype="music"] .cardContent{background-color:var(--colorOverlayMusicCover)!important;background-image:var(--urlMusicCover)!important}[data-collectiontype="homevideos"] .cardContent{background-color:var(--colorOverlayHomevideosCover)!important;background-image:var(--urlHomevideosCover)!important}[data-collectiontype="books"] .cardContent{background-color:var(--colorOverlayBooksCover)!important;background-image:var(--urlBooksCover)!important}[data-collectiontype="boxsets"] .cardContent{background-color:var(--colorOverlayBoxsetsCover)!important;background-image:var(--urlBoxsetsCover)!important}[data-collectiontype="folders"] .cardContent{background-color:var(--colorOverlayFoldersCover)!important;background-image:var(--urlFoldersCover)!important}[data-collectiontype="playlists"] .cardContent{background-color:var(--colorOverlayPlaylistsCover)!important;background-image:var(--urlPlaylistsCover)!important}[data-prefix="MIX"] .cardContent{background-color:var(--colorOverlayMixedCover)!important;background-image:var(--urlMixedCover)!important}[data-collectiontype="movies"][data-prefix="REC"] .cardContent{background-color:var(--colorOverlayRecordedmoviesCover)!important;background-image:var(--urlRecordedmoviesCover)!important}[data-prefix="REC"] .cardContent{background-Line truncated
@@ -1,4 +1,4 @@
/* Add-on: Custom media covers nightly for the ElegantFin Theme for Jellyfin by lscambo13 */ /*! Add-on: Custom Media Covers Nightly for the ElegantFin Theme for Jellyfin by lscambo13 */
:root { :root {
/* my media library default covers customizations */ /* my media library default covers customizations */
@@ -0,0 +1,149 @@
/*! Add-on: Custom Media Covers v26.06.06 for the ElegantFin Theme for Jellyfin by lscambo13 */
:root {
/* my media library default covers customizations */
--colorOverlayMoviesCover: rgb(193, 103, 104);
--colorOverlayTvshowsCover: rgb(140, 149, 43);
--colorOverlayLivetvCover: rgb(17, 98, 159);
--colorOverlayPlaylistsCover: rgb(118, 61, 216);
--colorOverlayBoxsetsCover: rgb(219, 180, 53);
--colorOverlayMusicCover: rgb(11, 93, 72);
--colorOverlayHomevideosCover: rgb(39, 90, 185);
--colorOverlayBooksCover: rgb(166, 68, 70);
--colorOverlayFoldersCover: rgb(173, 60, 113);
--colorOverlayMixedCover: rgb(194, 58, 58);
--colorOverlayRecordedmoviesCover: rgb(52, 52, 52);
--colorOverlayRecordedtvCover: rgb(120, 100, 28);
--colorOverlayAnimeCover: rgb(189, 203, 99);
--colorOverlaySportsCover: rgb(233, 126, 60);
--urlMoviesCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/movies.webp);
--urlTvshowsCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/tvshows.webp);
--urlLivetvCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/livetv.webp);
--urlPlaylistsCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/playlists.webp);
--urlBoxsetsCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/boxsets.webp);
--urlMusicCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/music.webp);
--urlHomevideosCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/homevideos.webp);
--urlBooksCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/books.webp);
--urlFoldersCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/folders.webp);
--urlMixedCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/mixed.webp);
--urlRecordedmoviesCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/recordedmovies.webp);
--urlRecordedtvCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/recordedtv.webp);
--urlAnimeCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/anime.webp);
--urlSportsCover: url(https://raw.githubusercontent.com/lscambo13/ElegantFin/refs/heads/main/Theme/assets/img/library-covers/sports.webp);
}
[data-type="CollectionFolder"] .defaultCardBackground,
[data-type="UserView"] .defaultCardBackground,
[data-type="CollectionFolder"] .cardContent,
[data-type="UserView"] .cardContent {
filter: contrast(0.85);
background-size: cover !important;
background-position: 50% !important;
background-blend-mode: multiply;
}
[data-type="CollectionFolder"] .cardContent::before,
[data-type="UserView"] .cardContent::before {
content: attr(aria-label);
position: absolute;
font-size: clamp(1em, max(2.5vh, 2vw), 2em);
font-weight: 800;
color: white;
font-family: "Noto Sans";
text-align: center;
width: 94%;
white-space: normal;
}
.layout-tv [data-type="CollectionFolder"]::before,
.layout-tv [data-type="UserView"]::before {
content: attr(aria-label);
position: absolute;
display: grid;
align-content: center;
top: 0;
bottom: 0;
font-size: clamp(1em, max(2.5vh, 2vw), 2em);
font-weight: 800;
color: white;
font-family: "Noto Sans";
text-align: center;
width: 94%;
white-space: normal;
z-index: 1;
}
[data-type="CollectionFolder"] .cardImageIcon:not(.quiz)::before,
[data-type="UserView"] .cardImageIcon:not(.quiz)::before {
display: none;
}
[data-collectiontype="movies"] .cardContent {
background-color: var(--colorOverlayMoviesCover) !important;
background-image: var(--urlMoviesCover) !important;
}
[data-collectiontype="tvshows"] .cardContent {
background-color: var(--colorOverlayTvshowsCover) !important;
background-image: var(--urlTvshowsCover) !important;
}
[data-collectiontype="livetv"] .cardContent {
background-color: var(--colorOverlayLivetvCover) !important;
background-image: var(--urlLivetvCover) !important;
}
[data-collectiontype="music"] .cardContent {
background-color: var(--colorOverlayMusicCover) !important;
background-image: var(--urlMusicCover) !important;
}
[data-collectiontype="homevideos"] .cardContent {
background-color: var(--colorOverlayHomevideosCover) !important;
background-image: var(--urlHomevideosCover) !important;
}
[data-collectiontype="books"] .cardContent {
background-color: var(--colorOverlayBooksCover) !important;
background-image: var(--urlBooksCover) !important;
}
[data-collectiontype="boxsets"] .cardContent {
background-color: var(--colorOverlayBoxsetsCover) !important;
background-image: var(--urlBoxsetsCover) !important;
}
[data-collectiontype="folders"] .cardContent {
background-color: var(--colorOverlayFoldersCover) !important;
background-image: var(--urlFoldersCover) !important;
}
[data-collectiontype="playlists"] .cardContent {
background-color: var(--colorOverlayPlaylistsCover) !important;
background-image: var(--urlPlaylistsCover) !important;
}
[data-type="CollectionFolder"][data-prefix="MIX"] .cardContent {
background-color: var(--colorOverlayMixedCover) !important;
background-image: var(--urlMixedCover) !important;
}
[data-collectiontype="movies"][data-prefix="REC"] .cardContent {
background-color: var(--colorOverlayRecordedmoviesCover) !important;
background-image: var(--urlRecordedmoviesCover) !important;
}
[data-type="CollectionFolder"][data-prefix="REC"] .cardContent {
background-color: var(--colorOverlayRecordedtvCover) !important;
background-image: var(--urlRecordedtvCover) !important;
}
[data-type="CollectionFolder"][data-prefix="ANI"] .cardContent {
background-color: var(--colorOverlayAnimeCover) !important;
background-image: var(--urlAnimeCover) !important;
}
[data-type="CollectionFolder"][data-prefix="SPO"] .cardContent {
background-color: var(--colorOverlaySportsCover) !important;
background-image: var(--urlSportsCover) !important;
}
@@ -1,2 +1 @@
/* Add-on: Media Bar plugin support v25.12.31 for the ElegantFin Theme for Jellyfin by lscambo13 */ /*! Add-on: Media Bar Plugin Support v26.06.06 for the ElegantFin Theme for Jellyfin by lscambo13 */.detail-button:before,.favorite-button.favorited:before,.favorite-button:before,.play-button:before{font-weight:400}.play-button{font-family:Inter;font-size:1em;font-weight:500;order:1}.detail-button,.favorite-button{order:2}.backdrop,.backdrop-container,.backdrop-overlay{background-color:transparent;mask-image:linear-gradient(180deg,rgba(0,0,0,.85),70%,transparent);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.85),70%,transparent)}.backdrop{transform-origin:center left}.rating-value{flex-wrap:wrap;justify-content:center}.age-rating{color:unset;font-family:Archivo Narrow,sans-serif;font-size:.8em}#slides-container{height:62%;left:var(--sidePadding);overflow:visible;position:absolute;top:calc(var(--appBarHeight)*2 + 1.25em);user-select:none;width:calc(100vw - var(--sidePadding)*2)}.slide{border:var(--defaultBorder);border-radius:var(--largerRadius);overflow:hidden;transition:border 0s}.logo-container{top:10vh}.backdrop,.backdrop-container,.backdrop-overlay{mask-image:none;-webkit-mask-image:none}.backdrop-overlay{background:linear-gradient(0deg,rgba(0,0,0,.85),40%,transparent)}.pause-button,.volume-toggle{top:1em!important}.separator-icon{color:var(--dimTextColor);font-size:5px}.dot{background-color:var(--textColor)!important;border-radius:.25em;height:.375em;opacity:.5;transition:width .5s;width:.375em}.dot.active{transform:none;width:2em}@media only screen and (orientation:landscape){.button-container,.dots-container,.genre,.info-container,.plot-container{top:unset}.button-container{bottom:3em}.dots-container{bottom:4.5em}.plot-container{bottom:7em;height:4em}.genre{bottom:12em}.info-container{bottom:14em}.logo-container{align-items:flex-end;max-width:35vw;top:3%}.gradient-overlay{background:linear-gradient(37deg,rgba(0,0,0,.2) 32%,rgb(29 29 29/7%) 47%,rgba(29,29,29,0));mask:none;-webkit-mask:none}}@media only screen and (max-width:767px) and (orientation:portrait){.button-container{bottom:3em}.genre,.tomato-rating{display:none}.dots-container{bottom:6em}.info-container{bottom:5em}.logo-container{top:calc(100% - 15em)}.backdrop{transform-origin:center}.left-arrow,.right-arrow{display:none!important}.play-button{order:2}}@media (min-width:75em){#slides-container{top:calc(var(--appBarHeight) + 1.25em)}.layout-tv #slides-container{top:calc(var(--appBarHeight)*2 + 1.25em)}}@media (min-width:100em){.layout-tv #slides-container{top:calc(var(--appBarHeight) + 1.25em)}}@media only screen and (max-height:767px) and (orientation:landscape){#slides-container{height:57%}.logo-container{top:3%}}
.play-button::before,.detail-button::before,.favorite-button::before,.favorite-button.favorited::before{font-weight:400}.play-button{font-family:"Inter";font-size:1em;font-weight:500}.backdrop,.backdrop-container,.backdrop-overlay{mask-image:linear-gradient(180deg,rgba(0,0,0,.85),70%,rgba(0,0,0,0));-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.85),70%,rgba(0,0,0,0));background-color:transparent}.backdrop{transform-origin:center left}.rating-value{flex-wrap:wrap;justify-content:center}.age-rating{font-size:.8em;font-family:"Archivo Narrow",sans-serif;color:unset}#slides-container{width:calc(100vw - (2 * var(--sidePadding)));height:62%;top:calc(var(--appBarHeight) * 2 + 1.25em);border:var(--defaultBorder);border-radius:var(--largerRadius);transition:all .125s,border 0s;user-select:none;position:absolute;left:var(--sidePadding)}.logo-container{top:10vh}.backdrop,.backdrop-container,.backdrop-overlay{mask-image:none;-webkit-mask-image:none}.backdrop-overlay{background:linear-gradient(0deg,rgba(0,0,0,.85),40%,transparent)}.pause-button{top:1em!important}.separator-icon{font-size:5px;color:var(--dimTextColor)}.dot{border-radius:.25em;width:.375em;height:.375em;transition:width .5s;opacity:.5;background-color:var(--textColor)!important}.dot.active{width:2em;transform:none}@media only screen and (max-width:767px) and (orientation:portrait){.button-container{bottom:3em}.tomato-rating,.genre{display:none}.dots-container{bottom:6em}.info-container{bottom:5em}.logo-container{top:calc(100% - 15em)}.backdrop{transform-origin:center}.left-arrow,.right-arrow{display:none!important}}@media (min-width:75em){#slides-container{top:calc(var(--appBarHeight) + 1.25em)}.layout-tv #slides-container{top:calc(var(--appBarHeight) * 2 + 1.25em)}}@media (min-width:100em){.layout-tv #slides-container{top:calc(var(--appBarHeight) + 1.25em)}}@media only screen and (max-height:767px) and (orientation:landscape){#slides-container{height:57%}.logo-container{top:3%}}
@@ -1,4 +1,4 @@
/* Add-on: Media Bar plugin support nightly for the ElegantFin Theme for Jellyfin by lscambo13 */ /*! Add-on: Media Bar Plugin Support Nightly for the ElegantFin Theme for Jellyfin by lscambo13 */
/* this styles the media bar plugin - start */ /* this styles the media bar plugin - start */
.play-button::before, .play-button::before,
.detail-button::before, .detail-button::before,
@@ -129,7 +129,7 @@
} }
.logo-container { .logo-container {
top: 30%; top: 3%;
align-items: flex-end; align-items: flex-end;
max-width: 35vw; max-width: 35vw;
} }
@@ -0,0 +1,206 @@
/*! Add-on: Media Bar Plugin Support v26.06.06 for the ElegantFin Theme for Jellyfin by lscambo13 */
/* this styles the media bar plugin - start */
.play-button::before,
.detail-button::before,
.favorite-button::before,
.favorite-button.favorited::before {
font-weight: 400;
}
.play-button {
font-family: "Inter";
font-size: 1em;
font-weight: 500;
order: 1;
}
.detail-button,
.favorite-button {
order: 2;
}
.backdrop,
.backdrop-container,
.backdrop-overlay {
mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.85), 70%, rgba(0, 0, 0, 0));
-webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.85), 70%, rgba(0, 0, 0, 0));
background-color: transparent;
}
.backdrop {
transform-origin: center left;
}
.rating-value {
flex-wrap: wrap;
justify-content: center;
}
.age-rating {
font-size: 0.8em;
font-family: "Archivo Narrow", sans-serif;
color: unset;
}
#slides-container {
width: calc(100vw - (2 * var(--sidePadding)));
height: 62%;
top: calc(var(--appBarHeight) * 2 + 1.25em);
user-select: none;
position: absolute;
left: var(--sidePadding);
overflow: visible;
}
.slide {
border: var(--defaultBorder);
border-radius: var(--largerRadius);
overflow: hidden;
transition: border 0s;
}
.logo-container {
top: 10vh;
}
.backdrop,
.backdrop-container,
.backdrop-overlay {
mask-image: none;
-webkit-mask-image: none;
}
.backdrop-overlay {
background: linear-gradient(0deg, rgba(0, 0, 0, 0.85), 40%, transparent);
}
.pause-button,
.volume-toggle {
top: 1em !important;
}
.separator-icon {
font-size: 5px;
color: var(--dimTextColor);
}
.dot {
border-radius: 0.25em;
width: 0.375em;
height: 0.375em;
transition: width 0.5s;
opacity: 0.5;
background-color: var(--textColor) !important;
}
.dot.active {
width: 2em;
transform: none;
}
@media only screen and (orientation: landscape) {
.button-container,
.dots-container,
.plot-container,
.genre,
.info-container {
top: unset;
}
.button-container {
bottom: 3em;
}
.dots-container {
bottom: 4.5em;
}
.plot-container {
height: 4em;
bottom: 7em;
}
.genre {
bottom: 12em;
}
.info-container {
bottom: 14em;
}
.logo-container {
top: 3%;
align-items: flex-end;
max-width: 35vw;
}
.gradient-overlay {
mask: none;
-webkit-mask: none;
background: linear-gradient(37deg, rgb(0 0 0 / 20%) 32%, rgb(29 29 29 / 7%) 47%, rgb(29 29 29 / 0%) 100%);
}
}
@media only screen and (max-width: 767px) and (orientation: portrait) {
.button-container {
bottom: 3em;
}
.tomato-rating,
.genre {
display: none;
}
.dots-container {
bottom: 6em;
}
.info-container {
bottom: 5em;
}
.logo-container {
top: calc(100% - 15em);
}
.backdrop {
transform-origin: center;
}
.left-arrow,
.right-arrow {
display: none !important;
}
.play-button {
order: 2;
}
}
@media (min-width: 75em) {
#slides-container {
top: calc(var(--appBarHeight) + 1.25em);
}
.layout-tv #slides-container {
top: calc(var(--appBarHeight) * 2 + 1.25em);
}
}
@media (min-width: 100em) {
.layout-tv #slides-container {
top: calc(var(--appBarHeight) + 1.25em);
}
}
@media only screen and (max-height: 767px) and (orientation: landscape) {
#slides-container {
height: 57%;
}
.logo-container {
top: 3%;
}
}
/* this styles the media bar plugin - end */
+17 -5
View File
@@ -1,4 +1,4 @@
# 🧩 Add-on: Custom media covers for ElegantFin # 🧩 Add-on: Custom Media Covers for ElegantFin
This is a Jellyfin add-on that allows you to customise My Media cover arts. This is an experimental feature, so limited support will be provided. This is a Jellyfin add-on that allows you to customise My Media cover arts. This is an experimental feature, so limited support will be provided.
@@ -54,6 +54,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--colorOverlayMixedCover: transparent; --colorOverlayMixedCover: transparent;
--colorOverlayRecordedmoviesCover: transparent; --colorOverlayRecordedmoviesCover: transparent;
--colorOverlayRecordedtvCover: transparent; --colorOverlayRecordedtvCover: transparent;
--colorOverlayAnimeCover: transparent;
--colorOverlaySportsCover: transparent;
--urlMoviesCover: transparent; --urlMoviesCover: transparent;
--urlTvshowsCover: transparent; --urlTvshowsCover: transparent;
--urlLivetvCover: transparent; --urlLivetvCover: transparent;
@@ -66,6 +68,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--urlMixedCover: transparent; --urlMixedCover: transparent;
--urlRecordedmoviesCover: transparent; --urlRecordedmoviesCover: transparent;
--urlRecordedtvCover: transparent; --urlRecordedtvCover: transparent;
--urlAnimeCover: transparent;
--urlSportsCover: transparent;
} }
``` ```
@@ -89,6 +93,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--colorOverlayMixedCover: transparent; --colorOverlayMixedCover: transparent;
--colorOverlayRecordedmoviesCover: transparent; --colorOverlayRecordedmoviesCover: transparent;
--colorOverlayRecordedtvCover: transparent; --colorOverlayRecordedtvCover: transparent;
--colorOverlayAnimeCover: transparent;
--colorOverlaySportsCover: transparent;
--urlMoviesCover: var(--cardBackgroundGradient); --urlMoviesCover: var(--cardBackgroundGradient);
--urlTvshowsCover: var(--cardBackgroundGradient); --urlTvshowsCover: var(--cardBackgroundGradient);
--urlLivetvCover: var(--cardBackgroundGradient); --urlLivetvCover: var(--cardBackgroundGradient);
@@ -101,6 +107,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--urlMixedCover: var(--cardBackgroundGradient); --urlMixedCover: var(--cardBackgroundGradient);
--urlRecordedmoviesCover: var(--cardBackgroundGradient); --urlRecordedmoviesCover: var(--cardBackgroundGradient);
--urlRecordedtvCover: var(--cardBackgroundGradient); --urlRecordedtvCover: var(--cardBackgroundGradient);
--urlAnimeCover: var(--cardBackgroundGradient);
--urlSportsCover: var(--cardBackgroundGradient);
} }
``` ```
@@ -127,6 +135,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--colorOverlayMixedCover: rgb(194, 58, 58); --colorOverlayMixedCover: rgb(194, 58, 58);
--colorOverlayRecordedmoviesCover: rgb(52, 52, 52); --colorOverlayRecordedmoviesCover: rgb(52, 52, 52);
--colorOverlayRecordedtvCover: rgb(120, 100, 28); --colorOverlayRecordedtvCover: rgb(120, 100, 28);
--colorOverlayAnimeCover: rgb(189, 203, 99);
--colorOverlaySportsCover: rgb(233, 126, 60);
--urlMoviesCover: linear-gradient(0deg, #313131, #585858 25%); --urlMoviesCover: linear-gradient(0deg, #313131, #585858 25%);
--urlTvshowsCover: linear-gradient(0deg, #313131, #585858 25%); --urlTvshowsCover: linear-gradient(0deg, #313131, #585858 25%);
--urlLivetvCover: linear-gradient(0deg, #313131, #585858 25%); --urlLivetvCover: linear-gradient(0deg, #313131, #585858 25%);
@@ -139,6 +149,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--urlMixedCover: linear-gradient(0deg, #313131, #585858 25%); --urlMixedCover: linear-gradient(0deg, #313131, #585858 25%);
--urlRecordedmoviesCover: linear-gradient(0deg, #313131, #585858 25%); --urlRecordedmoviesCover: linear-gradient(0deg, #313131, #585858 25%);
--urlRecordedtvCover: linear-gradient(0deg, #313131, #585858 25%); --urlRecordedtvCover: linear-gradient(0deg, #313131, #585858 25%);
--urlAnimeCover: linear-gradient(0deg, #313131, #585858 25%);
--urlSportsCover: linear-gradient(0deg, #313131, #585858 25%);
} }
``` ```
@@ -187,6 +199,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--colorOverlayMixedCover: rgb(); --colorOverlayMixedCover: rgb();
--colorOverlayRecordedmoviesCover: rgb(); --colorOverlayRecordedmoviesCover: rgb();
--colorOverlayRecordedtvCover: rgb(); --colorOverlayRecordedtvCover: rgb();
--colorOverlayAnimeCover: rgb();
--colorOverlaySportsCover: rgb();
<!-- cover images; input the url pointing to an image. --> <!-- cover images; input the url pointing to an image. -->
@@ -201,6 +215,8 @@ This is a Jellyfin add-on that allows you to customise My Media cover arts. This
--urlMixedCover: url(); --urlMixedCover: url();
--urlRecordedmoviesCover: url(); --urlRecordedmoviesCover: url();
--urlRecordedtvCover: url(); --urlRecordedtvCover: url();
--urlAnimeCover: url();
--urlSportsCover: url();
} }
@@ -245,7 +261,3 @@ Suppose you want to modify the Live TV cover art. You'll have to modify the vari
4. Click save. 4. Click save.
</details> </details>
<hr>
```
+1716
View File
File diff suppressed because it is too large. Load diff
+18
View File
@@ -0,0 +1,18 @@
{
"devDependencies": {
"css-declaration-sorter": "^7.4.0",
"cssnano": "^8.0.1",
"postcss": "^8.5.15",
"postcss-cli": "^11.0.1"
},
"scripts": {
"build:theme": "postcss ./Theme/ElegantFin-theme-nightly.css -o ./Theme/ElegantFin-jellyfin-theme-build-latest-minified.css",
"build:covers-addon": "postcss ./Theme/assets/add-ons/custom-media-covers-nightly.css -o ./Theme/assets/add-ons/custom-media-covers-latest-min.css",
"build:mediabar-addon": "postcss ./Theme/assets/add-ons/media-bar-plugin-support-nightly.css -o ./Theme/assets/add-ons/media-bar-plugin-support-latest-min.css",
"build:release": "npm run build:theme && npm run build:covers-addon && npm run build:mediabar-addon",
"watch:theme": "postcss ./Theme/ElegantFin-theme-nightly.css -o ./Theme/ElegantFin-theme-nightly-min.css --watch --verbose",
"watch:covers-addon": "postcss ./Theme/assets/add-ons/custom-media-covers-nightly.css -o ./Theme/assets/add-ons/custom-media-covers-nightly-min.css --watch --verbose",
"watch:mediabar-addon": "postcss ./Theme/assets/add-ons/media-bar-plugin-support-nightly.css -o ./Theme/assets/add-ons/media-bar-plugin-support-nightly-min.css --watch --verbose",
"watch:fixes-addon": "postcss ./Theme/assets/add-ons/seamless-fork-compatibility-nightly.css -o ./Theme/assets/add-ons/seamless-fork-compatibility-nightly-min.css --watch --verbose"
}
}
+22
View File
@@ -0,0 +1,22 @@
const cssDeclarationSorter = require('css-declaration-sorter');
const cssnano = require('cssnano');
module.exports = {
plugins: [
cssDeclarationSorter({
keepOverrides: true,
order: (a, b) => {
const aVar = a.startsWith('--');
const bVar = b.startsWith('--');
if (aVar && !bVar) return -1;
if (!aVar && bVar) return 1;
return a.localeCompare(b);
},
}),
cssnano({
preset: 'default',
}),
],
};