| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  | // Copyright 2021 Signal Messenger, LLC
 | 
					
						
							|  |  |  | // SPDX-License-Identifier: AGPL-3.0-only
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .module-Button { | 
					
						
							|  |  |  |   @mixin focus-box-shadow($inner-color, $outer-color) { | 
					
						
							|  |  |  |     &:focus { | 
					
						
							|  |  |  |       box-shadow: 0 0 0 1px $inner-color, 0 0 0 4px $outer-color; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @mixin hover-and-active-states($background-color, $mix-color) { | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |     &:hover { | 
					
						
							|  |  |  |       @include not-disabled { | 
					
						
							|  |  |  |         background: mix($background-color, $mix-color, 85%); | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |     &:active { | 
					
						
							|  |  |  |       @include not-disabled { | 
					
						
							|  |  |  |         background: mix($background-color, $mix-color, 75%); | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @include button-reset; | 
					
						
							|  |  |  |   border-radius: 4px; | 
					
						
							|  |  |  |   padding: 8px 16px; | 
					
						
							|  |  |  |   text-align: center; | 
					
						
							|  |  |  |   user-select: none; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @include keyboard-mode { | 
					
						
							| 
									
										
										
										
											2021-05-28 12:15:17 -04:00
										 |  |  |     @include focus-box-shadow($color-white, $color-ultramarine); | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @include dark-keyboard-mode { | 
					
						
							| 
									
										
										
										
											2021-05-28 12:15:17 -04:00
										 |  |  |     @include focus-box-shadow($color-black, $color-ultramarine-icon); | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |   @include disabled { | 
					
						
							| 
									
										
										
										
											2021-02-24 16:53:49 -06:00
										 |  |  |     cursor: not-allowed; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-16 10:45:16 -06:00
										 |  |  |   &--large { | 
					
						
							|  |  |  |     @include font-title-2; | 
					
						
							|  |  |  |     font-weight: bold; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 17:58:57 -05:00
										 |  |  |   &--medium { | 
					
						
							|  |  |  |     @include font-body-1-bold; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   &--small { | 
					
						
							|  |  |  |     @include font-body-2; | 
					
						
							|  |  |  |     @include rounded-corners; | 
					
						
							|  |  |  |     padding: 6px 12px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |   &--primary { | 
					
						
							|  |  |  |     $color: $color-white; | 
					
						
							| 
									
										
										
										
											2021-05-28 12:15:17 -04:00
										 |  |  |     $background-color: $color-ultramarine; | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     color: $color; | 
					
						
							|  |  |  |     background: $background-color; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |     @include disabled { | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |       color: fade-out($color, 0.4); | 
					
						
							|  |  |  |       background: fade-out($background-color, 0.6); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include light-theme { | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-black); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include dark-theme { | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-white); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   &--secondary { | 
					
						
							|  |  |  |     @include light-theme { | 
					
						
							|  |  |  |       $color: $color-gray-90; | 
					
						
							|  |  |  |       $background-color: $color-gray-05; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       color: $color; | 
					
						
							|  |  |  |       background: $background-color; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |       @include disabled { | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |         color: $color-black-alpha-40; | 
					
						
							|  |  |  |         background: fade-out($background-color, 0.6); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-20 09:41:04 -05:00
										 |  |  |       &--affirmative { | 
					
						
							| 
									
										
										
										
											2021-05-28 12:15:17 -04:00
										 |  |  |         color: $color-ultramarine; | 
					
						
							| 
									
										
										
										
											2021-04-06 17:14:18 -05:00
										 |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       &--destructive { | 
					
						
							|  |  |  |         color: $color-accent-red; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |       @include hover-and-active-states($background-color, $color-black); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include dark-theme { | 
					
						
							|  |  |  |       $color: $color-gray-05; | 
					
						
							|  |  |  |       $background-color: $color-gray-65; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       color: $color; | 
					
						
							|  |  |  |       background: $background-color; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |       @include disabled { | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |         color: $color-white-alpha-20; | 
					
						
							|  |  |  |         background: fade-out($background-color, 0.6); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-20 09:41:04 -05:00
										 |  |  |       &--affirmative { | 
					
						
							| 
									
										
										
										
											2021-05-28 12:15:17 -04:00
										 |  |  |         color: $color-ultramarine-light; | 
					
						
							| 
									
										
										
										
											2021-04-06 17:14:18 -05:00
										 |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       &--destructive { | 
					
						
							|  |  |  |         color: $color-accent-red; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |       @include hover-and-active-states($background-color, $color-white); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   &--destructive { | 
					
						
							|  |  |  |     $color: $color-white; | 
					
						
							|  |  |  |     $background-color: $color-accent-red; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     color: $color; | 
					
						
							|  |  |  |     background: $background-color; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |     @include disabled { | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  |       color: fade-out($color, 0.4); | 
					
						
							|  |  |  |       background: fade-out($background-color, 0.6); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include light-theme { | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-black); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include dark-theme { | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-white); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-08-17 16:45:18 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   &--calling { | 
					
						
							|  |  |  |     $color: $color-white; | 
					
						
							|  |  |  |     $background-color: $color-accent-green; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include rounded-corners; | 
					
						
							|  |  |  |     color: $color; | 
					
						
							|  |  |  |     background: $background-color; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |     @include disabled { | 
					
						
							| 
									
										
										
										
											2021-08-17 16:45:18 -05:00
										 |  |  |       color: fade-out($color, 0.4); | 
					
						
							|  |  |  |       background: fade-out($background-color, 0.6); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include light-theme { | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-black); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include dark-theme { | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-white); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-08-26 16:51:55 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |   &--system-message { | 
					
						
							|  |  |  |     @include rounded-corners; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-07 14:55:03 -05:00
										 |  |  |     &.module-Button--small { | 
					
						
							|  |  |  |       padding: { | 
					
						
							|  |  |  |         top: 5px; | 
					
						
							|  |  |  |         bottom: 5px; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       font-weight: 500; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-26 16:51:55 -04:00
										 |  |  |     @include light-theme { | 
					
						
							|  |  |  |       $color: $color-ultramarine; | 
					
						
							|  |  |  |       $background-color: $color-gray-02; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       color: $color; | 
					
						
							|  |  |  |       background: $background-color; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |       @include disabled { | 
					
						
							| 
									
										
										
										
											2021-08-26 16:51:55 -04:00
										 |  |  |         color: fade-out($color, 0.4); | 
					
						
							|  |  |  |         background: fade-out($background-color, 0.6); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-black); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include dark-theme { | 
					
						
							|  |  |  |       $color: $color-white; | 
					
						
							|  |  |  |       $background-color: $color-gray-65; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       color: $color; | 
					
						
							|  |  |  |       background: $background-color; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 15:23:53 -07:00
										 |  |  |       @include disabled { | 
					
						
							| 
									
										
										
										
											2021-08-26 16:51:55 -04:00
										 |  |  |         color: fade-out($color, 0.4); | 
					
						
							|  |  |  |         background: fade-out($background-color, 0.6); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       @include hover-and-active-states($background-color, $color-white); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |   &--details { | 
					
						
							|  |  |  |     align-items: center; | 
					
						
							|  |  |  |     border-radius: 8px; | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     flex-direction: column; | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |     font-size: 11px; | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     justify-content: center; | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |     line-height: 10px; | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     min-height: 44px; | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |     min-width: 68px; | 
					
						
							|  |  |  |     padding: 8px; | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     @include light-theme { | 
					
						
							|  |  |  |       background-color: $color-gray-05; | 
					
						
							|  |  |  |       color: $color-black; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @include dark-theme { | 
					
						
							|  |  |  |       background-color: $color-gray-65; | 
					
						
							|  |  |  |       color: $color-gray-05; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &:focus { | 
					
						
							| 
									
										
										
										
											2021-10-21 17:04:43 -04:00
										 |  |  |       @include keyboard-mode { | 
					
						
							|  |  |  |         box-shadow: 0 0 0 2px $color-ultramarine; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     &::before { | 
					
						
							|  |  |  |       margin-bottom: 6px; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |   &--icon { | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     @mixin button-icon($icon) { | 
					
						
							|  |  |  |       content: ''; | 
					
						
							|  |  |  |       display: block; | 
					
						
							|  |  |  |       height: 18px; | 
					
						
							|  |  |  |       width: 18px; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       @include light-theme { | 
					
						
							|  |  |  |         @include color-svg($icon, $color-black); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       @include dark-theme { | 
					
						
							|  |  |  |         @include color-svg($icon, $color-gray-05); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &--audio::before { | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |       @include light-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/phone-outline-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       @include dark-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/phone-solid-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &--muted::before { | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |       @include light-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/bell-disabled-outline-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       @include dark-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/bell-disabled-solid-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &--photo::before { | 
					
						
							|  |  |  |       @include button-icon('../images/icons/v2/photo-album-outline-24.svg'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &--search::before { | 
					
						
							|  |  |  |       @include button-icon('../images/icons/v2/search-16.svg'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &--text::before { | 
					
						
							|  |  |  |       @include button-icon('../images/icons/v2/text-24.svg'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &--unmuted::before { | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |       @include light-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/bell-outline-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       @include dark-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/bell-solid-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &--video::before { | 
					
						
							| 
									
										
										
										
											2021-10-27 16:33:06 -07:00
										 |  |  |       @include light-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/video-outline-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       @include dark-theme { | 
					
						
							|  |  |  |         @include button-icon('../images/icons/v2/video-solid-24.svg'); | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-10-20 19:46:41 -04:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-02-23 13:28:48 -06:00
										 |  |  | } |