fix(style): use small crops for small images

This commit is contained in:
ArneBo 2025-02-23 00:36:12 +01:00
parent 966181e480
commit e2ad54ab83
10 changed files with 32 additions and 37 deletions

View File

@ -246,8 +246,8 @@ if (!isWebGLSupported) {
@click="enter" @click="enter"
/> />
<Button <Button
v-else
secondary secondary
v-else
:aria-label="labels.exitFullscreen" :aria-label="labels.exitFullscreen"
:title="labels.exitFullscreen" :title="labels.exitFullscreen"
icon="bi-fullscreen-exit" icon="bi-fullscreen-exit"
@ -305,11 +305,15 @@ if (!isWebGLSupported) {
@click.stop.prevent="" @click.stop.prevent=""
> >
<Pill> <Pill>
<template <template #image>
v-if="ac.artist.cover" <img
#image v-if="ac.artist.cover"
> v-lazy="ac.artist.cover?.urls.small_square_crop"
<img v-lazy="ac.artist.cover?.urls.medium_square_crop"> />
<i
v-else
class="bi bi-person-circle"
/>
</template> </template>
{{ ac.credit ?? t('components.Queue.meta.unknownArtist') }} {{ ac.credit ?? t('components.Queue.meta.unknownArtist') }}
</Pill> </Pill>
@ -344,14 +348,8 @@ if (!isWebGLSupported) {
<i class="loading spinner icon" /> <i class="loading spinner icon" />
</p> </p>
</div> </div>
<Spacer <Spacer :size="16" class="desktop-and-below" />
:size="16" <Layout flex class="additional-controls desktop-and-below">
class="desktop-and-below"
/>
<Layout
flex
class="additional-controls desktop-and-below"
>
<track-favorite-icon <track-favorite-icon
v-if="store.state.auth.authenticated" v-if="store.state.auth.authenticated"
:track="currentTrack" :track="currentTrack"
@ -437,10 +435,7 @@ if (!isWebGLSupported) {
</template> </template>
</i18n-t> </i18n-t>
<span class="middle pipe symbol" /> <span class="middle pipe symbol" />
<span <span style="margin-right: 8px;" v-t="'components.Queue.meta.end'" />
v-t="'components.Queue.meta.end'"
style="margin-right: 8px;"
/>
<span :title="labels.duration"> <span :title="labels.duration">
{{ endsIn }} {{ endsIn }}
</span> </span>

View File

@ -213,10 +213,10 @@ onMounted(() => {
<div class="item"> <div class="item">
<div class="ui user-dropdown dropdown"> <div class="ui user-dropdown dropdown">
<img <img
v-if="store.state.auth.authenticated && store.state.auth.profile?.avatar && store.state.auth.profile?.avatar.urls.medium_square_crop" v-if="store.state.auth.authenticated && store.state.auth.profile?.avatar && store.state.auth.profile?.avatar.urls.small_square_crop"
class="ui avatar image" class="ui avatar image"
alt="" alt=""
:src="store.getters['instance/absoluteUrl'](store.state.auth.profile?.avatar.urls.medium_square_crop)" :src="store.getters['instance/absoluteUrl'](store.state.auth.profile?.avatar.urls.small_square_crop)"
> >
<actor-avatar <actor-avatar
v-else-if="store.state.auth.authenticated" v-else-if="store.state.auth.authenticated"
@ -246,10 +246,10 @@ onMounted(() => {
@click.prevent.exact="isUserModalOpen = !isUserModalOpen" @click.prevent.exact="isUserModalOpen = !isUserModalOpen"
> >
<img <img
v-if="store.state.auth.authenticated && store.state.auth.profile?.avatar?.urls.medium_square_crop" v-if="store.state.auth.authenticated && store.state.auth.profile?.avatar?.urls.small_square_crop"
class="ui avatar image" class="ui avatar image"
alt="" alt=""
:src="store.getters['instance/absoluteUrl'](store.state.auth.profile?.avatar.urls.medium_square_crop)" :src="store.getters['instance/absoluteUrl'](store.state.auth.profile?.avatar.urls.small_square_crop)"
> >
<actor-avatar <actor-avatar
v-else-if="store.state.auth.authenticated" v-else-if="store.state.auth.authenticated"

View File

@ -25,7 +25,7 @@ const route = computed(() => props.artist.channel
> >
<img <img
v-if="artist.cover && artist.cover.urls.original" v-if="artist.cover && artist.cover.urls.original"
v-lazy="store.getters['instance/absoluteUrl'](artist.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](artist.cover.urls.small_square_crop)"
alt="" alt=""
:class="[{circular: artist.content_category != 'podcast'}]" :class="[{circular: artist.content_category != 'podcast'}]"
> >

View File

@ -74,13 +74,13 @@ const actionsButtonLabel = computed(() => t('components.audio.podcast.MobileRow.
> >
<img <img
v-if="track.album?.cover?.urls.original" v-if="track.album?.cover?.urls.original"
v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.small_square_crop)"
alt="" alt=""
class="ui artist-track mini image" class="ui artist-track mini image"
> >
<img <img
v-else-if="track.cover" v-else-if="track.cover"
v-lazy="store.getters['instance/absoluteUrl'](track.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](track.cover.urls.small_square_crop)"
alt="" alt=""
class="ui artist-track mini image" class="ui artist-track mini image"
> >

View File

@ -86,13 +86,13 @@ await fetchData()
> >
<img <img
v-if="track.cover?.urls.original" v-if="track.cover?.urls.original"
v-lazy="store.getters['instance/absoluteUrl'](track.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](track.cover.urls.small_square_crop)"
alt="" alt=""
class="ui artist-track mini image" class="ui artist-track mini image"
> >
<img <img
v-if="track.album?.cover?.urls.original" v-if="track.album?.cover?.urls.original"
v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.small_square_crop)"
alt="" alt=""
class="ui artist-track mini image" class="ui artist-track mini image"
> >
@ -104,7 +104,7 @@ await fetchData()
> >
<img <img
v-else-if="defaultCover" v-else-if="defaultCover"
v-lazy="store.getters['instance/absoluteUrl'](defaultCover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](defaultCover.urls.small_square_crop)"
alt="" alt=""
class="ui artist-track mini image" class="ui artist-track mini image"
> >

View File

@ -74,13 +74,13 @@ const actionsButtonLabel = computed(() => t('components.audio.track.MobileRow.bu
> >
<img <img
v-if="track.cover" v-if="track.cover"
v-lazy="store.getters['instance/absoluteUrl'](track.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](track.cover.urls.small_square_crop)"
alt="" alt=""
class="ui artist-track mini image" class="ui artist-track mini image"
> >
<img <img
v-else-if="track.album?.cover?.urls.original" v-else-if="track.album?.cover?.urls.original"
v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](track.album.cover.urls.small_square_crop)"
alt="" alt=""
class="ui artist-track mini image" class="ui artist-track mini image"
> >

View File

@ -143,12 +143,12 @@ watch(() => props.websocketHandlers.includes('Listen'), (to) => {
<div class="activity-image"> <div class="activity-image">
<img <img
v-if="object.track.album && object.track.album.cover" v-if="object.track.album && object.track.album.cover"
v-lazy="store.getters['instance/absoluteUrl'](object.track.album.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](object.track.album.cover.urls.small_square_crop)"
alt="" alt=""
> >
<img <img
v-else-if="object.track.cover" v-else-if="object.track.cover"
v-lazy="store.getters['instance/absoluteUrl'](object.track.cover.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](object.track.cover.urls.small_square_crop)"
alt="" alt=""
> >
<img <img

View File

@ -18,7 +18,7 @@ const defaultAvatarStyle = computed(() => ({ backgroundColor: `#${actorColor.val
<img <img
v-if="actor.icon && actor.icon.urls.original" v-if="actor.icon && actor.icon.urls.original"
alt="" alt=""
:src="actor.icon.urls.medium_square_crop" :src="actor.icon.urls.small_square_crop"
class="ui tiny avatar circular image" class="ui tiny avatar circular image"
> >
<span <span

View File

@ -36,8 +36,8 @@ const defaultAvatarStyle = computed(() => ({ backgroundColor: `#${userColor.valu
> >
<template v-if="avatar"> <template v-if="avatar">
<img <img
v-if="user.avatar && user.avatar.urls.medium_square_crop" v-if="user.avatar && user.avatar.urls.small_square_crop"
v-lazy="store.getters['instance/absoluteUrl'](user.avatar.urls.medium_square_crop)" v-lazy="store.getters['instance/absoluteUrl'](user.avatar.urls.small_square_crop)"
class="ui avatar tiny circular image" class="ui avatar tiny circular image"
alt="" alt=""
> >

View File

@ -58,9 +58,9 @@ const labels = computed(() => ({
@click="isOpen = !isOpen" @click="isOpen = !isOpen"
> >
<img <img
v-if="store.state.auth.authenticated && store.state.auth.profile?.avatar?.urls.medium_square_crop" v-if="store.state.auth.authenticated && store.state.auth.profile?.avatar?.urls.small_square_crop"
alt="" alt=""
:src="store.getters['instance/absoluteUrl'](store.state.auth.profile?.avatar.urls.medium_square_crop)" :src="store.getters['instance/absoluteUrl'](store.state.auth.profile?.avatar.urls.small_square_crop)"
class="avatar" class="avatar"
> >
<span <span