2021-04-28 10:27:36 +08:00
|
|
|
/*
|
2022-03-30 04:07:35 +08:00
|
|
|
Copyright 2021 - 2022 The Matrix.org Foundation C.I.C.
|
2021-04-28 10:27:36 +08:00
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Dev note: there's no actual component called <PlaybackContainer />. These classes
|
|
|
|
// are shared amongst multiple voice message components.
|
|
|
|
|
|
|
|
// Container for live recording and playback controls
|
2021-07-22 04:47:27 +08:00
|
|
|
.mx_MediaBody.mx_VoiceMessagePrimaryContainer {
|
2021-07-22 04:47:02 +08:00
|
|
|
// The waveform (right) has a 1px padding on it that we want to account for, otherwise
|
|
|
|
// inherit from mx_MediaBody
|
|
|
|
padding-right: 11px;
|
2021-04-28 10:27:36 +08:00
|
|
|
|
|
|
|
// Cheat at alignment a bit
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
|
2021-06-29 11:00:36 +08:00
|
|
|
contain: content;
|
|
|
|
|
2022-03-30 04:07:35 +08:00
|
|
|
// Waveforms are present in live recording only
|
2021-04-28 10:27:36 +08:00
|
|
|
.mx_Waveform {
|
|
|
|
.mx_Waveform_bar {
|
2021-10-17 02:34:24 +08:00
|
|
|
background-color: $quaternary-content;
|
2021-06-29 11:00:36 +08:00
|
|
|
height: 100%;
|
|
|
|
/* Variable set by a JS component */
|
|
|
|
transform: scaleY(max(0.05, var(--barHeight)));
|
2021-04-28 12:59:16 +08:00
|
|
|
|
|
|
|
&.mx_Waveform_bar_100pct {
|
|
|
|
// Small animation to remove the mechanical feel of progress
|
|
|
|
transition: background-color 250ms ease;
|
2021-08-25 17:46:48 +08:00
|
|
|
background-color: $secondary-content;
|
2021-04-28 12:59:16 +08:00
|
|
|
}
|
2021-04-28 10:27:36 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.mx_Clock {
|
2021-05-08 09:27:52 +08:00
|
|
|
width: $font-42px; // we're not using a monospace font, so fake it
|
2022-03-30 04:07:35 +08:00
|
|
|
min-width: $font-42px; // force sensible layouts in awkward flexboxes (file panel, for example)
|
2021-05-05 10:45:15 +08:00
|
|
|
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 10:27:36 +08:00
|
|
|
}
|
2021-07-14 09:02:12 +08:00
|
|
|
|
2022-03-30 04:07:35 +08:00
|
|
|
// For timeline-rendered playback, mirror the values for where the clock is in
|
|
|
|
// the waveform version.
|
|
|
|
.mx_SeekBar {
|
|
|
|
margin-left: 8px;
|
|
|
|
margin-right: 6px;
|
|
|
|
|
|
|
|
& + .mx_Clock {
|
|
|
|
text-align: right;
|
|
|
|
|
|
|
|
// Take the padding off the clock because it's accounted for in the seek bar
|
|
|
|
padding: 0;
|
|
|
|
}
|
2021-07-14 09:02:12 +08:00
|
|
|
}
|
2021-04-28 10:27:36 +08:00
|
|
|
}
|