mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +00:00
Using grid layout moves us away from fixed widths and position for items where possible, which will make it easier to make messagebox changes without breaking formatting. Visual changes expected in this commit: - When the action buttons overlap the message content, it will no longer visually overlap but completely cut off the content — which is good, but means the messages can’t be as wide on narrow width views. There’s a slight improvement to this in an upcoming commit. Also removes the `last_message` CSS, which was busted due to the `last_message` calculation not correctly being updated for new messages arriving, and didn't improve styling.
309 lines
7.1 KiB
CSS
309 lines
7.1 KiB
CSS
.message_reactions {
|
|
overflow: hidden;
|
|
|
|
user-select: none;
|
|
|
|
.message_reaction {
|
|
display: flex;
|
|
float: left;
|
|
margin: 0.15em;
|
|
padding: 0 2px 0 0;
|
|
cursor: pointer;
|
|
background-color: hsl(0, 0%, 100%);
|
|
border: 1px solid hsl(194, 37%, 84%);
|
|
border-radius: 4px;
|
|
align-items: center;
|
|
|
|
&.reacted {
|
|
background-color: hsl(195, 50%, 95%);
|
|
}
|
|
|
|
&:hover {
|
|
border: 1px solid hsl(200, 100%, 40%);
|
|
}
|
|
|
|
+ .reaction_button {
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
margin: 2px 0.1em 3px;
|
|
padding: 3px;
|
|
height: 13px;
|
|
border-radius: 4px;
|
|
padding-left: 0.3em;
|
|
border: 1px solid hsl(0, 0%, 73%);
|
|
padding-right: 0.3em;
|
|
float: left;
|
|
}
|
|
|
|
.emoji {
|
|
display: inline-block;
|
|
flex-shrink: 0;
|
|
vertical-align: top;
|
|
top: 0;
|
|
margin: 1px 3px;
|
|
height: 17px;
|
|
width: 17px;
|
|
position: relative;
|
|
}
|
|
}
|
|
|
|
.message_reaction_count {
|
|
position: relative;
|
|
top: 1px;
|
|
font-size: 90%;
|
|
display: flex;
|
|
margin: 0 3px;
|
|
padding: 2px 0;
|
|
line-height: 1em;
|
|
}
|
|
|
|
.message_reaction:hover .message_reaction_count {
|
|
color: hsl(200, 100%, 40%);
|
|
}
|
|
|
|
i {
|
|
font-size: 1.3em;
|
|
float: left;
|
|
color: hsl(0, 0%, 33%);
|
|
}
|
|
|
|
&:hover .message_reaction + .reaction_button {
|
|
visibility: visible;
|
|
pointer-events: all;
|
|
background-color: hsl(0, 0%, 98%);
|
|
}
|
|
|
|
.reaction_button {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
i {
|
|
font-size: 1em;
|
|
}
|
|
|
|
&:hover i {
|
|
color: hsl(200, 100%, 40%);
|
|
}
|
|
|
|
/* Configure the reaction button to appear if and only if there's an
|
|
existing reaction to the message. We reference first-child
|
|
rather than only-child because tooltips may be appended to
|
|
the DOM after this element, whereas actual reactions are
|
|
appended before it. */
|
|
&:first-child {
|
|
display: none;
|
|
}
|
|
|
|
&:hover {
|
|
border: 1px solid hsl(200, 100%, 40%);
|
|
background-color: hsl(195, 50%, 95%);
|
|
cursor: pointer;
|
|
opacity: 1;
|
|
color: hsl(200, 100%, 40%);
|
|
}
|
|
|
|
.message_reaction_count {
|
|
font-size: 1.1em;
|
|
color: hsl(0, 0%, 33%);
|
|
margin-right: 0;
|
|
}
|
|
|
|
&:hover .message_reaction_count {
|
|
color: hsl(200, 100%, 40%);
|
|
}
|
|
}
|
|
}
|
|
|
|
.private-message .message_reactions .message_reaction {
|
|
background-color: hsl(192, 20%, 95%);
|
|
|
|
&.reacted {
|
|
background-color: hsl(196, 51%, 93%);
|
|
border-color: hsl(193, 38%, 70%);
|
|
}
|
|
}
|
|
|
|
.reaction_button_visible {
|
|
visibility: visible !important;
|
|
pointer-events: all !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
.emoji-info-popover {
|
|
padding: 0;
|
|
height: 370px;
|
|
user-select: none;
|
|
|
|
.popover-content {
|
|
padding: 0;
|
|
}
|
|
|
|
&.bottom .arrow {
|
|
border-bottom-color: hsl(0, 0%, 93%);
|
|
}
|
|
|
|
&.top .arrow {
|
|
border-top-color: hsl(0, 0%, 93%);
|
|
}
|
|
|
|
.emoji-popover {
|
|
display: block;
|
|
width: 250px;
|
|
|
|
.reacted {
|
|
background-color: hsl(195, 50%, 95%);
|
|
border-color: hsl(195, 52%, 79%);
|
|
}
|
|
|
|
.emoji-popover-top {
|
|
position: relative;
|
|
|
|
padding: 8px 10px;
|
|
margin-bottom: 0;
|
|
|
|
background-color: hsl(0, 0%, 93%);
|
|
|
|
border-radius: 5px 5px 0 0;
|
|
|
|
.fa-search {
|
|
position: absolute;
|
|
color: hsl(0, 0%, 73%);
|
|
top: 15px;
|
|
left: 17px;
|
|
z-index: 3;
|
|
}
|
|
|
|
.emoji-popover-filter {
|
|
margin: auto;
|
|
padding-left: 22px;
|
|
width: calc(100% - 22px - 8px);
|
|
font-size: 90%;
|
|
}
|
|
}
|
|
|
|
.emoji-popover-category-tabs {
|
|
/* Flex needed here to work around #7511 (90% zoom issues in firefox) */
|
|
display: flex;
|
|
background-color: hsl(0, 0%, 93%);
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
overflow: hidden;
|
|
|
|
.emoji-popover-tab-item {
|
|
display: inline-block;
|
|
padding-top: 8px;
|
|
width: 25px;
|
|
height: 25px;
|
|
text-align: center;
|
|
font-size: 16px;
|
|
cursor: pointer;
|
|
/* Flex needed here to work around #7511 (90% zoom issues in firefox) */
|
|
flex-grow: 1;
|
|
|
|
&.active {
|
|
background-color: hsla(0, 0%, 100%, 0.2);
|
|
}
|
|
}
|
|
}
|
|
|
|
.emoji-popover-emoji-map,
|
|
.emoji-search-results-container {
|
|
padding: 0;
|
|
position: relative;
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
display: block;
|
|
width: 247px;
|
|
padding-left: 3px;
|
|
}
|
|
|
|
.emoji-search-results-container {
|
|
height: 283px;
|
|
|
|
.emoji-popover-results-heading {
|
|
font-weight: 600;
|
|
padding: 5px 3px 3px 5px;
|
|
font-size: 17px;
|
|
}
|
|
}
|
|
|
|
.emoji-popover-emoji-map {
|
|
height: 250px;
|
|
|
|
.emoji-popover-subheading {
|
|
font-weight: 600;
|
|
padding: 5px 3px;
|
|
}
|
|
}
|
|
|
|
.emoji-popover-emoji {
|
|
display: inline-block;
|
|
margin: 0;
|
|
padding: 6px;
|
|
cursor: pointer;
|
|
border-radius: 0.5em;
|
|
height: 25px;
|
|
width: 25px;
|
|
|
|
&.reacted.reaction:focus {
|
|
background-color: hsl(195, 55%, 88%);
|
|
outline: none;
|
|
}
|
|
|
|
&:not(.reacted):focus {
|
|
background-color: hsl(0, 0%, 93%);
|
|
outline: none;
|
|
}
|
|
|
|
&.hide {
|
|
display: none;
|
|
}
|
|
|
|
.emoji {
|
|
top: 6px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.emoji-showcase-container {
|
|
position: relative;
|
|
background-color: hsl(0, 0%, 93%);
|
|
min-height: 44px;
|
|
width: 250px;
|
|
|
|
.emoji-preview {
|
|
position: absolute;
|
|
width: 32px;
|
|
height: 32px;
|
|
left: 5px;
|
|
top: 6px;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.emoji-canonical-name {
|
|
position: relative;
|
|
top: 12px;
|
|
margin-left: 50px;
|
|
font-size: 16px;
|
|
font-weight: 600;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
}
|
|
|
|
.emoji_alt_code {
|
|
position: relative;
|
|
top: 4px;
|
|
font-size: 0.8em;
|
|
display: inline-block;
|
|
vertical-align: top;
|
|
margin: 0 1px 0 0;
|
|
line-height: 1em;
|
|
}
|
|
|
|
.typeahead .emoji {
|
|
top: 2px;
|
|
}
|