.message_reactions { overflow: hidden; user-select: none; .message_reaction { display: flex; padding: 0 2px 0 0; cursor: pointer; background-color: hsl(0deg 0% 100%); border: 1px solid hsl(194deg 37% 84%); border-radius: 4px; align-items: center; &.reacted { background-color: hsl(195deg 50% 95%); } &:hover { border: 1px solid hsl(200deg 100% 40%); } + .reaction_button { visibility: hidden; pointer-events: none; padding: 3px; height: 13px; border-radius: 4px; padding-left: 0.3em; border: 1px solid hsl(0deg 0% 73%); padding-right: 0.3em; /* TODO: Eventually this space will be set on the message box, but for now this preserves the space beneath the reactions area. */ margin-bottom: 2px; } .emoji { margin: 1px 3px; height: 17px; width: 17px; /* Preserve the emoji's dimensions, no matter what the flexbox does. */ flex-shrink: 0; /* Don't inherit position: relative; from the base .emoji class. */ position: static; } .emoji_alt_code { /* Apply the same margins as on graphical emoji. */ margin: 1px 3px; /* Reset some properties from the base .emoji_alt_code class that aren't appropriate in a flexbox context. */ position: static; /* Flexbox will handle baselines, so don't mess with the line-height. */ line-height: inherit; } } .message_reaction_count { font-size: 90%; margin: 2px 3px; line-height: 1em; } .message_reaction:hover .message_reaction_count { color: hsl(200deg 100% 40%); } & i { font-size: 1.3em; float: left; color: hsl(0deg 0% 33%); } &:hover .message_reaction + .reaction_button { visibility: visible; pointer-events: all; background-color: hsl(0deg 0% 98%); } .reaction_button, .emoji-message-control-button-container { display: flex; align-items: center; } .reaction_button { & i { font-size: 1em; } &:hover i { color: hsl(200deg 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(200deg 100% 40%); background-color: hsl(195deg 50% 95%); cursor: pointer; opacity: 1; color: hsl(200deg 100% 40%); } .message_reaction_count { font-size: 1.1em; color: hsl(0deg 0% 33%); margin-right: 0; } &:hover .message_reaction_count { color: hsl(200deg 100% 40%); } } } .private-message .message_reactions .message_reaction { background-color: hsl(192deg 20% 95%); &.reacted { background-color: hsl(196deg 51% 93%); border-color: hsl(193deg 38% 70%); } } .active-emoji-picker-reference { visibility: visible !important; pointer-events: all !important; opacity: 1 !important; } .emoji-picker-popover { padding: 0; height: 370px; user-select: none; .popover-content { padding: 0; } &.bottom .arrow { border-bottom-color: hsl(0deg 0% 93%); } &.top .arrow { border-top-color: hsl(0deg 0% 93%); } .emoji-popover { width: 250px; .reacted { background-color: hsl(195deg 50% 95%); border-color: hsl(195deg 52% 79%); } .emoji-popover-top { position: relative; padding: 8px 10px; margin-bottom: 0; background-color: hsl(0deg 0% 93%); border-radius: 3px 3px 0 0; .fa-search { position: absolute; color: hsl(0deg 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(0deg 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: hsl(0deg 0% 100% / 20%); } } } .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(195deg 55% 88%); outline: none; } &:not(.reacted):focus { background-color: hsl(0deg 0% 93%); outline: none; } &.hide { display: none; } .emoji { top: 6px; } } } .emoji-showcase-container { position: relative; background-color: hsl(0deg 0% 93%); min-height: 44px; width: 250px; border-radius: 0 0 3px 3px; .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; }