mirror of
https://github.com/discourse/discourse.git
synced 2024-12-12 04:53:51 +08:00
d75d64bf16
This commit replaces two existing screens: - draft - channel selection modal Main features compared to existing solutions - features are now combined, meaning you can for example create multi users DM - it will show users with chat disabled - it shows unread state - hopefully a better look/feel - lots of small details and fixes... Other noticeable fixes - starting a DM with a user, even from the user card and clicking <kbd>Chat</kbd> will not show a green dot for the target user (or even the channel) until a message is actually sent - it should almost never do a full page reload anymore --------- Co-authored-by: Martin Brennan <mjrbrennan@gmail.com> Co-authored-by: Jordan Vidrine <30537603+jordanvidrine@users.noreply.github.com> Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com> Co-authored-by: Mark VanLandingham <markvanlan@gmail.com>
234 lines
4.5 KiB
SCSS
234 lines
4.5 KiB
SCSS
.btn-floating.open-new-message-btn {
|
|
position: fixed;
|
|
background: var(--tertiary);
|
|
bottom: 2rem;
|
|
right: 2rem;
|
|
border-radius: 50%;
|
|
font-size: var(--font-up-4);
|
|
padding: 1rem;
|
|
transition: transform 0.25s ease, box-shadow 0.25s ease;
|
|
z-index: z("usercard");
|
|
box-shadow: 0px 5px 5px -1px rgba(0, 0, 0, 0.25);
|
|
|
|
.d-icon {
|
|
color: var(--primary-very-low);
|
|
}
|
|
|
|
&:active {
|
|
box-shadow: 0px 0px 5px -1px rgba(0, 0, 0, 0.25);
|
|
transform: scale(0.9);
|
|
}
|
|
|
|
&:focus {
|
|
@include default-focus;
|
|
border-color: var(--quaternary);
|
|
outline-color: var(--quaternary);
|
|
}
|
|
}
|
|
|
|
.channels-list {
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
height: 100%;
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
position: relative;
|
|
@include chat-scrollbar();
|
|
|
|
@include breakpoint(mobile-large) {
|
|
@include chat-scrollbar();
|
|
}
|
|
|
|
.open-browse-page-btn,
|
|
.open-draft-channel-page-btn,
|
|
.chat-channel-leave-btn {
|
|
position: relative;
|
|
padding: 0;
|
|
background: transparent;
|
|
color: var(--primary-medium);
|
|
font-size: var(--font-0-rem);
|
|
|
|
&:after {
|
|
content: "";
|
|
position: absolute;
|
|
top: -50%;
|
|
left: -50%;
|
|
width: 200%;
|
|
height: 200%;
|
|
}
|
|
|
|
&:hover {
|
|
background: transparent;
|
|
|
|
.d-icon {
|
|
color: var(--primary);
|
|
}
|
|
}
|
|
}
|
|
|
|
.public-channel-empty-message {
|
|
margin: 0 0.5em 0.5em 0.5em;
|
|
padding: 0 1em;
|
|
}
|
|
|
|
.chat-channel-divider {
|
|
padding: 2.5rem 1.5rem 0.5rem 1.5rem;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
font-weight: bold;
|
|
font-family: var(--heading-font-family);
|
|
font-size: var(--font-down-1);
|
|
color: var(--quaternary);
|
|
|
|
.channel-title {
|
|
line-height: var(--line-height-medium);
|
|
}
|
|
|
|
&:first-of-type {
|
|
padding-top: 1rem;
|
|
}
|
|
}
|
|
|
|
.chat-channel-row {
|
|
align-items: center;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
position: relative;
|
|
cursor: pointer;
|
|
color: var(--primary-high);
|
|
|
|
@media (hover: none) {
|
|
&:hover,
|
|
&:focus {
|
|
background: transparent;
|
|
}
|
|
|
|
&:active {
|
|
background: var(--primary-low);
|
|
}
|
|
}
|
|
|
|
@media (hover: hover) {
|
|
&:hover,
|
|
&.active {
|
|
background: var(--primary-very-low);
|
|
}
|
|
|
|
&.can-leave:hover {
|
|
.toggle-channel-membership-button.-leave {
|
|
display: block;
|
|
|
|
> * {
|
|
pointer-events: auto;
|
|
}
|
|
}
|
|
|
|
.chat-channel-metadata {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:hover,
|
|
&.active {
|
|
.chat-channel-title {
|
|
&,
|
|
.category-chat-name,
|
|
.dm-usernames {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.d-icon-lock {
|
|
background-color: var(--primary-low);
|
|
}
|
|
}
|
|
}
|
|
|
|
&:visited {
|
|
color: var(--primary-high);
|
|
}
|
|
|
|
&.muted {
|
|
opacity: 0.65;
|
|
}
|
|
|
|
.chat-channel-title {
|
|
&__users-count {
|
|
width: var(--channel-list-avatar-size);
|
|
height: var(--channel-list-avatar-size);
|
|
padding: 0;
|
|
font-size: var(--font-up-1);
|
|
justify-content: center;
|
|
}
|
|
|
|
&__avatar {
|
|
.chat-user-avatar {
|
|
img {
|
|
width: calc(var(--channel-list-avatar-size) - 2px);
|
|
height: calc(var(--channel-list-avatar-size) - 2px);
|
|
}
|
|
}
|
|
}
|
|
&__user-info {
|
|
@include ellipsis;
|
|
}
|
|
&__usernames {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: start;
|
|
}
|
|
.user-status-message {
|
|
display: inline-block;
|
|
font-size: var(--font-down-2);
|
|
margin-right: 0.5rem;
|
|
|
|
&-description {
|
|
color: var(--primary-medium);
|
|
}
|
|
}
|
|
}
|
|
|
|
.chat-channel-metadata {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
flex-direction: column;
|
|
margin-left: 0.5em;
|
|
|
|
&__date {
|
|
color: var(--primary-high);
|
|
font-size: var(--font-down-2);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.chat-channel-unread-indicator {
|
|
@include chat-unread-indicator;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: auto;
|
|
height: auto;
|
|
min-width: 0.6em;
|
|
padding: 0.3em 0.5em;
|
|
}
|
|
}
|
|
|
|
&.unfollowing {
|
|
opacity: 0;
|
|
}
|
|
|
|
.toggle-channel-membership-button.-leave {
|
|
display: none;
|
|
margin-left: auto;
|
|
}
|
|
.badge-wrapper {
|
|
align-items: center;
|
|
margin-right: 0;
|
|
}
|
|
|
|
.emoji {
|
|
margin-left: 0.3em;
|
|
}
|
|
}
|
|
}
|