From aee2a1f8bef1bbfa39685d24a3bc64b3ec74b4c4 Mon Sep 17 00:00:00 2001 From: Deluan Date: Mon, 9 Jun 2025 17:56:59 -0400 Subject: [PATCH] fix(ui): artist buttons in spotify-ish Signed-off-by: Deluan --- ui/src/artist/ArtistShow.jsx | 49 ++++++++++++++++-------------- ui/src/themes/spotify.js | 58 ++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 22 deletions(-) diff --git a/ui/src/artist/ArtistShow.jsx b/ui/src/artist/ArtistShow.jsx index c7b51780b..db8ed4566 100644 --- a/ui/src/artist/ArtistShow.jsx +++ b/ui/src/artist/ArtistShow.jsx @@ -17,31 +17,36 @@ import { useAlbumsPerPage, useResourceRefresh, Title } from '../common/index.js' import ArtistActions from './ArtistActions' import { makeStyles } from '@material-ui/core' -const useStyles = makeStyles((theme) => ({ - actions: { - width: '100%', - justifyContent: 'flex-start', - display: 'flex', - paddingTop: '0.25em', - paddingBottom: '0.25em', - paddingLeft: '1em', - paddingRight: '1em', - flexWrap: 'wrap', - overflowX: 'auto', - [theme.breakpoints.down('xs')]: { - paddingLeft: '0.5em', - paddingRight: '0.5em', - gap: '0.5em', - justifyContent: 'space-around', +const useStyles = makeStyles( + (theme) => ({ + actions: { + width: '100%', + justifyContent: 'flex-start', + display: 'flex', + paddingTop: '0.25em', + paddingBottom: '0.25em', + paddingLeft: '1em', + paddingRight: '1em', + flexWrap: 'wrap', + overflowX: 'auto', + [theme.breakpoints.down('xs')]: { + paddingLeft: '0.5em', + paddingRight: '0.5em', + gap: '0.5em', + justifyContent: 'space-around', + }, }, - }, - actionsContainer: { - paddingLeft: '.75rem', - [theme.breakpoints.down('xs')]: { - padding: '.5rem', + actionsContainer: { + paddingLeft: '.75rem', + [theme.breakpoints.down('xs')]: { + padding: '.5rem', + }, }, + }), + { + name: 'NDArtistShow', }, -})) +) const ArtistDetails = (props) => { const record = useRecordContext(props) diff --git a/ui/src/themes/spotify.js b/ui/src/themes/spotify.js index 980183759..c40ed20aa 100644 --- a/ui/src/themes/spotify.js +++ b/ui/src/themes/spotify.js @@ -242,6 +242,64 @@ export default { NDPlaylistShow: { playlistActions: musicListActions, }, + NDArtistShow: { + actions: { + padding: '2rem 0', + alignItems: 'center', + overflow: 'visible', + minHeight: '120px', + '@global': { + button: { + border: '1px solid transparent', + backgroundColor: 'inherit', + color: '#b3b3b3', + margin: '0 0.5rem', + '&:hover': { + border: '1px solid #b3b3b3', + backgroundColor: 'inherit !important', + }, + }, + // Hide shuffle button label (first button) + 'button:first-child>span:first-child>span': { + display: 'none', + }, + // Style shuffle button (first button) + 'button:first-child': { + '@media screen and (max-width: 720px)': { + transform: 'scale(1.5)', + margin: '1rem', + '&:hover': { + transform: 'scale(1.6) !important', + }, + }, + transform: 'scale(2)', + margin: '1.5rem', + minWidth: 0, + padding: 5, + transition: 'transform .3s ease', + background: spotifyGreen['500'], + color: '#fff', + borderRadius: 500, + border: 0, + '&:hover': { + transform: 'scale(2.1)', + backgroundColor: `${spotifyGreen['500']} !important`, + border: 0, + }, + }, + 'button:first-child>span:first-child': { + padding: 0, + }, + 'button>span:first-child>span, button:not(:first-child)>span:first-child>svg': + { + color: '#b3b3b3', + }, + }, + }, + actionsContainer: { + overflow: 'visible', + }, + }, NDAudioPlayer: { audioTitle: { color: '#fff',