gitlab-org--gitlab-foss/app/assets/stylesheets/pages/search.scss
Denys Mishunov f89a8fee9d Limiting search-field styling to search only
- Re-organising search.scss
- Rely more on utility-classes instead of component classes
- Update relevant specs
2019-08-07 11:57:38 +02:00

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 */