2021-04-28 02:27:36 +00:00
|
|
|
/*
|
2024-09-09 13:57:16 +00:00
|
|
|
Copyright 2024 New Vector Ltd.
|
|
|
|
Copyright 2021, 2022 The Matrix.org Foundation C.I.C.
|
2021-04-28 02:27:36 +00:00
|
|
|
|
2024-09-09 13:57:16 +00:00
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
|
|
|
|
Please see LICENSE files in the repository root for full details.
|
2021-04-28 02:27:36 +00:00
|
|
|
*/
|
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Dev note: there's no actual component called <PlaybackContainer />. These classes */
|
|
|
|
/* are shared amongst multiple voice message components. */
|
2021-04-28 02:27:36 +00:00
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Container for live recording and playback controls */
|
2021-07-21 20:47:27 +00:00
|
|
|
.mx_MediaBody.mx_VoiceMessagePrimaryContainer {
|
2022-07-27 13:39:29 +00:00
|
|
|
/* The waveform (right) has a 1px padding on it that we want to account for, otherwise */
|
|
|
|
/* inherit from mx_MediaBody */
|
2021-07-21 20:47:02 +00:00
|
|
|
padding-right: 11px;
|
2021-04-28 02:27:36 +00:00
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Cheat at alignment a bit */
|
2021-04-28 02:27:36 +00:00
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
|
2021-06-29 03:00:36 +00:00
|
|
|
contain: content;
|
|
|
|
|
2023-02-20 14:55:59 +00:00
|
|
|
.mx_Waveform,
|
|
|
|
.mx_RecordingPlayback_timelineLayoutMiddle {
|
|
|
|
min-width: 0; /* Prevent a blowout */
|
|
|
|
}
|
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Waveforms are present in live recording only */
|
2021-04-28 02:27:36 +00:00
|
|
|
.mx_Waveform {
|
2024-11-18 09:56:22 +00:00
|
|
|
/* default, overridden in JS */
|
|
|
|
--barHeight: 1;
|
2021-04-28 02:27:36 +00:00
|
|
|
.mx_Waveform_bar {
|
2021-10-16 18:34:24 +00:00
|
|
|
background-color: $quaternary-content;
|
2021-06-29 03:00:36 +00:00
|
|
|
height: 100%;
|
|
|
|
transform: scaleY(max(0.05, var(--barHeight)));
|
2021-04-28 04:59:16 +00:00
|
|
|
|
|
|
|
&.mx_Waveform_bar_100pct {
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Small animation to remove the mechanical feel of progress */
|
2021-04-28 04:59:16 +00:00
|
|
|
transition: background-color 250ms ease;
|
2021-08-25 09:46:48 +00:00
|
|
|
background-color: $secondary-content;
|
2021-04-28 04:59:16 +00:00
|
|
|
}
|
2021-04-28 02:27:36 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.mx_Clock {
|
2022-07-27 13:39:29 +00:00
|
|
|
width: $font-42px; /* we're not using a monospace font, so fake it */
|
|
|
|
min-width: $font-42px; /* force sensible layouts in awkward flexboxes (file panel, for example) */
|
|
|
|
padding-right: 6px; /* with the fixed width this ends up as a visual 8px most of the time, as intended. */
|
|
|
|
padding-left: 8px; /* isolate from recording circle / play control */
|
2021-04-28 02:27:36 +00:00
|
|
|
}
|
2021-07-14 01:02:12 +00:00
|
|
|
|
2022-06-15 00:13:13 +00:00
|
|
|
.mx_RecordingPlayback_timelineLayoutMiddle {
|
2022-03-29 20:07:35 +00:00
|
|
|
margin-left: 8px;
|
|
|
|
margin-right: 6px;
|
2022-06-15 00:13:13 +00:00
|
|
|
position: relative;
|
|
|
|
display: inline-block;
|
|
|
|
flex: 1;
|
2022-07-27 13:39:29 +00:00
|
|
|
height: 30px; /* same height as mx_Waveform, needed for automatic vertical centering */
|
2022-03-29 20:07:35 +00:00
|
|
|
|
2022-06-15 00:13:13 +00:00
|
|
|
.mx_Waveform {
|
|
|
|
left: 0;
|
|
|
|
top: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.mx_SeekBar {
|
|
|
|
position: absolute;
|
|
|
|
left: 0;
|
|
|
|
height: 30px;
|
2022-07-27 13:39:29 +00:00
|
|
|
top: -2px; /* visually vertically centered */
|
2022-06-15 00:13:13 +00:00
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Hide the hairline progress bar since we're at 100% height. Need to have distinct rules */
|
|
|
|
/* because CSS is weird. */
|
2022-06-15 00:13:13 +00:00
|
|
|
background: none;
|
|
|
|
&::before {
|
|
|
|
background: none;
|
|
|
|
}
|
|
|
|
&::-moz-range-progress {
|
|
|
|
background: none;
|
|
|
|
}
|
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Make the thumb easier to see. Like the SeekBar original styles, these need to be */
|
|
|
|
/* distinct. We make it transparent so it doesn't show up on the UI, but also larger */
|
|
|
|
/* so it's easier to grab by mouse users in some browsers. Most browsers let the user */
|
|
|
|
/* move and drag the thumb regardless of hitting the thumb, however. */
|
2022-06-15 00:13:13 +00:00
|
|
|
&::-webkit-slider-thumb {
|
|
|
|
width: 10px;
|
|
|
|
height: 10px;
|
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
&::-moz-range-thumb {
|
|
|
|
width: 10px;
|
|
|
|
height: 10px;
|
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* For timeline-rendered playback, the clock is on the other side of the waveform. */
|
2022-03-29 20:07:35 +00:00
|
|
|
& + .mx_Clock {
|
|
|
|
text-align: right;
|
|
|
|
|
2022-07-27 13:39:29 +00:00
|
|
|
/* Take the padding off the clock because it's accounted for by the `timelineLayoutMiddle` */
|
2022-03-29 20:07:35 +00:00
|
|
|
padding: 0;
|
|
|
|
}
|
2021-07-14 01:02:12 +00:00
|
|
|
}
|
2021-04-28 02:27:36 +00:00
|
|
|
}
|