signal-desktop/stylesheets/components/Avatar.scss

176 lines
3.3 KiB
SCSS
Raw Normal View History

2023-01-03 19:55:46 +00:00
// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.module-Avatar {
display: inline-flex;
line-height: 0;
2021-04-27 13:20:17 +00:00
position: relative;
user-select: none;
vertical-align: middle;
2021-10-12 19:07:58 +00:00
&__contents {
@include avatar-colors;
position: relative;
overflow: hidden;
border-radius: 100%;
width: 100%;
2021-10-12 19:07:58 +00:00
height: 100%;
border: 0;
padding: 0;
margin: 0;
outline: none;
@at-root button#{&} {
@include keyboard-mode {
&:focus {
box-shadow: 0 0 0 3px $color-ultramarine;
}
}
}
}
2021-10-12 19:07:58 +00:00
&__image,
&__label,
&__icon,
&__spinner-container,
&__click-to-view {
width: 100%;
height: 100%;
}
2021-04-27 13:20:17 +00:00
&__image {
2021-05-10 17:50:04 +00:00
background-position: center center;
2021-04-27 13:20:17 +00:00
background-size: cover;
transition: filter 100ms ease-out;
}
&__click-to-view {
@include font-body-2;
align-items: center;
background: $color-black-alpha-20;
color: $color-white;
display: flex;
flex-direction: column;
justify-content: center;
2023-04-20 17:03:43 +00:00
inset-inline-start: 0;
2021-04-27 13:20:17 +00:00
position: absolute;
top: 0;
&::before {
@include color-svg(
'../images/icons/v2/click-outline-24.svg',
$color-white
);
content: '';
display: block;
height: 24px;
margin-bottom: 8px;
width: 24px;
}
&:hover {
background: $color-black-alpha-40;
}
}
&__label {
align-items: center;
display: flex;
justify-content: center;
text-align: center;
text-transform: uppercase;
transition: font-size 100ms ease-out;
}
&__icon {
2021-10-12 19:07:58 +00:00
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center;
2023-05-04 18:04:22 +00:00
-webkit-mask-size: 62.5%;
2021-10-12 19:07:58 +00:00
background-color: var(--fg);
@media (forced-colors: active) {
background-color: WindowText;
}
&--direct {
2023-05-04 18:04:22 +00:00
-webkit-mask-image: url('../images/icons/v3/person/person.svg');
}
&--group {
2023-05-04 18:04:22 +00:00
-webkit-mask-image: url('../images/icons/v3/group/group.svg');
}
&--note-to-self {
2023-05-04 18:04:22 +00:00
-webkit-mask-image: url('../images/icons/v3/note/note.svg');
}
2021-11-12 01:17:29 +00:00
&--search-result {
2023-05-04 18:04:22 +00:00
-webkit-mask-image: url('../images/icons/v3/search/search.svg');
2021-11-12 01:17:29 +00:00
}
}
&__spinner-container {
padding: 4px;
}
2021-11-02 23:01:13 +00:00
&__badge {
position: absolute;
2021-12-01 23:13:09 +00:00
z-index: $z-index-base;
// Positioning should be overridden by JavaScript. These are set defensively.
bottom: 0;
2023-04-20 17:03:43 +00:00
inset-inline-end: 0;
2021-11-18 20:01:53 +00:00
&--static {
pointer-events: none;
}
&--button {
background-color: transparent;
background-position: center center;
background-size: contain;
border: 0;
outline: none;
@include keyboard-mode {
&:focus {
outline: 2px solid $color-ultramarine;
border-radius: 6px;
}
}
}
2021-11-02 23:01:13 +00:00
}
2022-03-04 21:14:52 +00:00
&--with-story {
border-radius: 100%;
border: 2px solid $color-black-alpha-40;
2022-03-04 21:14:52 +00:00
padding: 3px;
@include dark-theme {
border-color: $color-white-alpha-40;
&--unread {
border-color: $color-ultramarine-dawn;
}
}
2022-03-04 21:14:52 +00:00
&--unread {
border-color: $color-ultramarine-dawn;
}
}
2022-11-09 02:38:19 +00:00
&--signal-official {
.module-Avatar__contents {
align-items: center;
background-color: $color-ultramarine;
display: flex;
justify-content: center;
}
.module-Avatar__image {
height: 66%;
width: 66%;
}
}
}