diff --git a/frontend/css/brainzplayer.less b/frontend/css/brainzplayer.less index a6ed3615fe..ecce2eb00b 100644 --- a/frontend/css/brainzplayer.less +++ b/frontend/css/brainzplayer.less @@ -46,13 +46,13 @@ flex: 0; margin-right: 1em; // Show big preview of the cover art when hovering over it - &:hover - > *:not(.hidden):not(.no-album-art):not(.youtube-wrapper):not(.soundcloud) { - // 80% of screen width max, capped at the width in pixel of big-cover-art-size - height: min(80vw, @big-cover-art-size); - width: min(80vw, @big-cover-art-size); - bottom: @brainzplayer-height + @progress-bar-height; - max-height: calc(100vh - @brainzplayer-height - @progress-bar-height); + @media (min-width: @grid-float-breakpoint) { + &:hover > *:not(.hidden):not(.no-album-art):not(.youtube-wrapper):not(.soundcloud) { + height: min(80vw, @big-cover-art-size); + width: min(80vw, @big-cover-art-size); + bottom: @brainzplayer-height + @progress-bar-height; + max-height: calc(100vh - @brainzplayer-height - @progress-bar-height); + } } > * { @@ -392,15 +392,17 @@ .hide-queue { position: absolute; - width: 2.5em; + right: 0; top: 0; - right: 0.5em; - padding: 0.3em 0.5em; - border-radius: 5px; - border-top-left-radius: 0; - border-top-right-radius: 0; - background: #dadada; - margin-top: 0; + padding: 1em; + font-size: 1.5em; + cursor: pointer; + z-index: 1; + + @media (max-width: @grid-float-breakpoint) { + padding: 1em; + font-size: 2em; // Bigger touch target on mobile + } } .queue-item { display: flex; @@ -481,7 +483,26 @@ } } - .header, + .header { + width: 100%; + display: flex; + align-items: center; + padding: 1em 0; + color: white; + position: relative; + + .hide-queue { + position: absolute; + left: 0; + z-index: 1; + } + + .header-text { + flex: 1; + text-align: center; + } + } + .info { width: 100%; display: flex; diff --git a/frontend/js/src/common/brainzplayer/BrainzPlayerUI.tsx b/frontend/js/src/common/brainzplayer/BrainzPlayerUI.tsx index 19ee3c4818..3b27eaa5d7 100644 --- a/frontend/js/src/common/brainzplayer/BrainzPlayerUI.tsx +++ b/frontend/js/src/common/brainzplayer/BrainzPlayerUI.tsx @@ -10,6 +10,8 @@ import { faPlayCircle, faSlash, faVolumeUp, + faCompactDisc, + faXmark, } from "@fortawesome/free-solid-svg-icons"; import * as React from "react"; @@ -291,6 +293,12 @@ function BrainzPlayerUI(props: React.PropsWithChildren) {
+ setShowQueue(false)} + /> setShowQueue(false)} />
) { )} void; + submitDislikeFeedback: () => void; +}; + +const FeedbackButtons = React.memo( + ({ + currentListenFeedback, + isPlayingATrack, + submitLikeFeedback, + submitDislikeFeedback, + }: FeedbackButtonsProps) => ( +
+ + +
+ ) +); + function MusicPlayer(props: MusicPlayerProps) { const { onHide, @@ -210,17 +245,9 @@ function MusicPlayer(props: MusicPlayerProps) { }} onClick={onHide} /> - - - +
+ +
@@ -248,24 +275,12 @@ function MusicPlayer(props: MusicPlayerProps) { {currentTrackArtist}
-
- - -
+