Skip to content

Commit 8c36ea9

Browse files
committed
Split opacityOverlay from opacityFilterOverlay on theme styles
1 parent 0245bba commit 8c36ea9

File tree

2 files changed

+28
-9
lines changed

2 files changed

+28
-9
lines changed

lib/themeroller.js

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var _ = require( "underscore" ),
77
path = require( "path" ),
88
querystring = require( "querystring" ),
99
Release = require( "./release" ),
10+
semver = require( "semver" ),
1011
textures = require( "./themeroller.textures" ),
1112
zParams = require( "./zparams" );
1213

@@ -67,7 +68,7 @@ var iconDimension = [ "256", "240" ];
6768
* ThemeRoller
6869
*/
6970
function ThemeRoller( options ) {
70-
var found, opacityFix, themeGallery, vars, version,
71+
var found, opacityFilter, opacityFix, themeGallery, vars, version,
7172
self = this;
7273
options = options || {};
7374
if ( typeof options !== "object" ) {
@@ -104,14 +105,32 @@ function ThemeRoller( options ) {
104105
vars = this.vars = _.extend( {}, ThemeRoller.defaults, vars );
105106
this.images = {};
106107

107-
// Opacity fix (w3c + IE)
108-
opacityFix = function( opacity ) {
109-
return /* w3c */ ( opacity / 100 ).toString().replace( /^0\./, "." ) + /* IE */ ";filter:Alpha(Opacity=" + opacity + ")";
110-
};
108+
// Opacity fix
109+
// TODO: Remove `filter` style when dropping support for IE8 and earlier.
111110
vars.opacityOverlayPerc = vars.opacityOverlay;
112111
vars.opacityShadowPerc = vars.opacityShadow;
113-
vars.opacityOverlay = opacityFix( vars.opacityOverlay );
114-
vars.opacityShadow = opacityFix( vars.opacityShadow );
112+
if ( semver.gte( this.version, "1.10.0" ) ) {
113+
114+
// For version >= 1.10.0, filter has its own separate line and variable name.
115+
opacityFix = function( opacity ) {
116+
return ( opacity / 100 ).toString().replace( /^0\./, "." );
117+
};
118+
opacityFilter = function( opacity ) {
119+
return "Alpha(Opacity=" + opacity + ")";
120+
};
121+
vars.opacityFilterOverlay = opacityFilter( vars.opacityOverlay );
122+
vars.opacityFilterShadow = opacityFilter( vars.opacityShadow );
123+
vars.opacityOverlay = opacityFix( vars.opacityOverlay );
124+
vars.opacityShadow = opacityFix( vars.opacityShadow );
125+
} else {
126+
127+
// For version < 1.10.0, opacity (w3c) and filter (IE) are combined into the same line.
128+
opacityFix = function( opacity ) {
129+
return /* w3c */ ( opacity / 100 ).toString().replace( /^0\./, "." ) + /* IE */ ";filter:Alpha(Opacity=" + opacity + ")";
130+
};
131+
vars.opacityOverlay = opacityFix( vars.opacityOverlay );
132+
vars.opacityShadow = opacityFix( vars.opacityShadow );
133+
}
115134

116135
// Add '#' in the beginning of the colors if needed
117136
colorVars.forEach(function( colorVar ) {

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
"lzma": "1.2.1",
1414
"optimist": "0.3.4",
1515
"rimraf": "2.0.2",
16+
"semver": "1.1.0",
1617
"simple-log": "1.0.0",
1718
"sqwish": "0.2.0",
1819
"underscore": "~1.3.3",
1920
"winston": "0.6.2"
2021
},
2122
"devDependencies": {
22-
"nodeunit": "~0.7.4",
23-
"semver": "1.1.0"
23+
"nodeunit": "~0.7.4"
2424
},
2525
"main": "frontend.js",
2626
"engine": {

0 commit comments

Comments
 (0)