2 * Any rules which should not be flipped automatically in right-to-left situations should be
3 * prepended with @noflip in a comment block. Images that should be embedded as base64 data-URLs
4 * should be prepended with @embed in a comment block.
6 * This style-sheet employs a few CSS trick to accomplish compatibility with a wide range of web
7 * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using
8 * a rule that makes things work in IE6, and then following it with a rule that begins with
9 * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support
10 * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and
11 * "IGNORED BY IE6" comments.
13 @import "mediawiki.mixins.less";
17 font-size: @html-font-size;
24 font-family: @content-font-family;
27 background-color: #f6f6f6;
28 font-size: @body-font-size;
32 line-height: @content-line-height;
34 padding: @content-padding;
35 /* Border on top, left, and bottom side */
36 border: 1px solid #a7d7f9;
37 border-right-width: 0;
38 /* Merge the border with tabs' one (in their background image) */
40 background-color: white;
41 color: @body-font-color;
44 /* Hide, but keep accessible for screen-readers */
52 background-color: white;
53 .background-image('images/page-fade.png');
54 background-position: bottom left;
55 background-repeat: repeat-x;
72 /* Hide empty portlets */
81 /* Display on top of page tabs - bugs 37158, 48078 */
88 list-style-type: none;
89 list-style-image: none;
91 padding-left: 10em; /* Keep from overlapping logo */
102 font-size: @menu-personal-font-size;
105 /* Navigation Containers */
110 /* When right nav would overlap left nav, it's placed below it
111 (normal CSS floats behavior). This rule ensures that no empty space
112 is shown between them due to right nav's margin-top. Page layout
113 is still broken, but at least the nav overlaps only the page title
114 instead of half the content. */
115 margin-bottom: -2.5em;
116 /* IE 6 double-margin bug fix */
123 /* Navigation Labels */
125 div.vectorMenu h3 span {
128 /* Namespaces and Views */
135 .background-image('images/tab-break.png');
136 background-position: bottom left;
137 background-repeat: no-repeat;
146 list-style-type: none;
147 list-style-image: none;
152 div.vectorTabs ul li {
155 /* OVERRIDDEN BY COMPLIANT BROWSERS */
156 div.vectorTabs ul li {
157 line-height: 1.125em;
158 display: inline-block;
162 background-color: #f3f3f3;
163 .background-image('images/tab-normal-fade.png');
164 background-position: bottom left;
165 background-repeat: repeat-x;
169 div.vectorTabs ul > li {
172 div.vectorTabs li.selected {
173 .background-image('images/tab-current-fade.png');
175 /* OVERRIDDEN BY COMPLIANT BROWSERS */
176 div.vectorTabs li a {
177 display: inline-block;
180 padding-right: 0.5em;
181 color: @menu-link-color;
186 div.vectorTabs li > a {
189 div.vectorTabs li.icon a {
190 background-position: bottom right;
191 background-repeat: no-repeat;
193 /* OVERRIDDEN BY COMPLIANT BROWSERS */
194 div.vectorTabs span a {
195 display: inline-block;
200 div.vectorTabs span > a {
204 div.vectorTabs span {
205 display: inline-block;
206 .background-image('images/tab-break.png');
207 background-position: bottom right;
208 background-repeat: no-repeat;
210 div.vectorTabs li.selected a,
211 div.vectorTabs li.selected a:visited{
213 text-decoration: none;
215 div.vectorTabs li.new a,
216 div.vectorTabs li.new a:visited{
219 /* Variants and Actions */
224 /* SVG support using a transparent gradient to guarantee cross-browser
225 * compatibility (browsers able to understand gradient syntax support also SVG) */
226 .background-image-svg('images/arrow-down-icon.svg', 'images/arrow-down-icon.png');
227 background-position: 100% 60%;
228 background-repeat: no-repeat;
231 div.vectorMenuFocus {
232 /* SVG support using a transparent gradient to guarantee cross-browser
233 * compatibility (browsers able to understand gradient syntax support also SVG) */
234 .background-image-svg('images/arrow-down-focus-icon.svg', 'images/arrow-down-focus-icon.png');
235 background-position: 100% 60%;
238 body.rtl div.vectorMenu {
241 /* OVERRIDDEN BY COMPLIANT BROWSERS */
243 div#mw-head div.vectorMenu h3 {
245 .background-image('images/tab-break.png');
246 background-repeat: no-repeat;
248 /* This will be flipped - unlike the one above it */
249 div#mw-head div.vectorMenu h3 {
250 background-position: bottom left;
254 div#mw-head div.vectorMenu > h3 {
255 background-image: none;
257 div#mw-head div.vectorMenu h4,
258 div.vectorMenu#p-variants #mw-vector-current-variant {
259 display: inline-block;
263 padding-top: 1.375em;
267 /* OVERRIDDEN BY COMPLIANT BROWSERS */
269 div.vectorMenu h3 a {
270 display: inline-block;
273 text-decoration: none;
274 .background-image('images/tab-break.png');
275 background-repeat: no-repeat;
277 /* This will be flipped - unlike the one above it */
278 div.vectorMenu h3 a {
279 background-position: bottom right;
282 div.vectorMenu h3 > a {
285 div.vectorMenu div.menu {
291 /* OVERRIDDEN BY COMPLIANT BROWSERS */
293 body.rtl div.vectorMenu div.menu {
298 body.rtl div.vectorMenu > div.menu {
302 /* Also fixes old versions of FireFox */
304 body.rtl div.vectorMenu > div.menu,
308 /* Enable forcing showing of the menu for accessibility */
309 div.vectorMenu:hover div.menu,
310 div.vectorMenu div.menuForceShow {
315 background-color: white;
316 border: solid 1px silver;
318 list-style-type: none;
319 list-style-image: none;
325 /* Fixes old versions of FireFox */
330 /* Returns things back to normal in modern versions of FireFox */
342 /* OVERRIDDEN BY COMPLIANT BROWSERS */
343 div.vectorMenu li a {
344 display: inline-block;
347 color: @menu-link-color;
352 div.vectorMenu li > a {
355 div.vectorMenu li.selected a,
356 div.vectorMenu li.selected a:visited {
358 text-decoration: none;
383 min-height: 1px; /* Gotta trigger hasLayout for IE7 */
384 border: solid 1px #aaa;
386 background-color: white;
387 .background-image('images/search-fade.png');
388 background-position: top left;
389 background-repeat: repeat-x;
391 div#simpleSearch input:focus {
394 div#simpleSearch input.placeholder {
397 div#simpleSearch input::-webkit-input-placeholder {
400 div#simpleSearch input:-moz-placeholder {
403 div#simpleSearch input:-ms-input-placeholder {
406 div#simpleSearch input#searchInput {
415 padding-bottom: 0.2em;
419 * DON'T PANIC! Browsers that won't scale this properly are the same browsers that have JS issues that prevent
420 * this from ever being shown anyways.
424 background-color: transparent;
427 div#simpleSearch button#searchButton {
434 padding-bottom: 0.2em;
435 padding-right: 0.4em;
439 background-color: transparent;
440 background-image: none;
442 /* OVERRIDDEN BY COMPLIANT BROWSERS */
443 div#simpleSearch button#searchButton img {
450 div#simpleSearch button#searchButton > img {
455 font-size: @menu-main-font-size;
462 div#mw-panel div.portal {
463 padding-bottom: 1.5em;
466 div#mw-panel div.portal h3 {
469 padding: @menu-main-heading-padding;
472 font-size: @menu-main-heading-font-size;
474 div#mw-panel div.portal div.body {
476 margin: @menu-main-body-margin;
478 .background-image('images/portal-break.png');
479 background-repeat: no-repeat;
480 background-position: top left;
482 div#mw-panel div.portal div.body ul {
483 list-style-type: none;
484 list-style-image: none;
485 padding: @menu-main-body-padding;
488 div#mw-panel div.portal div.body ul li {
489 line-height: 1.125em;
491 padding-bottom: 0.5em;
493 font-size: @menu-main-body-font-size;
494 word-wrap: break-word;
496 div#mw-panel div.portal div.body ul li a {
497 color: @menu-main-body-link-color;
499 color: @menu-main-body-link-visited-color;
511 list-style-type: none;
512 list-style-image: none;
520 padding-bottom: 0.5em;
524 div#footer #footer-icons {
528 body.ltr div#footer #footer-places {
531 div#footer #footer-info li {
534 div#footer #footer-icons li {
540 div#footer #footer-places li {
557 background-repeat: no-repeat;
558 background-position: center center;
559 text-decoration: none;
564 * The following code is highly modified from monobook. It would be nice if the
565 * preftoc id was more human readable like preferences-toc for instance,
566 * howerver this would require backporting the other skins.
575 margin: 0 !important;
576 padding: 0 !important;
577 .background-image('images/preferences-break.png');
578 background-position: bottom left;
579 background-repeat: no-repeat;
589 list-style-type: none;
590 list-style-image: none;
591 .background-image('images/preferences-break.png');
592 background-position: bottom right;
593 background-repeat: no-repeat;
595 /* Sadly, IE6 won't understand this */
596 #preftoc li:first-child {
601 display: inline-block;
603 color: @menu-link-color;
605 text-decoration: none;
606 background-image: none;
611 text-decoration: underline;
613 #preftoc li.selected a {
614 .background-image('images/preferences-fade.png');
615 background-position: bottom;
616 background-repeat: repeat-x;
618 text-decoration: none;
626 border: solid 1px #ccc;
627 background-color: #fafafa;
629 #preferences fieldset {
631 border-top: solid 1px #ccc;
633 #preferences fieldset.prefsection {
638 #preferences legend {
641 #preferences fieldset.prefsection legend.mainLegend {
646 padding-right: 0.5em;
653 #preferences div.mw-prefs-buttons {
656 #preferences div.mw-prefs-buttons input {
657 margin-right: 0.25em;
661 list-style-type: disc;
662 .list-style-image('images/bullet-icon.png');
669 /* Site Notice (includes notices from CentralNotice extension) */
676 font-size: @content-heading-font-size;
679 /* Icon for Usernames */
683 background-position: left top;
684 background-repeat: no-repeat;
685 /* SVG support using a transparent gradient to guarantee cross-browser
686 * compatibility (browsers able to understand gradient syntax support also SVG) */
687 .background-image-svg('images/user-icon.svg', 'images/user-icon.png');
688 padding-left: 15px !important;
696 vertical-align: text-bottom;
703 // FIXME: Seems overly specific. Not sure why this is needed.
706 font-size: @content-font-size;
710 /* mediawiki.notification */
711 .skin-vector .mw-notification-area {
714 .skin-vector .mw-notification-area-layout {
717 .skin-vector .mw-notification {
718 background-color: #fff;
719 background-color: rgba(255, 255, 255, 0.93);
720 padding: 0.75em 1.5em;
721 border: solid 1px #a7d7f9;
722 border-radius: 0.75em;
723 -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
724 box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
727 /* Watch/Unwatch Icon Styling */
735 /* This hides the text but shows the background image */
738 /* Only applied in IE6 */
739 margin-top: -0.8em !ie;
742 .background-image('images/watch-icons.png');
745 background-position: -43px 60%;
748 background-position: 5px 60%;
750 #ca-unwatch.icon a:hover,
751 #ca-unwatch.icon a:focus {
752 background-position: -67px 60%;
754 #ca-watch.icon a:hover,
755 #ca-watch.icon a:focus {
756 background-position: -19px 60%;
758 #ca-unwatch.icon a.loading,
759 #ca-watch.icon a.loading {
760 .background-image('images/watch-icon-loading.gif');
761 background-position: 5px 60%;
763 #ca-unwatch.icon a span,
764 #ca-watch.icon a span {
768 .background-image('images/tab-break.png');
769 background-position: right bottom;
770 background-repeat: no-repeat;
773 /* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
778 /* Animate between standard and high definition layouts */
779 body.vector-animateLayout {
783 .transition( margin-left 250ms, padding 250ms; );
786 .transition( left 250ms );
789 .transition( padding-right 250ms );
792 .transition( margin-right 250ms );
795 .transition( right 250ms );
798 .transition( margin-left 250ms );