// // Citizen - Search styles // https://starcitizen.tools // @import '../variables.less'; @import '../mixins.less'; #typeahead-suggestions { position: absolute; top: 38px; z-index: 90; } .suggestions-dropdown { padding-top: 4px; width: @search-bar-width; max-width: calc( ~'100vw -'@icon-box-size + @icon-padding * 2 + @margin-side ); display: flex; // Needed to show margin flex-direction: column; background: @base-100; border-radius: 0 0 @border-radius-large @border-radius-large; .boxshadow(4); } .suggestion { &-link { padding: 8px 20px; display: flex; align-items: center; &.active { background-color: @accent-90; .suggestion-title { color: @accent-50; } } } &-text { margin-left: 15px; } &-title { margin: 0 0 0.78rem * @content-scaling 0; display: inline-block; // so that the margin does not occupy space color: @base-10; font-size: @content-h6-size; line-height: 1.872rem * @content-scaling; } &-highlight { color: @base-30; font-style: normal; } &-description { color: @base-30; margin: 0; font-family: @fonts; font-size: @content-caption-size; line-height: 1.43rem * @content-scaling; } &-thumbnail { width: 70px; min-width: 70px; // so it won't be squeezed by the content text height: 60px; border-radius: @border-radius-small; background-color: @base-80; background-position: center center; background-repeat: no-repeat; background-size: cover; } } #suggestion { &-link { &-first { margin-top: 8px; } &-last { margin-bottom: 8px; } } &-special { padding: 1rem; border-top: 1px solid @base-80; border-radius: 0 0 @border-radius-large @border-radius-large; display: flex; color: @base-10; align-items: center; &-icon { margin: 0 14px 0 10px; width: 20px; min-width: 20px; height: 20px; background-repeat: no-repeat; } &-text { padding: 5px 0; // make it looks more center aligned font-size: @content-caption-size; font-family: @fonts; font-weight: bold; overflow: hidden; text-overflow: ellipsis; // handle overflow } &:hover { background-color: @accent-90; } } } /* using element selector to override default anchor styles */ a.suggestion-link:hover { text-decoration: none; } // RTL tweaks .rtl { #searchform { left: @icon-box-size + @margin-side + @icon-padding; right: unset; } } /** * Loading indicator for search widget * Based on Vector * * By adding a class on the parent search form *
* 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 { // Placeholder text content: 'loading'; // Position loader below the input. display: block; position: absolute; top: 100%; width: 100%; // Overlay the form margin-top: -@search-loader-progress-bar-height; z-index: 999; // Ensure it doesn't extend beyond the input. box-sizing: border-box; // Align style with the form border-radius: 0 0 @border-radius-large @border-radius-large; // Hide text in case it extends beyond the input. height: @search-loader-progress-bar-height; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; // Add a progress-bar to the loading indicator, // but only show it animating after 1 second of loading. background: /*image*/ linear-gradient( 90deg, @accent-50 0%, @accent-50 100% ) /* position / size*/ -10% 0 ~'/' 0 @search-loader-progress-bar-height /* repeat */ no-repeat,transparent; // Animates the progress-bar. animation: search-loader-progress-bar /* duration */ 1200ms /* timing function */ linear /* delay */ 1000ms /* iteration count */ infinite /* fill direction */ alternate; } @keyframes search-loader-progress-bar { 0% { background-size: 0 @search-loader-progress-bar-height; background-position: -10% 0; } 30% { background-size: 30% @search-loader-progress-bar-height; background-position: -10% 0; } 70% { background-size: 30% @search-loader-progress-bar-height; background-position: 110% 0; } 100% { background-size: 0 @search-loader-progress-bar-height; background-position: 110% 0; } } @media only screen and ( max-width: @search-bar-width ) { .suggestions-dropdown { position: fixed; left: 0; max-width: 100vw; } } @media ( prefers-color-scheme: dark ) { .suggestions-dropdown { background: @dark-bg-50; } .suggestion { &-link { &.active { background-color: @accent-10; .suggestion-title { color: @accent-90; } } } &-title { color: @dark-text-90; } &-highlight { color: @dark-text-70; } &-description { color: @dark-text-70; } } #suggestion { &-special { border-color: @dark-bg-40; color: @dark-text-90; &:hover { background-color: @accent-10; } } } }