This repository has been archived by the owner on Sep 11, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 828
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6264 from matrix-org/travis/new-audio
Add custom audio player
- Loading branch information
Showing
29 changed files
with
832 additions
and
238 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
Copyright 2021 The Matrix.org Foundation C.I.C. | ||
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. | ||
*/ | ||
|
||
.mx_AudioPlayer_container { | ||
padding: 16px 12px 12px 12px; | ||
max-width: 267px; // use max to make the control fit in the files/pinned panels | ||
|
||
.mx_AudioPlayer_primaryContainer { | ||
display: flex; | ||
|
||
.mx_PlayPauseButton { | ||
margin-right: 8px; | ||
} | ||
|
||
.mx_AudioPlayer_mediaInfo { | ||
flex: 1; | ||
overflow: hidden; // makes the ellipsis on the file name work | ||
|
||
& > * { | ||
display: block; | ||
} | ||
|
||
.mx_AudioPlayer_mediaName { | ||
color: $primary-fg-color; | ||
font-size: $font-15px; | ||
line-height: $font-15px; | ||
text-overflow: ellipsis; | ||
white-space: nowrap; | ||
overflow: hidden; | ||
padding-bottom: 4px; // mimics the line-height differences in the Figma | ||
} | ||
|
||
.mx_AudioPlayer_byline { | ||
font-size: $font-12px; | ||
line-height: $font-12px; | ||
} | ||
} | ||
} | ||
|
||
.mx_AudioPlayer_seek { | ||
display: flex; | ||
align-items: center; | ||
|
||
.mx_SeekBar { | ||
flex: 1; | ||
} | ||
|
||
.mx_Clock { | ||
width: $font-42px; // we're not using a monospace font, so fake it | ||
min-width: $font-42px; // for flexbox | ||
padding-left: 4px; // isolate from seek bar | ||
text-align: right; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
/* | ||
Copyright 2021 The Matrix.org Foundation C.I.C. | ||
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. | ||
*/ | ||
|
||
// CSS inspiration from: | ||
// * https://www.w3schools.com/howto/howto_js_rangeslider.asp | ||
// * https://stackoverflow.com/a/28283806 | ||
// * https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ | ||
|
||
.mx_SeekBar { | ||
// Dev note: we deliberately do not have the -ms-track (and friends) selectors because we don't | ||
// need to support IE. | ||
|
||
appearance: none; // default style override | ||
|
||
width: 100%; | ||
height: 1px; | ||
background: $quaternary-fg-color; | ||
outline: none; // remove blue selection border | ||
position: relative; // for before+after pseudo elements later on | ||
|
||
cursor: pointer; | ||
|
||
&::-webkit-slider-thumb { | ||
appearance: none; // default style override | ||
|
||
// Dev note: This needs to be duplicated with the -moz-range-thumb selector | ||
// because otherwise Edge (webkit) will fail to see the styles and just refuse | ||
// to apply them. | ||
width: 8px; | ||
height: 8px; | ||
border-radius: 8px; | ||
background-color: $tertiary-fg-color; | ||
cursor: pointer; | ||
} | ||
|
||
&::-moz-range-thumb { | ||
width: 8px; | ||
height: 8px; | ||
border-radius: 8px; | ||
background-color: $tertiary-fg-color; | ||
cursor: pointer; | ||
|
||
// Firefox adds a border on the thumb | ||
border: none; | ||
} | ||
|
||
// This is for webkit support, but we can't limit the functionality of it to just webkit | ||
// browsers. Firefox responds to webkit-prefixed values now, which means we can't use media | ||
// or support queries to selectively apply the rule. An upside is that this CSS doesn't work | ||
// in firefox, so it's just wasted CPU/GPU time. | ||
&::before { // ::before to ensure it ends up under the thumb | ||
content: ''; | ||
background-color: $tertiary-fg-color; | ||
|
||
// Absolute positioning to ensure it overlaps with the existing bar | ||
position: absolute; | ||
top: 0; | ||
left: 0; | ||
|
||
// Sizing to match the bar | ||
width: 100%; | ||
height: 1px; | ||
|
||
// And finally dynamic width without overly hurting the rendering engine. | ||
transform-origin: 0 100%; | ||
transform: scaleX(var(--fillTo)); | ||
} | ||
|
||
// This is firefox's built-in support for the above, with 100% less hacks. | ||
&::-moz-range-progress { | ||
background-color: $tertiary-fg-color; | ||
height: 1px; | ||
} | ||
|
||
&:disabled { | ||
opacity: 0.5; | ||
} | ||
|
||
// Increase clickable area for the slider (approximately same size as browser default) | ||
// We do it this way to keep the same padding and margins of the element, avoiding margin math. | ||
// Source: https://front-back.com/expand-clickable-areas-for-a-better-touch-experience/ | ||
&::after { | ||
content: ''; | ||
position: absolute; | ||
top: -6px; | ||
bottom: -6px; | ||
left: 0; | ||
right: 0; | ||
} | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* | ||
Copyright 2021 The Matrix.org Foundation C.I.C. | ||
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. | ||
*/ | ||
|
||
// A "media body" is any file upload looking thing, apart from images and videos (they | ||
// have unique styles). | ||
|
||
.mx_MediaBody { | ||
background-color: $message-body-panel-bg-color; | ||
border-radius: 12px; | ||
|
||
color: $message-body-panel-fg-color; | ||
font-size: $font-14px; | ||
line-height: $font-24px; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.