diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue
index 1d1f3c45e..5fff30821 100644
--- a/front/src/components/audio/Player.vue
+++ b/front/src/components/audio/Player.vue
@@ -15,6 +15,7 @@ import TrackFavoriteIcon from '~/components/favorites/TrackFavoriteIcon.vue'
import TrackPlaylistIcon from '~/components/playlists/TrackPlaylistIcon.vue'
import PlayerControls from './PlayerControls.vue'
import VolumeControl from './VolumeControl.vue'
+import Button from '~/components/ui/Button.vue'
const {
LoopingMode,
@@ -160,10 +161,11 @@ const hideArtist = () => {
class="ui tiny image"
@click.stop.prevent="router.push({name: 'library.tracks.detail', params: {id: currentTrack.id }})"
>
+
{
>
+
@@ -240,21 +243,22 @@ const hideArtist = () => {
class="controls desktop-and-up fluid align-right"
>
-
+ -->
@@ -274,49 +278,37 @@ const hideArtist = () => {
-
+ />
-
+ />
-
-
-
-
-
-
+
-
-
-
+
-
-
-
+
-
-
+
-
-
-
+
+
+
diff --git a/front/src/components/audio/PlayerControls.vue b/front/src/components/audio/PlayerControls.vue
index dcd5c09c1..136e28811 100644
--- a/front/src/components/audio/PlayerControls.vue
+++ b/front/src/components/audio/PlayerControls.vue
@@ -5,6 +5,8 @@ import { computed } from 'vue'
import { usePlayer } from '~/composables/audio/player'
import { useQueue } from '~/composables/audio/queue'
+import Button from '~/components/ui/Button.vue'
+
const { playPrevious, hasNext, playNext, currentTrack } = useQueue()
const { isPlaying } = usePlayer()
@@ -19,40 +21,36 @@ const labels = computed(() => ({
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+ />
diff --git a/front/src/components/audio/VolumeControl.vue b/front/src/components/audio/VolumeControl.vue
index 04e9d8ae9..407fb4a05 100644
--- a/front/src/components/audio/VolumeControl.vue
+++ b/front/src/components/audio/VolumeControl.vue
@@ -4,6 +4,8 @@ import { useTimeoutFn } from '@vueuse/core'
import { ref, computed } from 'vue'
import { useI18n } from 'vue-i18n'
+import Button from '~/components/ui/Button.vue'
+
const { volume, mute } = usePlayer()
const expanded = ref(false)
@@ -32,8 +34,9 @@ const scroll = (event: WheelEvent) => {
- {
:aria-label="labels.unmute"
@click.prevent.stop="mute"
>
-
+
{
:aria-label="labels.mute"
@click.prevent.stop="mute"
>
-
+
{
:aria-label="labels.mute"
@click.prevent.stop="mute"
>
-
+
-
+
diff --git a/front/src/style/_vars.scss b/front/src/style/_vars.scss
index 8d5d0611a..8f59a182a 100644
--- a/front/src/style/_vars.scss
+++ b/front/src/style/_vars.scss
@@ -102,9 +102,6 @@ $dropdown-item-selected-background: var(--dropdown-item-hover-background) !defau
$segment-color: var(--text-color) !default;
$segment-background: var(--site-background) !default;
-$player-color: rgba(255, 255, 255, 0.9) !default;
-$player-background: #1B1C1D !default;
-
$table-background: transparent !default;
$table-border: var(--divider) !default;
diff --git a/front/src/style/colors.scss b/front/src/style/colors.scss
index 443c9eb1a..2ffe27a75 100644
--- a/front/src/style/colors.scss
+++ b/front/src/style/colors.scss
@@ -107,6 +107,9 @@
--disabled-background-color:var(--fw-beige-100);
--disabled-border-color:var(--fw-beige-100);
+ --player-color: var(--fw-gray-700);
+ --player-background: var(--fw-blue-010);
+
&.raised {
--background-color:var(--fw-beige-300);
--border-color:color-mix(in oklab, var(--fw-beige-400) 90%, currentcolor);
@@ -295,6 +298,9 @@
}
}
+
+
+
// Dark theme
:is(body.theme-dark, html.dark>body:not(.theme-light)), .force-dark-theme.force-dark-theme.force-dark-theme {
@@ -323,6 +329,9 @@
--disabled-background-color:var(--fw-gray-950);
--disabled-border-color:var(--fw-gray-950);
+ --player-color: var(--fw-gray-300);
+ --player-background: var(--fw-gray-950);
+
&.raised{
--background-color:var(--fw-gray-950);
--border-color:var(--fw-gray-600);
diff --git a/front/src/style/components/_player.scss b/front/src/style/components/_player.scss
index f9e2987a7..7a55a990d 100644
--- a/front/src/style/components/_player.scss
+++ b/front/src/style/components/_player.scss
@@ -6,9 +6,8 @@
.ui.top.attached.progress {
top: 0;
- height: 1rem;
+ height: 3px;
z-index: 1;
- padding-bottom: 0.8rem;
border-radius: 0;
.bar {
@@ -18,7 +17,7 @@
}
.ui.bottom-player > .segment.fixed-controls {
- color: var(--player-color);
+ color: var(--color);
background: var(--player-background);
width: 100%;
border-radius: 0;
@@ -106,18 +105,44 @@
justify-content: flex-start;
flex-grow: 1;
.image {
- padding: 0.5em;
+ margin: 0.5em;
width: auto;
- margin-right: 0.5em;
+ margin-right: 1em;
> img {
- max-height: 3.7em;
- max-width: 4.7em;
+ max-height: 40px;
+ max-width: 40px;
}
}
}
.controls {
min-width: 8em;
- font-size: 1.1em;
+
+ a {
+ text-decoration: none;
+ font-size: 16px;
+ }
+
+ .meta {
+ line-height: 1.5em;
+ }
+
+ .button {
+ border: none;
+ cursor: pointer;
+
+ &:hover {
+ background-color: transparent;
+ > i {
+ color: var(--color);
+ transform: scale(1.2);
+ }
+ }
+ }
+
+ #volume-slider {
+ accent-color: var(--vibrant-color);
+ }
+
@include media(">desktop") {
&:not(.fluid) {
width: 20%;
@@ -129,7 +154,11 @@
width: 10%;
}
&.player-controls {
- width: 15%;
+ gap: 8px;
+
+ & i {
+ font-size: 1.8em;
+ }
}
}
&.small, .small {
@@ -137,11 +166,12 @@
font-size: 0.9em;
}
}
- .icon {
- font-size: 1.1em;
+ i {
+ font-size: 1.3em;
+ color: var(--player-color);
}
- .icon.large {
- font-size: 1.4em;
+ .large i {
+ font-size: 3.2em;
}
&:not(.track-controls) {
@include media(">desktop") {
@@ -159,11 +189,6 @@
padding: 0.5em;
}
}
- &.player-controls {
- .icon {
- margin: 0;
- }
- }
}
}
@@ -171,74 +196,12 @@
.component-player {
.controls {
display: flex;
- justify-content: space-between;
- }
-
- .controls .icon.big {
- cursor: pointer;
- font-size: 2em !important;
- }
-
- .controls .icon {
- cursor: pointer;
- vertical-align: middle;
- }
- .timer {
- font-size: 1.2em;
- }
- .looping {
- i {
- position: relative;
- }
- .ui.circular.label {
- font-family: sans-serif;
- position: absolute;
- font-size: 0.5em !important;
- bottom: -0.7rem;
- right: -0.7rem;
- padding: 2px 0 !important;
- width: 15px !important;
- height: 15px !important;
- min-width: 15px !important;
- min-height: 15px !important;
- @include media(">desktop") {
- font-size: 0.6em !important;
- }
- }
}
.shuffling {
color: var(--vibrant-color);
}
- .control.circular.button {
- padding: 0;
- border: none;
- background-color: transparent;
- color: inherit;
-
- }
.fake-dropdown {
- border: 1px solid gray;
- border-radius: 3px;
display: flex;
- align-items: center;
- justify-content: space-between;
- min-width: 8em;
z-index: 2;
- > .control.button {
- padding: 0.5em;
-
- }
- .position.control {
- flex-grow: 1;
-
- i.stream.icon {
- position: relative;
- top: -2px;
- left: -2px;
- }
- }
- .angle.icon {
- margin-right: 0;
- }
}
}