165 lines
2.9 KiB
SCSS
165 lines
2.9 KiB
SCSS
|
*, *::before, *::after {
|
||
|
box-sizing: border-box;
|
||
|
}
|
||
|
|
||
|
body, html {
|
||
|
margin: 0;
|
||
|
padding: 0;
|
||
|
width: 100%;
|
||
|
height: 100%;
|
||
|
}
|
||
|
|
||
|
body {
|
||
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||
|
}
|
||
|
|
||
|
.joystick {
|
||
|
display: none;
|
||
|
position: absolute;
|
||
|
width: var(--size);
|
||
|
height: var(--size);
|
||
|
bottom: 10px;
|
||
|
left: calc(50% - var(--size) / 2);
|
||
|
background-color: #e7e7e7b3;
|
||
|
border-radius: 100%;
|
||
|
border: 2px solid #ddd;
|
||
|
z-index: 1000;
|
||
|
|
||
|
&__knob {
|
||
|
width: calc(var(--size) / 2);
|
||
|
height: calc(var(--size) / 2);
|
||
|
position: absolute;
|
||
|
background-color: #fff;
|
||
|
border: 2px solid #ddd;
|
||
|
border-radius: 100%;
|
||
|
cursor:grab;
|
||
|
transform-origin: center center;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.chat {
|
||
|
min-width: 200px;
|
||
|
width: 40vw;
|
||
|
max-height: 180px;
|
||
|
height: 180px;
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
|
||
|
&__toggle {
|
||
|
width: 24px;
|
||
|
height: 24px;
|
||
|
appearance: none;
|
||
|
background-color: transparent;
|
||
|
background-position: center center;
|
||
|
background-repeat: no-repeat;
|
||
|
cursor: pointer;
|
||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 style=%27width:24px;height:24px%27 viewBox=%270 0 24 24%27%3E%3Cpath fill=%27currentColor%27 d=%27M20 2H4C2.9 2 2 2.9 2 4V22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2M20 16H5.2L4 17.2V4H20V16Z%27 /%3E%3C/svg%3E");
|
||
|
padding: 1rem;
|
||
|
border: 2px solid #ddd;
|
||
|
border-radius: 100%;
|
||
|
background-size: 70%;
|
||
|
margin-bottom: 0.5rem;
|
||
|
}
|
||
|
|
||
|
&__wrapper {
|
||
|
position: absolute;
|
||
|
bottom: 8px;
|
||
|
left: 8px;
|
||
|
z-index: 2000;
|
||
|
}
|
||
|
|
||
|
&__history {
|
||
|
flex-grow: 1;
|
||
|
overflow-y: scroll;
|
||
|
padding: 0.15rem;
|
||
|
}
|
||
|
|
||
|
&__input {
|
||
|
flex-grow: 1;
|
||
|
&-wrapper {
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&__message {
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
gap: 0.5rem;
|
||
|
|
||
|
&-timestamp {
|
||
|
color: #646464;
|
||
|
&::before {
|
||
|
content: '[';
|
||
|
}
|
||
|
&::after {
|
||
|
content: ']';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&-sender {
|
||
|
color: var(--name-color);
|
||
|
&::before {
|
||
|
content: '<';
|
||
|
}
|
||
|
&::after {
|
||
|
content: '>';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&-content {
|
||
|
overflow-wrap: anywhere;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&.invisible {
|
||
|
.chat {
|
||
|
&__input-wrapper {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
&__history {
|
||
|
overflow: hidden;
|
||
|
}
|
||
|
|
||
|
&__message {
|
||
|
visibility: visible;
|
||
|
opacity: 1;
|
||
|
|
||
|
&--old {
|
||
|
visibility: hidden;
|
||
|
opacity: 0;
|
||
|
transition: visibility 0s 2s, opacity 2s linear;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&.visible {
|
||
|
.chat__history {
|
||
|
background-color: #6464644d;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@media all and (max-width: 737px) {
|
||
|
.chat {
|
||
|
&__wrapper {
|
||
|
right: 8px;
|
||
|
|
||
|
&:not(.focused) {
|
||
|
&, *:not(input):not(button) {
|
||
|
pointer-events: none;
|
||
|
}
|
||
|
|
||
|
button {
|
||
|
pointer-events: all;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
min-width: 100%;
|
||
|
width: 100%;
|
||
|
}
|
||
|
}
|