]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixes #6714 #10330 - wraps theme in themename{}, creates legacy-styles.css, updates... 51/351/2
authorMarc Englund <marc@vaadin.com>
Thu, 22 Nov 2012 15:09:10 +0000 (17:09 +0200)
committerMarc Englund <marc@vaadin.com>
Fri, 23 Nov 2012 07:29:59 +0000 (09:29 +0200)
Change-Id: I185b67b2ee74dca2faf48ff2517f24280aff4375

32 files changed:
.gitignore
WebContent/VAADIN/themes/base/common/common.scss
WebContent/VAADIN/themes/base/dragwrapper/dragwrapper.scss
WebContent/VAADIN/themes/base/legacy-styles.scss [new file with mode: 0644]
WebContent/VAADIN/themes/base/select/select.scss
WebContent/VAADIN/themes/base/styles.scss
WebContent/VAADIN/themes/base/tree/tree.scss
WebContent/VAADIN/themes/chameleon/common/common.scss
WebContent/VAADIN/themes/chameleon/legacy-styles.scss [new file with mode: 0644]
WebContent/VAADIN/themes/chameleon/styles.scss
WebContent/VAADIN/themes/liferay/common/common.scss
WebContent/VAADIN/themes/liferay/legacy-styles.scss [new file with mode: 0644]
WebContent/VAADIN/themes/liferay/select/select.scss
WebContent/VAADIN/themes/liferay/styles.scss
WebContent/VAADIN/themes/liferay/textfield/textfield.scss
WebContent/VAADIN/themes/reindeer-tests/styles.css
WebContent/VAADIN/themes/reindeer/common/common.scss
WebContent/VAADIN/themes/reindeer/label/label.scss
WebContent/VAADIN/themes/reindeer/legacy-styles.scss [new file with mode: 0644]
WebContent/VAADIN/themes/reindeer/select/select.scss
WebContent/VAADIN/themes/reindeer/styles.scss
WebContent/VAADIN/themes/reindeer/textfield/textfield.scss
WebContent/VAADIN/themes/runo/common/common.scss
WebContent/VAADIN/themes/runo/legacy-styles.scss [new file with mode: 0644]
WebContent/VAADIN/themes/runo/select/select.scss
WebContent/VAADIN/themes/runo/styles.scss
WebContent/VAADIN/themes/tests-book/styles.css
WebContent/VAADIN/themes/tests-components/styles.css
WebContent/VAADIN/themes/tests-tickets/styles.css
client/src/com/vaadin/client/ui/ui/UIConnector.java
server/src/com/vaadin/server/BootstrapHandler.java
theme-compiler/src/com/vaadin/buildhelpers/CompileTheme.java

index fbc7eee0af72ab6e6dacce9afa5f76e81e371bcc..d2236fafb0df9f3946dcbe9ab348caeef389ae2c 100644 (file)
 
 # /WebContent/VAADIN/themes/base/
 /WebContent/VAADIN/themes/base/styles.css
+/WebContent/VAADIN/themes/base/legacy-styles.css
 
 # /WebContent/VAADIN/themes/chameleon/
 /WebContent/VAADIN/themes/chameleon/styles.css
+/WebContent/VAADIN/themes/chameleon/legacy-styles.css
 
 # /WebContent/VAADIN/themes/liferay/
 /WebContent/VAADIN/themes/liferay/styles.css
+/WebContent/VAADIN/themes/liferay/legacy-styles.css
 
 # /WebContent/VAADIN/themes/reindeer/
 /WebContent/VAADIN/themes/reindeer/styles.css
+/WebContent/VAADIN/themes/reindeer/legacy-styles.css
 
 # /WebContent/VAADIN/themes/reindeer/button/img/
 /WebContent/VAADIN/themes/reindeer/button/img/*-sprites*.png
@@ -30,6 +34,7 @@
 
 # /WebContent/VAADIN/themes/runo/
 /WebContent/VAADIN/themes/runo/styles.css
+/WebContent/VAADIN/themes/runo/legacy-styles.css
 
 # /WebContent/VAADIN/themes/runo/common/img/
 /WebContent/VAADIN/themes/runo/common/img/ajax-loader-red.gif
@@ -62,4 +67,4 @@
 
 # build result folders
 */result
-result
\ No newline at end of file
+result
index b1e5ae167440bf445afa2bfcb45395fe1283039f..27a8f56a48ba6426e2bb80942078b619c0467c4a 100644 (file)
@@ -8,18 +8,18 @@
        margin: 0;
        overflow: hidden;
 }
-.v-app {
+&.v-app {
        height: 100%;
 }
 /* Force arrow cursor for all elements inside the app */
-.v-app,
+&.v-app,
 .v-window,
 .v-popupview-popup,
 .v-label,
 .v-caption {
        cursor: default;
 }
-div.v-app-loading {
+body &.v-app-loading {
        /* You can use this to provide indication for the user that the application is loading. */
        /* It is applied to the same element as .v-app */
        background-image: url(img/loading-indicator.gif);
@@ -65,7 +65,7 @@ div.v-app-loading {
 .v-ui:focus {
        outline: none;
 }
-.v-app select,
+&.v-app select,
 .v-window select {
        margin: 0;
 }
@@ -77,10 +77,10 @@ div.v-app-loading {
 .v-disabled * {
        cursor: default;
 }
-* html .v-disabled {
+* html .v-disabled {
        zoom: 1;
 }
-*+html .v-disabled {
+*+html .v-disabled {
        zoom: 1;
 }
 .v-disabled .v-disabled {
@@ -217,16 +217,16 @@ div.v-app-loading {
        font-size: xx-small;
 }
 /* Debug style */
-.v-app .invalidlayout,
-.v-app .invalidlayout * {
+&.v-app .invalidlayout,
+&.v-app .invalidlayout * {
        background: #f99 !important;
 }
 /* Fix for Liferay, issue #2384 */
-.v-app input[type="text"],
-.v-app input[type="password"],
-.v-app input[type="reset"],
-.v-app select,
-.v-app textarea ,
+&.v-app input[type="text"],
+&.v-app input[type="password"],
+&.v-app input[type="reset"],
+&.v-app select,
+&.v-app textarea ,
 .v-window input[type="text"],
 .v-window input[type="password"],
 .v-window input[type="reset"],
index dae43201310f1c2bb1f8f8e91bbe5b13fe08e745..e9bc677b3ec26cc7ff88a9d9b23965ec8ff4f80d 100644 (file)
@@ -40,7 +40,7 @@
        background-color: transparent;
        padding: 2px;
 }
-.v-app .#{$name}-over-top,
+&.v-app .#{$name}-over-top,
 .v-window .#{$name}-over-top,
 .v-popupview-popup .#{$name}-over-top {
        border: none;
@@ -52,7 +52,7 @@
        -webkit-border-radius: 0;
        border-radius: 0;
 }
-.v-app .#{$name}-over-bottom,
+&.v-app .#{$name}-over-bottom,
 .v-window .#{$name}-over-bottom,
 .v-popupview-popup .#{$name}-over-bottom {
        border: none;
@@ -64,7 +64,7 @@
        -webkit-border-radius: 0;
        border-radius: 0;
 }
-.v-app .#{$name}-over-left,
+&.v-app .#{$name}-over-left,
 .v-window .#{$name}-over-left,
 .v-popupview-popup .#{$name}-over-left {
        border: none;
@@ -76,7 +76,7 @@
        -webkit-border-radius: 0;
        border-radius: 0;
 }
-.v-app .#{$name}-over-right,
+&.v-app .#{$name}-over-right,
 .v-window .#{$name}-over-right,
 .v-popupview-popup .#{$name}-over-right {
        border: none;
 }
 .#{$name},
 .#{$name}-over,
-.v-app .#{$name}-over-top,
+&.v-app .#{$name}-over-top,
 .v-window .#{$name}-over-top,
 .v-popupview-popup .#{$name}-over-top,
-.v-app .#{$name}-over-bottom,
+&.v-app .#{$name}-over-bottom,
 .v-window .#{$name}-over-bottom,
 .v-popupview-popup .#{$name}-over-bottom,
-.v-app .#{$name}-over-left,
+&.v-app .#{$name}-over-left,
 .v-window .#{$name}-over-left,
 .v-popupview-popup .#{$name}-over-left,
-.v-app .#{$name}-over-right,
+&.v-app .#{$name}-over-right,
 .v-window .#{$name}-over-right,
 .v-popupview-popup .#{$name}-over-right {
        border-color: rgba(0,109,232,.6);
diff --git a/WebContent/VAADIN/themes/base/legacy-styles.scss b/WebContent/VAADIN/themes/base/legacy-styles.scss
new file mode 100644 (file)
index 0000000..188fc85
--- /dev/null
@@ -0,0 +1,6 @@
+@import "base.scss";
+// For legacy themes; does not wrap styles in .themename
+// Creates legacy-styles.css that can be imported into non-sass themes.
+// NOTE: can not be used in scenarios where multiple themes are used on the
+// same page (e.g portals).
+@include base;
\ No newline at end of file
index 483f0e16b65cb423a8379ce3fdd5e2e0d030ef72..8e252e1f60f57832f810400b8615941461bd615b 100644 (file)
@@ -63,7 +63,7 @@
 .v-filterselect .v-icon {
        float: left;
 }
-.v-app .v-filterselect-input,
+&.v-app .v-filterselect-input,
 .v-window .v-filterselect-input,
 .v-popupview-popup .v-filterselect-input {
        margin: 0;
index 40990f2c31bb58c7fd077504837096355e92581d..1b6942944bd4f0a60c3a53ffcdf579818727c758 100644 (file)
@@ -1,2 +1,4 @@
 @import "base.scss";
-@include base;
+.base {
+       @include base;
+}
index 2eb2c5908b27ff33f240b7cf7ade120db627cb99..fd998eac458d4aa89d99ad85fbfb8d58220c7844 100644 (file)
@@ -99,43 +99,44 @@ div.#{$name}-node-leaf {
 }
 
 // tree-connectors.css
+// This could be (and was) wrapped in a nested block instead of prefixing each 
+// row, but #10309 prevents us from doing that right now.
 
-.#{$name}-connectors {
        // Make item caption height an even number (so that the connector dots overlap nicely)
-       .#{$name}-node-caption {
+       .#{$name}-connectors .#{$name}-node-caption {
                padding-top: 1px;
        }
-       .#{$name}-node {
+       .#{$name}-connectors .#{$name}-node {
                background: transparent url(img/connector-expand.png) no-repeat 2px -52px;
        }
-       .#{$name}-node-expanded {
+       .#{$name}-connectors .#{$name}-node-expanded {
                background: transparent url(img/connector-collapse.png) no-repeat 2px -52px;
        }
-       .#{$name}-node-last {
+       .#{$name}-connectors .#{$name}-node-last {
                background: transparent url(img/connector-expand-last.png) no-repeat 2px -52px;
        }
-       .#{$name}-node-expanded.#{$name}-node-last {
+       .#{$name}-connectors .#{$name}-node-expanded.#{$name}-node-last {
                background: transparent url(img/connector-collapse-last.png) no-repeat 2px -52px;
        }
-       .#{$name}-node-leaf {
+       .#{$name}-connectors .#{$name}-node-leaf {
                background: transparent url(img/connector-leaf.png) repeat-y 2px 50%;
        }
-       .#{$name}-node-leaf-last {
+       .#{$name}-connectors .#{$name}-node-leaf-last {
                background: transparent url(img/connector-leaf-last.png) repeat-y 2px 50%;
        }
-       .#{$name}-node-children {
+       .#{$name}-connectors .#{$name}-node-children {
                background: transparent url(img/connector.png) repeat-y 2px 0;
        }
-       .#{$name}-node-children-last {
+       .#{$name}-connectors .#{$name}-node-children-last {
                background: transparent;
        }
-       .#{$name}-node-drag-top,
-       .#{$name}-node-expanded.#{$name}-node-drag-top {
+       .#{$name}-connectors .#{$name}-node-drag-top,
+       .#{$name}-connectors .#{$name}-node-expanded.#{$name}-node-drag-top {
                background-position: 2px -53px;
        }
-       .#{$name}-node-drag-top.#{$name}-node-leaf {
+       .#{$name}-connectors .#{$name}-node-drag-top.#{$name}-node-leaf {
                background-position: 2px 50%;
        }
-}
+
 
 }
\ No newline at end of file
index 10247032ac9e57af25813aecc67b568b52b9014c..a38ed62eb9fb27f4591202ba3bf4e90c4f6c26e7 100644 (file)
@@ -10,7 +10,7 @@ $chameleon-line-height: 1.4;
 // rules on the application level, above theme selection
 @mixin chameleon-app {
        // App background & tooltip
-       .v-app {
+       &.v-app {
                background: transparent;
                overflow: hidden;
                }
@@ -48,14 +48,14 @@ $chameleon-line-height: 1.4;
        // Then come all other overlay elements, that do not have other arbitrary 
        // components inside them (from v-filterselect-suggestpopup onwards)
        
-       .v-app,
+       &.v-app,
        .v-window,
        .v-popupview-popup,
        .v-tooltip,
-       .v-app input,
-       .v-app select,
-       .v-app button,
-       .v-app textarea,
+       &.v-app input,
+       &.v-app select,
+       &.v-app button,
+       &.v-app textarea,
        .v-window input,
        .v-window select,
        .v-window button,
diff --git a/WebContent/VAADIN/themes/chameleon/legacy-styles.scss b/WebContent/VAADIN/themes/chameleon/legacy-styles.scss
new file mode 100644 (file)
index 0000000..843f814
--- /dev/null
@@ -0,0 +1,6 @@
+@import "chameleon.scss";
+// For legacy themes; does not wrap styles in .themename
+// Creates legacy-styles.css that can be imported into non-sass themes.
+// NOTE: can not be used in scenarios where multiple themes are used on the
+// same page (e.g portals).
+@include chameleon;
index de7e306e203effafc36dc330c8328fe8e98da57d..0c55a57239e19319dde7adb104ba12828780165f 100644 (file)
@@ -1,3 +1,4 @@
 @import "chameleon.scss";
-
-@include chameleon;
+.chameleon {
+       @include chameleon;
+}
\ No newline at end of file
index a94431d4cb096457207bb5313f4706a4ab22d9f2..0d653baf7c20bbe1eadb0a30db67e2908aaa95d6 100644 (file)
@@ -1,6 +1,6 @@
 @mixin liferay-common {
 
-div.v-app {
+body &.v-app {
        background-color: transparent;
 }
 
diff --git a/WebContent/VAADIN/themes/liferay/legacy-styles.scss b/WebContent/VAADIN/themes/liferay/legacy-styles.scss
new file mode 100644 (file)
index 0000000..4f304fd
--- /dev/null
@@ -0,0 +1,6 @@
+@import "liferay.scss";
+// For legacy themes; does not wrap styles in .themename
+// Creates legacy-styles.css that can be imported into non-sass themes.
+// NOTE: can not be used in scenarios where multiple themes are used on the
+// same page (e.g portals).
+@include liferay;
\ No newline at end of file
index 3dbeaeab9de07143c614b3c3939d40f89d077a15..d62bb43242a8285affac9945f8c2811fd59ec493 100644 (file)
@@ -1,6 +1,6 @@
 @mixin liferay-select {
 
-.v-app select,
+&.v-app select,
 .v-window select {
        padding: 1px;   
 }
index 030602a8b63b839c6e11846a2c84642d1e2f5f81..b76e5f756bb5bc080ae5a92f4a68ae2301f041da 100644 (file)
@@ -1,3 +1,4 @@
 @import "liferay.scss";
-
-@include liferay;
+.liferay {
+       @include liferay;
+}
\ No newline at end of file
index 9e3d2ece03d7633b4565e9907febfd840a2e0d12..a260156bc8ca311822b7b6e7415433909e6c593b 100644 (file)
@@ -1,9 +1,9 @@
 @mixin liferay-textfield {
 
-.v-app input[type="text"],
-.v-app input[type="password"],
-.v-app input[type="reset"],
-.v-app textarea ,
+&.v-app input[type="text"],
+&.v-app input[type="password"],
+&.v-app input[type="reset"],
+&.v-app textarea ,
 .v-window input[type="text"],
 .v-window input[type="password"],
 .v-window input[type="reset"],
index 7da9e50a468a6812db378ec9a4bc736bb24ab1b7..679de01b9cf84d4ae4359091f3a7fc68f02a5839 100644 (file)
@@ -1,4 +1,4 @@
-@import url(../reindeer/styles.css);
+@import url(../reindeer/legacy-styles.css);
 
 .table-equal-rowheight .v-table-row {height: 30px;}
 .table-equal-rowheight .v-table-row-odd {height: 30px;}
index 10e8e18e4ce8f85d7d790e23d0f43e74cff5d1c2..821f041789380cc6fe2e8a86d758b2426ef1432f 100644 (file)
@@ -1,18 +1,18 @@
 @mixin reindeer-common {
 
 .v-generated-body,
-.v-app {
+&.v-app {
        background: #f5f5f5;
 }
 /* Global font styles */
-.v-app,
+&.v-app,
 .v-window,
 .v-popupview-popup,
 .v-tooltip,
-.v-app input,
-.v-app select,
-.v-app button,
-.v-app textarea,
+&.v-app input,
+&.v-app select,
+&.v-app button,
+&.v-app textarea,
 .v-window input,
 .v-window select,
 .v-window button,
@@ -34,7 +34,7 @@
        color: #222;
 }
 /* Fonts on black background */
-.v-app .black,
+&.v-app .black,
 .v-window-black,
 .v-window .black,
 .v-popupview-popup .black {
 }
 
 /* Fixes for Liferay 6.0 */
-.portlet .v-app {
+.portlet &.v-app {
        background: transparent;
 }
-.portlet .v-app .v-radiobutton input,
+.portlet &.v-app .v-radiobutton input,
 .portlet .v-window .v-radiobutton input,
 .portlet .v-popupview-popup .v-radiobutton input,
-.portlet .v-app .v-checkbox input,
+.portlet &.v-app .v-checkbox input,
 .portlet .v-window .v-checkbox input,
 .portlet .v-popupview-popup .v-checkbox input {
        margin-right: 3px;
index 24337e2ff5735647814d8877f8c043647b85368a..44abf64e3622476f2f27e2a8db9f342b508ecf79 100644 (file)
@@ -41,9 +41,9 @@
 /**********************
  * Blue styles
  **********************/
-.v-app .white,
+&.v-app .white,
 .v-window .white,
-.v-app .blue,
+&.v-app .blue,
 .v-window .blue {
        color: #222;
        text-shadow: none;
diff --git a/WebContent/VAADIN/themes/reindeer/legacy-styles.scss b/WebContent/VAADIN/themes/reindeer/legacy-styles.scss
new file mode 100644 (file)
index 0000000..6c59b88
--- /dev/null
@@ -0,0 +1,6 @@
+@import "reindeer.scss";
+// For legacy themes; does not wrap styles in .themename
+// Creates legacy-styles.css that can be imported into non-sass themes.
+// NOTE: can not be used in scenarios where multiple themes are used on the
+// same page (e.g portals).
+@include reindeer;
\ No newline at end of file
index 1510896fb95b36a297218c5a18ee34be8b8250d2..3ab415f813bb6874f904859e54b3168b81de6116 100644 (file)
@@ -7,7 +7,7 @@
        padding-left: 2px;
        padding-right: 25px; /* Space for the button */
 }
-.v-app .#{$name}-input,
+&.v-app .#{$name}-input,
 .v-window .#{$name}-input,
 .v-popupview-popup .#{$name}-input {
        background: transparent repeat-x;
@@ -16,7 +16,7 @@
        height: 24px;
 }
 /* More specific selector to override padding */
-.v-app input.#{$name}-input,
+&.v-app input.#{$name}-input,
 .v-window input.#{$name}-input,
 .v-popupview-popup input.#{$name}-input {
        padding: 4px 0 4px 2px;
 .black .#{$name} {
        background-image: url(img/black/left-black.png); /** sprite-ref: black-verticals; sprite-margin-bottom: 1px */
 }
-.v-app .black .#{$name}-input,
+&.v-app .black .#{$name}-input,
 .v-window .black .#{$name}-input,
 .v-window-black .#{$name}-input,
 .v-popupview-popup .black .#{$name}-input {
index 7ae66252deb5fff9080cc879b4ca1fe78ccddfad..89ddb293413093c14d0b317af358f59ce759db22 100644 (file)
@@ -1,3 +1,5 @@
 @import "reindeer.scss";
 
-@include reindeer;     
+.reindeer {
+       @include reindeer;      
+}
\ No newline at end of file
index 7cd8166aa66554af259071c6d268257d464c6643..6c3d4000faa11bffa34266e4536939f5e0f9d829 100644 (file)
        height: auto;
 }
 /* Need more specific selector because of #2384 fixes in base/common/common.css */
-.v-app input.#{$name},
+&.v-app input.#{$name},
 .v-window input.#{$name},
-.v-app textarea.v-textarea,
+&.v-app textarea.v-textarea,
 .v-window textarea.v-textarea  {
        padding: 3px 3px 4px;
 }
-.v-app input.#{$name}.v-widget,
+&.v-app input.#{$name}.v-widget,
 .v-window input.#{$name}.v-widget {
        height: 24px;
 }
-.v-app .#{$name}-focus,
+&.v-app .#{$name}-focus,
 .v-window .#{$name}-focus,
 .v-popupview-popup .#{$name}-focus,
-.v-app .v-textarea-focus,
+&.v-app .v-textarea-focus,
 .v-window .v-textarea-focus,
 .v-popupview-popup .v-textarea-focus {
        border-color: #5b97d0;
@@ -59,16 +59,16 @@ textarea.v-textarea-prompt {
        color: #999;
 }
 /* Small style textfield */
-.v-app input.#{$name}-small {
+&.v-app input.#{$name}-small {
        font-size: 11px;
        line-height: normal;
        height: auto;
        padding: 2px;
 }
-.v-app textarea.v-textarea-small {
+&.v-app textarea.v-textarea-small {
        font-size: 11px;
 }
-.v-app .v-table  input.#{$name}.v-widget,
+&.v-app .v-table  input.#{$name}.v-widget,
 .v-window .v-table input.#{$name}.v-widget {
        padding: 1px 2px;
        height: auto;
@@ -92,11 +92,11 @@ textarea.v-textarea-prompt {
 .black .v-textarea {
        background-image: none;
 }
-.v-app .black .#{$name}-focus,
+&.v-app .black .#{$name}-focus,
 .v-window-black .#{$name}-focus,
 .v-window .black .#{$name}-focus,
 .v-popupview-popup .black .#{$name}-focus,
-.v-app .black .v-textarea-focus,
+&.v-app .black .v-textarea-focus,
 .v-window-black .v-textarea-focus,
 .v-window .black .v-textarea-focus,
 .v-popupview-popup .black .v-textarea-focus {
index 41ab6dae8877dfd0494c5ca030e77596b2caa1ee..be39a1287aaa1953bcc31e33f21dd5a78d1e3ccb 100644 (file)
@@ -3,7 +3,7 @@
 .v-generated-body {
        background: #e9eced;
 }
-.v-app {
+&.v-app {
        background: #e9eced url(img/main-bg.png) repeat-x;
        font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", geneva, helvetica, arial, tahoma, verdana, sans-serif;
        color: #464f52;
        line-height: 18px;
 }
 /* Global font styles */
-.v-app,
+&.v-app,
 .v-window,
 .v-popupview-popup,
 .v-tooltip,
-.v-app input,
-.v-app select,
-.v-app button,
-.v-app textarea,
+&.v-app input,
+&.v-app select,
+&.v-app button,
+&.v-app textarea,
 .v-window input,
 .v-window select,
 .v-window button,
@@ -37,7 +37,7 @@
        color: #464f52;
        font-size: 13px;
 }
-.v-app select,
+&.v-app select,
 .v-window select {
        padding: 0;
 }
diff --git a/WebContent/VAADIN/themes/runo/legacy-styles.scss b/WebContent/VAADIN/themes/runo/legacy-styles.scss
new file mode 100644 (file)
index 0000000..29ccb22
--- /dev/null
@@ -0,0 +1,6 @@
+@import "runo.scss";
+// For legacy themes; does not wrap styles in .themename
+// Creates legacy-styles.css that can be imported into non-sass themes.
+// NOTE: can not be used in scenarios where multiple themes are used on the
+// same page (e.g portals).
+@include runo;
\ No newline at end of file
index e043f143e3886b121413b2776b8dd3ba1d8ea896..64188eed09c7e7eaa06f28e94253a2246a5c52f7 100644 (file)
@@ -19,7 +19,7 @@
        background: transparent url(img/bg-left-filter.png) no-repeat;
        padding-left: 4px;
 }
-.v-app .v-filterselect .v-filterselect-input,
+&.v-app .v-filterselect .v-filterselect-input,
 .v-window .v-filterselect .v-filterselect-input,
 .v-popupview-popup .v-filterselect .v-filterselect-input {
        background: transparent url(img/bg-center-filter.png) no-repeat 1px 0;
index 987b1425b64961b16daeb36ede0d9330e144dcff..cfcb8bfa78585186c68d0ad4cea372a707920aa9 100644 (file)
@@ -1,2 +1,4 @@
 @import "runo.scss";
-@include runo;
\ No newline at end of file
+.runo {
+       @include runo;
+}
\ No newline at end of file
index aef1fb9d291c9ac5b91bf2d8697a33d6d7f62d33..02669ae3dbb36c4393c515b7badca3751edf1a60 100644 (file)
@@ -1,4 +1,4 @@
-@import url(../runo/styles.css);
+@import url(../runo/legacy-styles.css);
 
 /*****************************************************************************/
 /* Styling for tests.magi application.                                       */
index 2d54a4812403d43a56655db17dc6e9bd42f241ef..5b41f1824faf3da5b18a568d21b49010843d54eb 100644 (file)
@@ -1,4 +1,4 @@
-@import url(../reindeer/styles.css);
+@import url(../reindeer/legacy-styles.css);
 
 .missing {
        color: red;
index fd4db4e6b5530c9f878fc8b426540177ee9fb111..2bd6536e492685b5cbe15ec587caadce8e24878b 100644 (file)
@@ -1,4 +1,4 @@
-@import url(../runo/styles.css);
+@import url(../runo/legacy-styles.css);
 
 /* DO NOT ADD GENERIC RULES LIKE .v-table IN THIS FILE */
 
index 588fb5c5cf7e2ea9931745c4d807eafd04639cd6..1d2c830ea6aa04fd16bc426032ad4da759c8452b 100644 (file)
@@ -303,7 +303,7 @@ public class UIConnector extends AbstractSingleComponentContainerConnector
                 .getThemeName();
         // Remove chars that are not suitable for style names
         themeName = themeName.replaceAll("[^a-zA-Z0-9]", "");
-        root.addStyleName("v-theme-" + themeName);
+        root.addStyleName(themeName);
 
         root.add(getWidget());
 
index cfe15f9d37f15584282c6d0ca951d45ef8d020ff..0169c09ae912b8b215a5d9b029583f680c86c0cc 100644 (file)
@@ -314,7 +314,7 @@ public abstract class BootstrapHandler implements RequestHandler {
          *      .v-app-loading
          *      .v-app-<simpleName for app class>
          *- Additionally added from javascript:
-         *      .v-theme-<themeName, remove non-alphanum>
+         *      <themeName, remove non-alphanum>
          */
 
         List<Node> fragmentNodes = context.getBootstrapResponse()
index 47c519d09e23fdf986d0e95cf988db47abf16917..afef575a7ffdb4f9b466d4cafb174cff3a9e7686 100644 (file)
@@ -45,17 +45,31 @@ public class CompileTheme {
         String themeFolder = params.getOptionValue("theme-folder");
         String themeVersion = params.getOptionValue("theme-version");
 
+        // Regular theme
         try {
-            processSassTheme(themeFolder, themeName, themeVersion);
-            System.out.println("Compiling theme " + themeName + " successful");
+            processSassTheme(themeFolder, themeName, "styles", themeVersion);
+            System.out.println("Compiling theme " + themeName
+                    + " styles successful");
         } catch (Exception e) {
-            System.err.println("Compiling theme " + themeName + " failed");
+            System.err.println("Compiling theme " + themeName
+                    + " styles failed");
+            e.printStackTrace();
+        }
+        // Legacy theme w/o .themename{} wrapping
+        try {
+            processSassTheme(themeFolder, themeName, "legacy-styles",
+                    themeVersion);
+            System.out.println("Compiling theme " + themeName
+                    + " legacy-styles successful");
+        } catch (Exception e) {
+            System.err.println("Compiling theme " + themeName
+                    + " legacy-styles failed");
             e.printStackTrace();
         }
     }
 
     private static void processSassTheme(String themeFolder, String themeName,
-            String version) throws Exception {
+            String variant, String version) throws Exception {
 
         StringBuffer cssHeader = new StringBuffer();
 
@@ -66,10 +80,12 @@ public class CompileTheme {
 
         String stylesCssDir = themeFolder + File.separator + themeName
                 + File.separator;
-        String stylesCssName = stylesCssDir + "styles.css";
+
+        String stylesCssName = stylesCssDir + variant + ".css";
 
         // Process as SASS file
-        String sassFile = stylesCssDir + "styles.scss";
+        String sassFile = stylesCssDir + variant + ".scss";
+
         ScssStylesheet scss = ScssStylesheet.get(sassFile);
         if (scss == null) {
             throw new IllegalArgumentException("SASS file: " + sassFile
@@ -87,7 +103,7 @@ public class CompileTheme {
 
         createSprites(themeFolder, themeName);
         File oldCss = new File(stylesCssName);
-        File newCss = new File(stylesCssDir + "styles-sprite.css");
+        File newCss = new File(stylesCssDir + variant + "-sprite.css");
 
         if (newCss.exists()) {
             // Theme contained sprites. Renamed "styles-sprite.css" ->
@@ -100,6 +116,7 @@ public class CompileTheme {
                         + " failed");
             }
         }
+
     }
 
     private static void createSprites(String themeFolder, String themeName)