ui/screen/chat/chat.razor.scss
Chat {
position: absolute;
left: 100px;
bottom: 220px;
width: 450px;
justify-content: center;
align-items: center;
font-weight: bold;
border-radius: 20px;
flex-direction: column;
align-items: stretch;
font-size: 19px;
font-family: Bahnschrift;
gap: 10px;
opacity: 0.92;
transform: translateY( 6px );
transition: opacity 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
.output {
flex-grow: 1;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
gap: 8px;
padding: 6px 8px;
min-height: 140px;
max-height: 320px;
overflow-y: scroll;
.chat_entry {
min-height: 24px;
gap: 10px;
align-items: center;
padding: 2px 0;
flex-direction: row;
text-shadow: 2px 2px 2px #000a;
transition: opacity 0.4s linear;
animation: chat_entry_in 0.18s ease-out;
.avatar {
width: 24px;
height: 24px;
border-radius: 100px;
flex-shrink: 0;
}
.avatar--empty {
opacity: 0;
}
.author {
color: #fa9045;
white-space: nowrap;
flex-shrink: 0;
}
.message {
color: #fff;
}
}
}
.input {
color: white;
background: rgba( 255, 255, 255, 0.04 );
border-radius: 10px;
transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
padding: 0;
}
&.open {
pointer-events: all;
opacity: 1;
transform: translateY( 0 );
.input {
transform: translateY( -2px );
textentry {
width: 100%;
padding: 8px;
font-size: 18px;
animation: chat_focus_pulse 0.35s ease-out;
margin: 0;
}
}
}
}
@keyframes chat_entry_in {
from {
opacity: 0;
transform: translateY( 4px );
}
to {
opacity: 1;
transform: translateY( 0 );
}
}
@keyframes chat_focus_pulse {
0% {
transform: scale( 0.98 );
}
100% {
transform: scale( 1 );
}
}