f89a8fee9d
- Re-organising search.scss - Rely more on utility-classes instead of component classes - Update relevant specs
294 lines
5.7 KiB
SCSS
294 lines
5.7 KiB
SCSS
$search-dropdown-max-height: 400px;
|
|
$search-avatar-size: 16px;
|
|
|
|
.search-results {
|
|
.search-result-row {
|
|
border-bottom: 1px solid $border-color;
|
|
padding-bottom: $gl-padding;
|
|
margin-bottom: $gl-padding;
|
|
|
|
&:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
}
|
|
|
|
.blob-result {
|
|
margin: 5px 0;
|
|
}
|
|
}
|
|
|
|
.search form:hover,
|
|
.file-finder-input:hover,
|
|
.issuable-search-form:hover,
|
|
.search-text-input:hover,
|
|
.form-control:hover,
|
|
:not[readonly] {
|
|
border-color: lighten($blue-300, 20%);
|
|
box-shadow: 0 0 4px lighten($dropdown-input-focus-shadow, 20%);
|
|
}
|
|
|
|
input[type='checkbox']:hover {
|
|
box-shadow: 0 0 2px 2px lighten($dropdown-input-focus-shadow, 20%),
|
|
0 0 0 1px lighten($dropdown-input-focus-shadow, 20%);
|
|
}
|
|
|
|
.search {
|
|
margin: 0 8px;
|
|
|
|
form {
|
|
@extend .form-control;
|
|
margin: 0;
|
|
padding: 4px;
|
|
width: $search-input-width;
|
|
line-height: 24px;
|
|
height: 32px;
|
|
border: 0;
|
|
border-radius: $border-radius-default;
|
|
transition: border-color ease-in-out $default-transition-duration,
|
|
background-color ease-in-out $default-transition-duration,
|
|
width ease-in-out $default-transition-duration;
|
|
|
|
&:hover {
|
|
box-shadow: none;
|
|
}
|
|
}
|
|
|
|
.search-input {
|
|
border: 0;
|
|
font-size: 14px;
|
|
padding: 0 20px 0 0;
|
|
margin-left: 5px;
|
|
line-height: 25px;
|
|
width: 98%;
|
|
color: $white-light;
|
|
background: none;
|
|
transition: color ease-in-out $default-transition-duration;
|
|
}
|
|
|
|
.search-input::placeholder {
|
|
transition: color ease-in-out $default-transition-duration;
|
|
}
|
|
|
|
.search-input-container {
|
|
display: flex;
|
|
position: relative;
|
|
}
|
|
|
|
.search-input-wrap {
|
|
width: 100%;
|
|
|
|
.search-icon,
|
|
.clear-icon {
|
|
position: absolute;
|
|
right: 5px;
|
|
top: 4px;
|
|
}
|
|
|
|
.search-icon {
|
|
transition: color $default-transition-duration;
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.clear-icon {
|
|
display: none;
|
|
}
|
|
|
|
// Rewrite position. Dropdown menu should be relative to .search-input-container
|
|
.dropdown {
|
|
position: static;
|
|
}
|
|
|
|
.dropdown-header {
|
|
// Necessary because glDropdown doesn't support a second style of headers
|
|
font-weight: $gl-font-weight-bold;
|
|
color: $gl-text-color;
|
|
font-size: $gl-font-size;
|
|
line-height: 16px;
|
|
}
|
|
|
|
// Custom dropdown positioning
|
|
.dropdown-menu {
|
|
left: -5px;
|
|
max-height: $search-dropdown-max-height;
|
|
overflow: auto;
|
|
|
|
@include media-breakpoint-up(xl) {
|
|
width: $search-input-active-width;
|
|
}
|
|
}
|
|
|
|
.dropdown-content {
|
|
max-height: $search-dropdown-max-height - 18px;
|
|
}
|
|
}
|
|
|
|
&.search-active {
|
|
form {
|
|
@extend .form-control:focus;
|
|
border-color: $blue-300;
|
|
box-shadow: none;
|
|
|
|
@include media-breakpoint-up(xl) {
|
|
width: $search-input-active-width;
|
|
}
|
|
|
|
.search-input-wrap {
|
|
.search-icon,
|
|
.clear-icon {
|
|
color: $gl-text-color-tertiary;
|
|
transition: color ease-in-out $default-transition-duration;
|
|
}
|
|
}
|
|
|
|
.search-input {
|
|
color: $gl-text-color;
|
|
transition: color ease-in-out $default-transition-duration;
|
|
}
|
|
|
|
.search-input::placeholder {
|
|
color: $gl-text-color-tertiary;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.has-value {
|
|
.search-icon {
|
|
display: none;
|
|
}
|
|
|
|
.clear-icon {
|
|
cursor: pointer;
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
.inline-search-icon {
|
|
position: relative;
|
|
margin-right: 4px;
|
|
color: $gl-text-color-secondary;
|
|
}
|
|
|
|
.identicon,
|
|
.search-item-avatar {
|
|
flex-basis: $search-avatar-size;
|
|
flex-shrink: 0;
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.search-item-avatar {
|
|
width: $search-avatar-size;
|
|
height: $search-avatar-size;
|
|
border-radius: 50%;
|
|
border: 1px solid $gray-normal;
|
|
}
|
|
}
|
|
|
|
.search-field-holder,
|
|
.project-filter-form {
|
|
flex: 1 0 auto;
|
|
position: relative;
|
|
|
|
.search-holder & {
|
|
margin-right: 0;
|
|
|
|
@include media-breakpoint-up(sm) {
|
|
margin-right: 5px;
|
|
}
|
|
}
|
|
|
|
|
|
.search-icon {
|
|
position: absolute;
|
|
left: 10px;
|
|
top: 10px;
|
|
color: $gray-darkest;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.search-text-input,
|
|
.project-filter-form-field {
|
|
padding-left: $gl-padding + 15px;
|
|
padding-right: $gl-padding + 15px;
|
|
}
|
|
}
|
|
|
|
.search-holder {
|
|
@include media-breakpoint-up(sm) {
|
|
display: flex;
|
|
}
|
|
|
|
.btn-search,
|
|
.btn-success,
|
|
.dropdown-menu-toggle {
|
|
width: 100%;
|
|
margin-top: 5px;
|
|
|
|
@include media-breakpoint-up(sm) {
|
|
width: auto;
|
|
margin-top: 0;
|
|
margin-left: 5px;
|
|
}
|
|
}
|
|
|
|
.dropdown {
|
|
@include media-breakpoint-up(sm) {
|
|
margin-left: 5px;
|
|
margin-right: 5px;
|
|
}
|
|
}
|
|
|
|
.dropdown-menu-toggle {
|
|
@include media-breakpoint-up(sm) {
|
|
width: 180px;
|
|
margin-top: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
.search-clear {
|
|
position: absolute;
|
|
right: 10px;
|
|
top: 10px;
|
|
padding: 0;
|
|
color: $gray-darkest;
|
|
line-height: 0;
|
|
background: none;
|
|
border: 0;
|
|
|
|
&:hover,
|
|
&:focus {
|
|
color: $blue-600;
|
|
}
|
|
}
|
|
|
|
.search-page-form {
|
|
.dropdown-menu-toggle,
|
|
.btn-search {
|
|
width: 100%;
|
|
}
|
|
|
|
.dropdown-menu-toggle {
|
|
@include media-breakpoint-up(lg) {
|
|
width: 240px;
|
|
}
|
|
}
|
|
|
|
.btn-search {
|
|
@include media-breakpoint-up(lg) {
|
|
width: auto;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Disable webkit input icons, link to solution: https://stackoverflow.com/questions/9421551/how-do-i-remove-all-default-webkit-search-field-styling
|
|
/* stylelint-disable property-no-vendor-prefix */
|
|
input[type='search']::-webkit-search-decoration,
|
|
input[type='search']::-webkit-search-cancel-button,
|
|
input[type='search']::-webkit-search-results-button,
|
|
input[type='search']::-webkit-search-results-decoration {
|
|
-webkit-appearance: none;
|
|
}
|
|
/* stylelint-enable */
|