funkwhale/front/src/style/components/_player.scss

222 lines
3.9 KiB
SCSS

.ui.bottom-player {
z-index: 999999;
width: 100%;
width: 100vw;
.ui.top.attached.progress {
top: 0;
height: 3px;
z-index: 1;
border-radius: 0;
.bar {
height: 0.2rem;
}
}
}
.ui.bottom-player > .segment.fixed-controls {
color: var(--color);
background: var(--player-background);
width: 100%;
border-radius: 0;
padding: 0em;
position: fixed;
bottom: 0;
left: 0;
margin: 0;
z-index: 1001;
height: $bottom-player-height;
cursor: pointer;
.controls-row {
height: $bottom-player-height;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
@include media(">desktop") {
padding: 0 1em;
justify-content: space-around;
}
}
.indicating.progress {
overflow: hidden;
}
.ui.progress .bar {
transition: none;
width: 100%;
transform-origin: top left;
will-change: transform;
position: absolute;
&.seek {
background: var(--player-color);
opacity: 0;
transition: opacity .2s ease;
mix-blend-mode: overlay;
}
&.position {
transform: translate3d(calc(var(--fw-track-progress) - 100%), 0, 0);
}
}
.ui.progress:hover .bar.seek {
opacity: 0.4;
}
@keyframes MOVE-BG {
from {
transform: translateX(0px);
}
to {
transform: translateX(46px);
}
}
.discrete.link {
color: inherit;
}
.indicating.progress .bar {
left: -46px;
width: 200% !important;
color: grey;
background: repeating-linear-gradient(
-55deg,
grey 1px,
grey 10px,
transparent 10px,
transparent 20px
) !important;
animation-name: MOVE-BG;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
.ui.progress:not(.indeterminate)
.bar.position:not(.buffer) {
background: var(--vibrant-color);
}
.track-controls {
display: flex;
align-items: center;
justify-content: flex-start;
flex-grow: 1;
.image {
margin: 0.5em;
width: auto;
margin-right: 1em;
> img {
max-height: 40px;
max-width: 40px;
}
}
}
.controls {
min-width: 8em;
a {
text-decoration: none;
font-size: 16px;
}
.meta {
line-height: 1.5em;
}
.button {
border: none;
cursor: pointer;
&:hover {
background-color: transparent !important;
> i {
color: var(--color);
transform: scale(1.2);
}
}
&:disabled i {
color: var(--fw-gray-700);
}
}
#volume-slider {
accent-color: var(--vibrant-color);
}
.looping, .shuffling,
.looping:hover, .shuffling:hover {
> i {
color: var(--vibrant-color);
}
}
@include media(">desktop") {
&:not(.fluid) {
width: 20%;
}
&.queue-controls {
width: 32.5%;
}
&.progress-controls {
width: 10%;
}
&.player-controls {
gap: 8px;
& i {
font-size: 1.8em;
}
}
}
&.small, .small {
@include media(">desktop") {
font-size: 0.9em;
}
}
i {
font-size: 1.3em;
color: var(--player-color);
}
.large i {
font-size: 3.2em;
}
&:not(.track-controls) {
@include media(">desktop") {
line-height: 1em;
}
justify-content: center;
align-items: center;
&.align-right {
justify-content: flex-end;
}
&.align-left {
justify-content: flex-start;
}
> * {
padding: 0.5em;
}
.close-control {
background-color: transparent;
& i {
color: var(--vibrant-color);
}
}
}
}
}
.component-player {
.controls {
display: flex;
}
.fake-dropdown {
display: flex;
z-index: 2;
}
}