diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.css index 942e05c77a..874b6d0416 100644 --- a/src/components/cardbuilder/card.css +++ b/src/components/cardbuilder/card.css @@ -26,7 +26,7 @@ button { font-weight: inherit !important; } -.card-nofocustransform { +.card:not(.show-animation) { contain: layout style paint; } @@ -98,20 +98,21 @@ button { contain: layout style; } -.cardBox-withfocuscontent-large { +.card.show-focus:not(.show-animation) .cardBox { margin: .4em; } -.card-focuscontent-large { +.card.show-focus:not(.show-animation) .cardBox.visualCardBox, +.card.show-focus:not(.show-animation) .cardBox:not(.visualCardBox) .cardScalable { border: .5em solid transparent; } -.cardBox-focustransform { +.card.show-animation .cardBox { will-change: transform; transition: transform 200ms ease-out; } -.card:focus > .cardBox-focustransform { +.card.show-animation:focus > .cardBox { transform: scale(1.18, 1.18); } diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index d91802dc71..09ad8f1a6d 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -3,7 +3,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana 'use strict'; var devicePixelRatio = window.devicePixelRatio || 1; - var enableFocusTransfrom = !browser.slow && !browser.edge; + var enableFocusTransform = !browser.slow && !browser.edge; function getCardsHtml(items, options) { if (arguments.length === 1) { @@ -1203,6 +1203,8 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana shape = shape || 'mixedSquare'; } + // TODO move card creation code to Card component + var className = 'card'; if (shape) { @@ -1221,8 +1223,12 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana className += ' card-hoverable'; } - if (!enableFocusTransfrom || !layoutManager.tv) { - className += ' card-nofocustransform'; + if (layoutManager.tv) { + className += ' show-focus'; + + if (enableFocusTransform) { + className += ' show-animation'; + } } var imgInfo = getCardImageUrl(item, apiClient, options, shape); @@ -1250,23 +1256,6 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana var cardBoxClass = options.cardLayout ? 'cardBox visualCardBox' : 'cardBox'; - if (layoutManager.tv) { - - if (enableFocusTransfrom) { - cardBoxClass += ' cardBox-focustransform cardBox-withfocuscontent'; - } else { - cardBoxClass += ' cardBox-withfocuscontent-large'; - } - - if (options.cardLayout) { - cardBoxClass += ' card-focuscontent'; - - if (!enableFocusTransfrom) { - cardBoxClass += ' card-focuscontent-large'; - } - } - } - var footerCssClass; var progressHtml = indicators.getProgressBarHtml(item); @@ -1385,15 +1374,6 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana var cardScalableClass = 'cardScalable'; - if (layoutManager.tv && !options.cardLayout) { - - cardScalableClass += ' card-focuscontent'; - - if (!enableFocusTransfrom) { - cardScalableClass += ' card-focuscontent-large'; - } - } - cardImageContainerOpen = '
' + cardImageContainerOpen; cardBoxClose = '
'; cardScalableClose = '
'; diff --git a/src/components/cardbuilder/chaptercardbuilder.js b/src/components/cardbuilder/chaptercardbuilder.js index 900f4befc1..0f42e14584 100644 --- a/src/components/cardbuilder/chaptercardbuilder.js +++ b/src/components/cardbuilder/chaptercardbuilder.js @@ -1,12 +1,20 @@ define(['datetime', 'imageLoader', 'connectionManager', 'layoutManager', 'browser'], function (datetime, imageLoader, connectionManager, layoutManager, browser) { 'use strict'; + var enableFocusTransform = !browser.slow && !browser.edge; + function buildChapterCardsHtml(item, chapters, options) { + // TODO move card creation code to Card component + var className = 'card itemAction chapterCard'; - if (layoutManager.tv && (browser.animate || browser.edge)) { - className += ' card-focusscale'; + if (layoutManager.tv) { + className += ' show-focus'; + + if (enableFocusTransform) { + className += ' show-animation'; + } } var mediaStreams = ((item.MediaSources || [])[0] || {}).MediaStreams || []; @@ -92,19 +100,6 @@ define(['datetime', 'imageLoader', 'connectionManager', 'layoutManager', 'browse var cardBoxCssClass = 'cardBox'; var cardScalableClass = 'cardScalable'; - if (layoutManager.tv) { - var enableFocusTransfrom = !browser.slow && !browser.edge; - - cardScalableClass += ' card-focuscontent'; - - if (enableFocusTransfrom) { - cardBoxCssClass += ' cardBox-focustransform cardBox-withfocuscontent'; - } else { - cardBoxCssClass += ' cardBox-withfocuscontent-large'; - cardScalableClass += ' card-focuscontent-large'; - } - } - var html = ''; return html; @@ -137,4 +132,4 @@ define(['datetime', 'imageLoader', 'connectionManager', 'layoutManager', 'browse buildChapterCards: buildChapterCards }; -}); \ No newline at end of file +}); diff --git a/src/components/imagedownloader/imagedownloader.js b/src/components/imagedownloader/imagedownloader.js index 729bce3382..182b72071f 100644 --- a/src/components/imagedownloader/imagedownloader.js +++ b/src/components/imagedownloader/imagedownloader.js @@ -1,6 +1,8 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader', 'browser', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'emby-checkbox', 'paper-icon-button-light', 'emby-button', 'formDialogStyle', 'cardStyle'], function (loading, appHost, dialogHelper, connectionManager, imageLoader, browser, layoutManager, scrollHelper, globalize, require) { 'use strict'; + var enableFocusTransform = !browser.slow && !browser.edge; + var currentItemId; var currentItemType; var currentResolve; @@ -164,6 +166,8 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader' var tagName = layoutManager.tv ? 'button' : 'div'; var enableFooterButtons = !layoutManager.tv; + // TODO move card creation code to Card component + var html = ''; var cssClass = "card scalableCard imageEditorCard"; @@ -196,12 +200,12 @@ define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader' if (tagName === 'button') { cssClass += ' btnImageCard'; - if (layoutManager.tv && !browser.slow) { - cardBoxCssClass += ' cardBox-focustransform'; - } - if (layoutManager.tv) { - cardBoxCssClass += ' card-focuscontent cardBox-withfocuscontent'; + cssClass += ' show-focus'; + + if (enableFocusTransform) { + cssClass += ' show-animation'; + } } html += '