@import 'mediawiki.mixins.less'; // Defined as `div`. // Provide extra element for gadgets due to `form` already carrying an `id`. .vector-search-box-inner { position: relative; height: 100%; } // The search input. // Note that these rules only apply to the non-Vue enabled search input field. // When Vue.js has loaded this element will no longer be in the page and substituted with // a Codex element. .vector-search-box-input { background-color: rgba( 255, 255, 255, 0.5 ); color: @color-emphasized; width: 100%; // Reduce height slightly from standard to match legacy Vector tabs. height: unit( 28 / @font-size-browser / @font-size-search-input, em ); // Equals `2.15384615em`. box-sizing: border-box; border: @border-base; border-radius: @border-radius-base; // `padding-right` equals to `#searchbutton` width below. padding: 5px @width-search-button 5px 0.4em; box-shadow: @box-shadow-inset-small @box-shadow-color-transparent; // Match Codex. font-family: inherit; direction: ltr; transition-property: border-color, box-shadow; transition-duration: @transition-duration-medium; // Undo the proprietary styles, we provide our own. // Support: Safari/iOS `none` needed, Chrome would accept `textfield` as well. See T247299. -webkit-appearance: none; // Support: Firefox. -moz-appearance: textfield; .vector-search-box-inner:hover & { border-color: #72777d; } &:focus, .vector-search-box-inner:hover &:focus { outline: 0; border-color: @border-color-progressive--focus; box-shadow: @box-shadow-inset-small @box-shadow-color-progressive--focus; } .mixin-placeholder( { color: @color-placeholder; opacity: @opacity-base; } ); &::-webkit-search-decoration, &::-webkit-search-cancel-button, &::-webkit-search-results-button, &::-webkit-search-results-decoration { display: none; } } // The search buttons. Fallback and search button are displayed in the same position, // and if both are present the fulltext search one obscures the 'Go' one. .searchButton { background-color: transparent; position: absolute; top: @border-width-base; bottom: @border-width-base; // `@border-width-base * 2` is in regards to harmonize position start and end. right: @border-width-base; min-width: @min-width-search-button; width: @width-search-button; border: 0; padding: 0; cursor: pointer; // Equal `font-size` to search input for `padding` calculation. font-size: @font-size-search-input; /* Opera 12 on RTL flips the text in a funny way without this. */ /* @noflip */ direction: ltr; /* Hide button text and replace it with the image. */ text-indent: -99999px; white-space: nowrap; overflow: hidden; z-index: @z-index-search-button; } .searchButton[ name='go' ] { background: no-repeat center/unit( 16 / @font-size-browser / @font-size-search-input, em ) url( images/search.svg ); opacity: 0.67; } // Search portlet. .vector-search-box h3 { .mixin-screen-reader-text(); }