231 lines
4.6 KiB
SCSS

@use "../../../styles/mixins";
.AudioPlayer {
display: flex;
align-items: center;
margin-left: auto;
body.no-page-transitions & {
transition: none !important;
}
> .Button, & > .playback-rate-menu {
flex-shrink: 0;
margin: 0.125rem;
}
.player-button {
--color-text-secondary: var(--color-primary);
--color-text-secondary-rgb: var(--color-primary-shade-rgb);
--color-primary-shade: var(--color-green);
--color-white: var(--color-background-own);
margin: 0.125rem;
&.smaller .icon {
font-size: 1.625rem;
margin-top: -0.0625rem;
}
.icon {
position: absolute;
font-size: 1.9375rem;
margin-top: -0.0625rem;
&.icon-play {
margin-left: 0.125rem;
}
}
.icon-play,
.icon-pause {
opacity: 1;
transform: scale(1);
transition: opacity 0.4s, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
&.play .icon-pause,
&.pause .icon-play,
&.loading .icon-play,
&.loading .icon-pause {
opacity: 0;
transform: scale(0.5);
}
}
.volume-button-wrapper {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
.volume-slider-wrapper {
position: absolute;
width: 8rem;
top: 2.625rem;
}
.volume-slider-spacer {
position: absolute;
transform: translateY(100%);
bottom: 0;
height: 1rem;
width: 8rem;
cursor: var(--custom-cursor, default);
visibility: hidden;
}
&:hover .volume-slider-spacer,
.volume-slider-spacer:hover {
visibility: visible;
}
.volume-slider {
opacity: 0;
visibility: hidden;
position: absolute;
background: var(--color-background);
bottom: -1rem;
transform: translateY(100%);
transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
width: 8rem;
padding: 0.75rem;
border-radius: 0.5rem;
cursor: var(--custom-cursor, default);
box-shadow: 0 1px 2px var(--color-default-shadow);
.RangeSlider {
margin-bottom: 0;
input[type="range"] {
margin-bottom: 0;
}
}
}
&:hover .volume-slider,
.volume-slider:hover,
.volume-slider-spacer:hover + .volume-slider {
opacity: 1;
visibility: visible;
}
}
.playback-wrapper {
position: relative;
}
.playback-backdrop {
position: absolute;
top: 0;
right: 0;
width: 5rem;
height: 4rem;
z-index: calc(var(--z-menu-backdrop) + 1);
}
.playback-button {
&.on-top {
z-index: calc(var(--z-menu-backdrop) + 2);
}
&.applied {
--color-text-secondary: var(--color-primary);
}
.playback-button-inner {
transition: 0.15s color ease-out;
font-size: 0.75rem;
font-weight: bold;
border: 2px solid;
border-radius: 0.375rem;
padding: 0.125rem 0.25rem;
font-variant-numeric: tabular-nums;
&.small {
transform: scale(0.83);
}
&.tiny {
transform: scale(0.75);
}
}
}
&-content {
display: flex;
justify-content: center;
flex-direction: column;
flex-shrink: 1;
max-width: 14rem;
padding: 0 0.5rem;
position: relative;
overflow: hidden;
cursor: var(--custom-cursor, pointer);
border-radius: var(--border-radius-messages-small);
&:hover {
background-color: var(--color-interactive-element-hover);
}
.right-column-shown & {
max-width: 10rem;
}
@media (min-width: 1440px) {
max-width: 24rem;
.right-column-shown & {
max-width: 14rem;
}
}
.AudioPlayer & .title {
display: block;
margin-top: 0.125rem;
font-weight: var(--font-weight-medium);
font-size: 0.875rem !important;
line-height: 1rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
body.is-ios & {
font-size: 0.9375rem !important;
line-height: 1.125rem;
}
}
.subtitle {
font-size: 0.8125rem !important;
color: var(--color-text-secondary);
line-height: 0.9375rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
margin: 0.125rem 0 0;
body.is-ios & {
font-size: 0.9375rem !important;
line-height: 1.125rem;
}
}
}
&.full-width-player {
@include mixins.header-pane;
.AudioPlayer-content {
max-width: none;
flex-grow: 1;
}
}
.playback-rate-menu .bubble {
min-width: auto;
.icon-check, .icon-placeholder {
margin-left: 0.25rem;
margin-right: 0.25rem;
}
}
}