diff --git a/couchpotato/static/scripts/library/prefix_free.js b/couchpotato/static/scripts/library/prefix_free.js
index 4876187..a918d04 100644
--- a/couchpotato/static/scripts/library/prefix_free.js
+++ b/couchpotato/static/scripts/library/prefix_free.js
@@ -1,5 +1,5 @@
/**
- * StyleFix 1.0.2
+ * StyleFix 1.0.3
* @author Lea Verou
* MIT license
*/
@@ -52,8 +52,10 @@ var self = window.StyleFix = {
});
// behavior URLs shoudn’t be converted (Issue #19)
- css = css.replace(RegExp('\\b(behavior:\\s*?url\\(\'?"?)' + base, 'gi'), '$1');
- }
+ // base should be escaped before added to RegExp (Issue #81)
+ var escaped_base = base.replace(/([\\\^\$*+[\]?{}.=!:(|)])/g,"\\$1");
+ css = css.replace(RegExp('\\b(behavior:\\s*?url\\(\'?"?)' + escaped_base, 'gi'), '$1');
+ }
var style = document.createElement('style');
style.textContent = css;
@@ -63,6 +65,8 @@ var self = window.StyleFix = {
parent.insertBefore(style, link);
parent.removeChild(link);
+
+ style.media = link.media; // Duplicate is intentional. See issue #31
}
};
@@ -84,6 +88,9 @@ var self = window.StyleFix = {
},
styleElement: function(style) {
+ if (style.hasAttribute('data-noprefix')) {
+ return;
+ }
var disabled = style.disabled;
style.textContent = self.fix(style.textContent, true, style);
@@ -150,7 +157,7 @@ function $(expr, con) {
})();
/**
- * PrefixFree 1.0.5
+ * PrefixFree 1.0.6
* @author Lea Verou
* MIT license
*/
@@ -160,36 +167,39 @@ if(!window.StyleFix || !window.getComputedStyle) {
return;
}
+// Private helper
+function fix(what, before, after, replacement, css) {
+ what = self[what];
+
+ if(what.length) {
+ var regex = RegExp(before + '(' + what.join('|') + ')' + after, 'gi');
+
+ css = css.replace(regex, replacement);
+ }
+
+ return css;
+}
+
var self = window.PrefixFree = {
prefixCSS: function(css, raw) {
var prefix = self.prefix;
- function fix(what, before, after, replacement) {
- what = self[what];
-
- if(what.length) {
- var regex = RegExp(before + '(' + what.join('|') + ')' + after, 'gi');
-
- css = css.replace(regex, replacement);
- }
- }
-
- fix('functions', '(\\s|:|,)', '\\s*\\(', '$1' + prefix + '$2(');
- fix('keywords', '(\\s|:)', '(\\s|;|\\}|$)', '$1' + prefix + '$2$3');
- fix('properties', '(^|\\{|\\s|;)', '\\s*:', '$1' + prefix + '$2:');
+ css = fix('functions', '(\\s|:|,)', '\\s*\\(', '$1' + prefix + '$2(', css);
+ css = fix('keywords', '(\\s|:)', '(\\s|;|\\}|$)', '$1' + prefix + '$2$3', css);
+ css = fix('properties', '(^|\\{|\\s|;)', '\\s*:', '$1' + prefix + '$2:', css);
// Prefix properties *inside* values (issue #8)
if (self.properties.length) {
var regex = RegExp('\\b(' + self.properties.join('|') + ')(?!:)', 'gi');
- fix('valueProperties', '\\b', ':(.+?);', function($0) {
+ css = fix('valueProperties', '\\b', ':(.+?);', function($0) {
return $0.replace(regex, prefix + "$1")
- });
+ }, css);
}
if(raw) {
- fix('selectors', '', '\\b', self.prefixSelector);
- fix('atrules', '@', '\\b', '@' + prefix + '$1');
+ css = fix('selectors', '', '\\b', self.prefixSelector, css);
+ css = fix('atrules', '@', '\\b', '@' + prefix + '$1', css);
}
// Fix double prefixing
@@ -198,11 +208,25 @@ var self = window.PrefixFree = {
return css;
},
- // Warning: prefixXXX functions prefix no matter what, even if the XXX is supported prefix-less
+ property: function(property) {
+ return (self.properties.indexOf(property)? self.prefix : '') + property;
+ },
+
+ value: function(value, property) {
+ value = fix('functions', '(^|\\s|,)', '\\s*\\(', '$1' + self.prefix + '$2(', value);
+ value = fix('keywords', '(^|\\s)', '(\\s|$)', '$1' + self.prefix + '$2$3', value);
+
+ // TODO properties inside values
+
+ return value;
+ },
+
+ // Warning: Prefixes no matter what, even if the selector is supported prefix-less
prefixSelector: function(selector) {
return selector.replace(/^:{1,2}/, function($0) { return $0 + self.prefix })
},
+ // Warning: Prefixes no matter what, even if the property is supported prefix-less
prefixProperty: function(property, camelCase) {
var prefixed = self.prefix + property;
@@ -334,7 +358,9 @@ var keywords = {
'zoom-out': 'cursor',
'box': 'display',
'flexbox': 'display',
- 'inline-flexbox': 'display'
+ 'inline-flexbox': 'display',
+ 'flex': 'display',
+ 'inline-flex': 'display'
};
self.functions = [];
diff --git a/couchpotato/static/style/main.css b/couchpotato/static/style/main.css
index 8524534..4f4475a 100644
--- a/couchpotato/static/style/main.css
+++ b/couchpotato/static/style/main.css
@@ -21,9 +21,9 @@ body {
}
* {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
pre {
@@ -267,10 +267,9 @@ body > .spinner, .mask{
font-size: 8px;
margin: -5px 0 0 15px;
box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 0 3px rgba(0,0,0,.7);
- background: -webkit-gradient(linear, left bottom, left top, from(rgba(255,255,255,.3)), to(rgba(255,255,255,.1)));
- background: -moz-linear-gradient(center bottom, rgba(255,255,255,.3) 0%, rgba(255,255,255,.1) 100%);
background-color: #1b79b8;
text-shadow: none;
+ background-image: linear-gradient(0deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.1) 100%);
}
.header .notification_menu .wrapper {
@@ -354,16 +353,8 @@ body > .spinner, .mask{
border-radius:30px;
box-shadow: 0 1px 1px rgba(0,0,0,0.35), inset 0 1px 0px rgba(255,255,255,0.20);
-
- background: url('../images/sprite.png') no-repeat 94% -53px, -webkit-gradient(
- linear,
- left bottom,
- left top,
- color-stop(0, #406db8),
- color-stop(1, #5b9bd1)
- );
- background: url('../images/sprite.png') no-repeat 94% -53px, -moz-linear-gradient(
- center top,
+ background: url('../images/sprite.png') no-repeat 94% -53px, linear-gradient(
+ 270deg,
#5b9bd1 0%,
#406db8 100%
);
@@ -448,15 +439,8 @@ body > .spinner, .mask{
border: 1px solid #252930;
box-shadow: inset 0 1px 0px rgba(255,255,255,0.20), 0 0 3px rgba(0,0,0, 0.2);
background: rgb(55,62,74);
- background-image: -webkit-gradient(
- linear,
- left bottom,
- left top,
- color-stop(0, rgb(55,62,74)),
- color-stop(1, rgb(73,83,98))
- );
- background-image: -moz-linear-gradient(
- center bottom,
+ background-image: linear-gradient(
+ 90deg,
rgb(55,62,74) 0%,
rgb(73,83,98) 100%
);
@@ -544,15 +528,8 @@ body > .spinner, .mask{
text-align: center;
color: #000;
text-shadow: none;
- background-image: -webkit-gradient(
- linear,
- left bottom,
- right top,
- color-stop(0, rgb(200,200,200)),
- color-stop(1, rgb(255,255,255))
- );
- background-image: -moz-linear-gradient(
- left bottom,
+ background-image: linear-gradient(
+ 45deg,
rgb(200,200,200) 0%,
rgb(255,255,255) 100%
);
diff --git a/couchpotato/static/style/page/settings.css b/couchpotato/static/style/page/settings.css
index e814ddf..b7fbaab 100644
--- a/couchpotato/static/style/page/settings.css
+++ b/couchpotato/static/style/page/settings.css
@@ -16,17 +16,9 @@
padding: 40px 0;
margin: 0;
min-height: 470px;
-
- background-image: -webkit-gradient(
- linear,
- right top,
- 40% 4%,
- color-stop(0, rgba(0,0,0, 0.3)),
- color-stop(1, rgba(0,0,0, 0))
- );
- background-image: -moz-linear-gradient(
- 10% 0% 16deg,
- rgba(0,0,0,0) 0%,
+ background-image: linear-gradient(
+ 20deg,
+ rgba(0,0,0,0) 50%,
rgba(0,0,0,0.3) 100%
);
}
@@ -364,30 +356,16 @@
border-radius: 2px;
}
.page .tag_input > ul:hover > li.choice {
- background: -webkit-gradient(
- linear,
- left bottom,
- left top,
- color-stop(0, rgba(255,255,255,0.1)),
- color-stop(1, rgba(255,255,255,0.3))
- );
- background: -moz-linear-gradient(
- center top,
+ background: linear-gradient(
+ 270deg,
rgba(255,255,255,0.3) 0%,
rgba(255,255,255,0.1) 100%
);
}
.page .tag_input > ul > li.choice:hover,
.page .tag_input > ul > li.choice.selected {
- background: -webkit-gradient(
- linear,
- left bottom,
- left top,
- color-stop(0, #406db8),
- color-stop(1, #5b9bd1)
- );
- background: -moz-linear-gradient(
- center top,
+ background: linear-gradient(
+ 270deg,
#5b9bd1 0%,
#406db8 100%
);
@@ -425,15 +403,8 @@
margin: -9px 0 0 -16px;
border-radius: 30px 30px 0 0;
cursor: pointer;
- background: url('../../images/icon.delete.png') no-repeat center 2px, -webkit-gradient(
- linear,
- left bottom,
- left top,
- color-stop(0, #5b9bd1),
- color-stop(1, #5b9bd1)
- );
- background: url('../../images/icon.delete.png') no-repeat center 2px, -moz-linear-gradient(
- center top,
+ background: url('../../images/icon.delete.png') no-repeat center 2px, -webkit-linear-gradient(
+ 270deg,
#5b9bd1 0%,
#5b9bd1 100%
);
diff --git a/couchpotato/templates/_desktop.html b/couchpotato/templates/_desktop.html
index f66e3b4..0c228dc 100644
--- a/couchpotato/templates/_desktop.html
+++ b/couchpotato/templates/_desktop.html
@@ -10,9 +10,7 @@
- {% if not env.get('dev') %}
- {% endif %}