fluxer/fluxer_app/src/components/uikit/BaseAvatar.module.css
2026-01-01 21:05:54 +00:00

80 lines
1.5 KiB
CSS

/*
* Copyright (C) 2026 Fluxer Contributors
*
* This file is part of Fluxer.
*
* Fluxer is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Fluxer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Fluxer. If not, see <https://www.gnu.org/licenses/>.
*/
.container {
position: relative;
}
.clickable {
cursor: pointer;
}
.clickable:hover {
opacity: 0.9;
}
.overlay {
position: absolute;
inset: 0;
}
.hoverOverlay {
position: absolute;
inset: 0;
border-radius: inherit;
background-color: hsl(0, 0%, 0%);
opacity: 0;
transition: opacity 0.2s ease;
pointer-events: none;
}
.clickable:hover .hoverOverlay,
.clickable:has(:focus-visible) .hoverOverlay {
opacity: 0.4;
}
.statusContainer {
pointer-events: auto;
position: absolute;
}
.typingDots {
display: flex;
gap: 2px;
align-items: center;
justify-content: center;
}
.typingDot {
background-color: white;
border-radius: 50%;
animation: 1s blink infinite;
}
@keyframes blink {
50% {
opacity: 0;
}
}
:global(html:not(.window-focused)) .typingDot {
animation-play-state: paused;
opacity: 1;
}