3 @import "mediawiki.mixins";
4 @import "mediawiki.ui/variables";
5 @import "mediawiki.ui/mixins";
9 // Apply the mw-ui-input class to input and textarea fields.
15 // Style an input using MediaWiki UI.
16 // Currently in draft status and subject to change.
17 // When focused a progressive highlight appears to the left of the field.
20 // <input class="mw-ui-input" placeholder="Enter your name">
21 // <textarea class="mw-ui-input">Text here</textarea>
25 background-color: #fff;
27 .box-sizing( border-box );
30 border: 1px solid @colorFieldBorder;
31 border-radius: @borderRadius;
32 padding: 0.3em 0.3em 0.3em 0.6em;
33 // necessary for smooth transition
34 box-shadow: inset 0 0 0 0.1em #fff;
38 vertical-align: middle;
40 // Normalize & style placeholder text, see T139034
41 // Placeholder styles can't be grouped, otherwise they're ignored as invalid.
44 .mixin-placeholder() {
49 &:-moz-placeholder { // stylelint-disable-line selector-no-vendor-prefix
54 &::-moz-placeholder { // stylelint-disable-line selector-no-vendor-prefix
58 // Internet Explorer 10-11
59 &:-ms-input-placeholder { // stylelint-disable-line selector-no-vendor-prefix
62 // WebKit, Blink, Edge
63 // Don't set `opacity < 1`, see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/3901363/
64 &::-webkit-input-placeholder { // stylelint-disable-line selector-no-vendor-prefix
67 // W3C Standard Selectors Level 4
72 // Firefox: Remove red outline when `required` attribute set and invalid content.
73 // See https://developer.mozilla.org/en-US/docs/Web/CSS/:invalid
74 // This should come before `:focus` so latter rules take preference.
80 border-color: @colorGray7;
84 border-color: @colorProgressive;
85 box-shadow: inset 0 0 0 1px @colorProgressive;
89 // `:not()` is used exclusively for `transition`s as both are not supported by IE < 9.
91 .transition( ~'color 100ms, border-color 100ms, box-shadow 100ms' );
95 border-color: @colorGray14;
99 // Normalize styling for `<input type="search">`
101 // Correct the odd appearance in Chrome and Safari 5
102 -webkit-appearance: textfield;
104 // Remove proprietary clear button in IE 10-11, Edge 12+
109 // Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X
110 &::-webkit-search-cancel-button,
111 &::-webkit-search-decoration {
112 -webkit-appearance: none;
117 textarea.mw-ui-input {
121 // mw-ui-input-inline
123 // Use mw-ui-input-inline with mw-ui-input in cases where you want a button to line up with the input.
126 // <input class="mw-ui-input mw-ui-input-inline">
127 // <button class="mw-ui-button mw-ui-progressive">Submit</button>
130 input[type="number"],
131 .mw-ui-input-inline {
132 display: inline-block;
134 // Make sure we limit `width` to parent element because
135 // in case of text `input` fields, `width: auto;` equals `size` attribute.
141 // Use mw-ui-input-large with mw-ui-input in cases where there are multiple inputs on a screen and you
142 // want to draw attention to one instance. For example, replying with a subject line and more text.
143 // Currently in draft status and subject to change. When used on an input field, the text is styled
144 // in a large font. When used alongside another mw-ui-input large they are pushed together to form one
148 // <input value="input" class="mw-ui-input mw-ui-input-large" value="input" placeholder="Enter subject">
149 // <textarea class="mw-ui-input mw-ui-input-large" placeholder="Provide additional details"></textarea>
156 // When two large inputs are together, we make them flush by hiding one of the borders
157 & + .mw-ui-input-large {
160 // When focusing, make the input relative to raise it above any attached inputs to unhide its borders
166 input.mw-ui-input-large {