signal-desktop/stylesheets/components/PlaybackButton.scss

161 lines
3.8 KiB
SCSS
Raw Normal View History

2023-03-02 13:55:40 -07:00
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
2024-11-15 15:09:31 -08:00
@use '../mixins';
@use '../variables';
@use 'MessageAudio';
2023-03-02 13:55:40 -07:00
.PlaybackButton {
2024-11-15 15:09:31 -08:00
@include mixins.button-reset;
& {
position: relative;
2024-11-15 15:09:31 -08:00
flex-shrink: 0;
margin-inline-end: MessageAudio.$audio-attachment-button-margin-big;
2023-03-02 13:55:40 -07:00
2024-11-15 15:09:31 -08:00
outline: none;
border-radius: 18px;
}
2023-03-02 13:55:40 -07:00
&::before {
display: block;
height: 100%;
content: '';
}
@mixin audio-icon($name, $icon, $color) {
&.PlaybackButton--#{$name}::before {
@include mixins.position-absolute-center;
2024-11-15 15:09:31 -08:00
@include mixins.color-svg('../images/icons/#{$icon}.svg', $color, false);
& {
height: 20px;
width: 20px;
}
2023-03-02 13:55:40 -07:00
}
}
@mixin all-audio-icons($color) {
2023-05-04 11:04:22 -07:00
@include audio-icon(play, v3/play/play-fill, $color);
@include audio-icon(pause, v3/pause/pause-fill, $color);
@include audio-icon(not-downloaded, v3/arrow/arrow-down, $color);
@include audio-icon(downloading, v3/x/x-bold, $color);
2023-03-02 13:55:40 -07:00
}
&--variant-message {
2024-11-15 15:09:31 -08:00
width: MessageAudio.$audio-attachment-button-size;
height: MessageAudio.$audio-attachment-button-size;
2023-03-02 13:55:40 -07:00
}
&--variant-mini {
&::before {
-webkit-mask-size: 100% !important;
width: 8px !important;
height: 8px !important;
2023-03-02 13:55:40 -07:00
}
width: 14px;
height: 14px;
}
&--variant-draft {
&::before {
-webkit-mask-size: 100% !important;
width: 10px !important;
height: 10px !important;
2023-03-02 13:55:40 -07:00
}
width: 18px;
height: 18px;
}
&--computing {
2023-03-02 13:55:40 -07:00
cursor: auto;
}
&__SpinnerV2-container {
@include mixins.position-absolute-center;
}
.ProgressCircle {
@include mixins.position-absolute-center;
.ProgressCircle__background {
stroke: none;
}
}
@include mixins.dark-theme {
.ProgressCircle .ProgressCircle__background {
stroke: none;
}
2023-03-02 13:55:40 -07:00
}
2024-11-15 15:09:31 -08:00
@include mixins.light-theme {
.ProgressCircle .ProgressCircle__fill {
stroke: variables.$color-white;
}
.SpinnerV2 .SpinnerV2__Path {
stroke: variables.$color-white;
}
@include all-audio-icons(variables.$color-gray-90);
2023-03-02 13:55:40 -07:00
&--context-incoming {
&.PlaybackButton--variant-message {
background: variables.$color-white-alpha-80;
&:hover {
background: variables.$color-white-alpha-60;
}
&:active {
background: variables.$color-white-alpha-40;
}
}
.ProgressCircle .ProgressCircle__fill {
stroke: variables.$color-gray-90;
}
.SpinnerV2 .SpinnerV2__Path {
stroke: variables.$color-gray-90;
2023-03-02 13:55:40 -07:00
}
}
}
2024-11-15 15:09:31 -08:00
@include mixins.dark-theme {
.ProgressCircle .ProgressCircle__fill {
stroke: variables.$color-white-alpha-90;
}
.SpinnerV2 .SpinnerV2__Path {
stroke: variables.$color-white-alpha-90;
}
@include all-audio-icons(variables.$color-white-alpha-90);
2023-03-02 13:55:40 -07:00
&--context-incoming {
&.PlaybackButton--variant-message {
background: variables.$color-white-alpha-20;
&:hover {
background: variables.$color-white-alpha-30;
}
&:active {
background: variables.$color-white-alpha-40;
}
}
.ProgressCircle .ProgressCircle__fill {
stroke: variables.$color-white-alpha-90;
}
.SpinnerV2 .SpinnerV2__Path {
stroke: variables.$color-white-alpha-90;
2023-03-02 13:55:40 -07:00
}
}
}
&--context-outgoing {
&.PlaybackButton--variant-message {
2024-11-15 15:09:31 -08:00
background: variables.$color-white-alpha-20;
&:hover {
background: variables.$color-white-alpha-30;
}
&:active {
background: variables.$color-white-alpha-40;
}
2023-03-02 13:55:40 -07:00
}
2024-11-15 15:09:31 -08:00
@include all-audio-icons(variables.$color-white);
2023-03-02 13:55:40 -07:00
}
@include mixins.dark-theme {
&--context-outgoing {
@include all-audio-icons(variables.$color-white-alpha-90);
}
}
2023-03-02 13:55:40 -07:00
}