diff --git a/lib/themeroller.js b/lib/themeroller.js index a475e3eb..b4337381 100644 --- a/lib/themeroller.js +++ b/lib/themeroller.js @@ -128,9 +128,19 @@ function ThemeRoller( options ) { // TODO: Remove `filter` style when dropping support for IE8 and earlier. vars.opacityOverlayPerc = vars.opacityOverlay; vars.opacityShadowPerc = vars.opacityShadow; - if ( semver.gte( this.jqueryUi.pkg.version, "1.10.0" ) ) { + if ( semver.lt( this.jqueryUi.pkg.version, "1.10.0" ) ) { - // For version >= 1.10.0, filter has its own separate line and variable name. + // For version <1.10.0, `opacity` (W3C) and `filter` (IE) are combined + // into the same line. + opacityFix = function( opacity ) { + return /* w3c */ ( opacity / 100 ).toString().replace( /^0\./, "." ) + /* IE */ ";filter:Alpha(Opacity=" + opacity + ")"; + }; + vars.opacityOverlay = opacityFix( vars.opacityOverlay ); + vars.opacityShadow = opacityFix( vars.opacityShadow ); + } else if ( semver.lt( this.jqueryUi.pkg.version, "1.13.0" ) ) { + + // For version >=1.10.0 <1.13.0, `filter` has its own separate line + // and variable name. opacityFix = function( opacity ) { return ( opacity / 100 ).toString().replace( /^0\./, "." ); }; @@ -143,10 +153,16 @@ function ThemeRoller( options ) { vars.opacityShadow = opacityFix( vars.opacityShadow ); } else { - // For version < 1.10.0, opacity (w3c) and filter (IE) are combined into the same line. + // For version >=1.13.0, `-ms-filter` has its own separate line + // and variable name. opacityFix = function( opacity ) { - return /* w3c */ ( opacity / 100 ).toString().replace( /^0\./, "." ) + /* IE */ ";filter:Alpha(Opacity=" + opacity + ")"; + return ( opacity / 100 ).toString().replace( /^0\./, "." ); + }; + opacityFilter = function( opacity ) { + return "\"alpha(opacity=" + opacity + ")\""; }; + vars.opacityFilterOverlay = opacityFilter( vars.opacityOverlay ); + vars.opacityFilterShadow = opacityFilter( vars.opacityShadow ); vars.opacityOverlay = opacityFix( vars.opacityOverlay ); vars.opacityShadow = opacityFix( vars.opacityShadow ); } @@ -210,7 +226,7 @@ function ThemeRoller( options ) { if ( !this.name ) { // Pick name based on theme gallery vs. our vars - themeGallery = require( "./themeroller-themegallery" )(); + themeGallery = require( "./themeroller-themegallery" )( this.jqueryUi ); themeGallery.some( function( theme ) { found = theme.isEqual( self ); if ( found ) { diff --git a/test/fixtures/jquery-ui-1.13.2/themes/smoothness.css b/test/fixtures/jquery-ui-1.13.2/themes/smoothness.css index e4fa82c1..8388761c 100644 --- a/test/fixtures/jquery-ui-1.13.2/themes/smoothness.css +++ b/test/fixtures/jquery-ui-1.13.2/themes/smoothness.css @@ -438,7 +438,7 @@ a.ui-button:active, .ui-widget-overlay { background: #aaaaaa; opacity: .3; - -ms-filter: Alpha(Opacity=30); /* support: IE8 */ + -ms-filter: "alpha(opacity=30)"; /* support: IE8 */ } .ui-widget-shadow { -webkit-box-shadow: -8px -8px 8px #aaaaaa;