8 Commits
Author SHA1 Message Date
lscambo13 4ca034b146 Fix: Tweaked the width of 'My Media (Small)' buttons 2026-03-27 16:45:04 +05:30
lscambo13 4c3a546a73 dev: reworked how cards are sized on phones
- this optimises the layout with increased card sizes without altering their count
- this allows getting rid of many workarounds for alignment of section headings
- this approach uses css 'gap' like on desktop
- it also makes the layout more predictable/consistent
2026-03-27 16:44:08 +05:30
lscambo13 8f50558039 New: 'Continue Watching' cards are now bigger than other cards
- the scale factor is configurable using '--resumeCardScale'
2026-03-27 16:27:26 +05:30
lscambo13 72289a9091 Fix: Items container in Collections was displayed in the wrong order 2026-03-27 16:20:55 +05:30
lscambo13 582e405207 Fix: Single-column layout wasn't being forced correctly on phones 2026-03-27 16:19:43 +05:30
lscambo13 869168e914 New: Increased margin between the home button and top of the app drawer 2026-03-27 16:18:28 +05:30
lscambo13 58dc3909e6 New: Increased backdrop card sizes on TV and Desktop 2026-03-27 16:09:04 +05:30
lscambo13 a68da7fe93 Fix: Made all indicators consistently small 2026-03-27 16:05:18 +05:30
+72 -83
View File
@@ -157,6 +157,10 @@
/* use 10% to crop the top 10% of a backdrop image on a 16:9 screen (recommended) [default]; /* use 10% to crop the top 10% of a backdrop image on a 16:9 screen (recommended) [default];
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.0 to disable this effect */
--resumeCardScale: 1.25;
} }
html { html {
@@ -179,7 +183,6 @@ body {
} }
.layout-mobile { .layout-mobile {
--itemColumnGap: 0;
--headerColorGradient: var(--headerColorGradientAlt); --headerColorGradient: var(--headerColorGradientAlt);
--blurLargest: blur(12px); --blurLargest: blur(12px);
--headerBlurMask: linear-gradient(180deg, white 60%, 90%, transparent); --headerBlurMask: linear-gradient(180deg, white 60%, 90%, transparent);
@@ -325,7 +328,7 @@ body {
border: var(--defaultLighterBorder); border: var(--defaultLighterBorder);
} }
.layout-mobile .countIndicator { .layout-mobile .indicator {
font-size: 70%; font-size: 70%;
} }
@@ -707,7 +710,7 @@ body {
} }
} }
/* 12 posters, 9 thumbs, 4K*/ /* 12 posters, 9 thumbs, 2160p*/
@media (max-width: 220em) { @media (max-width: 220em) {
.portraitCard, .portraitCard,
.squareCard { .squareCard {
@@ -723,12 +726,9 @@ body {
--cardCount: 9; --cardCount: 9;
} }
.backdropCard { .backdropCard,
--cardCount: 9;
}
.overflowBackdropCard { .overflowBackdropCard {
--cardCount: 8; --cardCount: 7;
} }
} }
@@ -748,16 +748,13 @@ body {
--cardCount: 9; --cardCount: 9;
} }
.backdropCard { /* .backdropCard,
--cardCount: 9;
}
.overflowBackdropCard { .overflowBackdropCard {
--cardCount: 8; --cardCount: 7;
} } */
} }
/* 10 posters, 8 thumbs */ /* 10 posters, 8 thumbs, 1440p */
@media (max-width: 170em) { @media (max-width: 170em) {
.portraitCard, .portraitCard,
.squareCard { .squareCard {
@@ -773,12 +770,9 @@ body {
--cardCount: 9; --cardCount: 9;
} }
.backdropCard { .backdropCard,
--cardCount: 8;
}
.overflowBackdropCard { .overflowBackdropCard {
--cardCount: 7; --cardCount: 6;
} }
} }
@@ -798,12 +792,9 @@ body {
--cardCount: 7; --cardCount: 7;
} }
.backdropCard { .backdropCard,
--cardCount: 7;
}
.overflowBackdropCard { .overflowBackdropCard {
--cardCount: 6; --cardCount: 5;
} }
} }
@@ -819,28 +810,22 @@ body {
--cardCount: 7; --cardCount: 7;
} }
.layout-tv .portraitCard,
.layout-tv .squareCard,
.layout-tv .overflowPortraitCard,
.layout-tv .overflowSquareCard {
--cardCount: 6;
}
.squareCard:has(.cardFooter) { .squareCard:has(.cardFooter) {
--cardCount: 6; --cardCount: 6;
} }
.backdropCard { .backdropCard,
--cardCount: 6; .layout-tv .portraitCard,
} .layout-tv .squareCard,
.layout-tv .overflowPortraitCard,
.layout-tv .overflowSquareCard,
.overflowBackdropCard { .overflowBackdropCard {
--cardCount: 5; --cardCount: 5;
} }
.layout-tv .backdropCard, .layout-tv .backdropCard,
.layout-tv .overflowBackdropCard { .layout-tv .overflowBackdropCard {
--cardCount: 4; --cardCount: 3;
} }
} }
@@ -857,12 +842,9 @@ body {
--cardCount: 6; --cardCount: 6;
} }
.backdropCard { .backdropCard,
--cardCount: 6;
}
.overflowBackdropCard { .overflowBackdropCard {
--cardCount: 5; --cardCount: 4;
} }
} }
@@ -947,7 +929,11 @@ body {
} }
.layout-mobile .card { .layout-mobile .card {
--sidePadding: 5%; padding: 0;
}
.cardBox {
margin-top: 0;
} }
.card { .card {
@@ -967,9 +953,15 @@ body {
} }
.layout-mobile .card { .layout-mobile .card {
--effectiveWidth: calc((91vw - (var(--sidePadding) * 2)));
--cardWidth: calc(var(--effectiveWidth) / var(--cardCount)); --cardWidth: calc(var(--effectiveWidth) / var(--cardCount));
} }
.layout-mobile .backdropCard,
.layout-mobile .overflowBackdropCard {
--effectiveWidth: calc((94vw - (var(--sidePadding) * 2)));
}
/* this makes the card sizes smaller when phone is in landscape mode */ /* this makes the card sizes smaller when phone is in landscape mode */
@media (orientation: landscape) and (max-height: 40em) { @media (orientation: landscape) and (max-height: 40em) {
.layout-mobile .card { .layout-mobile .card {
@@ -977,6 +969,12 @@ body {
} }
} }
#homeTab .overflowBackdropCard[data-positionticks],
.nextUpItems > .card,
#resumableItems > .card {
width: calc(var(--cardWidth) * var(--resumeCardScale)) !important;
}
.detailPageWrapperContainer { .detailPageWrapperContainer {
padding-top: unset; padding-top: unset;
margin-top: unset; margin-top: unset;
@@ -1080,16 +1078,11 @@ body {
font-size: 1.25em; font-size: 1.25em;
} }
.verticalSection.emby-scroller-container > h2.sectionTitle.sectionTitle-cards {
padding-top: 1.25em !important;
margin: 0 0 -0.5em 0;
}
#itemDetailPage .emby-scroller-container, #itemDetailPage .emby-scroller-container,
#itemDetailPage .emby-scroller, #itemDetailPage .emby-scroller,
#itemDetailPage .scrollX { #itemDetailPage .scrollX {
margin: 0 calc(-1 * var(--sidePadding)); margin: 0 calc(-1 * var(--sidePadding));
padding-left: calc(var(--sidePadding) - 0.375em); padding-left: calc(var(--sidePadding));
/* mask-image: linear-gradient(90deg, transparent, white var(--sidePadding), white calc(100vw - var(--sidePadding)), transparent); */ /* mask-image: linear-gradient(90deg, transparent, white var(--sidePadding), white calc(100vw - var(--sidePadding)), transparent); */
} }
@@ -1101,7 +1094,7 @@ body {
.emby-scroller, .emby-scroller,
.scrollX { .scrollX {
padding-left: calc(var(--sidePadding) - 0.375em); padding-left: calc(var(--sidePadding));
} }
.sectionTabs .scrollX { .sectionTabs .scrollX {
@@ -1110,6 +1103,7 @@ body {
.itemsContainer:not(.editorsChoiceItemsContainer) { .itemsContainer:not(.editorsChoiceItemsContainer) {
column-gap: var(--itemColumnGap); column-gap: var(--itemColumnGap);
row-gap: 1em;
} }
.layout-desktop .sectionTitle, .layout-desktop .sectionTitle,
@@ -1119,10 +1113,6 @@ body {
.emby-scrollbuttons, .emby-scrollbuttons,
[dir="ltr"] .emby-scrollbuttons { [dir="ltr"] .emby-scrollbuttons {
padding-top: 1.25em;
}
.sectionTitleContainer + .emby-scrollbuttons {
padding-top: 0; padding-top: 0;
} }
@@ -1461,15 +1451,16 @@ body {
font-size: 3.5em; font-size: 3.5em;
} }
@media (max-width: 50em) { .homeLibraryButton {
.homeLibraryButton { width: min(45%, 12rem);
width: 45.6% !important; min-width: 15%;
} margin: 0 !important;
} }
.homeLibraryButton { @media (max-width: 50em) {
padding-inline-start: 0.25em; .homeLibraryButton {
min-width: 15%; width: 47.6% !important;
}
} }
@media (orientation: portrait) and (max-width: 40em) { @media (orientation: portrait) and (max-width: 40em) {
@@ -1814,6 +1805,10 @@ progress + span {
padding-bottom: 5vh; padding-bottom: 5vh;
} }
.mainDrawer-scrollContainer > div:first-child {
margin-bottom: 1em;
}
.btnHeaderSave.button-flat { .btnHeaderSave.button-flat {
color: var(--uiAccentColor) !important; color: var(--uiAccentColor) !important;
gap: 0.3em; gap: 0.3em;
@@ -2699,12 +2694,12 @@ div[data-role="controlgroup"] a.ui-btn-active {
row-gap: 1em; row-gap: 1em;
column-gap: 3em; column-gap: 3em;
max-width: unset !important; max-width: unset !important;
grid-template-columns: 25% 1fr 1fr 1fr; grid-template-columns: 1.3fr 0.7fr 1fr 1fr;
margin-bottom: 1.5em; margin-bottom: 1.5em;
} }
.layout-mobile .detailSection { .layout-mobile .detailSection {
grid-template-columns: 1fr; grid-template-columns: 1fr !important;
} }
.detailPageContent { .detailPageContent {
@@ -2875,6 +2870,10 @@ div[data-role="controlgroup"] a.ui-btn-active {
grid-column: 1 / -1; grid-column: 1 / -1;
} }
.collectionItems {
order: 2;
}
.programGuideSection:not(.hide) { .programGuideSection:not(.hide) {
order: -1; order: -1;
margin-top: 2em; margin-top: 2em;
@@ -2913,6 +2912,10 @@ div[data-role="controlgroup"] a.ui-btn-active {
height: 70%; height: 70%;
} }
.layout-mobile .alphaPicker-vertical {
right: 0 !important;
}
.alphaPicker { .alphaPicker {
justify-content: center; justify-content: center;
} }
@@ -2930,20 +2933,6 @@ div[data-role="controlgroup"] a.ui-btn-active {
padding-right: var(--sidePadding) !important; padding-right: var(--sidePadding) !important;
} }
/* .padded-left {
padding-left: var(--sidePadding) !important;
} */
.layout-mobile .padded-right-withalphapicker {
padding-left: 4.5%;
padding-right: 6.5%;
}
/* test disabled for 10.11.0 */
/* .detailPagePrimaryContent.padded-right {
padding-right: 0 !important;
} */
[dir="ltr"] .detailPageContent, [dir="ltr"] .detailPageContent,
.content-primary { .content-primary {
padding-left: var(--sidePadding) !important; padding-left: var(--sidePadding) !important;
@@ -2999,6 +2988,11 @@ div[data-role="controlgroup"] a.ui-btn-active {
background: var(--selectorBackgroundColor) !important; background: var(--selectorBackgroundColor) !important;
} }
.verticalSection {
margin-top: 0.5em;
margin-bottom: 1em;
}
.sectionTitleTextButton { .sectionTitleTextButton {
padding: 0 0.5em; padding: 0 0.5em;
} }
@@ -3013,7 +3007,7 @@ div[data-role="controlgroup"] a.ui-btn-active {
.sectionTitleContainer-cards { .sectionTitleContainer-cards {
padding-top: 0; padding-top: 0;
margin: 0.75em 0 -0.75em 0; padding-bottom: 0.2em;
} }
.sectionTitleTextButton > * { .sectionTitleTextButton > * {
@@ -3028,11 +3022,6 @@ div[data-role="controlgroup"] a.ui-btn-active {
max-width: 88vw; max-width: 88vw;
} }
/* this is needed for alignment of non-clickable section headings on phones */
.layout-mobile :not(.sectionTitleContainer-cards) > .sectionTitle-cards {
margin: 0.75em 0 -0.75em 0;
}
.dashboardSection .sectionTitleTextButton > .material-icons, .dashboardSection .sectionTitleTextButton > .material-icons,
.sectionTitleTextButton > .material-icons, .sectionTitleTextButton > .material-icons,
.dashboardSection .sectionTitleTextButton > .material-icons.material-icons { .dashboardSection .sectionTitleTextButton > .material-icons.material-icons {