+
+ overrides:
+
+
+
+
+
+
+ overrides:
+
+
+
@@ -157,6 +190,7 @@
--fallback: 7px solid orange;
--default1: var(--undefined, 6px solid yellow);
--default2: var(--undefined, --fallback);
+ --default3: var(--undefined, rgb(128, 200, 250));
--a: 10px;
--b: 5px;
--primary-color: rgb(128, 128, 128);
@@ -191,10 +225,19 @@
border: var(--default2);
}
- #rename {
+ #default3 {
+ padding: 8px;
+ background-color: var(--default3);
+ }
+
+ #overrides1, #overrides2, #overrides3 {
--rename: 8px solid navy;
}
+ #overrides2, #overrides3 {
+ --grand-child-scope-var: 9px solid orange;
+ }
+
#calc {
border: solid red;
border-width: calc(var(--a) + var(--b));
@@ -218,9 +261,12 @@
x-scope
-
+
+
+
default
var default
+ tricky property rgb(...) default
default
var default
Calc
@@ -309,6 +355,11 @@
assertComputed(styled.$.applyDefault2, '7px');
});
+ test('variable literal defaults can contain one (...)', function() {
+ var b = getComputedStyle(styled.$.default3).backgroundColor;
+ assert.match(b, /rgb\(128/, 'literal fallback containin (...) not set');
+ });
+
test('variable values can be used with calc', function() {
assertComputed(styled.$.calc, '15px');
});
@@ -344,6 +395,25 @@
assert.ok(c, 'dom-if did not stamp');
assertComputed(c, '1px');
});
+
+ test('variable precedence and overrides', function() {
+ // renamed property applied
+ var o1 = styled.$.overrides1;
+ assertStylePropertyValue(o1._styleProperties, '--rename', '8px');
+ assertStylePropertyValue(o1._styleProperties, '--grand-child-scope-var', '8px');
+ assertComputed(o1.$.gc1.$.me, '8px');
+ // :host property overridden by outer scope
+ var o2 = styled.$.overrides2;
+ assertStylePropertyValue(o2._styleProperties, '--rename', '8px');
+ assertStylePropertyValue(o2._styleProperties, '--grand-child-scope-var', '9px');
+ assertComputed(o2.$.gc1.$.me, '9px');
+ // own scope property overrides outer scope
+ var o3 = styled.$.overrides3;
+ assertStylePropertyValue(o3._styleProperties, '--rename', '8px');
+ assertStylePropertyValue(o3._styleProperties, '--grand-child-scope-var', '8px');
+ assertComputed(o3.$.gc1.$.me, '8px');
+
+ });
});