zulip/static/styles/popovers.css
Aman Agrawal 2eaf869949 move_topic_to_stream: Fix clipped stream select dropdown.
The stream select dropdown's height was clipped by the modal
container which resulted in the dropdown only being displayed
partially. We could either move the dropdown to under `body` or use
`position: fixed` for it be able to show outside parent container.
We go for the later option.
2021-12-03 14:38:27 -08:00

718 lines
14 KiB
CSS

.popover {
width: auto;
max-width: 100%;
hr {
margin-top: 5px;
margin-bottom: 5px;
}
.sub_disable_btn_hint {
padding-left: 5px;
padding-right: 5px;
font-size: small;
text-align: justify;
}
}
.popover-content {
padding: 5px 0;
}
.popover-title {
overflow-x: hidden;
text-overflow: ellipsis;
text-align: center;
font-size: inherit;
line-height: inherit;
&:empty {
display: none;
}
}
.popover_info {
text-align: center;
}
.popover-left,
.popover-right {
max-width: 200px;
}
.sp-container {
z-index: 106;
}
.mobile-message-buttons-popover {
position: absolute;
top: auto !important;
right: 8px;
bottom: 48px;
left: auto !important;
width: 175px;
height: 65px;
}
.streams_popover {
.topic-name {
text-align: center;
margin-top: 5px;
margin-bottom: 5px;
}
.colorpicker-container {
display: none;
margin-right: 10px;
.sp-container {
background-color: hsl(0, 0%, 100%);
cursor: pointer;
border: none;
.sp-palette-container {
border-right: none;
}
input {
box-sizing: inherit; /* IE */
box-sizing: initial;
width: calc(100% - 13px);
}
button {
background-color: hsl(0, 0%, 100%);
background-image: none;
border: 1px solid hsl(0, 0%, 80%);
border-radius: 4px;
color: hsl(0, 0%, 25%);
font-size: 12px;
padding: 6px;
text-transform: capitalize;
text-align: center;
text-shadow: none;
}
.sp-picker-container {
border-left: solid 1px hsl(0, 0%, 88%);
}
}
}
.popover_sub_unsub_button {
margin-top: 0;
float: none;
}
}
ul {
&.info_popover_actions i,
&.actions_popover i,
&.streams_popover i,
&.topics_popover i {
display: inline-block;
width: 14px;
text-align: center;
margin-right: 3px;
}
&.topics_popover {
.topic-name {
text-align: center;
margin-top: 5px;
margin-bottom: 5px;
.fa-chevron-right {
font-size: 12px;
}
}
.admin-separator {
display: flex;
align-items: center;
text-align: center;
font-size: 10px;
&::before,
&::after {
content: "";
flex: 1;
border-top: 1px solid hsl(0, 0%, 93%);
border-bottom: 1px solid hsl(0, 0%, 100%);
}
&::before {
margin-right: 8px;
}
&::after {
margin-left: 8px;
}
}
}
&.remind_me_popover .remind_icon {
text-align: center;
}
&.topic-move_popover {
max-height: 200px;
overflow-y: auto;
}
&.info_popover_actions i.fa-edit {
vertical-align: middle;
}
}
.user_popover {
width: 240px;
margin: -14px;
padding: 0;
.popover-title {
padding: 0;
border-color: hsla(0, 0%, 0%, 0.2);
}
.popover_info li {
word-wrap: break-word;
}
}
.message-info-popover,
.user-info-popover {
width: 240px;
padding: 0;
.popover-title {
padding: 0;
border-color: hsla(0, 0%, 0%, 0.2);
}
}
.group-info-popover {
.manage-group a {
text-align: center;
}
.group-info {
text-align: center;
.group-name {
font-weight: bold;
}
}
.member-list {
position: relative;
max-height: 300px;
overflow-y: auto;
list-style: none;
margin-left: 0;
.bot {
color: hsl(180, 5%, 74%);
vertical-align: top;
width: 20px;
padding-top: 3.5px;
text-align: center;
}
}
}
.popover_user_presence {
width: 8px;
height: 8px;
margin: 0 5px;
display: inline-block;
float: initial;
position: relative;
top: 1px;
}
.bot-owner-name {
text-decoration: underline;
&:hover {
cursor: pointer;
color: hsl(200, 100%, 40%);
}
}
.popover-avatar {
height: 240px;
width: 240px;
background-size: cover;
background-position: center;
position: relative;
&.guest-avatar::after {
outline: 10px solid hsl(0, 0%, 100%);
}
.popover-inner {
width: 240px;
}
}
#user-profile-modal {
.modal__body {
box-sizing: border-box;
height: 60vh;
padding-left: 16px;
padding-right: 16px;
}
.modal__close {
float: right;
margin: 0;
}
#tab-toggle {
font-weight: initial;
margin: 6px 4px 6px 0;
width: 100%;
.tab-switcher {
margin-left: 2px;
}
}
.name {
color: hsl(0, 0%, 20%);
display: inline-block;
min-width: 120px;
font-weight: 600;
}
#exit-sign {
font-size: 1.5rem;
line-height: 1;
}
#avatar {
display: inline-block;
height: 180px;
width: 180px;
background-size: cover;
background-position: center;
border-radius: 5px;
margin-right: 10px;
border: 1px solid hsla(0, 0%, 0%, 0.2);
&.guest-avatar::after {
outline: 9px solid hsl(0, 0%, 100%);
}
}
#name {
font-size: 26px;
font-weight: 700;
margin-bottom: 5px;
max-width: 100%;
text-align: center;
line-height: 30px;
#edit-button {
font-size: 18px;
margin-left: 10px;
}
}
#default-section {
display: inline-block;
vertical-align: top;
.default-field {
margin-bottom: 5px;
}
#user-type {
margin-bottom: 15px;
}
}
hr {
border: 1px solid hsl(0, 0%, 93%);
margin: 5px 0;
}
#content {
margin-top: 10px;
.field-section {
margin-top: 8px;
.name {
color: hsl(0, 0%, 20%);
font-weight: 600;
}
&[data-type="2"] .value {
overflow-wrap: break-word;
}
}
}
&.no-fields {
hr,
#content {
display: none;
}
}
&:not(.no-fields) {
#body {
padding-bottom: 10px;
padding-top: 4px;
margin-top: 10px;
}
}
.tab-data {
.active {
display: block;
}
margin-bottom: 20px;
}
#user-profile-streams-tab {
.stream_list_info {
margin-bottom: 8px;
}
.stream-privacy {
display: inline-block;
}
.filter-icon i {
padding-right: 3px;
}
}
.stream-list-top-section {
display: flex;
.stream-list-header {
margin: 0;
display: inline-block;
font-weight: inherit;
}
.stream-search {
margin-left: auto;
align-self: center;
}
#clear_stream_search {
display: none;
padding: 5px 8px 5px 4px;
position: relative;
right: 0;
}
}
.subscription-group-list,
.subscription-stream-list {
position: relative;
border: 1px solid hsl(0, 0%, 83%);
border-radius: 4px;
overflow: auto;
text-align: left;
margin-bottom: 5px;
-webkit-overflow-scrolling: touch;
.user-stream-list,
.user-group-list {
width: 100%;
margin: auto;
border-radius: 6px;
tr {
border-bottom: 1px solid hsl(0, 0%, 87%);
&:last-of-type {
border-bottom: none;
}
td {
padding: 4px 0;
&:first-of-type {
padding-left: 10px;
}
&:last-of-type {
padding-right: 10px;
}
&.remove_subscription {
text-align: right;
}
}
}
tbody:empty::after,
&:empty::after {
content: attr(data-empty);
display: block;
text-align: center;
color: hsl(0, 0%, 67%);
}
&:empty {
display: block;
padding: 5px;
}
}
}
}
@media (width < $md_min) {
.message-info-popover,
.user-info-popover {
display: flex !important;
justify-content: center;
align-items: center;
/* these are to override JS embedded inline styles. */
top: 0 !important;
left: 0 !important;
margin: 0 !important;
width: 100%;
height: 100%;
background-color: hsla(0, 0%, 0%, 0.7);
border-radius: 0;
border: none;
pointer-events: none;
.popover-inner {
background-color: hsl(0, 0%, 100%);
pointer-events: all;
}
}
.colorpicker-popover {
display: flex !important;
justify-content: center;
align-items: center;
/* these are to override JS embedded inline styles. */
top: 0 !important;
left: 0 !important;
margin: 0 !important;
width: 100%;
height: 100%;
background-color: hsla(0, 0%, 0%, 0.7);
border-radius: 0;
border: none;
pointer-events: none;
.popover-inner {
background-color: hsl(0, 0%, 100%);
pointer-events: all;
}
@media (width < $sm_min) {
.popover-inner {
width: 70%;
}
.sp-picker-container {
border-left: none !important;
}
}
}
.popover-flex {
position: absolute;
top: 0 !important;
left: 0 !important;
width: 100vw;
height: 100vh;
display: flex !important;
justify-content: center;
align-items: center;
background-color: hsla(0, 0%, 0%, 0.7);
/* Needs to be higher than the 105 for div.overlay so that the
emoji picker can render on top of the user status picker. */
z-index: 106;
opacity: 0;
pointer-events: none;
transition: all 0.3s ease;
&.fade.in {
opacity: 1;
pointer-events: all;
}
.popover {
display: inline-block;
}
}
.emoji-info-popover {
position: static;
margin-right: 0;
}
#user-profile-modal {
.stream-list-top-section {
display: block;
.header-section {
width: 100%;
}
.stream-search {
margin-bottom: 8px;
}
#clear_stream_search {
padding-top: 1px;
}
}
}
}
.popover.top .arrow::after {
left: -1px;
}
#giphy_grid_in_popover {
/* 300px of GIPHY grid + 5px is the extra gutter space
* between gif columns. */
width: 305px;
border: 0;
padding: 0;
.giphy-gif {
cursor: pointer;
}
.giphy-gif-img:focus {
/* Red outline for clear visibility
* of which image is in focus.
*/
outline-color: hsl(0, 100%, 50%);
}
.search-box {
display: flex;
position: sticky;
padding: 2px;
input {
flex-grow: 1;
margin: 5px;
border-radius: 3px;
}
.clear_search_button {
position: absolute;
top: 5px;
right: 3px;
font-size: 16px;
&:focus {
.fa-remove {
outline: 2px solid hsl(215, 47%, 50%);
}
}
}
}
.popover-content {
overflow: auto;
height: 200px;
margin: 2px;
}
.popover-footer {
text-align: center;
background-color: hsl(0, 0%, 0%);
border-radius: 0 0 6px 6px;
img {
width: 120px;
}
}
}
@media (max-width: 768px) {
#giphy_grid_in_popover {
position: static;
top: 0 !important;
left: 0 !important;
}
}
.user_info_status_text {
opacity: 0.8;
padding: 2px 0 3px;
.status_emoji {
height: 18px;
width: 18px;
top: 2px;
}
}
#move_topic_modal {
form {
margin: 0;
}
/* Ensure that the dropdown can overflow the modal. */
.modal__content {
overflow: visible;
}
/* Override the default border-radius to properly align
the button corners with `stream_header_colorblock`. */
.dropdown-toggle {
border-radius: 1px 4px 4px 1px !important;
}
.dropdown-list-widget,
.stream_header_colorblock {
margin-bottom: 10px;
}
.topic_stream_edit_header {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
#select_stream_id {
border-left: 0;
padding-left: 0;
border-radius: 3px;
margin: 0 5px 5px -10px;
text-indent: 10px;
}
.dropdown-menu {
position: fixed;
top: 125px;
left: 40px;
}
}
}