2020-06-07 05:30:54 +00:00
|
|
|
#search {
|
2021-01-16 00:56:59 +00:00
|
|
|
&-checkbox {
|
|
|
|
&:checked {
|
|
|
|
~ #searchform {
|
|
|
|
z-index: 10;
|
|
|
|
pointer-events: auto; // clickable
|
2021-04-17 01:07:53 +00:00
|
|
|
transform: none;
|
2021-01-16 00:56:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
~ #search-toggle-icon {
|
|
|
|
#search-toggle-icon {
|
|
|
|
&-2 {
|
|
|
|
border-color: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
&-1 {
|
2021-05-04 17:53:40 +00:00
|
|
|
height: 16px;
|
|
|
|
transform: translate3d( -5px, -5px, 0 ) rotate( 135deg );
|
2021-01-16 00:56:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
&-3 {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
border-color: @base-0;
|
|
|
|
|
|
|
|
#search-toggle-icon-3 {
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
~ #search-toggle-icon {
|
|
|
|
#search-toggle-icon {
|
|
|
|
&-1 {
|
|
|
|
height: 12px;
|
2021-05-04 17:53:40 +00:00
|
|
|
transform: translate3d( -5px, -5px, 0 ) rotate( 135deg );
|
2021-01-16 00:56:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
&-2 {
|
|
|
|
border-color: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
&-3 {
|
|
|
|
height: 12px;
|
|
|
|
}
|
|
|
|
|
|
|
|
&-1,
|
|
|
|
&-3 {
|
|
|
|
background-color: var( --background-color-icon--hover );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&:active {
|
|
|
|
~ #search-toggle-icon {
|
|
|
|
#search-toggle-icon {
|
|
|
|
&-1,
|
|
|
|
&-3 {
|
|
|
|
background-color: var( --background-color-icon--active );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-06-08 22:42:15 +00:00
|
|
|
&form {
|
2021-05-04 15:48:39 +00:00
|
|
|
--width-search-bar: @width-search-bar;
|
|
|
|
--height-search-bar: @height-search-bar;
|
2020-06-08 22:42:15 +00:00
|
|
|
position: absolute;
|
|
|
|
z-index: -1; // not interactable
|
|
|
|
top: 0;
|
|
|
|
right: @margin-side / 2;
|
2021-01-11 16:45:52 +00:00
|
|
|
display: flex;
|
2021-05-04 17:27:47 +00:00
|
|
|
margin: var( --margin-header-item ) 0; // 1px h3 screen reader
|
2020-06-09 02:41:49 +00:00
|
|
|
border-radius: @border-radius-small;
|
2020-06-08 22:42:15 +00:00
|
|
|
pointer-events: none; // not clickable
|
2021-04-17 01:07:53 +00:00
|
|
|
transform: translateX( 120% );
|
|
|
|
transition: @transition-transform-quick;
|
2021-01-11 16:45:52 +00:00
|
|
|
.boxshadow(4);
|
2020-06-08 22:42:15 +00:00
|
|
|
|
|
|
|
&-icon {
|
|
|
|
position: absolute;
|
2020-06-09 02:36:45 +00:00
|
|
|
z-index: 110;
|
2021-05-04 15:48:39 +00:00
|
|
|
width: var( --height-search-bar );
|
|
|
|
height: var( --height-search-bar );
|
2020-06-08 22:42:48 +00:00
|
|
|
background-position: center;
|
2021-01-11 16:45:52 +00:00
|
|
|
background-repeat: no-repeat;
|
|
|
|
background-size: 14px;
|
2021-01-14 17:20:15 +00:00
|
|
|
opacity: var( --opacity-icon-base );
|
2020-06-08 22:42:15 +00:00
|
|
|
}
|
2020-06-09 01:58:35 +00:00
|
|
|
|
|
|
|
&-random {
|
|
|
|
position: absolute;
|
2020-06-09 02:36:45 +00:00
|
|
|
z-index: 120;
|
2020-06-09 01:58:35 +00:00
|
|
|
right: 38px;
|
2021-05-04 15:48:39 +00:00
|
|
|
width: var( --height-search-bar );
|
|
|
|
height: var( --height-search-bar );
|
2020-06-09 01:59:02 +00:00
|
|
|
background-position: center;
|
2021-01-11 16:45:52 +00:00
|
|
|
background-repeat: no-repeat;
|
|
|
|
background-size: 18px;
|
2021-01-14 17:20:15 +00:00
|
|
|
opacity: var( --opacity-icon-base );
|
2020-06-09 01:59:02 +00:00
|
|
|
transition: @transition-transform-quick, @transition-opacity-quick;
|
2020-06-09 01:58:35 +00:00
|
|
|
|
2020-06-09 01:59:02 +00:00
|
|
|
&:hover {
|
2021-01-14 17:20:15 +00:00
|
|
|
opacity: var( --opacity-icon-base--hover );
|
2020-06-09 01:59:02 +00:00
|
|
|
transform: rotate( 30deg );
|
|
|
|
}
|
2021-01-14 17:20:15 +00:00
|
|
|
|
|
|
|
&:active {
|
|
|
|
opacity: var( --opacity-icon-base--active );
|
|
|
|
}
|
2020-06-09 01:58:35 +00:00
|
|
|
}
|
2020-06-08 22:42:15 +00:00
|
|
|
}
|
|
|
|
|
2020-06-07 05:30:54 +00:00
|
|
|
&-toggle {
|
2021-01-19 20:56:42 +00:00
|
|
|
position: absolute;
|
2020-06-08 22:42:15 +00:00
|
|
|
z-index: 21; // override to be on top of the form
|
2021-01-11 16:45:52 +00:00
|
|
|
right: 0; // align checkbox with icon
|
2021-05-04 17:27:47 +00:00
|
|
|
margin-right: var( --margin-header-item--corner );
|
|
|
|
margin-left: var( --margin-header-item--corner );
|
2020-06-07 05:30:54 +00:00
|
|
|
|
|
|
|
&-icon {
|
2020-06-08 22:42:15 +00:00
|
|
|
position: relative;
|
|
|
|
z-index: 20; // stay on top of search form
|
2020-06-07 05:30:54 +00:00
|
|
|
display: flex;
|
2021-01-31 22:51:01 +00:00
|
|
|
width: var( --width-button-base );
|
2021-01-16 00:56:59 +00:00
|
|
|
height: var( --height-header );
|
2021-01-11 16:45:52 +00:00
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
2021-01-31 22:51:01 +00:00
|
|
|
margin-right: 10px;
|
2020-06-07 05:30:54 +00:00
|
|
|
transition: @transition-transform-quick, @transition-height-quick, @transition-opacity-quick, @transition-border-color-quick;
|
|
|
|
|
|
|
|
&-1 {
|
2021-05-04 17:53:40 +00:00
|
|
|
top: 6px;
|
2021-05-04 15:11:25 +00:00
|
|
|
/* @noflip */
|
2020-06-07 05:30:54 +00:00
|
|
|
left: 12px;
|
2021-01-16 05:12:01 +00:00
|
|
|
height: 8px;
|
2020-06-07 05:30:54 +00:00
|
|
|
transform: rotate( -45deg );
|
|
|
|
}
|
|
|
|
|
|
|
|
&-2 {
|
|
|
|
width: 10px;
|
|
|
|
height: 10px;
|
2021-01-12 19:31:35 +00:00
|
|
|
/* Use background-color variable because it is a part of the logo */
|
|
|
|
border: solid 2px var( --background-color-icon );
|
2021-01-16 04:56:33 +00:00
|
|
|
margin-top: -4px;
|
2021-05-04 15:11:25 +00:00
|
|
|
/* @noflip */
|
2021-01-11 16:45:52 +00:00
|
|
|
margin-left: -2px;
|
2020-06-07 05:30:54 +00:00
|
|
|
border-radius: 100%;
|
|
|
|
transform: rotate( -45deg );
|
|
|
|
}
|
|
|
|
|
|
|
|
&-3 {
|
2021-05-04 17:53:40 +00:00
|
|
|
top: 1px;
|
2020-06-07 05:30:54 +00:00
|
|
|
left: -7px;
|
2021-05-04 17:53:40 +00:00
|
|
|
height: 16px;
|
2021-01-11 16:45:52 +00:00
|
|
|
opacity: 0;
|
2020-06-07 05:30:54 +00:00
|
|
|
transform: rotate( -135deg );
|
|
|
|
}
|
|
|
|
|
|
|
|
&-1,
|
|
|
|
&-3 {
|
|
|
|
width: 2px;
|
2021-01-12 19:31:35 +00:00
|
|
|
background-color: var( --background-color-icon );
|
2020-06-07 05:30:54 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
~ #search-toggle-icon {
|
|
|
|
#search-toggle-icon {
|
|
|
|
&-1 {
|
|
|
|
height: 6px;
|
2021-01-12 19:31:35 +00:00
|
|
|
background-color: var( --background-color-icon--hover );
|
2021-01-16 00:56:59 +00:00
|
|
|
transform: translate3d( 2px, 2px, 0 ) rotate( -45deg );
|
2020-06-07 05:30:54 +00:00
|
|
|
}
|
2021-01-12 19:31:35 +00:00
|
|
|
|
|
|
|
&-2 {
|
|
|
|
border-color: var( --background-color-icon--hover );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&:active {
|
|
|
|
~ #search-toggle-icon {
|
|
|
|
#search-toggle-icon {
|
|
|
|
&-1 {
|
|
|
|
background-color: var( --background-color-icon--active );
|
|
|
|
}
|
|
|
|
|
|
|
|
&-2 {
|
|
|
|
border-color: var( --background-color-icon--active );
|
|
|
|
}
|
2020-06-07 05:30:54 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&Input {
|
2020-06-09 02:36:45 +00:00
|
|
|
z-index: 100;
|
2021-05-04 15:48:39 +00:00
|
|
|
width: var( --width-search-bar );
|
|
|
|
max-width: ~'calc( 100vw - var( --padding-page ) )';
|
|
|
|
height: var( --height-search-bar );
|
|
|
|
padding: 8px ~'calc( var( --height-search-bar ) * 2 )' 8px var( --height-search-bar );
|
2021-01-12 19:31:35 +00:00
|
|
|
border: 1px solid var( --border-color-base--lighter );
|
2021-01-11 16:45:52 +00:00
|
|
|
appearance: none;
|
2021-01-12 19:31:35 +00:00
|
|
|
background: var( --background-color-dp-03 );
|
2020-06-09 02:41:49 +00:00
|
|
|
border-radius: @border-radius-small;
|
2021-04-17 01:07:53 +00:00
|
|
|
transition: @transition-background-quick, @transition-box-shadow-quick;
|
2020-06-07 05:30:54 +00:00
|
|
|
|
|
|
|
&:focus {
|
2021-01-12 20:46:40 +00:00
|
|
|
background-color: var( --background-color-dp-08 );
|
2020-06-07 05:30:54 +00:00
|
|
|
outline: 0;
|
|
|
|
.boxshadow(5);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.search {
|
|
|
|
&-toggle-icon-div {
|
|
|
|
position: relative;
|
2020-06-23 18:35:01 +00:00
|
|
|
border-radius: @border-radius-large;
|
2020-06-07 05:30:54 +00:00
|
|
|
transition: inherit;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-04 15:11:25 +00:00
|
|
|
/* @noflip */
|
2020-06-18 21:17:50 +00:00
|
|
|
.rtl {
|
2021-05-04 15:10:33 +00:00
|
|
|
#search-toggle-icon {
|
|
|
|
&-1 {
|
|
|
|
left: 2px;
|
2020-06-18 21:17:50 +00:00
|
|
|
}
|
|
|
|
|
2021-05-04 15:10:33 +00:00
|
|
|
&-2 {
|
|
|
|
margin-left: -4px;
|
2020-06-18 21:17:50 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-01-09 21:56:28 +00:00
|
|
|
.skin-citizen-dark {
|
2020-06-07 05:30:54 +00:00
|
|
|
#search {
|
2020-06-08 22:42:15 +00:00
|
|
|
&form {
|
2020-06-09 01:58:35 +00:00
|
|
|
&-icon,
|
|
|
|
&-random {
|
2020-06-08 22:42:48 +00:00
|
|
|
filter: invert( 1 );
|
2020-06-09 01:58:35 +00:00
|
|
|
}
|
2020-06-08 22:42:15 +00:00
|
|
|
}
|
2020-06-07 05:30:54 +00:00
|
|
|
}
|
2020-06-07 05:31:34 +00:00
|
|
|
}
|
2020-06-09 02:36:45 +00:00
|
|
|
|
2021-05-17 23:27:19 +00:00
|
|
|
@media ( max-width: @width-search-bar ) {
|
2021-01-09 21:56:28 +00:00
|
|
|
#search {
|
2021-04-17 01:12:10 +00:00
|
|
|
&form {
|
|
|
|
transition: none; // no transition on mobile
|
2021-01-09 21:56:28 +00:00
|
|
|
|
2021-04-17 01:12:10 +00:00
|
|
|
&:before {
|
|
|
|
position: fixed;
|
|
|
|
top: 0;
|
|
|
|
right: 0;
|
|
|
|
bottom: 0;
|
|
|
|
left: 0;
|
|
|
|
display: block;
|
|
|
|
background: var( --background-color-dp-03 );
|
|
|
|
content: '';
|
|
|
|
opacity: 0.9;
|
|
|
|
}
|
2021-01-09 21:56:28 +00:00
|
|
|
}
|
2020-06-09 02:36:45 +00:00
|
|
|
}
|
|
|
|
}
|
2021-05-17 20:34:14 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Loading indicator for searchbox
|
|
|
|
* In core so that loading animation can appear while the search module loads
|
|
|
|
* Based on Vector
|
|
|
|
*
|
|
|
|
* By adding a class on the parent search form
|
|
|
|
* <div id="searchform" class="search-form__loader"></div>
|
|
|
|
* A pseudo element is added via ':after' that adds the loading indicator.
|
|
|
|
*
|
|
|
|
* After appearing for more than a second, a progress-bar animation appears
|
|
|
|
* above the loading indicator.
|
|
|
|
*
|
|
|
|
**/
|
|
|
|
#searchform.search-form__loading:after {
|
|
|
|
--height-search-bar__progress-bar: @height-search-bar__progress-bar;
|
|
|
|
position: absolute;
|
|
|
|
z-index: 999;
|
|
|
|
top: 100%;
|
|
|
|
// Position loader below the input.
|
|
|
|
display: block;
|
|
|
|
overflow: hidden;
|
|
|
|
width: 100%;
|
|
|
|
// Hide text in case it extends beyond the input.
|
|
|
|
height: var( --height-search-bar__progress-bar );
|
|
|
|
// Ensure it doesn't extend beyond the input.
|
|
|
|
box-sizing: border-box;
|
|
|
|
// Animates the progress-bar.
|
|
|
|
animation: search-bar__progress-bar
|
|
|
|
/* duration */ 1200ms
|
|
|
|
/* timing function */ linear
|
|
|
|
/* delay */ 1000ms
|
|
|
|
/* iteration count */ infinite
|
|
|
|
/* fill direction */ alternate;
|
|
|
|
// Add a progress-bar to the loading indicator,
|
|
|
|
// but only show it animating after 1 second of loading.
|
|
|
|
background: /*image*/ linear-gradient( 90deg, var( --color-primary ) 0%, var( --color-primary ) 100% )
|
|
|
|
/* position / size*/ -10% 0 ~'/' 0 var( --height-search-bar__progress-bar )
|
|
|
|
/* repeat */ no-repeat,transparent;
|
|
|
|
// Align style with the form
|
|
|
|
border-radius: 0 0 @border-radius-large @border-radius-large;
|
|
|
|
// Placeholder text
|
|
|
|
content: 'loading';
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes search-bar__progress-bar {
|
|
|
|
0% {
|
|
|
|
background-position: -10% 0;
|
|
|
|
background-size: 0 var( --height-search-bar__progress-bar );
|
|
|
|
}
|
|
|
|
|
|
|
|
30% {
|
|
|
|
background-position: -10% 0;
|
|
|
|
background-size: 30% var( --height-search-bar__progress-bar );
|
|
|
|
}
|
|
|
|
|
|
|
|
70% {
|
|
|
|
background-position: 110% 0;
|
|
|
|
background-size: 30% var( --height-search-bar__progress-bar );
|
|
|
|
}
|
|
|
|
|
|
|
|
100% {
|
|
|
|
background-position: 110% 0;
|
|
|
|
background-size: 0 var( --height-search-bar__progress-bar );
|
|
|
|
}
|
|
|
|
}
|