diff --git a/front/src/components/album/Card.vue b/front/src/components/album/Card.vue
index 8f1dc2d98..f5520fded 100644
--- a/front/src/components/album/Card.vue
+++ b/front/src/components/album/Card.vue
@@ -50,7 +50,15 @@ const imageUrl = computed(() => props.album.cover?.urls.original
:tags="album.tags"
:to="{name: 'library.albums.detail', params: {id: album.id}}"
>
-
+
+
+
+
@@ -62,14 +70,6 @@ const imageUrl = computed(() => props.album.cover?.urls.original
{{ ac.joinphrase }}
-
-
@@ -90,30 +90,10 @@ const imageUrl = computed(() => props.album.cover?.urls.original
-
diff --git a/front/src/components/artist/Card.vue b/front/src/components/artist/Card.vue
index eb27b6ce7..0864f091a 100644
--- a/front/src/components/artist/Card.vue
+++ b/front/src/components/artist/Card.vue
@@ -5,7 +5,6 @@ import { useStore } from '~/store'
import { useI18n } from 'vue-i18n'
import PlayButton from '~/components/audio/PlayButton.vue'
-import TagsList from '~/components/tags/List.vue'
import Card from '~/components/ui/Card.vue'
import Spacer from '~/components/ui/Spacer.vue'
@@ -47,10 +46,17 @@ const imageUrl = computed(() => cover.value?.urls.original
+
+
+
@@ -73,20 +79,10 @@ const imageUrl = computed(() => cover.value?.urls.original
-
diff --git a/front/src/components/audio/ChannelCard.vue b/front/src/components/audio/ChannelCard.vue
index 88540e67b..8212a5319 100644
--- a/front/src/components/audio/ChannelCard.vue
+++ b/front/src/components/audio/ChannelCard.vue
@@ -48,9 +48,18 @@ const updatedAgo = computed(() => moment(props.object.artist?.modification_date)
:title="object.artist?.name"
:image="imageUrl"
:tags="object.artist?.tags ?? []"
+ class="artist-card"
:to="{name: 'channels.detail', params: {id: urlId}}"
>
-
+
+
+
+
+
@@ -61,7 +70,8 @@ const updatedAgo = computed(() => moment(props.object.artist?.modification_date)
{{ t('components.audio.ChannelCard.meta.tracks', object.artist?.tracks_count ?? 0) }}
-
+
+
+
+
diff --git a/front/src/components/audio/PlayButton.vue b/front/src/components/audio/PlayButton.vue
index 71ef16c86..92e33ba91 100644
--- a/front/src/components/audio/PlayButton.vue
+++ b/front/src/components/audio/PlayButton.vue
@@ -96,15 +96,6 @@ const labels = computed(() => ({
: t('components.audio.PlayButton.button.playTracks')
}))
-const title = computed(() => {
-
- if (props.track) {
- return t('components.audio.PlayButton.title.unavailable')
- }
-
- return ''
-})
-
const isOpen = ref(false)
@@ -124,11 +115,10 @@ const isOpen = ref(false)
disabled: !playable,
primary: playable,
split: true,
- splitIcon: 'bi-caret-down-fill',
- splitTitle: title
+ splitIcon: 'bi-caret-down-fill'
}"
:aria-label="labels.replacePlay"
- :class="[...buttonClasses]"
+ :class="[...buttonClasses, 'play-button']"
:isloading="isLoading"
:dropdownOnly="dropdownOnly"
@click.stop.prevent="replacePlay()"
@@ -238,12 +228,12 @@ const isOpen = ref(false)
primary: playable,
}"
:aria-label="labels.replacePlay"
- :class="[...buttonClasses]"
+ :class="[...buttonClasses, 'play-button']"
:isloading="isLoading"
- :tiny="iconOnly && discrete"
+ :square="iconOnly"
:icon="!playing ? playIconClass : 'bi-pause-fill'"
:round="iconOnly"
- :secondary="iconOnly && !discrete"
+ :primary="iconOnly && !discrete"
:ghost="discrete"
@click.stop.prevent="replacePlay()"
>
diff --git a/front/src/components/playlists/Card.vue b/front/src/components/playlists/Card.vue
index 910f9c259..9af8e3949 100644
--- a/front/src/components/playlists/Card.vue
+++ b/front/src/components/playlists/Card.vue
@@ -59,6 +59,14 @@ const goToPlaylist = () => {
:title="playlist.name"
:to="{ name: 'library.playlists.detail', params: { id: playlist.id } }"
>
+
+
+
+
![]()
{
-
-
-
-
@@ -91,6 +92,7 @@ const goToPlaylist = () => {
{{ t('components.playlists.Card.meta.tracks', playlist.tracks_count) }}
{
}
}
+.play-button {
+ position: absolute;
+ top: 214px;
+ right: 16px;
+}
.playlist-meta {
display: flex;
- align-items: center;
+ align-self: center;
}
.playlist-action {
diff --git a/front/src/components/radios/Button.vue b/front/src/components/radios/Button.vue
index f48ce7795..188a453ae 100644
--- a/front/src/components/radios/Button.vue
+++ b/front/src/components/radios/Button.vue
@@ -85,6 +85,7 @@ const toggleRadio = () => {
:secondary="playOnly"
:round="playOnly"
icon="bi-play-fill"
+ :square="store.state.auth.authenticated && type === 'custom'"
@click="toggleRadio"
>
{{ buttonLabel }}
diff --git a/front/src/components/radios/Card.vue b/front/src/components/radios/Card.vue
index a9b401fdf..aa21c0567 100644
--- a/front/src/components/radios/Card.vue
+++ b/front/src/components/radios/Card.vue
@@ -42,14 +42,6 @@ const customRadioId = computed(() => props.customRadio?.id ?? null)
:title="radio.name"
:to="{name: 'library.radios.detail', params: {id: radio.id}}"
>
-
- {{ radio.description }}
-
-
props.customRadio?.id ?? null)
playOnly
/>
-
+
+ {{ radio.description }}
+
+
+
+
+
+
+
+
+ {{ radio.description }}
+
+
+
+
+
+
+
diff --git a/front/src/components/ui/Button.vue b/front/src/components/ui/Button.vue
index 8e303abf2..171db18ed 100644
--- a/front/src/components/ui/Button.vue
+++ b/front/src/components/ui/Button.vue
@@ -1,7 +1,7 @@