SimpleSearch: Standardize input appearance
Unifying Vector input appearance to follow Design Style Guide and OOUI, additionally: - Simplifying LESS code, reducing specificity to minimum needed - Providing fallbacks where necessary to a wide range of browsers including IE8 - Better positioning and larger click area of search button Bug: T225331 Change-Id: Iafeddf670a9c087e66acf5463c99351fc2d5d78c
This commit is contained in:
parent
e74d411edb
commit
0c77e4f223
|
@ -11,101 +11,101 @@
|
|||
.mixin-screen-reader-text;
|
||||
}
|
||||
|
||||
form,
|
||||
input {
|
||||
margin: 0.4em 0 0;
|
||||
form {
|
||||
margin: 0.5em 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
#simpleSearch {
|
||||
background-color: #fff;
|
||||
.background-image( 'images/search-fade.png' );
|
||||
background-position: top left;
|
||||
background-repeat: repeat-x;
|
||||
color: #000;
|
||||
display: block;
|
||||
width: 12.6em;
|
||||
width: 13.2em;
|
||||
width: 20vw; /* responsive width */
|
||||
min-width: 5em;
|
||||
max-width: 20em;
|
||||
padding-right: 1.4em;
|
||||
height: 1.4em;
|
||||
margin-top: 0.65em;
|
||||
height: 100%;
|
||||
margin-top: 0;
|
||||
position: relative;
|
||||
min-height: 1px; /* Gotta trigger hasLayout for IE7 */
|
||||
border: 1px solid @colorGray10;
|
||||
border-radius: @borderRadius;
|
||||
.transition( border-color 250ms );
|
||||
|
||||
&:hover {
|
||||
// Styles for both the search input and the button.
|
||||
input {
|
||||
// Support IE6-8:; Fallback for browsers, which don't support `rgba()`.
|
||||
background-color: @background-color-base;
|
||||
background-color: rgba( 0, 0, 0, 0 );
|
||||
color: #000;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// The search input.
|
||||
#searchInput {
|
||||
width: 100%;
|
||||
.box-sizing( border-box );
|
||||
border: @border-width-base solid @colorGray10;
|
||||
border-radius: @borderRadius;
|
||||
// `padding-right` equals to `#searchbutton` width below.
|
||||
padding: 0.4em 1.818em 0.4em 0.4em;
|
||||
.box-shadow( @boxShadowWidget );
|
||||
font-size: 0.8125em; // Equals to `13px` at browser default of `16px`.
|
||||
direction: ltr;
|
||||
.transition( ~'border-color 250ms, box-shadow 250ms' );
|
||||
// Support: Webkit browsers. Undo the proprietary styles applied to `type=search` fields,
|
||||
// we provide our own.
|
||||
-webkit-appearance: textfield;
|
||||
|
||||
#simpleSearch:hover & {
|
||||
border-color: @colorGray7;
|
||||
}
|
||||
|
||||
// Styles for both the search input and the button
|
||||
input {
|
||||
background-color: transparent;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
&:focus,
|
||||
#simpleSearch:hover &:focus {
|
||||
outline: 0;
|
||||
border-color: @colorProgressive;
|
||||
.box-shadow( @boxShadowProgressiveFocus );
|
||||
}
|
||||
|
||||
// The search input
|
||||
#searchInput {
|
||||
width: 100%;
|
||||
padding: 0.2em 0 0.2em 0.2em;
|
||||
font-size: 0.8125em; // equals `13px` at browser default of `16px`
|
||||
direction: ltr;
|
||||
.mixin-placeholder( {
|
||||
color: @colorGray7;
|
||||
opacity: 1;
|
||||
} );
|
||||
|
||||
&:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/* stylelint-disable indentation */
|
||||
.mixin-placeholder( {
|
||||
color: @colorGray7;
|
||||
opacity: 1;
|
||||
} );
|
||||
/* stylelint-enable indentation */
|
||||
|
||||
// Undo the styles Webkit browsers apply to type=search fields,
|
||||
// we provide our own
|
||||
&::-webkit-search-decoration,
|
||||
&::-webkit-search-cancel-button,
|
||||
&::-webkit-search-results-button,
|
||||
&::-webkit-search-results-decoration {
|
||||
-webkit-appearance: textfield;
|
||||
|
||||
&::-webkit-search-decoration,
|
||||
&::-webkit-search-cancel-button,
|
||||
&::-webkit-search-results-button,
|
||||
&::-webkit-search-results-decoration {
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
}
|
||||
|
||||
// The buttons. They are displayed in the same position, and if both are
|
||||
// present the fulltext search one obscures the 'Go' one.
|
||||
#searchButton,
|
||||
#mw-searchButton {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 1.65em;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
/* Hide button text and replace it with the image. */
|
||||
text-indent: -99999px;
|
||||
/* Opera 12 on RTL flips the text in a funny way without this. */
|
||||
/* @noflip */
|
||||
direction: ltr;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#searchButton {
|
||||
.background-image-svg( 'images/search-ltr.svg', 'images/search-ltr.png' );
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#mw-searchButton {
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
// The buttons. They are displayed in the same position, and if both are
|
||||
// present the fulltext search one obscures the 'Go' one.
|
||||
#searchButton,
|
||||
#mw-searchButton {
|
||||
position: absolute;
|
||||
top: @border-width-base;
|
||||
bottom: @border-width-base;
|
||||
right: @border-width-base;
|
||||
min-width: 20px;
|
||||
width: 1.818em; // Equals to `20px` at `11px` base.
|
||||
border: 0;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
/* 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: 1;
|
||||
}
|
||||
|
||||
#searchButton {
|
||||
.background-image-svg( 'images/search-ltr.svg', 'images/search-ltr.png' );
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#mw-searchButton {
|
||||
z-index: 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue