Turn screen.css into screen.less
authorjrobson <jrobson@wikimedia.org>
Thu, 26 Sep 2013 18:43:00 +0000 (11:43 -0700)
committerjrobson <jrobson@wikimedia.org>
Fri, 4 Oct 2013 18:23:15 +0000 (11:23 -0700)
* Separate external links into own less file to showcase how
many unnecessary css rules we have
* Introduce new mixins to allow embedding for list-style-image
* Replace use of /* embed */ with mediawiki mixins

Change-Id: If79d2d1f72579627597b291eec759441d6763c34

resources/Resources.php
resources/mediawiki.less/mediawiki.mixins.less
skins/vector/externalLinks.less [new file with mode: 0644]
skins/vector/screen.css [deleted file]
skins/vector/screen.less [new file with mode: 0644]

index ca04263..880726b 100644 (file)
@@ -92,7 +92,8 @@ return array(
                        'common/commonElements.css' => array( 'media' => 'screen' ),
                        'common/commonContent.css' => array( 'media' => 'screen' ),
                        'common/commonInterface.css' => array( 'media' => 'screen' ),
-                       'vector/screen.css' => array( 'media' => 'screen' ),
+                       'vector/screen.less' => array( 'media' => 'screen' ),
+                       'vector/externalLinks.less' => array( 'media' => 'screen' ),
                        'vector/screen-hd.css' => array( 'media' => 'screen and (min-width: 982px)' ),
                ),
                'remoteBasePath' => $GLOBALS['wgStylePath'],
index 3763b87..8c9b825 100644 (file)
        /* @embed */ background-image: -webkit-linear-gradient(transparent, transparent), url(@svg);
        /* @embed */ background-image: linear-gradient(transparent, transparent), url(@svg);
 }
+
+/* Caution: Does not support localisable images */
+.list-style-image(@url) when (embeddable(@url)) {
+       list-style-image: embed(@url);
+       list-style-image: url(@url)!ie;
+}
+
+.list-style-image(@url) when not (embeddable(@url)) {
+       list-style-image: url(@url);
+}
diff --git a/skins/vector/externalLinks.less b/skins/vector/externalLinks.less
new file mode 100644 (file)
index 0000000..5b02abb
--- /dev/null
@@ -0,0 +1,75 @@
+// FIXME: This size of this CSS is ridiculous. Please refactor (see bug 54604)
+@import "mediawiki.mixins.less";
+
+div#content a.external {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/external-link-ltr-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href ^="https://"],
+.link-https {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/lock-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href ^="mailto:"],
+.link-mailto {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/mail-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href ^="news:"] {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/news-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href ^="ftp://"],
+.link-ftp {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/file-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href ^="irc://"],
+div#content a.external[href ^="ircs://"],
+.link-irc {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/talk-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href $=".ogg"], div#content a.external[href $=".OGG"],
+div#content a.external[href $=".mid"], div#content a.external[href $=".MID"],
+div#content a.external[href $=".midi"], div#content a.external[href $=".MIDI"],
+div#content a.external[href $=".mp3"], div#content a.external[href $=".MP3"],
+div#content a.external[href $=".wav"], div#content a.external[href $=".WAV"],
+div#content a.external[href $=".wma"], div#content a.external[href $=".WMA"],
+.link-audio {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/audio-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href $=".ogm"], div#content a.external[href $=".OGM"],
+div#content a.external[href $=".avi"], div#content a.external[href $=".AVI"],
+div#content a.external[href $=".mpeg"], div#content a.external[href $=".MPEG"],
+div#content a.external[href $=".mpg"], div#content a.external[href $=".MPG"],
+.link-video {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/video-icon.png');
+       padding-right: 13px;
+}
+div#content a.external[href $=".pdf"], div#content a.external[href $=".PDF"],
+div#content a.external[href *=".pdf#"], div#content a.external[href *=".PDF#"],
+div#content a.external[href *=".pdf?"], div#content a.external[href *=".PDF?"],
+.link-document {
+       background-position: center right;
+       background-repeat: no-repeat;
+       .background-image('images/document-icon.png');
+       padding-right: 13px;
+}
diff --git a/skins/vector/screen.css b/skins/vector/screen.css
deleted file mode 100644 (file)
index c164c6d..0000000
+++ /dev/null
@@ -1,911 +0,0 @@
-/*
- * Any rules which should not be flipped automatically in right-to-left situations should be
- * prepended with @noflip in a comment block. Images that should be embedded as base64 data-URLs
- * should be prepended with @embed in a comment block.
- *
- * This style-sheet employs a few CSS trick to accomplish compatibility with a wide range of web
- * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using
- * a rule that makes things work in IE6, and then following it with a rule that begins with
- * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support
- * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and
- * "IGNORED BY IE6" comments.
- */
-
-/* Framework */
-html,
-body {
-       height: 100%;
-       margin: 0;
-       padding: 0;
-       font-family: sans-serif;
-       font-size: 1em;
-}
-body {
-       background-color: #f6f6f6;
-}
-/* Content */
-div#content {
-       margin-left: 10em;
-       padding: 1em;
-       /* Border on top, left, and bottom side */
-       border: 1px solid #a7d7f9;
-       border-right-width: 0;
-       /* Merge the border with tabs' one (in their background image) */
-       margin-top: -1px;
-       background-color: white;
-       color: black;
-       direction: ltr;
-}
-/* Hide, but keep accessible for screen-readers */
-#mw-navigation h2 {
-       position: absolute;
-       top: -9999px;
-}
-/* Head */
-#mw-page-base {
-       height: 5em;
-       background-color: white;
-       /* @embed */
-       background-image: url(images/page-fade.png);
-       background-position: bottom left;
-       background-repeat: repeat-x;
-}
-#mw-head-base {
-       margin-top: -5em;
-       margin-left: 10em;
-       height: 5em;
-}
-div#mw-head {
-       position: absolute;
-       top: 0;
-       right: 0;
-       width: 100%;
-}
-div#mw-head h3 {
-       margin: 0;
-       padding: 0;
-}
-/* Hide empty portlets */
-div.emptyPortlet {
-               display: none;
-}
-/* Personal */
-#p-personal {
-       position: absolute;
-       top: 0.33em;
-       right: 0.75em;
-       /* Display on top of page tabs - bugs 37158, 48078 */
-       z-index: 100;
-}
-#p-personal h3 {
-       display: none;
-}
-#p-personal ul {
-       list-style-type: none;
-       list-style-image: none;
-       margin: 0;
-       padding-left: 10em; /* Keep from overlapping logo */
-}
-/* @noflip */
-#p-personal li {
-       line-height: 1.125em;
-       float: left;
-}
-/* This one flips! */
-#p-personal li {
-       margin-left: 0.75em;
-       margin-top: 0.5em;
-       font-size: 0.75em;
-       white-space: nowrap;
-}
-/* Navigation Containers */
-#left-navigation {
-       float: left;
-       margin-left: 10em;
-       margin-top: 2.5em;
-       /* When right nav would overlap left nav, it's placed below it
-          (normal CSS floats behavior). This rule ensures that no empty space
-          is shown between them due to right nav's margin-top. Page layout
-          is still broken, but at least the nav overlaps only the page title
-          instead of half the content. */
-       margin-bottom: -2.5em;
-       /* IE 6 double-margin bug fix */
-       display: inline;
-}
-#right-navigation {
-       float: right;
-       margin-top: 2.5em;
-}
-/* Navigation Labels */
-div.vectorTabs h3,
-div.vectorMenu h3 span {
-       display: none;
-}
-/* Namespaces and Views */
-/* @noflip */
-div.vectorTabs {
-       float: left;
-       height: 2.5em;
-}
-div.vectorTabs {
-       /* @embed */
-       background-image: url(images/tab-break.png);
-       background-position: bottom left;
-       background-repeat: no-repeat;
-       padding-left: 1px;
-}
-/* @noflip */
-div.vectorTabs ul {
-       float: left;
-}
-div.vectorTabs ul {
-       height: 100%;
-       list-style-type: none;
-       list-style-image: none;
-       margin: 0;
-       padding: 0;
-}
-/* @noflip */
-div.vectorTabs ul li {
-       float: left;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs ul li {
-       line-height: 1.125em;
-       display: inline-block;
-       height: 100%;
-       margin: 0;
-       padding: 0;
-       background-color: #f3f3f3;
-       /* @embed */
-       background-image: url(images/tab-normal-fade.png);
-       background-position: bottom left;
-       background-repeat: repeat-x;
-       white-space: nowrap;
-}
-/* IGNORED BY IE6 */
-div.vectorTabs ul > li {
-       display: block;
-}
-div.vectorTabs li.selected {
-       /* @embed */
-       background-image: url(images/tab-current-fade.png);
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs li a {
-       display: inline-block;
-       height: 1.9em;
-       padding-left: 0.5em;
-       padding-right: 0.5em;
-       color: #0645ad;
-       cursor: pointer;
-       font-size: 0.8em;
-}
-/* IGNORED BY IE6 */
-div.vectorTabs li > a {
-       display: block;
-}
-div.vectorTabs li.icon a {
-       background-position: bottom right;
-       background-repeat: no-repeat;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs span a  {
-       display: inline-block;
-       padding-top: 1.25em;
-}
-/* IGNORED BY IE6 */
-/* @noflip */
-div.vectorTabs span > a {
-       float: left;
-       display: block;
-}
-div.vectorTabs span {
-       display: inline-block;
-       /* @embed */
-       background-image: url(images/tab-break.png);
-       background-position: bottom right;
-       background-repeat: no-repeat;
-}
-div.vectorTabs li.selected a,
-div.vectorTabs li.selected a:visited{
-       color: #333;
-       text-decoration: none;
-}
-div.vectorTabs li.new a,
-div.vectorTabs li.new a:visited{
-       color: #a55858;
-}
-/* Variants and Actions */
-/* @noflip */
-div.vectorMenu {
-       direction: ltr;
-       float: left;
-       /* @embed */
-       background-image: url(images/arrow-down-icon.png);
-       /* SVG support using a transparent gradient to guarantee cross-browser
-        * compatibility (browsers able to understand gradient syntax support also SVG) */
-       /* @embed */
-       background-image: -webkit-linear-gradient(transparent, transparent), url(images/arrow-down-icon.svg);
-       /* @embed */
-       background-image: linear-gradient(transparent, transparent), url(images/arrow-down-icon.svg);
-       background-position: 100% 60%;
-       background-repeat: no-repeat;
-       cursor: pointer;
-}
-div.vectorMenuFocus {
-       /* @embed */
-       background-image: url(images/arrow-down-focus-icon.png);
-       /* SVG support using a transparent gradient to guarantee cross-browser
-        * compatibility (browsers able to understand gradient syntax support also SVG) */
-       /* @embed */
-       background-image: -webkit-linear-gradient(transparent, transparent), url(images/arrow-down-focus-icon.svg);
-       /* @embed */
-       background-image: linear-gradient(transparent, transparent), url(images/arrow-down-focus-icon.svg);
-       background-position: 100% 60%;
-}
-/* @noflip */
-body.rtl div.vectorMenu {
-       direction: rtl;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-/* @noflip */
-div#mw-head div.vectorMenu h3 {
-       float: left;
-       /* @embed */
-       background-image: url(images/tab-break.png);
-       background-repeat: no-repeat;
-}
-/* This will be flipped - unlike the one above it */
-div#mw-head div.vectorMenu h3 {
-       background-position: bottom left;
-       margin-left: -1px;
-}
-/* IGNORED BY IE6 */
-div#mw-head div.vectorMenu > h3 {
-       background-image: none;
-}
-div#mw-head div.vectorMenu h4,
-div.vectorMenu#p-variants #mw-vector-current-variant {
-       display: inline-block;
-       float: left;
-       font-size: 0.8em;
-       padding-left: 0.5em;
-       padding-top: 1.375em;
-       font-weight: normal;
-       border: none;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-/* @noflip */
-div.vectorMenu h3 a {
-       display: inline-block;
-       width: 24px;
-       height: 1.9em;
-       text-decoration: none;
-       /* @embed */
-       background-image: url(images/tab-break.png);
-       background-repeat: no-repeat;
-}
-/* This will be flipped - unlike the one above it */
-div.vectorMenu h3 a {
-       background-position: bottom right;
-}
-/* IGNORED BY IE6 */
-div.vectorMenu h3 > a {
-       display: block;
-}
-div.vectorMenu div.menu {
-       position: relative;
-       display: none;
-       clear: both;
-       text-align: left;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-/* @noflip */
-body.rtl div.vectorMenu div.menu {
-       margin-left: 24px;
-}
-/* IGNORED BY IE6 */
-/* @noflip */
-body.rtl div.vectorMenu > div.menu {
-       margin-left: auto;
-}
-/* IGNORED BY IE6 */
-/* Also fixes old versions of FireFox */
-/* @noflip */
-body.rtl div.vectorMenu > div.menu,
-x:-moz-any-link {
-       margin-left: 23px;
-}
-/* Enable forcing showing of the menu for accessibility */
-div.vectorMenu:hover div.menu,
-div.vectorMenu div.menuForceShow {
-       display: block;
-}
-div.vectorMenu ul {
-       position: absolute;
-       background-color: white;
-       border: solid 1px silver;
-       border-top-width: 0;
-       list-style-type: none;
-       list-style-image: none;
-       padding: 0;
-       margin: 0;
-       margin-left: -1px;
-       text-align: left;
-}
-/* Fixes old versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link {
-       min-width: 5em;
-}
-/* Returns things back to normal in modern versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link,
-x:default {
-       min-width: 0;
-}
-div.vectorMenu li {
-       padding: 0;
-       margin: 0;
-       text-align: left;
-       line-height: 1em;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorMenu li a {
-       display: inline-block;
-       padding: 0.5em;
-       white-space: nowrap;
-       color: #0645ad;
-       cursor: pointer;
-       font-size: 0.8em;
-}
-/* IGNORED BY IE6 */
-div.vectorMenu li > a {
-       display: block;
-}
-div.vectorMenu li.selected a,
-div.vectorMenu li.selected a:visited {
-       color: #333;
-       text-decoration: none;
-}
-/* Search */
-#p-search h3 {
-       display: none;
-}
-/* @noflip */
-#p-search {
-       float: left;
-}
-#p-search {
-       margin-right: 0.5em;
-       margin-left: 0.5em;
-}
-#p-search form,
-#p-search input {
-       margin: 0;
-       margin-top: 0.4em;
-}
-div#simpleSearch {
-       display: block;
-       width: 14em;
-       height: 1.4em;
-       margin-top: 0.65em;
-       position: relative;
-       min-height: 1px; /* Gotta trigger hasLayout for IE7 */
-       border: solid 1px #aaa;
-       color: black;
-       background-color: white;
-       /* @embed */
-       background-image: url(images/search-fade.png);
-       background-position: top left;
-       background-repeat: repeat-x;
-}
-div#simpleSearch input:focus {
-       outline: none;
-}
-div#simpleSearch input.placeholder {
-       color: #999;
-}
-div#simpleSearch input::-webkit-input-placeholder {
-       color: #999;
-}
-div#simpleSearch input:-moz-placeholder {
-       color: #999;
-}
-div#simpleSearch input:-ms-input-placeholder {
-       color: #999;
-}
-div#simpleSearch input#searchInput {
-       position: absolute;
-       top: 0;
-       left: 0;
-       width: 90%;
-       margin: 0;
-       padding: 0;
-       padding-left: 0.2em;
-       padding-top: 0.2em;
-       padding-bottom: 0.2em;
-       outline: none;
-       border: none;
-       /*
-        * DON'T PANIC! Browsers that won't scale this properly are the same browsers that have JS issues that prevent
-        * this from ever being shown anyways.
-       */
-       font-size: 13px;
-       color: black;
-       background-color: transparent;
-       direction: ltr;
-}
-div#simpleSearch button#searchButton {
-       position: absolute;
-       width: 10%;
-       right: 0;
-       top: 0;
-       padding: 0;
-       padding-top: 0.3em;
-       padding-bottom: 0.2em;
-       padding-right: 0.4em;
-       margin: 0;
-       border: none;
-       cursor: pointer;
-       background-color: transparent;
-       background-image: none;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div#simpleSearch button#searchButton img {
-       border: none;
-       margin: 0;
-       margin-top: -3px;
-       padding: 0;
-}
-/* IGNORED BY IE6 */
-div#simpleSearch button#searchButton > img {
-       margin: 0;
-}
-/* Panel */
-div#mw-panel {
-       position: absolute;
-       top: 160px;
-       padding-top: 1em;
-       width: 10em;
-       left: 0;
-}
-div#mw-panel div.portal {
-       padding-bottom: 1.5em;
-       direction: ltr;
-}
-div#mw-panel div.portal h3 {
-       font-weight: normal;
-       color: #444;
-       padding: 0.25em;
-       padding-top: 0;
-       padding-left: 1.75em;
-       cursor: default;
-       border: none;
-       font-size: 0.75em;
-}
-div#mw-panel div.portal div.body {
-       margin: 0;
-       padding-top: 0.5em;
-       margin-left: 1.25em;
-       /* @embed */
-       background-image: url(images/portal-break.png);
-       background-repeat: no-repeat;
-       background-position: top left;
-}
-div#mw-panel div.portal div.body ul {
-       list-style-type: none;
-       list-style-image: none;
-       padding: 0;
-       margin: 0;
-}
-div#mw-panel div.portal div.body ul li {
-       line-height: 1.125em;
-       padding: 0;
-       padding-bottom: 0.5em;
-       margin: 0;
-       font-size: 0.75em;
-       word-wrap: break-word;
-}
-div#mw-panel div.portal div.body ul li a {
-       color: #0645ad;
-}
-div#mw-panel div.portal div.body ul li a:visited {
-       color: #0b0080;
-}
-/* Footer */
-div#footer {
-       margin-left: 10em;
-       margin-top: 0;
-       padding: 0.75em;
-       direction: ltr;
-}
-div#footer ul {
-       list-style-type: none;
-       list-style-image: none;
-       margin: 0;
-       padding: 0;
-}
-div#footer ul li {
-       margin: 0;
-       padding: 0;
-       padding-top: 0.5em;
-       padding-bottom: 0.5em;
-       color: #333;
-       font-size: 0.7em;
-}
-div#footer #footer-icons {
-       float: right;
-}
-/* @noflip */
-body.ltr div#footer #footer-places {
-       float: left;
-}
-div#footer #footer-info li {
-       line-height: 1.4em;
-}
-div#footer #footer-icons li {
-       float: left;
-       margin-left: 0.5em;
-       line-height: 2em;
-       text-align: right;
-}
-div#footer #footer-places li {
-       float: left;
-       margin-right: 1em;
-       line-height: 2em;
-}
-/* Logo */
-#p-logo {
-       position: absolute;
-       top: -160px;
-       left: 0;
-       width: 10em;
-       height: 160px;
-}
-#p-logo a {
-       display: block;
-       width: 10em;
-       height: 160px;
-       background-repeat: no-repeat;
-       background-position: center center;
-       text-decoration: none;
-}
-
-/*
- *
- * The following code is highly modified from monobook. It would be nice if the
- * preftoc id was more human readable like preferences-toc for instance,
- * howerver this would require backporting the other skins.
- */
-
-/* Preferences */
-#preftoc {
-       /* Tabs */
-       width: 100%;
-       float: left;
-       clear: both;
-       margin: 0 !important;
-       padding: 0 !important;
-       /* @embed */
-       background-image: url(images/preferences-break.png);
-       background-position: bottom left;
-       background-repeat: no-repeat;
-}
-       #preftoc li {
-               /* Tab */
-               float: left;
-               margin: 0;
-               padding: 0;
-               padding-right: 1px;
-               height: 2.25em;
-               white-space: nowrap;
-               list-style-type: none;
-               list-style-image: none;
-               /* @embed */
-               background-image: url(images/preferences-break.png);
-               background-position: bottom right;
-               background-repeat: no-repeat;
-       }
-       /* Sadly, IE6 won't understand this */
-       #preftoc li:first-child {
-               margin-left: 1px;
-       }
-       #preftoc a,
-       #preftoc a:active {
-               display: inline-block;
-               position: relative;
-               color: #0645ad;
-               padding: 0.5em;
-               text-decoration: none;
-               background-image: none;
-               font-size: 0.9em;
-       }
-       #preftoc a:hover,
-       #preftoc a:focus {
-               text-decoration: underline;
-       }
-       #preftoc li.selected a {
-               /* @embed */
-               background-image: url(images/preferences-fade.png);
-               background-position: bottom;
-               background-repeat: repeat-x;
-               color: #333;
-               text-decoration: none;
-       }
-#preferences {
-       float: left;
-       width: 100%;
-       margin: 0;
-       margin-top: -2px;
-       clear: both;
-       border: solid 1px #ccc;
-       background-color: #fafafa;
-}
-#preferences fieldset {
-       border: none;
-       border-top: solid 1px #ccc;
-}
-#preferences fieldset.prefsection {
-       border: none;
-       padding: 0;
-       margin: 1em;
-}
-#preferences legend {
-       color: #666;
-}
-#preferences fieldset.prefsection legend.mainLegend {
-       display: none;
-}
-#preferences td {
-       padding-left: 0.5em;
-       padding-right: 0.5em;
-}
-.htmlform-tip {
-       font-size: x-small;
-       padding: .2em 2em;
-       color: #666;
-}
-#preferences div.mw-prefs-buttons {
-       padding: 1em;
-}
-#preferences div.mw-prefs-buttons input {
-       margin-right: 0.25em;
-}
-
-/**
- * The following code is slightly modified from monobook
- */
-div#content {
-       line-height: 1.5em;
-}
-#bodyContent {
-       font-size: 0.8em;
-}
-
-ul {
-       list-style-type: disc;
-       /* @embed */
-       list-style-image: url(images/bullet-icon.png);
-}
-
-pre, .mw-code {
-       line-height: 1.3em;
-}
-
-/* Site Notice (includes notices from CentralNotice extension) */
-#siteNotice {
-       font-size: 0.8em;
-}
-#firstHeading {
-       padding-top: 0;
-       margin-top: 0;
-       font-size: 1.6em;
-}
-div#content a.external {
-       /* @embed */
-       background: url(images/external-link-ltr-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href ^="https://"],
-.link-https {
-       /* @embed */
-       background: url(images/lock-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href ^="mailto:"],
-.link-mailto {
-       /* @embed */
-       background: url(images/mail-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href ^="news:"] {
-       /* @embed */
-       background: url(images/news-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href ^="ftp://"],
-.link-ftp {
-       /* @embed */
-       background: url(images/file-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href ^="irc://"],
-div#content a.external[href ^="ircs://"],
-.link-irc {
-       /* @embed */
-       background: url(images/talk-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href $=".ogg"], div#content a.external[href $=".OGG"],
-div#content a.external[href $=".mid"], div#content a.external[href $=".MID"],
-div#content a.external[href $=".midi"], div#content a.external[href $=".MIDI"],
-div#content a.external[href $=".mp3"], div#content a.external[href $=".MP3"],
-div#content a.external[href $=".wav"], div#content a.external[href $=".WAV"],
-div#content a.external[href $=".wma"], div#content a.external[href $=".WMA"],
-.link-audio {
-       /* @embed */
-       background: url(images/audio-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href $=".ogm"], div#content a.external[href $=".OGM"],
-div#content a.external[href $=".avi"], div#content a.external[href $=".AVI"],
-div#content a.external[href $=".mpeg"], div#content a.external[href $=".MPEG"],
-div#content a.external[href $=".mpg"], div#content a.external[href $=".MPG"],
-.link-video {
-       /* @embed */
-       background: url(images/video-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-div#content a.external[href $=".pdf"], div#content a.external[href $=".PDF"],
-div#content a.external[href *=".pdf#"], div#content a.external[href *=".PDF#"],
-div#content a.external[href *=".pdf?"], div#content a.external[href *=".PDF?"],
-.link-document {
-       /* @embed */
-       background: url(images/document-icon.png) center right no-repeat;
-       padding-right: 13px;
-}
-
-/* Icon for Usernames */
-#pt-userpage,
-#pt-anonuserpage,
-#pt-login {
-       /* @embed */
-       background: url(images/user-icon.png) left top no-repeat;
-       /* SVG support using a transparent gradient to guarantee cross-browser
-        * compatibility (browsers able to understand gradient syntax support also SVG) */
-       /* @embed */
-       background-image: -webkit-linear-gradient(transparent, transparent), url(images/user-icon.svg);
-       /* @embed */
-       background-image: linear-gradient(transparent, transparent), url(images/user-icon.svg);
-       padding-left: 15px !important;
-}
-
-.redirectText {
-       font-size: 140%;
-}
-
-.redirectMsg img {
-       vertical-align: text-bottom;
-}
-
-#bodyContent {
-       position: relative;
-       width: 100%;
-}
-div#bodyContent {
-       line-height: 1.5em;
-}
-
-/* mediawiki.notification */
-.skin-vector .mw-notification-area {
-       font-size: 0.8em;
-}
-.skin-vector .mw-notification-area-layout {
-       top: 7em;
-}
-.skin-vector .mw-notification {
-       background-color: #fff;
-       background-color: rgba(255, 255, 255, 0.93);
-       padding: 0.75em 1.5em;
-       border: solid 1px #a7d7f9;
-       border-radius: 0.75em;
-       -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
-       box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
-}
-
-/* Watch/Unwatch Icon Styling */
-#ca-unwatch.icon a,
-#ca-watch.icon a {
-       margin: 0;
-       padding: 0;
-       outline: none;
-       display: block;
-       width: 26px;
-       /* This hides the text but shows the background image */
-       padding-top: 3.1em;
-       margin-top: 0;
-       /* Only applied in IE6 */
-       margin-top: -0.8em !ie;
-       height: 0;
-       overflow: hidden;
-       /* @embed */
-       background-image: url(images/watch-icons.png);
-}
-#ca-unwatch.icon a {
-       background-position: -43px 60%;
-}
-#ca-watch.icon a {
-       background-position: 5px 60%;
-}
-#ca-unwatch.icon a:hover,
-#ca-unwatch.icon a:focus {
-       background-position: -67px 60%;
-}
-#ca-watch.icon a:hover,
-#ca-watch.icon a:focus {
-       background-position: -19px 60%;
-}
-#ca-unwatch.icon a.loading,
-#ca-watch.icon a.loading {
-       /* @embed */
-       background-image: url(images/watch-icon-loading.gif);
-       background-position: 5px 60%;
-}
-#ca-unwatch.icon a span,
-#ca-watch.icon a span {
-       display: none;
-}
-div.vectorTabs ul {
-       /* @embed */
-       background-image: url(images/tab-break.png);
-       background-position: right bottom;
-       background-repeat: no-repeat;
-}
-
-/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
-.tipsy {
-       font-size: 0.8em;
-}
-
-/* Animate between standard and high definition layouts */
-
-body.vector-animateLayout div#content,
-body.vector-animateLayout div#footer,
-body.vector-animateLayout #left-navigation {
-       -moz-transition: margin-left 250ms, padding 250ms;
-       -webkit-transition: margin-left 250ms, padding 250ms;
-       -o-transition: margin-left 250ms, padding 250ms;
-       transition: margin-left 250ms, padding 250ms;
-}
-body.vector-animateLayout #p-logo {
-       -moz-transition: left 250ms;
-       -webkit-transition: left 250ms;
-       -o-transition: left 250ms;
-       transition: left 250ms;
-}
-body.vector-animateLayout #mw-panel {
-       -moz-transition: padding-left 250ms;
-       -webkit-transition: padding-left 250ms;
-       -o-transition: padding-left 250ms;
-       transition: padding-left 250ms;
-}
-body.vector-animateLayout #p-search {
-       -moz-transition: margin-right 250ms;
-       -webkit-transition: margin-right 250ms;
-       -o-transition: margin-right 250ms;
-       transition: margin-right 250ms;
-}
-body.vector-animateLayout #p-personal {
-       -moz-transition: right 250ms;
-       -webkit-transition: right 250ms;
-       -o-transition: right 250ms;
-       transition: right 250ms;
-}
-body.vector-animateLayout #mw-head-base {
-       -moz-transition: margin-left 250ms;
-       -webkit-transition: margin-left 250ms;
-       -o-transition: margin-left 250ms;
-       transition: margin-left 250ms;
-}
diff --git a/skins/vector/screen.less b/skins/vector/screen.less
new file mode 100644 (file)
index 0000000..cccdd7a
--- /dev/null
@@ -0,0 +1,820 @@
+/*
+ * Any rules which should not be flipped automatically in right-to-left situations should be
+ * prepended with @noflip in a comment block. Images that should be embedded as base64 data-URLs
+ * should be prepended with @embed in a comment block.
+ *
+ * This style-sheet employs a few CSS trick to accomplish compatibility with a wide range of web
+ * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using
+ * a rule that makes things work in IE6, and then following it with a rule that begins with
+ * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support
+ * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and
+ * "IGNORED BY IE6" comments.
+ */
+@import "mediawiki.mixins.less";
+
+/* Framework */
+html,
+body {
+       height: 100%;
+       margin: 0;
+       padding: 0;
+       font-family: sans-serif;
+       font-size: 1em;
+}
+body {
+       background-color: #f6f6f6;
+}
+/* Content */
+div#content {
+       margin-left: 10em;
+       padding: 1em;
+       /* Border on top, left, and bottom side */
+       border: 1px solid #a7d7f9;
+       border-right-width: 0;
+       /* Merge the border with tabs' one (in their background image) */
+       margin-top: -1px;
+       background-color: white;
+       color: black;
+       direction: ltr;
+}
+/* Hide, but keep accessible for screen-readers */
+#mw-navigation h2 {
+       position: absolute;
+       top: -9999px;
+}
+/* Head */
+#mw-page-base {
+       height: 5em;
+       background-color: white;
+       .background-image('images/page-fade.png');
+       background-position: bottom left;
+       background-repeat: repeat-x;
+}
+#mw-head-base {
+       margin-top: -5em;
+       margin-left: 10em;
+       height: 5em;
+}
+div#mw-head {
+       position: absolute;
+       top: 0;
+       right: 0;
+       width: 100%;
+}
+div#mw-head h3 {
+       margin: 0;
+       padding: 0;
+}
+/* Hide empty portlets */
+div.emptyPortlet {
+               display: none;
+}
+/* Personal */
+#p-personal {
+       position: absolute;
+       top: 0.33em;
+       right: 0.75em;
+       /* Display on top of page tabs - bugs 37158, 48078 */
+       z-index: 100;
+}
+#p-personal h3 {
+       display: none;
+}
+#p-personal ul {
+       list-style-type: none;
+       list-style-image: none;
+       margin: 0;
+       padding-left: 10em; /* Keep from overlapping logo */
+}
+/* @noflip */
+#p-personal li {
+       line-height: 1.125em;
+       float: left;
+}
+/* This one flips! */
+#p-personal li {
+       margin-left: 0.75em;
+       margin-top: 0.5em;
+       font-size: 0.75em;
+       white-space: nowrap;
+}
+/* Navigation Containers */
+#left-navigation {
+       float: left;
+       margin-left: 10em;
+       margin-top: 2.5em;
+       /* When right nav would overlap left nav, it's placed below it
+          (normal CSS floats behavior). This rule ensures that no empty space
+          is shown between them due to right nav's margin-top. Page layout
+          is still broken, but at least the nav overlaps only the page title
+          instead of half the content. */
+       margin-bottom: -2.5em;
+       /* IE 6 double-margin bug fix */
+       display: inline;
+}
+#right-navigation {
+       float: right;
+       margin-top: 2.5em;
+}
+/* Navigation Labels */
+div.vectorTabs h3,
+div.vectorMenu h3 span {
+       display: none;
+}
+/* Namespaces and Views */
+/* @noflip */
+div.vectorTabs {
+       float: left;
+       height: 2.5em;
+}
+div.vectorTabs {
+       .background-image('images/tab-break.png');
+       background-position: bottom left;
+       background-repeat: no-repeat;
+       padding-left: 1px;
+}
+/* @noflip */
+div.vectorTabs ul {
+       float: left;
+}
+div.vectorTabs ul {
+       height: 100%;
+       list-style-type: none;
+       list-style-image: none;
+       margin: 0;
+       padding: 0;
+}
+/* @noflip */
+div.vectorTabs ul li {
+       float: left;
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+div.vectorTabs ul li {
+       line-height: 1.125em;
+       display: inline-block;
+       height: 100%;
+       margin: 0;
+       padding: 0;
+       background-color: #f3f3f3;
+       .background-image('images/tab-normal-fade.png');
+       background-position: bottom left;
+       background-repeat: repeat-x;
+       white-space: nowrap;
+}
+/* IGNORED BY IE6 */
+div.vectorTabs ul > li {
+       display: block;
+}
+div.vectorTabs li.selected {
+       .background-image('images/tab-current-fade.png');
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+div.vectorTabs li a {
+       display: inline-block;
+       height: 1.9em;
+       padding-left: 0.5em;
+       padding-right: 0.5em;
+       color: #0645ad;
+       cursor: pointer;
+       font-size: 0.8em;
+}
+/* IGNORED BY IE6 */
+div.vectorTabs li > a {
+       display: block;
+}
+div.vectorTabs li.icon a {
+       background-position: bottom right;
+       background-repeat: no-repeat;
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+div.vectorTabs span a  {
+       display: inline-block;
+       padding-top: 1.25em;
+}
+/* IGNORED BY IE6 */
+/* @noflip */
+div.vectorTabs span > a {
+       float: left;
+       display: block;
+}
+div.vectorTabs span {
+       display: inline-block;
+       .background-image('images/tab-break.png');
+       background-position: bottom right;
+       background-repeat: no-repeat;
+}
+div.vectorTabs li.selected a,
+div.vectorTabs li.selected a:visited{
+       color: #333;
+       text-decoration: none;
+}
+div.vectorTabs li.new a,
+div.vectorTabs li.new a:visited{
+       color: #a55858;
+}
+/* Variants and Actions */
+/* @noflip */
+div.vectorMenu {
+       direction: ltr;
+       float: left;
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG) */
+       .background-image-svg('images/arrow-down-icon.svg', 'images/arrow-down-icon.png');
+       background-position: 100% 60%;
+       background-repeat: no-repeat;
+       cursor: pointer;
+}
+div.vectorMenuFocus {
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG) */
+       .background-image-svg('images/arrow-down-focus-icon.svg', 'images/arrow-down-focus-icon.png');
+       background-position: 100% 60%;
+}
+/* @noflip */
+body.rtl div.vectorMenu {
+       direction: rtl;
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+/* @noflip */
+div#mw-head div.vectorMenu h3 {
+       float: left;
+       .background-image('images/tab-break.png');
+       background-repeat: no-repeat;
+}
+/* This will be flipped - unlike the one above it */
+div#mw-head div.vectorMenu h3 {
+       background-position: bottom left;
+       margin-left: -1px;
+}
+/* IGNORED BY IE6 */
+div#mw-head div.vectorMenu > h3 {
+       background-image: none;
+}
+div#mw-head div.vectorMenu h4,
+div.vectorMenu#p-variants #mw-vector-current-variant {
+       display: inline-block;
+       float: left;
+       font-size: 0.8em;
+       padding-left: 0.5em;
+       padding-top: 1.375em;
+       font-weight: normal;
+       border: none;
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+/* @noflip */
+div.vectorMenu h3 a {
+       display: inline-block;
+       width: 24px;
+       height: 1.9em;
+       text-decoration: none;
+       .background-image('images/tab-break.png');
+       background-repeat: no-repeat;
+}
+/* This will be flipped - unlike the one above it */
+div.vectorMenu h3 a {
+       background-position: bottom right;
+}
+/* IGNORED BY IE6 */
+div.vectorMenu h3 > a {
+       display: block;
+}
+div.vectorMenu div.menu {
+       position: relative;
+       display: none;
+       clear: both;
+       text-align: left;
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+/* @noflip */
+body.rtl div.vectorMenu div.menu {
+       margin-left: 24px;
+}
+/* IGNORED BY IE6 */
+/* @noflip */
+body.rtl div.vectorMenu > div.menu {
+       margin-left: auto;
+}
+/* IGNORED BY IE6 */
+/* Also fixes old versions of FireFox */
+/* @noflip */
+body.rtl div.vectorMenu > div.menu,
+x:-moz-any-link {
+       margin-left: 23px;
+}
+/* Enable forcing showing of the menu for accessibility */
+div.vectorMenu:hover div.menu,
+div.vectorMenu div.menuForceShow {
+       display: block;
+}
+div.vectorMenu ul {
+       position: absolute;
+       background-color: white;
+       border: solid 1px silver;
+       border-top-width: 0;
+       list-style-type: none;
+       list-style-image: none;
+       padding: 0;
+       margin: 0;
+       margin-left: -1px;
+       text-align: left;
+}
+/* Fixes old versions of FireFox */
+div.vectorMenu ul,
+x:-moz-any-link {
+       min-width: 5em;
+}
+/* Returns things back to normal in modern versions of FireFox */
+div.vectorMenu ul,
+x:-moz-any-link,
+x:default {
+       min-width: 0;
+}
+div.vectorMenu li {
+       padding: 0;
+       margin: 0;
+       text-align: left;
+       line-height: 1em;
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+div.vectorMenu li a {
+       display: inline-block;
+       padding: 0.5em;
+       white-space: nowrap;
+       color: #0645ad;
+       cursor: pointer;
+       font-size: 0.8em;
+}
+/* IGNORED BY IE6 */
+div.vectorMenu li > a {
+       display: block;
+}
+div.vectorMenu li.selected a,
+div.vectorMenu li.selected a:visited {
+       color: #333;
+       text-decoration: none;
+}
+/* Search */
+#p-search h3 {
+       display: none;
+}
+/* @noflip */
+#p-search {
+       float: left;
+}
+#p-search {
+       margin-right: 0.5em;
+       margin-left: 0.5em;
+}
+#p-search form,
+#p-search input {
+       margin: 0;
+       margin-top: 0.4em;
+}
+div#simpleSearch {
+       display: block;
+       width: 14em;
+       height: 1.4em;
+       margin-top: 0.65em;
+       position: relative;
+       min-height: 1px; /* Gotta trigger hasLayout for IE7 */
+       border: solid 1px #aaa;
+       color: black;
+       background-color: white;
+       .background-image('images/search-fade.png');
+       background-position: top left;
+       background-repeat: repeat-x;
+}
+div#simpleSearch input:focus {
+       outline: none;
+}
+div#simpleSearch input.placeholder {
+       color: #999;
+}
+div#simpleSearch input::-webkit-input-placeholder {
+       color: #999;
+}
+div#simpleSearch input:-moz-placeholder {
+       color: #999;
+}
+div#simpleSearch input:-ms-input-placeholder {
+       color: #999;
+}
+div#simpleSearch input#searchInput {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 90%;
+       margin: 0;
+       padding: 0;
+       padding-left: 0.2em;
+       padding-top: 0.2em;
+       padding-bottom: 0.2em;
+       outline: none;
+       border: none;
+       /*
+        * DON'T PANIC! Browsers that won't scale this properly are the same browsers that have JS issues that prevent
+        * this from ever being shown anyways.
+       */
+       font-size: 13px;
+       color: black;
+       background-color: transparent;
+       direction: ltr;
+}
+div#simpleSearch button#searchButton {
+       position: absolute;
+       width: 10%;
+       right: 0;
+       top: 0;
+       padding: 0;
+       padding-top: 0.3em;
+       padding-bottom: 0.2em;
+       padding-right: 0.4em;
+       margin: 0;
+       border: none;
+       cursor: pointer;
+       background-color: transparent;
+       background-image: none;
+}
+/* OVERRIDDEN BY COMPLIANT BROWSERS */
+div#simpleSearch button#searchButton img {
+       border: none;
+       margin: 0;
+       margin-top: -3px;
+       padding: 0;
+}
+/* IGNORED BY IE6 */
+div#simpleSearch button#searchButton > img {
+       margin: 0;
+}
+/* Panel */
+div#mw-panel {
+       position: absolute;
+       top: 160px;
+       padding-top: 1em;
+       width: 10em;
+       left: 0;
+}
+div#mw-panel div.portal {
+       padding-bottom: 1.5em;
+       direction: ltr;
+}
+div#mw-panel div.portal h3 {
+       font-weight: normal;
+       color: #444;
+       padding: 0.25em;
+       padding-top: 0;
+       padding-left: 1.75em;
+       cursor: default;
+       border: none;
+       font-size: 0.75em;
+}
+div#mw-panel div.portal div.body {
+       margin: 0;
+       padding-top: 0.5em;
+       margin-left: 1.25em;
+       .background-image('images/portal-break.png');
+       background-repeat: no-repeat;
+       background-position: top left;
+}
+div#mw-panel div.portal div.body ul {
+       list-style-type: none;
+       list-style-image: none;
+       padding: 0;
+       margin: 0;
+}
+div#mw-panel div.portal div.body ul li {
+       line-height: 1.125em;
+       padding: 0;
+       padding-bottom: 0.5em;
+       margin: 0;
+       font-size: 0.75em;
+       word-wrap: break-word;
+}
+div#mw-panel div.portal div.body ul li a {
+       color: #0645ad;
+}
+div#mw-panel div.portal div.body ul li a:visited {
+       color: #0b0080;
+}
+/* Footer */
+div#footer {
+       margin-left: 10em;
+       margin-top: 0;
+       padding: 0.75em;
+       direction: ltr;
+}
+div#footer ul {
+       list-style-type: none;
+       list-style-image: none;
+       margin: 0;
+       padding: 0;
+}
+div#footer ul li {
+       margin: 0;
+       padding: 0;
+       padding-top: 0.5em;
+       padding-bottom: 0.5em;
+       color: #333;
+       font-size: 0.7em;
+}
+div#footer #footer-icons {
+       float: right;
+}
+/* @noflip */
+body.ltr div#footer #footer-places {
+       float: left;
+}
+div#footer #footer-info li {
+       line-height: 1.4em;
+}
+div#footer #footer-icons li {
+       float: left;
+       margin-left: 0.5em;
+       line-height: 2em;
+       text-align: right;
+}
+div#footer #footer-places li {
+       float: left;
+       margin-right: 1em;
+       line-height: 2em;
+}
+/* Logo */
+#p-logo {
+       position: absolute;
+       top: -160px;
+       left: 0;
+       width: 10em;
+       height: 160px;
+}
+#p-logo a {
+       display: block;
+       width: 10em;
+       height: 160px;
+       background-repeat: no-repeat;
+       background-position: center center;
+       text-decoration: none;
+}
+
+/*
+ *
+ * The following code is highly modified from monobook. It would be nice if the
+ * preftoc id was more human readable like preferences-toc for instance,
+ * howerver this would require backporting the other skins.
+ */
+
+/* Preferences */
+#preftoc {
+       /* Tabs */
+       width: 100%;
+       float: left;
+       clear: both;
+       margin: 0 !important;
+       padding: 0 !important;
+       .background-image('images/preferences-break.png');
+       background-position: bottom left;
+       background-repeat: no-repeat;
+}
+       #preftoc li {
+               /* Tab */
+               float: left;
+               margin: 0;
+               padding: 0;
+               padding-right: 1px;
+               height: 2.25em;
+               white-space: nowrap;
+               list-style-type: none;
+               list-style-image: none;
+               .background-image('images/preferences-break.png');
+               background-position: bottom right;
+               background-repeat: no-repeat;
+       }
+       /* Sadly, IE6 won't understand this */
+       #preftoc li:first-child {
+               margin-left: 1px;
+       }
+       #preftoc a,
+       #preftoc a:active {
+               display: inline-block;
+               position: relative;
+               color: #0645ad;
+               padding: 0.5em;
+               text-decoration: none;
+               background-image: none;
+               font-size: 0.9em;
+       }
+       #preftoc a:hover,
+       #preftoc a:focus {
+               text-decoration: underline;
+       }
+       #preftoc li.selected a {
+               .background-image('images/preferences-fade.png');
+               background-position: bottom;
+               background-repeat: repeat-x;
+               color: #333;
+               text-decoration: none;
+       }
+#preferences {
+       float: left;
+       width: 100%;
+       margin: 0;
+       margin-top: -2px;
+       clear: both;
+       border: solid 1px #ccc;
+       background-color: #fafafa;
+}
+#preferences fieldset {
+       border: none;
+       border-top: solid 1px #ccc;
+}
+#preferences fieldset.prefsection {
+       border: none;
+       padding: 0;
+       margin: 1em;
+}
+#preferences legend {
+       color: #666;
+}
+#preferences fieldset.prefsection legend.mainLegend {
+       display: none;
+}
+#preferences td {
+       padding-left: 0.5em;
+       padding-right: 0.5em;
+}
+.htmlform-tip {
+       font-size: x-small;
+       padding: .2em 2em;
+       color: #666;
+}
+#preferences div.mw-prefs-buttons {
+       padding: 1em;
+}
+#preferences div.mw-prefs-buttons input {
+       margin-right: 0.25em;
+}
+
+/**
+ * The following code is slightly modified from monobook
+ */
+div#content {
+       line-height: 1.5em;
+}
+#bodyContent {
+       font-size: 0.8em;
+}
+
+ul {
+       list-style-type: disc;
+       .list-style-image('images/bullet-icon.png');
+}
+
+pre, .mw-code {
+       line-height: 1.3em;
+}
+
+/* Site Notice (includes notices from CentralNotice extension) */
+#siteNotice {
+       font-size: 0.8em;
+}
+#firstHeading {
+       padding-top: 0;
+       margin-top: 0;
+       font-size: 1.6em;
+}
+
+/* Icon for Usernames */
+#pt-userpage,
+#pt-anonuserpage,
+#pt-login {
+       background-position: left top;
+       background-repeat: no-repeat;
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG) */
+       .background-image-svg('images/user-icon.svg', 'images/user-icon.png');
+       padding-left: 15px !important;
+}
+
+.redirectText {
+       font-size: 140%;
+}
+
+.redirectMsg img {
+       vertical-align: text-bottom;
+}
+
+#bodyContent {
+       position: relative;
+       width: 100%;
+}
+div#bodyContent {
+       line-height: 1.5em;
+}
+
+/* mediawiki.notification */
+.skin-vector .mw-notification-area {
+       font-size: 0.8em;
+}
+.skin-vector .mw-notification-area-layout {
+       top: 7em;
+}
+.skin-vector .mw-notification {
+       background-color: #fff;
+       background-color: rgba(255, 255, 255, 0.93);
+       padding: 0.75em 1.5em;
+       border: solid 1px #a7d7f9;
+       border-radius: 0.75em;
+       -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
+       box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
+}
+
+/* Watch/Unwatch Icon Styling */
+#ca-unwatch.icon a,
+#ca-watch.icon a {
+       margin: 0;
+       padding: 0;
+       outline: none;
+       display: block;
+       width: 26px;
+       /* This hides the text but shows the background image */
+       padding-top: 3.1em;
+       margin-top: 0;
+       /* Only applied in IE6 */
+       margin-top: -0.8em !ie;
+       height: 0;
+       overflow: hidden;
+       .background-image('images/watch-icons.png');
+}
+#ca-unwatch.icon a {
+       background-position: -43px 60%;
+}
+#ca-watch.icon a {
+       background-position: 5px 60%;
+}
+#ca-unwatch.icon a:hover,
+#ca-unwatch.icon a:focus {
+       background-position: -67px 60%;
+}
+#ca-watch.icon a:hover,
+#ca-watch.icon a:focus {
+       background-position: -19px 60%;
+}
+#ca-unwatch.icon a.loading,
+#ca-watch.icon a.loading {
+       .background-image('images/watch-icon-loading.gif');
+       background-position: 5px 60%;
+}
+#ca-unwatch.icon a span,
+#ca-watch.icon a span {
+       display: none;
+}
+div.vectorTabs ul {
+       .background-image('images/tab-break.png');
+       background-position: right bottom;
+       background-repeat: no-repeat;
+}
+
+/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
+.tipsy {
+       font-size: 0.8em;
+}
+
+/* Animate between standard and high definition layouts */
+
+body.vector-animateLayout div#content,
+body.vector-animateLayout div#footer,
+body.vector-animateLayout #left-navigation {
+       -moz-transition: margin-left 250ms, padding 250ms;
+       -webkit-transition: margin-left 250ms, padding 250ms;
+       -o-transition: margin-left 250ms, padding 250ms;
+       transition: margin-left 250ms, padding 250ms;
+}
+body.vector-animateLayout #p-logo {
+       -moz-transition: left 250ms;
+       -webkit-transition: left 250ms;
+       -o-transition: left 250ms;
+       transition: left 250ms;
+}
+body.vector-animateLayout #mw-panel {
+       -moz-transition: padding-left 250ms;
+       -webkit-transition: padding-left 250ms;
+       -o-transition: padding-left 250ms;
+       transition: padding-left 250ms;
+}
+body.vector-animateLayout #p-search {
+       -moz-transition: margin-right 250ms;
+       -webkit-transition: margin-right 250ms;
+       -o-transition: margin-right 250ms;
+       transition: margin-right 250ms;
+}
+body.vector-animateLayout #p-personal {
+       -moz-transition: right 250ms;
+       -webkit-transition: right 250ms;
+       -o-transition: right 250ms;
+       transition: right 250ms;
+}
+body.vector-animateLayout #mw-head-base {
+       -moz-transition: margin-left 250ms;
+       -webkit-transition: margin-left 250ms;
+       -o-transition: margin-left 250ms;
+       transition: margin-left 250ms;
+}