discourse/plugins/chat/assets/stylesheets/common/chat-composer.scss

135 lines
2.4 KiB
SCSS

.chat-composer {
&__wrapper {
display: flex;
flex-direction: column;
z-index: 3;
background-color: var(--primary-very-low);
padding: 0.5rem 0 env(safe-area-inset-bottom) 0;
.keyboard-visible & {
padding-bottom: 0;
}
#chat-full-page-uploader,
#chat-widget-uploader {
display: none;
}
.drop-a-file {
display: none;
}
.chat-replying-indicator {
padding-inline: 1rem;
}
}
.chat-composer-button,
.chat-composer-separator {
align-self: flex-end;
}
&__outer-container {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
padding-inline: 1rem;
}
&__inner-container {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
flex-direction: row;
border: 1px solid var(--primary-low);
border-radius: var(--d-border-radius-large);
background-color: var(--secondary);
min-height: 50px;
overflow: hidden;
.chat-composer.is-focused & {
border-color: var(--primary-low-mid);
box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.1);
}
.chat-composer.is-disabled & {
background: var(--primary-low);
&:hover {
cursor: not-allowed;
}
}
}
&__input-container {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
align-self: stretch;
}
--100dvh: 100vh;
@supports (height: 100dvh) {
--100dvh: 100dvh;
}
&__input {
overflow-x: hidden;
width: 100%;
appearance: none;
outline: none;
border: 0;
resize: none;
max-height: calc(
(
var(--100dvh) - var(--header-offset, 0px) -
var(--chat-header-offset, 0px)
) / 100 * 25
);
background: none;
padding: 0;
margin: 5px 0;
text-overflow: ellipsis;
cursor: inherit;
@include chat-scrollbar();
&[disabled] {
background: none;
.d-icon {
opacity: 0.4;
}
}
&:focus,
&:active {
outline: none;
}
&:placeholder-shown,
&::placeholder {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&__unreliable-network {
color: var(--danger);
padding: 0 0.5em;
}
}
.chat-composer-message-details {
margin: 0 1rem 0.5rem 1rem;
display: flex;
align-items: center;
.cancel-message-action {
margin-left: auto;
}
}