mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 05:23:35 +00:00
This is a prep commit for moving the narrow to compose recipients button before the input, and also aids in the overall compose area redesign.
241 lines
4.8 KiB
CSS
241 lines
4.8 KiB
CSS
.pill-container {
|
|
display: inline-flex;
|
|
flex-wrap: wrap;
|
|
min-width: 0;
|
|
|
|
padding: 2px;
|
|
border: 1px solid hsl(0deg 0% 0% / 15%);
|
|
border-radius: 4px;
|
|
align-items: center;
|
|
|
|
cursor: text;
|
|
|
|
.pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
|
|
height: 20px;
|
|
margin: 1px 2px;
|
|
|
|
color: inherit;
|
|
border: 1px solid hsl(0deg 0% 0% / 15%);
|
|
|
|
border-radius: 4px;
|
|
background-color: hsl(0deg 0% 0% / 7%);
|
|
cursor: pointer;
|
|
|
|
&:focus {
|
|
color: hsl(0deg 0% 100%);
|
|
border: 1px solid hsl(176deg 78% 28%);
|
|
background-color: hsl(176deg 49% 42%);
|
|
outline: none;
|
|
}
|
|
|
|
.pill-image {
|
|
height: 20px;
|
|
width: 20px;
|
|
border-radius: 4px 0 0 4px;
|
|
}
|
|
|
|
.pill-label {
|
|
/* Treat as flex container to better position status
|
|
emoji and control ellipsis on the pill value. */
|
|
display: flex;
|
|
/* Allow label to collapse for ellipsis effect. */
|
|
min-width: 0;
|
|
align-items: center;
|
|
margin: 0 5px;
|
|
}
|
|
|
|
.pill-value {
|
|
flex: 0 1 auto;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.exit {
|
|
opacity: 0.5;
|
|
font-size: 1.3em;
|
|
margin-right: 3px;
|
|
}
|
|
|
|
&:hover .exit {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
&.not-editable {
|
|
cursor: not-allowed;
|
|
border: none;
|
|
background-color: transparent;
|
|
padding: 0;
|
|
|
|
.pill {
|
|
padding-right: 4px;
|
|
cursor: not-allowed;
|
|
|
|
&:focus {
|
|
color: inherit;
|
|
border: 1px solid hsl(0deg 0% 0% / 15%);
|
|
background-color: hsl(0deg 0% 0% / 7%);
|
|
}
|
|
|
|
.exit {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.pill-container-btn {
|
|
cursor: pointer;
|
|
padding: 0;
|
|
|
|
.pill {
|
|
margin: 0;
|
|
border: none;
|
|
|
|
.exit {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
.input {
|
|
display: inline-block;
|
|
padding: 2px 4px;
|
|
|
|
min-width: 2px;
|
|
word-break: break-all;
|
|
|
|
outline: none;
|
|
|
|
&.shake {
|
|
animation: shake 0.3s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
|
|
transform: translate3d(0, 0, 0);
|
|
backface-visibility: hidden;
|
|
perspective: 1000px;
|
|
}
|
|
}
|
|
}
|
|
|
|
#compose-direct-recipient .pill-container {
|
|
padding: 0 2px;
|
|
border: 1px solid hsl(0deg 0% 0% / 20%);
|
|
background-color: hsl(0deg 0% 100%);
|
|
|
|
.input {
|
|
height: 20px;
|
|
|
|
&:first-child:empty::before {
|
|
content: attr(data-no-recipients-text);
|
|
opacity: 0.5;
|
|
}
|
|
}
|
|
|
|
.pill + .input:empty::before {
|
|
content: attr(data-some-recipients-text);
|
|
opacity: 0.5;
|
|
}
|
|
}
|
|
|
|
#invitee_emails_container .pill-container {
|
|
width: 100%;
|
|
}
|
|
|
|
.deactivated-pill {
|
|
background-color: hsl(0deg 86% 86%) !important;
|
|
}
|
|
|
|
.add_subscribers_container .pill-container,
|
|
.add_members_container .pill-container {
|
|
width: 100%;
|
|
background-color: hsl(0deg 0% 100%);
|
|
|
|
.input:first-child:empty::before {
|
|
opacity: 0.5;
|
|
content: attr(data-placeholder);
|
|
}
|
|
}
|
|
|
|
/* These pill are similar to .not-editable, but are meant to show
|
|
profile cards when clicked. */
|
|
.panel_user_list > .pill-container,
|
|
.stream_creator_details > .display_only_pill {
|
|
background-color: hsl(0deg 0% 0% / 7%);
|
|
|
|
&:hover {
|
|
color: inherit;
|
|
}
|
|
|
|
> .pill {
|
|
background-color: transparent;
|
|
border: none;
|
|
text-decoration: none;
|
|
|
|
&:focus {
|
|
color: inherit;
|
|
}
|
|
|
|
> .pill-label {
|
|
margin: 0;
|
|
|
|
> .pill-value {
|
|
padding: 5px;
|
|
max-width: 165px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.stream_creator_details > .display_only_pill.inline_with_text_pill {
|
|
padding: 0;
|
|
|
|
> .pill {
|
|
margin: 0;
|
|
align-items: baseline;
|
|
|
|
> .pill-image {
|
|
/* Add line-height equal to height to mimic baseline alignment. */
|
|
line-height: 20px;
|
|
align-self: center;
|
|
}
|
|
|
|
> .pill-label {
|
|
> .pill-value {
|
|
padding: 0 5px;
|
|
max-width: none;
|
|
}
|
|
|
|
> .my_user_status {
|
|
margin-right: 2px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@keyframes shake {
|
|
10%,
|
|
90% {
|
|
transform: translate3d(-1px, 0, 0);
|
|
}
|
|
|
|
20%,
|
|
80% {
|
|
transform: translate3d(2px, 0, 0);
|
|
}
|
|
|
|
30%,
|
|
50%,
|
|
70% {
|
|
transform: translate3d(-3px, 0, 0);
|
|
}
|
|
|
|
40%,
|
|
60% {
|
|
transform: translate3d(3px, 0, 0);
|
|
}
|
|
}
|