Compare commits

...

29 Commits
v1.4.7 ... main

Author SHA1 Message Date
loof2736
d69ca9a5c5 Update README 2025-10-25 17:32:05 -04:00
loof2736
15baa1ba63 Update install instructions for 10.11.X 2025-10-25 17:30:45 -04:00
loof2736
b5f2fee628 Merge branch 'main' of github.com:loof2736/scyfin 2025-10-22 17:32:40 -04:00
loof2736
a6963bb1b5 Update home button selector to only re-enable button where it was previously visible 2025-10-22 17:32:26 -04:00
Josh Wilberger
caf1875ecb
Remove dashboard image from README
Removed dashboard image from README.
2025-10-20 18:58:30 -04:00
loof2736
d43d697a15 Fix for details page on 10.11.X 2025-10-20 18:54:29 -04:00
loof2736
d9b6ecc0a5 Fix alignment of cancel button on login page for JMP 2025-08-24 21:47:38 -04:00
loof2736
dcfea25d62 Fixed top padding on description box when media info not present 2025-08-17 20:19:04 -04:00
loof2736
5fff995570 Modify styling of dashboard navigation dropdowns 2025-08-10 00:11:04 -04:00
loof2736
a587163d43 Fix for TV layout jumping left when selecting certain items 2025-08-09 23:46:13 -04:00
loof2736
0d6f173b43 Added background to dashboard dropdown navigation buttons 2025-08-09 11:56:06 -04:00
loof2736
e49cb8308c Modify padding of textarea elements 2025-08-09 10:28:29 -04:00
Josh Wilberger
24a5320302
Update README.md 2025-08-09 10:01:31 -04:00
loof2736
abe98d6d59 Modified alignment of cards on details page for mobile 2025-05-17 13:21:30 -04:00
loof2736
00363ff09f Rounded album art on music player to match rest of theme 2025-05-17 12:53:07 -04:00
loof2736
f7ae6d2dab Fix progress bar for miniplayer on mobile 2025-05-17 12:52:21 -04:00
loof2736
569894124c Fixed section title alignment on collection detail page 2025-03-31 19:52:45 -04:00
loof2736
dfbffb40c5 Modify link selector 2025-03-31 19:48:23 -04:00
loof2736
940c08f9c5 Refactoring to support JMP's ancient version of Chrome 2025-03-30 22:04:21 -04:00
loof2736
51ca34070e Fix padding for "cancel" button on login screen if there is no login disclaimer 2025-03-30 21:23:31 -04:00
loof2736
11fd7f77df Hide home and hamburger icon on login screen 2025-03-30 21:13:49 -04:00
loof2736
2522bb8723 Hide drawer pseudo-element for JMP 2025-03-30 20:43:21 -04:00
loof2736
d041906f55 Updated progress bar selector 2025-03-30 20:34:37 -04:00
loof2736
a5d4ab2214 Fix alignment for "Plugins" section of dashboard 2025-02-10 22:13:39 -05:00
loof2736
f09b19998c Updated list item crop setting #40 2024-11-30 14:32:20 -05:00
loof2736
1f055e932c Fixed mobile header scaling on small devices #39 2024-11-30 14:31:21 -05:00
loof2736
a430a08030 Modify player button icons 2024-11-03 13:24:15 -05:00
loof2736
40db1a491b Fixed accent colors not applying correctly in Chromium browsers 2024-09-11 15:54:30 -04:00
loof2736
bddcc14032 Slightly darken alt colors for readability 2024-09-11 15:53:55 -04:00
6 changed files with 224 additions and 46 deletions

View File

@ -27,6 +27,9 @@
background: var(--secondary-background-color) !important;
backdrop-filter: none !important;
}
.layout-desktop #itemDetailPage.noBackdropTransparency::after {
display: none !important;
}
}
/* Lower drawer buttons */
@ -49,7 +52,7 @@
}
/* Show hamburger button */
.layout-desktop .mainDrawerButton:not(.dashboardDocument) {
.layout-desktop body:not(.hideMainDrawer) .mainDrawerButton:not(.dashboardDocument) {
display: inline-flex !important;
}
@ -69,11 +72,11 @@
margin-left: 0px !important;
}
/* Hide home button */
.layout-desktop .headerHomeButton {
/* Re-enable home button */
.layout-desktop body:not(.hideMainDrawer) .skinHeader:not(.noHomeButtonHeader) .headerHomeButton {
display: block !important;
}
.layout-desktop .dashboardDocument .headerHomeButton {
.layout-desktop body:not(.hideMainDrawer) .dashboardDocument .headerHomeButton {
display: block !important;
}
@ -83,7 +86,7 @@
}
/* Background for top left buttons */
.layout-desktop .headerLeft:not(.libraryDocument:has(.videoPlayerContainer) .headerLeft) {
.layout-desktop body:not(.hideMainDrawer) .headerLeft:not(.libraryDocument:has(.videoPlayerContainer) .headerLeft) {
padding: 2px !important;
top: -3px !important;
background-color: var(--primary-background-transparent) !important;
@ -92,7 +95,7 @@
}
/* Fix for JMP */
@supports not selector(:has(*)) {
.layout-desktop .headerLeft {
.layout-desktop body:not(.hideMainDrawer) .headerLeft {
padding: 2px !important;
top: -3px !important;
background-color: var(--primary-background-transparent) !important;

View File

@ -25,12 +25,16 @@
.selectionCommandsPanel,
.countIndicator,
.MuiButton-root.MuiButton-containedSizeMedium,
.MuiChip-root.MuiChip-colorInfo:not(.MuiChip-root.MuiChip-colorError),
progress::-moz-progress-bar,
progress::-webkit-progress-value,
.MuiChip-root.MuiChip-colorInfo:not(.MuiChip-colorError),
progress[aria-valuenow]:before {
background: var(--primary-accent-color) !important;
}
progress::-moz-progress-bar {
background: var(--primary-accent-color) !important;
}
progress::-webkit-progress-value {
background: var(--primary-accent-color) !important;
}
.MuiAlert-root.MuiAlert-standardInfo {
background: var(--secondary-accent-color) !important;
}
@ -46,7 +50,7 @@ progress[aria-valuenow]:before {
.progressring-spiner {
border-color: var(--primary-accent-color) !important;
}
.button-link:not(.itemDetailPage .button-link),
.page:not(.itemDetailPage) .button-link,
.selectLabelFocused,
.textareaLabelFocused,
.inputLabelFocused,
@ -131,14 +135,13 @@ progress[aria-valuenow]:before {
.layout-desktop .hideMainDrawer .mainDrawer {
left: -320px !important;
}
/* Fix for scroll menus on home page */
.emby-scroller {
margin-right: -2% !important;
}
/* Fix for collection items misalignment */
.layout-desktop .collectionItems .collectionItemsContainer {
padding-left: 0% !important;
}
.layout-desktop .collectionItems .sectionTitleContainer {
padding-left: 0% !important;
}
/* Dynamic buttons */
.layout-desktop .navMenuOption:hover:not(.navMenuOption-selected) {
transform: scale(1.05) !important;
@ -159,7 +162,8 @@ progress[aria-valuenow]:before {
.cardOverlayContainer,
.blurhash-canvas,
.dialog,
.itemSelectionPanel {
.itemSelectionPanel,
.nowPlayingPageImage {
border-radius: var(--rounded-cards) !important;
}
/* Rounded selection menu */
@ -202,7 +206,7 @@ progress[aria-valuenow]:before {
.innerCardFooter .cardText {
padding: 0 0 0 10px !important
}
.itemProgressBarForeground:not(.playbackProgress .itemProgressBarForeground):not(.transcodingProgress .itemProgressBarForeground):not(.backgroundProgress .itemProgressBarForeground) {
.cardImageContainer .innerCardFooter .itemProgressBar .itemProgressBarForeground {
background: var(--primary-accent-color) !important;
}
.itemProgressBarForeground {
@ -337,6 +341,7 @@ html,
margin-left: auto !important;
margin-right: auto !important;
width: auto !important;
max-width: 100% !important;
}
.layout-mobile .emby-button-foreground {
top: -2px !important;
@ -369,6 +374,30 @@ html,
.layout-mobile .headroom--not-top:has(.headerTabs.sectionTabs:not(.hide)) .headerRight {
background: var(--primary-background-transparent) !important;
}
@media (max-width: 380px) {
.layout-mobile .pageTitle:not(.pageTitleWithLogo):not(:empty) {
position: absolute !important;
margin-left: 50% !important;
transform: translate(-50%, 0) !important;
top: 60px !important;
}
.layout-mobile .headerTop:has(.pageTitle:not(.pageTitleWithLogo):not(:empty)) {
-webkit-align-items: start !important;
align-items: start !important;
}
.layout-mobile .skinHeader:has(.pageTitle:not(.pageTitleWithLogo):not(:empty)) {
height: 110px !important;
}
.layout-mobile .skinHeader:has(.pageTitle:not(.pageTitleWithLogo):not(:empty)):has(.sectionTabs:not(.hide)) {
height: 140px !important;
}
.layout-mobile .libraryPage:not(.noSecondaryNavPage) {
padding-top: 9.5em !important;
}
.layout-mobile .headroom--unpinned:has(.headerTabs.sectionTabs:not(.hide)):has(.pageTitle:not(.pageTitleWithLogo):not(:empty)) {
transform: translateY(-60%);
}
}
@ -397,28 +426,49 @@ html,
top: 25px !important;
backdrop-filter: unset !important;
}
.mdl-slider-background-flex {
@supports selector(div:not(.parent .child)) {
.mdl-slider-background-flex:not(.layout-mobile .nowPlayingBar .mdl-slider-background-flex) {
height: 10px !important;
margin-top: -5px !important;
border-radius: 100px !important;
background: hsla(0,0%,100%,.2) !important;
}
}
@supports not selector(div:not(.parent .child)) {
.mdl-slider-background-flex {
height: 10px !important;
margin-top: -5px !important;
border-radius: 100px !important;
background: hsla(0,0%,100%,.2) !important;
}
}
.mdl-slider-background-lower {
border-radius: 100px !important;
background-color: var(--primary-accent-color) !important;
}
.mdl-slider::-moz-range-thumb,
/* Moz */
.mdl-slider::-moz-range-thumb {
background: #ffffff00 !important;
height: 10px !important;
width: 8px !important;
border-radius: 2px !important;
}
.mdl-slider-hoverthumb:hover::-moz-range-thumb {
transform: scaleY(2);
background: #fff !important;
}
/* Webkit */
.mdl-slider::-webkit-slider-thumb {
background: #ffffff00 !important;
height: 10px !important;
width: 8px !important;
border-radius: 2px !important;
}
.mdl-slider-hoverthumb:hover::-moz-range-thumb,
.mdl-slider-hoverthumb:hover::-webkit-slider-thumb {
transform: scaleY(2);
background: #fff !important;
}
.mdl-slider-background-upper {
border-top-right-radius: 100px !important;
border-bottom-right-radius: 100px !important;
@ -461,7 +511,7 @@ html,
/* Support for IntroSkipper plugin */
#skipIntro .btnSkipIntro {
transition: 0.2s;
border-radius: var(--rounded-cards) !important;
border-radius: 100px !important;
backdrop-filter: blur(var(--blur)) !important;
}
#skipIntro .btnSkipIntro:hover {
@ -490,6 +540,16 @@ html,
#skipIntro .upNextContainer {
padding: 0px !important;
}
#skipIntro .emby-button {
background: rgba(30, 30, 30, 0.7) !important;
}
#skipIntro .emby-button:hover {
box-shadow: 0 0 8px rgba(var(--primary-accent-color), 0.6) !important;
}
#skipIntro .emby-button:focus {
background: rgba(30, 30, 30, 0.7) !important;
box-shadow: unset !important;
}
/* Support for InPlayerEpisodePreview plugin */
.layout-desktop #popupFocusContainer {
padding: 10px !important;
@ -510,6 +570,17 @@ html,
padding: .25em .25em .25em .5em !important;
}
/* Modify player buttons */
.material-icons.fast_rewind::before {
content: "\e059";
}
.material-icons.fast_forward::before {
content: "\e057";
}
.material-icons.audiotrack::before {
content: "\e91f";
}
/* Settings and dashboard modifications */
@ -638,6 +709,11 @@ html,
width: 85% !important;
margin-inline: auto !important;
}
/* Fix for plugins section of dashboard */
[aria-labelledby="plugins-subheader"].MuiList-subheader .MuiListItemButton-root.MuiListItemButton-gutters {
width: 85% !important;
margin-inline: auto !important;
}
.MuiList-subheader .MuiListItemButton-root.MuiListItemButton-gutters {
border-radius: 100px !important;
margin: 2px 0px !important;
@ -700,6 +776,33 @@ html,
.defaultCardBackground5 {
background-color: var(--primary-alt5) !important;
}
/* Modify padding for textarea items so the bottom isn't cut off */
textarea {
padding-bottom: 10px !important;
}
/* Background behind dashboard dropdown navigation buttons */
@supports selector(:has(*)) {
.MuiListItem-root:has(.MuiSvgIcon-root[data-testid^="Expand"])::before {
content: '';
position: absolute;
background: #121212;
inset: 1px -5px 0px -5px;
border-radius: 25px;
opacity: 0;
transition: inset 0.25s ease-out, opacity 0.01s 0.25s;
}
.MuiListItem-root:has(.MuiSvgIcon-root[data-testid="ExpandLessIcon"])::before {
inset: 0px -5px -190px -5px;
opacity: 1;
transition: inset 0.25s ease-out, opacity 0.01s;
}
.MuiListItemButton-root:has(.MuiSvgIcon-root[data-testid="ExpandLessIcon"]) {
transform: scale(1.05) !important;
}
.MuiCollapse-root.MuiCollapse-vertical.MuiCollapse-entered {
padding-bottom: 5px !important;
}
}
@ -733,8 +836,13 @@ html,
/* Resize show/movie image on details page */
.layout-desktop .detailImageContainer .card {
top: 9em !important;
top: 1.8em !important;
width: 18.3vw !important;
position: absolute !important;
}
/* Legacy style to not break pre-10.11.X */
.layout-desktop .infoWrapper .detailImageContainer .card {
top: 9em !important;
}
/* Re-position content on details page */
@ -743,6 +851,7 @@ html,
}
.layout-desktop .detailPageContent {
padding-left: 3.3% !important;
padding-right: 0 !important;
}
/* Re-position logo */
@ -789,6 +898,9 @@ html,
padding: 15px 20px 5px 20px !important;
border-radius: var(--rounded-cards) !important;
}
.layout-mobile .detailPageContent {
padding-right: 0 !important;
}
/* Add card around description */
.layout-desktop .detailSectionContent {
@ -797,6 +909,11 @@ html,
padding: 40px 20px 10px 20px !important;
margin-top: 50px !important;
}
@supports selector(:has(*)) {
.layout-desktop .detailPageWrapperContainer:not(:has(.itemMiscInfo-primary .mediaInfoItem)) .detailSectionContent {
padding: 0px 20px 10px 20px !important;
}
}
.layout-mobile .detailSectionContent {
background: var(--secondary-background-color) !important;
border-radius: var(--rounded-cards) !important;
@ -825,6 +942,10 @@ html,
.layout-desktop .detailPagePrimaryContainer {
padding-left: 3.3% !important;
}
/* Fix for title position on 10.11.X */
.layout-desktop [dir="ltr"] .detailPagePrimaryContainer:not(.detailRibbon) .detailRibbon {
padding-left: unset !important;
}
.layout-desktop .nameContainer {
position: absolute !important;
margin-top: -48px !important;
@ -839,6 +960,9 @@ html,
.layout-desktop .detailPagePrimaryContent {
padding-left: 20.4vw !important;
}
.layout-mobile .detailPagePrimaryContent {
padding-right: 5% !important;
}
/* Padding for 2:3 posters */
.layout-desktop .detailPageWrapperContainer:has(.detailImageContainer .portraitCard) .detailPagePrimaryContent {
min-height: 29vw !important;
@ -931,6 +1055,18 @@ html,
-webkit-flex-direction: row !important;
flex-direction: row !important;
}
/* Change crop for list item images */
.listItemImage {
background-size: contain !important;
border-radius: var(--rounded-cards);
}
/* Move up content if no backdrop image is present - I might make this work at some point, right now it causes the page to jump around when it is loading
@supports selector(:has(*)) {
.layout-desktop:not(:has(.backdropContainer .backdropImage)) #itemBackdrop {
height: 20vh !important;
}
}
*/
@ -1032,6 +1168,11 @@ html,
border-radius: 25px !important;
padding: 50px !important;
}
/* Fix padding if login disclaimer is not present */
.layout-desktop #loginPage .padded-left.padded-right.padded-bottom-page.margin-auto-y:not(:has(.loginDisclaimer p)) {
padding-bottom: 100px !important;
}
/* Move cancel button */
.layout-desktop #loginPage .manualLoginForm .btnCancel {
position: absolute !important;
background: none !important;
@ -1040,6 +1181,12 @@ html,
margin-top: 70px !important;
text-align: left !important;
}
/* Shift cancel button on JMP */
@supports not selector(:has(*)) {
.layout-desktop #loginPage .manualLoginForm .btnCancel {
margin-top: 115px !important;
}
}
.layout-desktop #loginPage .visualLoginForm {
position: relative !important;
background: var(--secondary-background-color) !important;

View File

@ -4,6 +4,13 @@
--primary-b: 239;
--primary-accent-color: rgba(var(--primary-r), var(--primary-g), var(--primary-b), 1.0);
--secondary-accent-color: rgba(232, 236, 239, 0.2);
/* Alternate accents*/
--primary-alt1: rgb(calc(var(--primary-r) - 30), calc(var(--primary-g) - 30), calc(var(--primary-b) - 30), 0.85);
--primary-alt2: rgb(calc(var(--primary-r) - 30), calc(var(--primary-g) - 30), calc(var(--primary-b) - 30), 0.7);
--primary-alt3: rgb(calc(var(--primary-r) - 30), calc(var(--primary-g) - 30), calc(var(--primary-b) - 30), 0.55);
--primary-alt4: rgb(calc(var(--primary-r) - 30), calc(var(--primary-g) - 30), calc(var(--primary-b) - 30), 0.4);
--primary-alt5: rgb(calc(var(--primary-r) - 30), calc(var(--primary-g) - 30), calc(var(--primary-b) - 30), 0.25);
}
.layout-desktop .button-submit,
@ -11,3 +18,7 @@
.layout-desktop .countIndicator {
color: var(--secondary-background-color) !important;
}
#skipIntro .emby-button:hover {
color: #000 !important;
}

View File

@ -7,35 +7,52 @@
---
### **Scyfin Base Theme**
```
@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/scyfin-theme.css');
```
<img src="./images/homepage.png" alt="homepage" width="100%"/>
<img src="./images/homepage-backdrops.png" alt="homepage-backdrops" width="100%"/>
<img src="./images/details.png" alt="details" width="100%"/>
<img src="./images/details-backdrops.png" alt="details-backdrops" width="100%"/>
<img src="./images/movies.png" alt="movies" width="100%"/>
<img src="./images/dashboard.png" alt="dashboard" width="100%"/>
<img src="./images/login.png" alt="login" width="100%"/>
### Base Theme
`@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/scyfin-theme.css');`
---
### Options (Add these below the base theme)
- Disable static left drawer
- `@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/disable-static-drawer.css');`
- Themes:
- Seafoam
- `@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-seafoam.css');`
- <img src="./images/seafoam.png" alt="seafoam-theme" width="40%"/>
- Coral
- `@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-coral.css');`
- <img src="./images/coral.png" alt="coral-theme" width="40%"/>
- Snow
- `@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-snow.css');`
- <img src="./images/snow.png" alt="snow-theme" width="40%"/>
- OLED
- `@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-oled.css');`
- <img src="./images/homepage-oled.png" alt="homepage-oled" width="100%"/>
- <img src="./images/details-oled.png" alt="details-oled" width="100%"/>
### **Options (Add these below the base theme)**
### Disable static left drawer
```
@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/disable-static-drawer.css');
```
---
### **Themes:**
### Seafoam
```
@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-seafoam.css');
```
<img src="./images/seafoam.png" alt="seafoam-theme" width="40%"/>
### Coral
```
@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-coral.css');
```
<img src="./images/coral.png" alt="coral-theme" width="40%"/>
### Snow
```
@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-snow.css');
```
<img src="./images/snow.png" alt="snow-theme" width="40%"/>
### OLED
```
@import url('https://cdn.jsdelivr.net/gh/loof2736/scyfin@latest/CSS/theme-oled.css');
```
<img src="./images/homepage-oled.png" alt="homepage-oled" width="90%"/>
<img src="./images/details-oled.png" alt="details-oled" width="90%"/>
---
@ -46,7 +63,7 @@
**Server-wide install:**
* Click the hamburger icon (Top left)
* Navigate to "Dashboard" (If you don't see this, make sure you are signed in to your admin account)
* Navigate to "General"
* Navigate to "Branding"
* Near the bottom, under "Custom CSS code", paste the `@import url` for the base Scyfin theme
* Example:
* <img src="./images/install-server-base.png" alt="install-server-base" width="80%"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 23 KiB