#compose_buttons { text-align: right; display: flex; flex-direction: row; align-items: center; .new_message_button { margin-left: 4px; .button.small { font-size: 1em; padding: 3px 10px; vertical-align: middle; } .compose_mobile_button { span { font-size: 1.2em !important; font-weight: 400; line-height: 1em; } } .message-control-link { float: left; } } .reply_button_container { flex: 1; min-width: 0; margin-left: 0; .compose_reply_button { width: 100%; text-align: left; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; .compose_reply_button_recipient_label { color: hsl(215, 47%, 30%); } } } .mobile_button_container { @media (width >= $sm_min) { display: none; } } .stream_button_container, .private_button_container { @media (width < $sm_min) { display: none; } } } /* Main geometry for this element is in zulip.css */ #compose-content { border-top: 1px solid hsla(0, 0%, 0%, 0.07); transition: background-color 200ms linear; padding: 4px 4px 8px; border-left: 1px solid hsl(0, 0%, 93%); border-right: 1px solid hsl(0, 0%, 93%); height: 100%; display: flex; flex-flow: column; box-sizing: border-box; } .ztable_comp_col1 { width: 10px; } .message_comp { display: none; padding: 10px 10px 8px 5px; } .autocomplete_secondary { opacity: 0.8; } .active .autocomplete_secondary { opacity: 1; } .compose_table { height: 100%; display: flex; flex-flow: column; .stream-selection-header-colorblock { &.message_header_private_message { border-radius: 3px 0 0 3px; border-bottom: 0; background-color: hsl(0, 0%, 27%); } } .right_part { padding: 0; display: flex; align-items: center; width: 100%; .fa-angle-right { font-size: 0.9em; -webkit-text-stroke: 0.05em; position: relative; margin: 0 5px; } } .pm_recipient { margin-left: 5px; margin-right: 35px; display: flex; width: 100%; } #private-message .to_text { vertical-align: middle; font-weight: 600; } #compose-lock-icon { position: relative; left: 5px; width: 0; } .message_header { background: none; background-color: hsl(0, 0%, 92%); border: none; border-radius: 0; box-shadow: none !important; } .messagebox { box-shadow: none !important; } .message-control-link { position: relative; margin-right: 5px; top: 3px; } } #send_message_form { margin: 0; height: 100%; .messagebox-wrapper { flex: 1; } .messagebox { /* normally 5px 14px; pull in the right and bottom a bit */ cursor: default; padding: 0; background: none; box-shadow: none; border: none; height: 100%; display: flex; flex-flow: column; } .message_content { margin-right: 0; } } #below-compose-content { width: 100%; margin-top: 6px; } #compose_limit_indicator { position: relative; margin-right: 8px; top: 3px; float: right; font-size: 12px; color: hsl(39, 100%, 50%); &.over_limit { color: hsl(0, 100%, 50%); font-weight: bold; } } #compose { position: fixed; bottom: 0; left: 0; z-index: 2; width: 100%; background-color: hsl(0, 0%, 100%); } #compose-container { width: 100%; /* This should match the value for .app-main */ max-width: 1400px; margin: auto; } #compose_top_right { position: absolute; right: 0; float: right; button { background: transparent; font-size: 20px; font-weight: bold; line-height: 20px; opacity: 0.6; border: 0; padding: 0; margin-left: 4px; vertical-align: unset; &:hover { opacity: 1; } } } .collapse_composebox_button, #compose_close { display: none; } .compose_invite_user, .compose_private_stream_alert, .compose-all-everyone, .compose-announce, .compose_not_subscribed { padding: 4px 0; display: flex; justify-content: space-between; position: relative; } #compose_not_subscribed_close { top: 0; right: 0; position: absolute; } .compose_invite_close, .compose_private_stream_alert_close { display: inline-block; margin-top: 4px; width: 10px; } .compose-all-everyone-controls, .compose-announce-controls, .compose_invite_user_controls, .compose_private_stream_alert_controls { float: right; position: relative; } .compose_invite_user p, .compose_not_subscribed p { margin: 0 20px; display: inline-block; max-width: calc(100% - 100px); } #error-message-sub-button { margin-right: 30px; } /* Like .nav-tabs > li > a */ div[id^="message-edit-send-status"], #compose-send-status { padding: 8px 14px; margin-bottom: 8px; line-height: 20px; display: none; } #compose-send-status .progress { height: 10px; margin-bottom: 10px; } /* Like .alert .close */ .send-status-close, .compose-send-status-close { font-size: 17px; font-weight: bold; color: hsl(0, 0%, 0%); text-shadow: 0 1px 0 hsl(0, 0%, 100%); opacity: 0.2; float: right; } .send-status-close:hover, .compose-send-status-close:hover { cursor: pointer; opacity: 0.4; } #out-of-view-notification { position: relative; margin-bottom: 6px; background-color: hsla(152, 51%, 63%, 0.25); border: 1px solid hsla(0, 0%, 0%, 0.1); border-radius: 4px; .close { position: absolute; right: 8px; top: 4px; font-size: 17px; font-weight: bold; color: hsl(0, 0%, 0%); text-shadow: 0 1px 0 hsl(0, 0%, 100%); opacity: 0.2; } } .compose-notifications-content { padding: 4px 22px; text-align: center; } .composition-area { position: relative; flex: 1; } textarea.new_message_textarea { display: table-cell; width: calc(100% - 12px); padding: 5px; height: 1.5em; max-height: 22em; margin-bottom: 0; resize: vertical !important; margin-top: 5px; @keyframes flash { 0% { box-shadow: none; } 100% { box-shadow: 0 0 0 1pt hsl(0, 100%, 50%); } } &.over_limit, &.over_limit:focus { box-shadow: 0 0 0 1pt hsl(0, 100%, 50%); &.flash { animation: flash 0.5s ease-in-out infinite; } } } textarea.new_message_textarea, .compose_table .recipient_box { border: 1px solid hsla(0, 0%, 0%, 0.2); box-shadow: none; transition: border 0.2s ease; &:focus { border: 1px solid hsl(0, 0%, 67%); box-shadow: none; } } input.recipient_box { margin: 0; height: 1.1em; border-radius: 3px; } #stream_message_recipient_stream.recipient_box { width: 20%; border-radius: 0 3px 3px 0; border-left: 0; min-width: 120px; &:focus { border-left: none; } &.lock-padding { padding-left: 18px; } } #stream_message_recipient_topic.recipient_box { width: calc(20% + 14px); min-width: 140px; max-width: 165px; } #private_message_recipient.recipient_box { width: 100%; } #compose-send-button { /* To arrange the right tab order for the compose box keyboard UI, this element appears before its proper position in the DOM and is configured to float right, so that tabbing from the compose box goes here and then to the message controls to its left, to ensure "Tab then Enter" sends messages. */ padding-top: 3px; padding-bottom: 3px; margin-bottom: 0; font-weight: 600; float: right; font-size: 0.9em; } #send_controls { float: right; position: relative; font-size: 0.8em; height: 2.2em; .compose_checkbox_label { color: hsl(0, 0%, 67%); margin: 4px; } } #stream-message, #private-message { display: flex; } #private-message { align-items: center; } #sending-indicator { top: 2px; position: relative; font-weight: bold; display: inline-block; } .compose_giphy_link .compose_gif_icon { position: relative; font-size: 23px; top: -4px; } a.compose_control_button { display: block; opacity: 0.7; color: inherit; text-decoration: none; font-size: 15px; width: auto; height: 15px; margin-right: 8px; padding-top: 5px; text-align: center; float: left; &:hover { opacity: 1; } } /* This is used to override the * properties of `a.compose_control_button` * without using `!important`. */ a.compose_control_button.hide { display: none; } .drag { display: none; height: 18px; width: 100%; top: 23px; position: relative; cursor: ns-resize; } #enter_sends { vertical-align: middle; margin-top: -2px; margin-right: 4px; } .inline-subscribe-error { margin-left: 5px; } .preview_message_area { /* minus 5px padding. */ width: calc(100% - 12px); padding: 5px; margin-top: 5px; /* the maximum height the textarea gets to. */ max-height: 308px; /* the minimum height the textarea collapses to. */ min-height: 42px; overflow: auto; border: 1px solid hsl(0, 0%, 67%); border-radius: 4px; background-color: hsla(0, 0%, 0%, 0.02); cursor: not-allowed; } .markdown_preview_spinner { margin: auto; } .dropdown-menu { ul { list-style: none; margin: 0; background: hsl(0, 0%, 100%); } .typeahead-header { margin: 0; padding-left: 20px; padding-right: 20px; padding-top: 4px; border-top: 1px solid hsla(0, 0%, 0%, 0.2); display: flex; align-items: center; } #typeahead-header-text { font-size: 12px; } &.typeahead { background: hsl(0, 0%, 100%); } } .compose_mobile_stream_button i, .compose_mobile_private_button i { margin-right: 4px; } /* This max-width must be synced with message_viewport.is_narrow */ @media (width < $xl_min) { #compose-content { margin-right: 7px; } } @media (width < $md_min) { #compose-content { margin-right: 7px; margin-left: 7px; } } @media (width < $mm_min) { #stream_message_recipient_topic.recipient_box { width: calc(100% - 175px); min-width: 95px; } #compose-content { margin-right: 5px; margin-left: 5px; } } #compose.compose-fullscreen { z-index: 99; #compose-container { height: 100%; } .message_comp { flex: 1; display: flex !important; flex-flow: column; } #compose-textarea { max-height: none !important; flex: 1; } #preview_message_area { max-height: none; height: 1.5em; flex: 1; } }