mirror of
https://github.com/zulip/zulip.git
synced 2026-07-03 21:10:12 +08:00
CZO conversation: https://chat.zulip.org/#narrow/stream/101-design/topic/long.20search.20suggestions This commit also changes some styling for the pills, to ensure that they are properly aligned when search results wrap.
261 lines
6.2 KiB
CSS
261 lines
6.2 KiB
CSS
#searchbox {
|
|
width: 100%;
|
|
height: var(--header-height);
|
|
|
|
.navbar-search {
|
|
margin: 5.5px 0;
|
|
border-radius: 5px;
|
|
position: absolute;
|
|
}
|
|
|
|
.search_icon {
|
|
text-decoration: none;
|
|
padding: 0 7px;
|
|
font-size: 17px;
|
|
border: none;
|
|
background-color: transparent;
|
|
color: hsl(0deg 0% 0%);
|
|
opacity: 0.5;
|
|
cursor: default;
|
|
|
|
&:active,
|
|
&:focus {
|
|
outline: none;
|
|
}
|
|
|
|
&:disabled {
|
|
visibility: hidden;
|
|
}
|
|
}
|
|
|
|
.search_close_button {
|
|
width: 28px;
|
|
height: 100%;
|
|
background: none;
|
|
border: none;
|
|
opacity: 0.5;
|
|
line-height: 0;
|
|
border-radius: 4px;
|
|
/* Leave room for the focus outline. */
|
|
margin-right: 1px;
|
|
|
|
&:focus {
|
|
/* Reduce height to leave 1px on top and bottom for the outline. */
|
|
height: calc(100% - 2px);
|
|
}
|
|
|
|
&:not(:focus-visible) {
|
|
outline: none;
|
|
}
|
|
|
|
&:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
&:disabled {
|
|
visibility: hidden;
|
|
}
|
|
}
|
|
|
|
.zulip-icon-close {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.navbar-search:not(.expanded) {
|
|
right: 0;
|
|
|
|
.search_close_button {
|
|
display: none;
|
|
}
|
|
|
|
#searchbox-input-container {
|
|
width: 150px;
|
|
}
|
|
|
|
.search-input {
|
|
border-radius: 5px;
|
|
color: var(--color-text-search);
|
|
|
|
box-shadow: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
&:hover {
|
|
cursor: pointer;
|
|
|
|
@media (width >= $md_min) {
|
|
box-shadow:
|
|
0 4px 20px var(--color-search-box-hover-shadow),
|
|
0 1px 5px var(--color-search-box-hover-shadow);
|
|
}
|
|
|
|
.search_icon {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
@media (width < $md_min) {
|
|
#searchbox-input-container {
|
|
/* On small screens, the input container/button becomes just
|
|
an icon. Width is to match the width of nearby buttons. */
|
|
width: 40px;
|
|
}
|
|
|
|
.search-input {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@media (width < $sm_min) {
|
|
#searchbox-input-container .search_icon {
|
|
font-size: 18px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.navbar-search.expanded {
|
|
width: 100%;
|
|
box-shadow:
|
|
0 4px 20px var(--color-search-shadow-wide),
|
|
0 1px 5px var(--color-search-shadow-tight);
|
|
|
|
@media (width < $md_min) {
|
|
/* 3px chosen so that the cursor clicks the search button
|
|
and close button from the same position. */
|
|
width: calc(100% - 3px);
|
|
/* z-index to not see the gear icon underneath */
|
|
z-index: 1;
|
|
}
|
|
}
|
|
|
|
.typeahead.dropdown-menu {
|
|
/* Match the typeahead's width to its parent container. */
|
|
right: 0;
|
|
top: 0;
|
|
margin-top: 0;
|
|
padding-top: 0;
|
|
box-shadow: none;
|
|
position: relative;
|
|
width: 100%;
|
|
background: var(--color-background-search);
|
|
color: var(--color-text-search);
|
|
|
|
border-width: 0;
|
|
border-top-width: 1px;
|
|
border-top-color: var(--color-search-dropdown-top-border);
|
|
border-radius: 0 0 4px 4px;
|
|
|
|
.active > a {
|
|
background-color: var(--color-background-search-option-hover);
|
|
background-image: none;
|
|
color: var(--color-text-search-hover);
|
|
}
|
|
}
|
|
|
|
.input-append {
|
|
position: relative;
|
|
width: 100%;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.search-input {
|
|
font-size: 14px;
|
|
/* override bootstrap padding for input[type="text"] */
|
|
padding: 0;
|
|
border: none;
|
|
outline: none;
|
|
border-radius: 0;
|
|
font-family: "Source Sans 3 VF", sans-serif;
|
|
font-weight: 400;
|
|
height: var(--search-box-height);
|
|
/* override bootstrap min-height for input[type="text"] */
|
|
min-height: var(--search-box-height);
|
|
background: transparent;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
flex-grow: 1;
|
|
|
|
color: var(--color-text-search);
|
|
|
|
&::placeholder {
|
|
color: var(--color-text-search-placeholder);
|
|
}
|
|
}
|
|
|
|
#searchbox-input-container {
|
|
display: flex;
|
|
align-items: center;
|
|
/* override .input-append style from app_components.js */
|
|
letter-spacing: normal;
|
|
height: var(--search-box-height);
|
|
}
|
|
|
|
@media (width >= $md_min) {
|
|
.navbar-search {
|
|
background: var(--color-background-search);
|
|
}
|
|
|
|
.navbar-search:not(.expanded) {
|
|
box-shadow: 0 0 2px var(--color-search-box-hover-shadow);
|
|
}
|
|
}
|
|
|
|
@media (width < $md_min) {
|
|
.navbar-search:not(.expanded) .search_icon:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.navbar-search.expanded {
|
|
background: var(--color-background-search);
|
|
}
|
|
}
|
|
|
|
@media (width < $sm_min) {
|
|
#searchbox_form {
|
|
margin: 0;
|
|
}
|
|
|
|
#searchbox_form.expanded {
|
|
position: fixed;
|
|
left: 0;
|
|
right: 9px;
|
|
width: 100%;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
/* To be visible over `#streamlist-toggle-unreadcount`
|
|
and `#userlist-toggle-unreadcount`. */
|
|
z-index: 20;
|
|
}
|
|
|
|
.typeahead.dropdown-menu {
|
|
box-shadow: 0 1px 5px var(--color-search-shadow-wide);
|
|
}
|
|
}
|
|
|
|
.typeahead-menu li a {
|
|
padding: 3px 30px;
|
|
/* Override white-space: nowrap from zulip.css */
|
|
white-space: normal;
|
|
|
|
.search_list_item .pill-container {
|
|
margin-left: 5px;
|
|
}
|
|
}
|
|
|
|
.pill {
|
|
align-items: baseline;
|
|
}
|
|
|
|
.pill-image {
|
|
/* Add line-height equal to height to mimic baseline alignment. */
|
|
line-height: 20px;
|
|
align-self: center;
|
|
}
|
|
|
|
/* Break really long words (unlikely to happen). */
|
|
.search_list_item span {
|
|
word-break: break-word;
|
|
}
|
|
}
|