1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge pull request #823 from MrTimscampi/details-rework

Details page artwork ribbon revamp
This commit is contained in:
dkanada 2020-03-04 16:23:36 +09:00 committed by GitHub
commit a44a9c0d7a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 122 additions and 77 deletions

View file

@ -29,7 +29,7 @@ h3 {
} }
.layout-tv { .layout-tv {
font-size: 2.5vh; font-size: 130%;
} }
.layout-mobile { .layout-mobile {

View file

@ -439,10 +439,42 @@
background-size: cover; background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
background-attachment: fixed;
height: 50vh; height: 50vh;
position: relative; position: relative;
} }
.layout-desktop .itemBackdrop::after,
.layout-tv .itemBackdrop::after {
content: "";
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.65);
display: block;
}
.layout-desktop .noBackdrop .itemBackdrop,
.layout-tv .noBackdrop .itemBackdrop {
display: none;
}
.detailPageContent {
display: flex;
flex-direction: column;
padding-left: 2%;
padding-right: 2%;
}
.layout-desktop .noBackdrop .detailPageContent,
.layout-tv .noBackdrop .detailPageContent {
margin-top: 2.5em;
}
.layout-desktop .noBackdrop .detailImageContainer img,
.layout-tv .noBackdrop .detailImageContainer img {
margin-top: 0;
}
.personBackdrop { .personBackdrop {
background-size: contain; background-size: contain;
} }
@ -509,8 +541,6 @@
display: flex; display: flex;
align-items: center; align-items: center;
align-content: center; align-content: center;
position: sticky;
top: 3.85em;
z-index: 2; z-index: 2;
} }
@ -520,13 +550,21 @@
top: 0; top: 0;
} }
.layout-tv .detailPagePrimaryContainer { .layout-tv #itemDetailPage:not(.noBackdrop) .detailPagePrimaryContainer,
.layout-desktop #itemDetailPage:not(.noBackdrop) .detailPagePrimaryContainer {
position: relative; position: relative;
top: 0; top: 0;
padding-left: 32.45vw;
} }
.detailSticky { .layout-desktop .detailSticky,
background-color: #101010; .layout-tv .detailSticky {
margin-top: -7.2em;
}
.layout-desktop .noBackdrop .detailSticky,
.layout-tv .noBackdrop .detailSticky {
margin-top: 0;
} }
.infoWrapper { .infoWrapper {
@ -548,23 +586,17 @@
margin: 1.25em 0; margin: 1.25em 0;
} }
.detailPageContent {
display: flex;
flex-direction: column;
padding-left: 2%;
padding-right: 2%;
}
.detailImageContainer { .detailImageContainer {
position: sticky; position: relative;
top: 25%; margin-top: -25vh;
float: left; float: left;
width: 22.786458333333332vw; width: 25vw;
z-index: 3;
} }
.layout-mobile .detailImageContainer, .layout-desktop .noBackdrop .detailImageContainer,
.layout-tv .detailImageContainer { .layout-tv .noBackdrop .detailImageContainer {
position: relative; margin-top: 0;
} }
.detailPagePrimaryContent { .detailPagePrimaryContent {
@ -572,15 +604,19 @@
} }
.detailLogo { .detailLogo {
width: 25em; width: 67.25vw;
height: 9.375em; height: 14.5vh;
position: absolute; position: absolute;
top: 14.5%; top: 15vh;
right: 10.5%; right: 0;
-webkit-background-size: contain; -webkit-background-size: contain;
background-size: contain; background-size: contain;
} }
.noBackdrop .detailLogo {
display: none;
}
@media all and (max-width: 87.5em) { @media all and (max-width: 87.5em) {
.detailLogo { .detailLogo {
right: 5%; right: 5%;
@ -607,8 +643,8 @@
.itemDetailImage { .itemDetailImage {
width: 100% !important; width: 100% !important;
box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); -webkit-box-shadow: 0 0.1em 0.5em 0 rgba(0, 0, 0, 0.75);
-webkit-box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); box-shadow: 0 0.1em 0.5em 0 rgba(0, 0, 0, 0.75);
} }
div.itemDetailGalleryLink.defaultCardBackground { div.itemDetailGalleryLink.defaultCardBackground {
@ -635,6 +671,16 @@ div.itemDetailGalleryLink.defaultCardBackground {
position: relative; position: relative;
} }
.layout-desktop .detailPageWrapperContainer,
.layout-tv .detailPageWrapperContainer {
margin-top: 7.2em;
}
.layout-tv #itemDetailPage:not(.noBackdrop) .detailPagePrimaryContainer,
.layout-desktop #itemDetailPage:not(.noBackdrop) .detailPagePrimaryContainer {
padding-left: 3.3%;
}
.btnPlaySimple { .btnPlaySimple {
display: none !important; display: none !important;
} }
@ -849,6 +895,11 @@ div.itemDetailGalleryLink.defaultCardBackground {
border-collapse: collapse; border-collapse: collapse;
} }
.layout-desktop .noBackdrop .detailPageWrapperContainer,
.layout-tv .noBackdrop .detailPageWrapperContainer {
margin-top: 3.8em;
}
.mediaInfoStream { .mediaInfoStream {
margin: 0 3em 0 0; margin: 0 3em 0 0;
display: inline-block; display: inline-block;

View file

@ -1,4 +1,4 @@
define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuilder", "datetime", "mediaInfo", "backdrop", "listView", "itemContextMenu", "itemHelper", "dom", "indicators", "apphost", "imageLoader", "libraryMenu", "globalize", "browser", "events", "scrollHelper", "playbackManager", "libraryBrowser", "scrollStyles", "emby-itemscontainer", "emby-checkbox", "emby-button", "emby-playstatebutton", "emby-ratingbutton", "emby-scroller", "emby-select"], function (loading, appRouter, layoutManager, connectionManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, appHost, imageLoader, libraryMenu, globalize, browser, events, scrollHelper, playbackManager, libraryBrowser) { define(["loading", "appRouter", "layoutManager", "connectionManager", "userSettings", "cardBuilder", "datetime", "mediaInfo", "backdrop", "listView", "itemContextMenu", "itemHelper", "dom", "indicators", "imageLoader", "libraryMenu", "globalize", "browser", "events", "playbackManager", "scrollStyles", "emby-itemscontainer", "emby-checkbox", "emby-button", "emby-playstatebutton", "emby-ratingbutton", "emby-scroller", "emby-select"], function (loading, appRouter, layoutManager, connectionManager, userSettings, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, imageLoader, libraryMenu, globalize, browser, events, playbackManager) {
"use strict"; "use strict";
function getPromise(apiClient, params) { function getPromise(apiClient, params) {
@ -60,8 +60,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
return options; return options;
} }
function getProgramScheduleHtml(items, options) { function getProgramScheduleHtml(items) {
options = options || {};
var html = ""; var html = "";
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-list" data-contextmenu="false">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-list" data-contextmenu="false">';
html += listView.getListViewHtml({ html += listView.getListViewHtml({
@ -445,7 +444,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
} }
} }
function renderBackdrop(page, item, apiClient) { function renderBackdrop(item) {
if (dom.getWindowSize().innerWidth >= 1000) { if (dom.getWindowSize().innerWidth >= 1000) {
backdrop.setBackdrops([item]); backdrop.setBackdrops([item]);
} else { } else {
@ -455,7 +454,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
function renderDetailPageBackdrop(page, item, apiClient) { function renderDetailPageBackdrop(page, item, apiClient) {
var imgUrl; var imgUrl;
var screenWidth = screen.availWidth;
var hasbackdrop = false; var hasbackdrop = false;
var itemBackdropElement = page.querySelector("#itemBackdrop"); var itemBackdropElement = page.querySelector("#itemBackdrop");
var usePrimaryImage = item.MediaType === "Video" && item.Type !== "Movie" && item.Type !== "Trailer" || var usePrimaryImage = item.MediaType === "Video" && item.Type !== "Movie" && item.Type !== "Trailer" ||
@ -464,13 +462,17 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
item.Type === "MusicArtist" || item.Type === "MusicArtist" ||
item.Type === "Person"; item.Type === "Person";
if (!layoutManager.mobile && !userSettings.enableBackdrops()) {
return false;
}
if ("Program" === item.Type && item.ImageTags && item.ImageTags.Thumb) { if ("Program" === item.Type && item.ImageTags && item.ImageTags.Thumb) {
imgUrl = apiClient.getScaledImageUrl(item.Id, { imgUrl = apiClient.getScaledImageUrl(item.Id, {
type: "Thumb", type: "Thumb",
index: 0, index: 0,
tag: item.ImageTags.Thumb tag: item.ImageTags.Thumb
}); });
itemBackdropElement.classList.remove("noBackdrop"); page.classList.remove("noBackdrop");
imageLoader.lazyImage(itemBackdropElement, imgUrl, false); imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true; hasbackdrop = true;
} else if (usePrimaryImage && item.ImageTags && item.ImageTags.Primary) { } else if (usePrimaryImage && item.ImageTags && item.ImageTags.Primary) {
@ -479,7 +481,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
index: 0, index: 0,
tag: item.ImageTags.Primary tag: item.ImageTags.Primary
}); });
itemBackdropElement.classList.remove("noBackdrop"); page.classList.remove("noBackdrop");
imageLoader.lazyImage(itemBackdropElement, imgUrl, false); imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true; hasbackdrop = true;
} else if (item.BackdropImageTags && item.BackdropImageTags.length) { } else if (item.BackdropImageTags && item.BackdropImageTags.length) {
@ -488,7 +490,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
index: 0, index: 0,
tag: item.BackdropImageTags[0] tag: item.BackdropImageTags[0]
}); });
itemBackdropElement.classList.remove("noBackdrop"); page.classList.remove("noBackdrop");
imageLoader.lazyImage(itemBackdropElement, imgUrl, false); imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true; hasbackdrop = true;
} else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) { } else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
@ -497,7 +499,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
index: 0, index: 0,
tag: item.ParentBackdropImageTags[0] tag: item.ParentBackdropImageTags[0]
}); });
itemBackdropElement.classList.remove("noBackdrop"); page.classList.remove("noBackdrop");
imageLoader.lazyImage(itemBackdropElement, imgUrl, false); imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true; hasbackdrop = true;
} else if (item.ImageTags && item.ImageTags.Thumb) { } else if (item.ImageTags && item.ImageTags.Thumb) {
@ -506,15 +508,16 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
index: 0, index: 0,
tag: item.ImageTags.Thumb tag: item.ImageTags.Thumb
}); });
itemBackdropElement.classList.remove("noBackdrop"); page.classList.remove("noBackdrop");
imageLoader.lazyImage(itemBackdropElement, imgUrl, false); imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true; hasbackdrop = true;
} else { } else {
itemBackdropElement.classList.add("noBackdrop");
itemBackdropElement.style.backgroundImage = ""; itemBackdropElement.style.backgroundImage = "";
} }
if ("Person" === item.Type) { if ("Person" === item.Type) {
// FIXME: This hides the backdrop on all persons to fix a margin issue. Ideally, a proper fix should be made.
page.classList.add('noBackdrop');
itemBackdropElement.classList.add("personBackdrop"); itemBackdropElement.classList.add("personBackdrop");
} else { } else {
itemBackdropElement.classList.remove("personBackdrop"); itemBackdropElement.classList.remove("personBackdrop");
@ -526,6 +529,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
function reloadFromItem(instance, page, params, item, user) { function reloadFromItem(instance, page, params, item, user) {
var context = params.context; var context = params.context;
page.querySelector(".detailPagePrimaryContainer").classList.add("detailSticky"); page.querySelector(".detailPagePrimaryContainer").classList.add("detailSticky");
renderName(item, page.querySelector(".nameContainer"), false, context); renderName(item, page.querySelector(".nameContainer"), false, context);
var apiClient = connectionManager.getApiClient(item.ServerId); var apiClient = connectionManager.getApiClient(item.ServerId);
renderSeriesTimerEditor(page, item, apiClient, user); renderSeriesTimerEditor(page, item, apiClient, user);
@ -536,7 +540,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
setInitialCollapsibleState(page, item, apiClient, context, user); setInitialCollapsibleState(page, item, apiClient, context, user);
renderDetails(page, item, apiClient, context); renderDetails(page, item, apiClient, context);
renderTrackSelections(page, instance, item); renderTrackSelections(page, instance, item);
renderBackdrop(page, item, apiClient); renderBackdrop(item);
renderDetailPageBackdrop(page, item, apiClient); renderDetailPageBackdrop(page, item, apiClient);
var canPlay = reloadPlayButtons(page, item); var canPlay = reloadPlayButtons(page, item);
@ -663,7 +667,9 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
}); });
var detailLogo = page.querySelector(".detailLogo"); var detailLogo = page.querySelector(".detailLogo");
if (url) { if (!layoutManager.mobile && !userSettings.enableBackdrops()) {
detailLogo.classList.add("hide");
} else if (url) {
detailLogo.classList.remove("hide"); detailLogo.classList.remove("hide");
detailLogo.classList.add("lazy"); detailLogo.classList.add("lazy");
detailLogo.setAttribute("data-src", url); detailLogo.setAttribute("data-src", url);
@ -817,7 +823,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
if (editable) { if (editable) {
html += "</a>"; html += "</a>";
} else if (!editable && url === undefined) { } else if (!editable && url === undefined) {
html += "</div>" html += "</div>";
} }
var progressHtml = item.IsFolder || !item.UserData ? "" : indicators.getProgressBarHtml(item); var progressHtml = item.IsFolder || !item.UserData ? "" : indicators.getProgressBarHtml(item);
@ -873,7 +879,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
elem.querySelector(".detailImageProgressContainer").innerHTML = indicators.getProgressBarHtml(item); elem.querySelector(".detailImageProgressContainer").innerHTML = indicators.getProgressBarHtml(item);
} }
function refreshImage(page, item, user) { function refreshImage(page, item) {
refreshDetailImageUserData(page.querySelector(".detailImageContainer"), item); refreshDetailImageUserData(page.querySelector(".detailImageContainer"), item);
} }
@ -922,10 +928,10 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
if ("Playlist" == item.Type) { if ("Playlist" == item.Type) {
page.querySelector("#childrenCollapsible").classList.remove("hide"); page.querySelector("#childrenCollapsible").classList.remove("hide");
renderPlaylistItems(page, item, user); renderPlaylistItems(page, item);
} else if ("Studio" == item.Type || "Person" == item.Type || "Genre" == item.Type || "MusicGenre" == item.Type || "MusicArtist" == item.Type) { } else if ("Studio" == item.Type || "Person" == item.Type || "Genre" == item.Type || "MusicGenre" == item.Type || "MusicArtist" == item.Type) {
page.querySelector("#childrenCollapsible").classList.remove("hide"); page.querySelector("#childrenCollapsible").classList.remove("hide");
renderItemsByName(page, item, user); renderItemsByName(page, item);
} else if (item.IsFolder) { } else if (item.IsFolder) {
if ("BoxSet" == item.Type) { if ("BoxSet" == item.Type) {
page.querySelector("#childrenCollapsible").classList.add("hide"); page.querySelector("#childrenCollapsible").classList.add("hide");
@ -937,7 +943,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
} }
if ("Series" == item.Type) { if ("Series" == item.Type) {
renderSeriesSchedule(page, item, user); renderSeriesSchedule(page, item);
renderNextUp(page, item, user); renderNextUp(page, item, user);
} else { } else {
page.querySelector(".nextUpSection").classList.add("hide"); page.querySelector(".nextUpSection").classList.add("hide");
@ -952,7 +958,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
page.querySelector("#specialsCollapsible").classList.add("hide"); page.querySelector("#specialsCollapsible").classList.add("hide");
} }
renderCast(page, item, context, enableScrollX() ? null : 12); renderCast(page, item);
if (item.PartCount && item.PartCount > 1) { if (item.PartCount && item.PartCount > 1) {
page.querySelector("#additionalPartsCollapsible").classList.remove("hide"); page.querySelector("#additionalPartsCollapsible").classList.remove("hide");
@ -988,7 +994,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
} }
} }
function renderGenres(page, item, apiClient, context, isStatic) { function renderGenres(page, item, context) {
context = context || inferContext(item); context = context || inferContext(item);
var type; var type;
var genres = item.GenreItems || []; var genres = item.GenreItems || [];
@ -1022,7 +1028,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
} }
} }
function renderDirector(page, item, apiClient, context, isStatic) { function renderDirector(page, item, context) {
var directors = (item.People || []).filter(function (p) { var directors = (item.People || []).filter(function (p) {
return "Director" === p.Type; return "Director" === p.Type;
}); });
@ -1050,8 +1056,8 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
renderSimilarItems(page, item, context); renderSimilarItems(page, item, context);
renderMoreFromSeason(page, item, apiClient); renderMoreFromSeason(page, item, apiClient);
renderMoreFromArtist(page, item, apiClient); renderMoreFromArtist(page, item, apiClient);
renderDirector(page, item, apiClient, context, isStatic); renderDirector(page, item, context);
renderGenres(page, item, apiClient, context, isStatic); renderGenres(page, item, context);
renderChannelGuide(page, apiClient, item); renderChannelGuide(page, apiClient, item);
var taglineElement = page.querySelector(".tagline"); var taglineElement = page.querySelector(".tagline");
@ -1125,14 +1131,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
return scrollX ? "overflowSquare" : "square"; return scrollX ? "overflowSquare" : "square";
} }
function getThumbShape(scrollX) {
if (null == scrollX) {
scrollX = enableScrollX();
}
return scrollX ? "overflowBackdrop" : "backdrop";
}
function renderMoreFromSeason(view, item, apiClient) { function renderMoreFromSeason(view, item, apiClient) {
var section = view.querySelector(".moreFromSeasonSection"); var section = view.querySelector(".moreFromSeasonSection");
@ -1508,13 +1506,13 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
} }
} }
function renderItemsByName(page, item, user) { function renderItemsByName(page, item) {
require("scripts/itembynamedetailpage".split(","), function () { require("scripts/itembynamedetailpage".split(","), function () {
window.ItemsByName.renderItems(page, item); window.ItemsByName.renderItems(page, item);
}); });
} }
function renderPlaylistItems(page, item, user) { function renderPlaylistItems(page, item) {
require("scripts/playlistedit".split(","), function () { require("scripts/playlistedit".split(","), function () {
PlaylistViewer.render(page, item); PlaylistViewer.render(page, item);
}); });
@ -1594,7 +1592,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
} }
} }
function renderSeriesSchedule(page, item, user) { function renderSeriesSchedule(page, item) {
var apiClient = connectionManager.getApiClient(item.ServerId); var apiClient = connectionManager.getApiClient(item.ServerId);
apiClient.getLiveTvPrograms({ apiClient.getLiveTvPrograms({
UserId: apiClient.getCurrentUserId(), UserId: apiClient.getCurrentUserId(),
@ -1844,7 +1842,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
}); });
} }
function renderCast(page, item, context, limit, isStatic) { function renderCast(page, item) {
var people = (item.People || []).filter(function (p) { var people = (item.People || []).filter(function (p) {
return "Director" !== p.Type; return "Director" !== p.Type;
}); });
@ -1934,7 +1932,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
playbackManager.play(playOptions); playbackManager.play(playOptions);
} }
function playTrailer(page) { function playTrailer() {
playbackManager.playTrailers(currentItem); playbackManager.playTrailers(currentItem);
} }
@ -1991,11 +1989,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
} }
function onPlayTrailerClick() { function onPlayTrailerClick() {
playTrailer(view); playTrailer();
}
function onDownloadChange() {
reload(self, view, params);
} }
function onDownloadClick() { function onDownloadClick() {
@ -2050,9 +2044,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
if (userData) { if (userData) {
currentItem.UserData = userData; currentItem.UserData = userData;
reloadPlayButtons(view, currentItem); reloadPlayButtons(view, currentItem);
apiClient.getCurrentUser().then(function (user) { refreshImage(view, currentItem);
refreshImage(view, currentItem, user);
});
} }
} }
} }
@ -2083,11 +2075,9 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
}); });
view.addEventListener("click", function (e) { view.addEventListener("click", function (e) {
if (dom.parentWithClass(e.target, "moreScenes")) { if (dom.parentWithClass(e.target, "moreScenes")) {
apiClient.getCurrentUser().then(function (user) { renderScenes(view, currentItem);
renderScenes(view, currentItem);
});
} else if (dom.parentWithClass(e.target, "morePeople")) { } else if (dom.parentWithClass(e.target, "morePeople")) {
renderCast(view, currentItem, params.context); renderCast(view, currentItem);
} else if (dom.parentWithClass(e.target, "moreSpecials")) { } else if (dom.parentWithClass(e.target, "moreSpecials")) {
apiClient.getCurrentUser().then(function (user) { apiClient.getCurrentUser().then(function (user) {
renderSpecials(view, currentItem, user); renderSpecials(view, currentItem, user);

View file

@ -1,5 +1,5 @@
<div id="itemDetailPage" data-role="page" class="page libraryPage itemDetailPage noSecondaryNavPage selfBackdropPage" data-backbutton="true"> <div id="itemDetailPage" data-role="page" class="page libraryPage itemDetailPage noSecondaryNavPage selfBackdropPage noBackdrop" data-backbutton="true">
<div id="itemBackdrop" class="itemBackdrop noBackdrop"> <div id="itemBackdrop" class="itemBackdrop">
<button is="emby-button" type="button" class="btnPlay detailFloatingButton hide fab autoSize" title="${ButtonPlay}" data-mode="resume"> <button is="emby-button" type="button" class="btnPlay detailFloatingButton hide fab autoSize" title="${ButtonPlay}" data-mode="resume">
<i class="material-icons play_arrow"></i> <i class="material-icons play_arrow"></i>
</button> </button>

View file

@ -112,7 +112,7 @@ html {
.inputLabelFocused, .inputLabelFocused,
.selectLabelFocused, .selectLabelFocused,
.textareaLabelFocused { .textareaLabelFocused {
color: green; color: #00a4dc;
} }
.checkboxOutline { .checkboxOutline {

View file

@ -201,6 +201,10 @@ html {
} }
.detailSticky { .detailSticky {
background: rgba(32, 32, 32, 0.8);
}
.noBackdrop .detailSticky {
background: #202020; background: #202020;
} }

View file

@ -105,7 +105,7 @@ html {
.inputLabelFocused, .inputLabelFocused,
.selectLabelFocused, .selectLabelFocused,
.textareaLabelFocused { .textareaLabelFocused {
color: green; color: #00a4dc;
} }
.checkboxOutline { .checkboxOutline {