From 7171ac288902829d6239e39c947a8c876f94b2a8 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 12:45:23 +0200
Subject: [PATCH 001/668] Initial import
---
CNAME | 1 +
README.md | 7 +
csstest.js | 354 +++++++++++++++++++++++++++++++++++++++++++
index.html | 58 +++++++
style.css | 268 ++++++++++++++++++++++++++++++++
supports.js | 128 ++++++++++++++++
tests.js | 428 ++++++++++++++++++++++++++++++++++++++++++++++++++++
utopia.js | 237 +++++++++++++++++++++++++++++
8 files changed, 1481 insertions(+)
create mode 100644 CNAME
create mode 100644 README.md
create mode 100644 csstest.js
create mode 100644 index.html
create mode 100644 style.css
create mode 100644 supports.js
create mode 100644 tests.js
create mode 100644 utopia.js
diff --git a/CNAME b/CNAME
new file mode 100644
index 00000000..d2daa6d2
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+css3test.com
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..6045a789
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# How to add tests
+
+Go to `tests.js`. Follow the current structure. Please only add tests from specs that are reasonably stable.
+They don't have to be a CR, just not too much in Flux.
+
+- Don't add specs when there are NO implementations of ANYTHING in the spec.
+- Don't add tests that already exist, just with different values. E.g. if `calc(1px + 2px)` is a testcase, adding `calc(2px + 2px)` won't help.
\ No newline at end of file
diff --git a/csstest.js b/csstest.js
new file mode 100644
index 00000000..5ae48b7e
--- /dev/null
+++ b/csstest.js
@@ -0,0 +1,354 @@
+var Score = function(parent) {
+ this.passed = this.total =
+ this.passedTests = this.totalTests = 0;
+
+ this.parent = parent || null;
+};
+
+Score.prototype = {
+ update: function(data) {
+ if(!data.total) { return; }
+
+ this.passedTests += data.passed;
+ this.totalTests += data.total;
+
+ this.total++;
+ this.passed += data.passed / data.total;
+
+ if(this.parent) {
+ this.parent.update(data);
+ }
+ },
+
+ toString: function() {
+ return Math.round(100 * this.passed / this.total) + '%';
+ }
+};
+
+var mainScore = new Score(), _bTestResults = {};
+
+var Test = function (tests, spec, title) {
+ this.tests = tests;
+ this.id = spec;
+ this.title = title;
+
+ this.score = new Score(mainScore);
+
+ var
+ h1 = $u.element.create({
+ tag: 'h1',
+ contents: [
+ this.title,
+ $u.element.create({
+ tag: 'a',
+ properties: {
+ href: 'http://w3.org/TR/' + this.id,
+ target: '_blank',
+ textContent: 'TR',
+ className: 'spec-link'
+ }
+ }),
+ $u.element.create({
+ tag: 'a',
+ properties: {
+ href: 'http://dev.w3.org/csswg/' + this.id,
+ target: '_blank',
+ textContent: 'DEV',
+ className: 'spec-link'
+ }
+ })
+ ]
+ }), valuesSection;
+
+ // Wrapper section
+ this.section = $u.element.create({
+ tag: 'section',
+ properties: {
+ id: this.id,
+ className: 'tests'
+ },
+ contents: [h1]
+ });
+
+ // Perform tests
+ for(var id in Test.groups) {
+ this.group(id, Test.groups[id]);
+ }
+
+ // Display score for this spec
+ $u.element.create({
+ tag: 'span',
+ contents: this.score + '',
+ properties: {
+ className: 'score'
+ },
+ inside: h1
+ });
+
+ all.appendChild(this.section);
+
+ // Add to list of tested specs
+ $u.element.create({
+ tag: 'li',
+ properties: {
+ className: passclass({ passed: this.score.passed, total: this.score.total }),
+ title: this.score + ' passed'
+ },
+ contents: [
+ $u.element.create({
+ tag: 'a',
+ prop: {
+ href: '#' + spec
+ },
+ contents: title
+ })
+ ],
+ inside: specsTested
+ });
+}
+
+Test.prototype = {
+ group: function(what, testCallback) {
+ var thisSection, theseTests = this.tests[what];
+
+ for(var feature in theseTests) {
+ if(feature === 'properties') {
+ continue;
+ }
+
+ thisSection = thisSection || $u.element.create({
+ tag: 'section',
+ properties: {
+ className: 'tests ' + what
+ },
+ contents: $u.element.create({
+ tag: 'h1',
+ contents: what
+ }),
+ inside: this.section
+ });
+
+ var dl = document.createElement('dl'),
+ dt = $u.element.create({
+ tag: 'dt',
+ prop: {
+ textContent: feature,
+ tabIndex: '0'
+ },
+ inside: dl
+ });
+
+ var passed = 0, tests = theseTests[feature];
+
+ tests = tests instanceof Array? tests : [tests];
+
+ for(var i=0, test; test = tests[i++];) {
+ var results = testCallback(test, feature, theseTests);
+
+ if(typeof results === 'object') {
+ var success = results.success,
+ note = results.note;
+ }
+ else { var success = +!!results }
+
+ passed += +success;
+
+ $u.element.create({
+ tag: 'dd',
+ prop: {
+ innerHTML: test + (note? '' + note + '' : ''),
+ className: passclass({passed: Math.round(success * 10000), total: 10000 })
+ },
+ inside: dl
+ });
+ }
+
+ this.score.update({passed: passed, total: tests.length });
+
+ dt.className = passclass({ passed: passed, total: tests.length });
+
+ thisSection.appendChild(dl);
+
+ // Add to browserscope
+ _bTestResults[this.id + ' / ' + feature] = 100 * Math.round(passed / tests.length);
+ }
+ }
+}
+
+Test.groups = {
+ 'values': function(test, label, tests) {
+ var properties = tests.properties,
+ failed = [];
+
+ for(var j=0, property; property = properties[j++];) {
+ if(!Supports.property(property)) {
+ properties.splice(--j, 1);
+ continue;
+ }
+
+ if(!Supports.value(property, test)) {
+ failed.push(property);
+ }
+ }
+
+ success = 1 - failed.length / properties.length;
+
+ return {
+ success: success,
+ note: success > 0 && success < 1? 'Failed in: ' + failed.join(', ') : ''
+ }
+ },
+
+ 'properties': function(value, property) {
+ return Supports.value(property, value);
+ },
+
+ 'selectors': function(test) {
+ return Supports.selector(test);
+ },
+
+ '@rules': function(test) {
+ return Supports.atrule(test);
+ },
+
+ 'Media queries': function(test) {
+ return Supports.mq(test);
+ }
+};
+
+function passclass(info) {
+ var success;
+
+ if('passed' in info) {
+ success = info.passed / info.total;
+ }
+ else if('failed' in info) {
+ success = 1 - info.failed / info.total;
+ }
+
+ if (success === 1) { return 'pass' }
+ if (success === 0) { return 'epic-fail' }
+
+ var classes = [
+ 'fail',
+ 'buggy',
+ 'very-buggy',
+ 'slightly-buggy',
+ 'almost-pass',
+ ];
+
+ var index = Math.round(success * (classes.length - 1));
+
+ return classes[index];
+}
+
+document.onclick = function(evt) {
+ var target = evt.target;
+
+ if(/^dt$/i.test(target.nodeName)) {
+ evt.stopPropagation();
+
+ var dl = target.parentNode;
+
+ dl.className = dl.className === 'open'? '' : 'open';
+ }
+}
+
+Array.prototype.and = function(arr2, separator) {
+ separator = separator || ' ';
+
+ var ret = [];
+
+ for(var j=0; j
+
+
+
+
+CSS browser support tests
+
+
+
+
+
+
+
+
+The CSS3 test
+
+
+
+ Your browser scores 0%
+ Determined by passing tests out of total for features
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 00000000..0672f78f
--- /dev/null
+++ b/style.css
@@ -0,0 +1,268 @@
+body {
+ max-width: 60em;
+ padding: 1em;
+ margin: auto;
+ background: url(http://dabblet.com/img/noise.png) hsl(24, 20%, 95%);
+ font: 100%/1.5 sans-serif;
+ text-shadow: 0 1px white;
+}
+
+a {
+ color: hsl(200, 10%, 20%);
+ font-weight: bold;
+ text-decoration: none;
+}
+
+h1, h2 {
+ margin: 1em 0 .5em;
+ font-weight: normal;
+ line-height: 1;
+}
+
+ body > section section section h1 {
+ font-size: 200%;
+ }
+
+ section section section section h1 {
+ color: hsla(200, 10%, 20%, .5);
+ font-size: 120%;
+ font-weight: bold;
+ text-transform: capitalize;
+ }
+
+ h1 > .score {
+ float: right;
+ font-weight: bold;
+ }
+
+ h1 > .spec-link {
+ display: inline-block;
+ padding: .3em .4em;
+ margin: 0 0 0 .3em;
+ font-size: 50%;
+ background: hsl(200, 10%, 20%);
+ color: white;
+ border-radius: .3em;
+ vertical-align: middle;
+ text-shadow: 0 .1em .1em black;
+ }
+
+ h1 > .spec-link:hover {
+ background: #f06;
+ }
+
+body > h1 {
+ position: fixed;
+ left: 0;
+ top: 0;
+ padding: .5em 1em;
+ background: hsl(200, 10%, 20%);
+ box-shadow: -2px 2px 10px rgba(0,0,0,.5);
+ color: white;
+ font-size: 150%;
+ font-weight: bold;
+ text-transform: uppercase;
+ text-shadow: 0 .1em .1em black;
+
+ -webkit-transform: rotate(-90deg) translateX(-100%);
+ -webkit-transform-origin: top left;
+ -moz-transform: rotate(-90deg) translateX(-100%);
+ -moz-transform-origin: top left;
+ -ms-transform: rotate(-90deg) translateX(-100%);
+ -ms-transform-origin: top left;
+ -o-transform: rotate(-90deg) translateX(-100%);
+ -o-transform-origin: top left;
+ transform: rotate(-90deg) translateX(-100%);
+ transform-origin: top left;
+}
+
+#mark img {
+ position: fixed;
+ left: 10px;
+ top: 230px;
+ width: 50px;
+ border-radius: 50%;
+ box-shadow: 2px 2px 10px rgba(0,0,0,.5);
+
+ -webkit-transform: rotate(-15deg);
+ -moz-transform: rotate(-15deg);
+ -ms-transform: rotate(-15deg);
+ -o-transform: rotate(-15deg);
+ transform: rotate(-15deg);
+}
+
+#tests {
+ float: left;
+ width: 65%;
+ margin-right: 2em;
+}
+
+ #tests hgroup {
+ text-align: center;
+ }
+
+ #tests > hgroup > h1 {
+ font-size: 250%;
+ }
+
+ #tests h1 > strong {
+ display: block;
+ margin-top: .1em;
+ font-size: 500%;
+ line-height: .7;
+ }
+
+ #tests h2 {
+ font-size: 80%;
+ }
+
+dl {
+ margin: .3em 0;
+ font: 100% Monaco, Consolas, monospace;
+}
+
+ dl dl {
+ margin:0;
+ }
+
+dt, dd[class] {
+ padding: .5em;
+ background: gray;
+ color: white;
+ border-radius: .3em;
+ text-shadow: 0 -.05em .1em rgba(0,0,0,.5);
+}
+
+dt {
+ cursor: pointer;
+}
+
+dd {
+ margin: .3em 0 .3em 2em;
+ font-size: 90%;
+}
+
+ dd dd {
+ border: 1px solid white;
+ }
+
+ dd small {
+ display: block;
+ opacity: .8;
+ }
+
+dl .pass,
+#specsTested li.pass:before {
+ background-color: #490;
+}
+
+dl .almost-pass,
+#specsTested li.almost-pass:before {
+ background-color: #8c0;
+}
+
+dl .slightly-buggy,
+#specsTested li.slightly-buggy:before {
+ background-color: #bb0;
+}
+
+dl .buggy,
+#specsTested li.buggy:before {
+ background-color: #e80;
+}
+
+dl .very-buggy,
+#specsTested li.very-buggy:before {
+ background-color: #e40;
+}
+
+dl .fail,
+#specsTested li.fail:before {
+ background-color: #e20;
+}
+
+dl .epic-fail,
+#specsTested li.epic-fail:before {
+ background-color: #b00;
+}
+
+dt:before {
+ content: '▶';
+ display: inline-block;
+ margin-right: .5em;
+ font-size: 60%;
+ opacity: .5;
+}
+
+dl.open > dt:before {
+ content: '▼';
+}
+
+dl > dd {
+ display: none;
+}
+
+dl.open > dd {
+ display: block;
+}
+
+aside {
+ font-size: 85%;
+}
+
+ aside section {
+ margin-left: 65%;
+ }
+
+ aside .caution p {
+ padding: 1em;
+ margin-left: 2em;
+ background: hsl(200, 10%, 20%);
+ color: white;
+ text-shadow: 0 -.1em .2em black;
+ }
+
+ aside h1 {
+ font-size: 150%;
+ }
+
+ aside ul {
+ margin: .5em 0;
+ padding: 0 0 0 2em;
+ }
+
+ aside li {
+ list-style: none;
+ padding: .3em 0;
+ border-bottom: 2px dotted rgba(0,0,0,.25);
+ border-top: 2px dotted white;
+ }
+
+ aside li:first-child {
+ border-top: none;
+ }
+
+ aside li:last-child {
+ border-bottom: none;
+ }
+
+ #specsTested li:before {
+ content: '';
+ display: inline-block;
+ width: 1.2em;
+ height: 1.2em;
+ margin-right: .5em;
+ border-radius: 50%;
+ box-shadow: 0 2px white;
+ }
+
+footer {
+ margin-left: 65%;
+}
+
+ footer > p {
+ margin-left: 2em;
+ padding: 1em 0;
+ border-top: 1px solid hsl(200, 10%, 20%);
+ text-align: center;
+ }
\ No newline at end of file
diff --git a/supports.js b/supports.js
new file mode 100644
index 00000000..92611cff
--- /dev/null
+++ b/supports.js
@@ -0,0 +1,128 @@
+(function(){
+
+/**
+ * Setup dummy elements
+ */
+var dummy = document.createElement('_'),
+ inline = dummy.style,
+ style = document.createElement('style');
+
+document.documentElement.appendChild(style);
+dummy.setAttribute('data-foo', 'bar');
+dummy.setAttribute('data-px', '1px');
+
+var _ = window.Supports = {
+ prefixes: ['', '-moz-', '-webkit-', '-o-', '-ms-', 'ms-', '-khtml-'],
+
+ property: function(property) {
+ if(property.charAt(0) === '-') {
+ return camelCase(property) in inline? property : false;
+ }
+
+ if(!_.property.cached) {
+ _.property.cached = {};
+ }
+ else if(_.property.cached[property]) {
+ return _.property.cached[property];
+ }
+
+ for(var i=0; i<_.prefixes.length; i++) {
+ var prefixed = _.prefixes[i] + property;
+
+ if(camelCase(prefixed) in inline) {
+ return _.property.cached[property] = prefixed;
+ }
+ }
+
+ return _.property.cached[property] = false;
+ },
+
+ value: function(property, value) {
+ property = _.property(property);
+
+ if(!property) { return false; }
+
+ property = camelCase(property);
+
+ inline.cssText = '';
+ inline[property] = '';
+
+ for(var i=0; i<_.prefixes.length; i++) {
+ var prefixed = _.prefixes[i] + value;
+
+ try {
+ inline[property] = prefixed;
+ } catch(e) {}
+
+ if(inline.length > 0) {
+ return prefixed;
+ }
+ }
+
+ return false;
+ },
+
+ selector: function(selector) {
+ if(!_.selector.cached) {
+ _.selector.cached = {};
+ }
+ else if(_.selector.cached[selector]) {
+ return _.selector.cached[selector];
+ }
+
+ for(var i=0; i<_.prefixes.length; i++) {
+ var prefixed = selector.replace(/^(:+)/, '$1' + _.prefixes[i]);
+
+ try {
+ document.querySelector(prefixed);
+ return _.selector.cached[selector] = prefixed;
+ }
+ catch (e) {}
+ }
+
+ return _.selector.cached[selector] = false;
+ },
+
+ atrule: function(atrule) {
+ if(!_.atrule.cached) {
+ _.atrule.cached = {};
+ }
+ else if(_.selector.cached[atrule]) {
+ return _.atrule.cached[atrule];
+ }
+
+ for(var i=0; i<_.prefixes.length; i++) {
+ var prefixed = atrule.replace(/^@/, '@' + _.prefixes[i]);
+
+ style.textContent = prefixed + '{}'; // Safari 4 has issues with style.innerHTML
+
+ if(style.sheet.cssRules.length > 0) {
+ return _.atrule.cached[atrule] = prefixed;
+ }
+ }
+
+
+
+ return _.atrule.cached[atrule] = false;
+ },
+
+ mq: function(mq) {
+ if(window.matchMedia) {
+ return matchMedia(mq).media !== 'invalid';
+ }
+ else {
+ style.textContent = '@media ' + mq + '{ foo {} }';
+
+ return style.sheet.cssRules.length > 0? mq : false;
+ }
+ }
+};
+
+/**
+ * Private
+ */
+function camelCase (str) {
+ return str.replace(/-([a-z])/g, function($0, $1) { return $1.toUpperCase(); }).replace('-','');
+}
+
+})();
\ No newline at end of file
diff --git a/tests.js b/tests.js
new file mode 100644
index 00000000..8c059551
--- /dev/null
+++ b/tests.js
@@ -0,0 +1,428 @@
+window.Specs = {
+ "css3-background": {
+ "title": "Backgrounds and Borders",
+ "properties": {
+ "background-repeat": ["space", "round"].concat(["repeat", "space", "round", "no-repeat"].times(2)),
+ "background-attachment": "local",
+ "background-position": ["bottom 10px right 20px", "bottom 10px right", "top right 10px"],
+ "background-clip": ["border-box", "padding-box", "content-box"],
+ "background-origin": ["border-box", "padding-box", "content-box"],
+ "background-size": ["auto", "cover", "contain", "10px", "50%", "10px auto", "auto 10%", "50em 50%"],
+ "background": [
+ "url(foo.png), url(bar.svg)",
+ "top left / 50% 60%",
+ "border-box",
+ "border-box padding-box",
+ "url(foo.png) bottom right / cover padding-box content-box"
+ ],
+ "border-radius": ["10px", "50%", "10px / 20px", "2px 4px 8px 16px"],
+ "border-image-source": ["none", "url(foo.png)"],
+ "border-image-slice": ['10', '30%'].times(1, 4).concat(["fill 30%", "fill 10", "fill 2 4 8% 16%", "30% fill", "10 fill", "2 4 8% 16% fill"]),
+ "border-image-width": ["10px", "5%", "28", "auto", "10px 10px", "5% 10px", "28 10px", "auto 10px", "10px 5%", "5% 5%", "28 5%", "auto 5%", "10px 28", "5% 28", "28 28", "auto 28", "10px auto", "5% auto", "28 auto", "auto auto", "10px 10% 10", "5% 10px 20 auto"],
+ "border-image-outset": ["10px", "20", "10px 20", "10px 20px", "20 30", "2px 3px 4", "1 2px 3px 4"],
+ "border-image-repeat": ["stretch", "repeat", "round", "space"].times(1, 2),
+ "border-image": [
+ "url(foo.png) 10", "url(foo.png) 10%", "url(foo.png) 10% fill",
+ "url(foo.png) 10 round", "url(foo.png) 10 stretch repeat",
+ "url(foo.png) 10 / 10px", "url(foo.png) 10 / 10px / 10%",
+ "url(foo.png) fill 10 / 10px / 10%", "url(foo.png) fill 10 / 10px / 10% space"
+ ],
+ "box-decoration-break": ["slice", "clone"],
+ "box-shadow": [
+ "1px 1px", "0 0 black", "1px 2px 3px black", "1px 2px 3px 4px black",
+ "inset 1px 1px", "1px 2px 3px 4px black inset"
+ ]
+ }
+ },
+
+ "css3-images": {
+ "title": "Image Values and Replaced Content",
+ "values": {
+ "properties": [
+ "background-image",
+ "list-style-image",
+ "foo",
+ "border-image",
+ "cursor",
+ "content"
+
+ ],
+ "linear-gradient": [
+ "linear-gradient(white, black)",
+ "linear-gradient(to right, white, black)",
+ "linear-gradient(45deg, white, black)",
+ "linear-gradient(white 50%, black)",
+ "linear-gradient(white 5px, black)",
+ "linear-gradient(white, #f06, black)",
+ "linear-gradient(currentColor, black)"
+ ],
+ "radial-gradient": [
+ "radial-gradient(white, black)",
+ "radial-gradient(circle, white, black)",
+ "radial-gradient(ellipse, white, black)",
+ "radial-gradient(closest-corner, white, black)",
+ "radial-gradient(circle closest-corner, white, black)",
+ "radial-gradient(farthest-side, white, black)",
+ "radial-gradient(circle farthest-side, white, black)",
+ "radial-gradient(50%, white, black)",
+ "radial-gradient(60% 60%, white, black)"/*,
+ "radial-gradient(at 60% 60%, white, black)",
+ "radial-gradient(30% 30% at 20% 20%, white, black)",
+ "radial-gradient(5em circle at top left, yellow, blue)",
+ "radial-gradient(circle farthest-side at top left, white, black)"*/
+ ],
+ "repeating-linear-gradient": "repeating-linear-gradient(white, black)",
+ "repeating-radial-gradient": "repeating-radial-gradient(white, black)",
+ "image()": [
+ "image('sprites.png#xywh=10,30,60,20')",
+ "image('wavy.svg', 'wavy.png' , 'wavy.gif')",
+ "image('dark.png', black)", "image(green)"
+ ],
+ "element()": "element(#foo)"
+ },
+ "properties": {
+ "object-fit": ["fill", "contain", "cover", "none", "scale-down"],
+ "object-position": ["50% 50%", "center", "top right", "bottom 10px right 20px"],
+ "image-resolution": ["from-image", "from-image snap", "snap from-image", "1dppx", "300dpi", "from-image 300dpi", "300dpi from-image", "300dpi from-image snap"],
+ "image-orientation": ["0deg", "90deg", "45deg", "1turn", "100grad"]
+ }
+ },
+
+ "css3-selectors": {
+ "title": "Selectors",
+ "selectors": {
+ "Sibling combinator": "foo ~ bar",
+ "::before": "::before",
+ "::after": "::after",
+ "::first-letter": "::first-letter",
+ "::first-line": "::first-line",
+ "[att^=val]": ["[att^=val]", "[att^=\"val\"]"],
+ "[att*=val]": ["[att*=val]", "[att*=\"val\"]"],
+ "[att$=val]": ["[att$=val]", "[att$=\"val\"]"],
+ "Namespaces": ["*|html", "[*|attr]", "[*|attr=val]", "*|html[*|attr]"],
+ ":target": ":target",
+ ":enabled": ":enabled",
+ ":disabled": ":disabled",
+ ":checked": ":checked",
+ ":indeterminate": ":indeterminate",
+ ":root": ":root",
+ ":nth-child": [
+ ":nth-child(even)", ":nth-child(odd)",
+ ":nth-child(n)", ":nth-child(-n)", ":nth-child(0n)",
+ ":nth-child(1)", ":nth-child(-1)", ":nth-child(0)",
+ ":nth-child(n+1)",":nth-child(3n+1)", ":nth-child(3n + 1)",
+ ":nth-child(-n+1)", ":nth-child(-n-1)", ":nth-child(3n-1)"
+ ],
+ ":nth-last-child": [
+ ":nth-last-child(even)", ":nth-last-child(odd)",
+ ":nth-last-child(n)", ":nth-last-child(-n)", ":nth-last-child(0n)",
+ ":nth-last-child(1)", ":nth-last-child(-1)", ":nth-last-child(0)",
+ ":nth-last-child(n+1)",":nth-last-child(3n+1)", ":nth-last-child(3n + 1)",
+ ":nth-last-child(-n+1)", ":nth-last-child(-n-1)", ":nth-last-child(3n-1)"
+ ],
+ ":nth-of-type": [
+ ":nth-of-type(even)", ":nth-of-type(odd)",
+ ":nth-of-type(n)", ":nth-of-type(-n)", ":nth-of-type(0n)",
+ ":nth-of-type(1)", ":nth-of-type(-1)", ":nth-of-type(0)",
+ ":nth-of-type(n+1)",":nth-of-type(3n+1)", ":nth-of-type(3n + 1)",
+ ":nth-of-type(-n+1)", ":nth-of-type(-n-1)", ":nth-of-type(3n-1)"
+ ],
+ ":nth-last-of-type": [
+ ":nth-last-of-type(even)", ":nth-last-of-type(odd)",
+ ":nth-last-of-type(n)", ":nth-last-of-type(-n)", ":nth-last-of-type(0n)",
+ ":nth-last-of-type(1)", ":nth-last-of-type(-1)", ":nth-last-of-type(0)",
+ ":nth-last-of-type(n+1)",":nth-last-of-type(3n+1)", ":nth-last-of-type(3n + 1)",
+ ":nth-last-of-type(-n+1)", ":nth-last-of-type(-n-1)", ":nth-last-of-type(3n-1)"
+ ],
+ ":last-child": ":last-child",
+ ":only-child": ":only-child",
+ ":first-of-type": ":first-of-type",
+ ":last-of-type": ":last-of-type",
+ ":only-of-type": ":only-of-type",
+ ":empty": ":empty",
+ ":not()": [":not(*)", ":not(element)", ":not(.class):not(#id):not([attr]):not(:link)"],
+ }
+ },
+
+ "css3-mediaqueries": {
+ "title": "Media Queries",
+ "Media queries": {
+ "width": ["(width:10px)", "(min-width:10px)", "(max-width:10px)"],
+ "height": ["(height:10px)", "(min-height:10px)", "(max-height:10px)"],
+ "device-width": ["(device-width:10px)", "(device-min-width:10px)", "(device-max-width:10px)"],
+ "device-height": ["(device-height:10px)", "(device-min-height:10px)", "(device-max-height:10px)"],
+ "orientation": ["(orientation:portrait)", "(orientation:landscape)"],
+ "aspect-ratio": [
+ "(aspect-ratio:3/4)", "(aspect-ratio:3 /4)", "(aspect-ratio:3/ 4)",
+ "(min-aspect-ratio:3/4)", "(max-aspect-ratio:3/4)"
+ ],
+ "device-aspect-ratio": [
+ "(device-aspect-ratio:3/4)", "(device-aspect-ratio:3 /4)", "(device-aspect-ratio:3/ 4)",
+ "(min-device-aspect-ratio:3/4)", "(max-device-aspect-ratio:3/4)"
+ ],
+ "color": [
+ "(color)", "(color: 0)", "(color: 1)", "(color: 100)",
+ "(min-color: 2)", "(max-color: 3)"
+ ],
+ "color-index": [
+ "(color-index)", "(color-index: 0)", "(color-index: 1)", "(color-index: 100)",
+ "(min-color-index: 2)", "(max-color-index: 3)"
+ ],
+ "monochrome": [
+ "(monochrome)", "(monochrome: 0)", "(monochrome: 1)", "(monochrome: 100)",
+ "(min-monochrome: 2)", "(max-monochrome: 3)"
+ ],
+ "resolution": [
+ "(resolution: 300dpi)", "(resolution: 120dpcm)",
+ "(min-resolution: 300dpi)", "(min-resolution: 120dpcm)",
+ "(max-resolution: 300dpi)", "(max-resolution: 120dpcm)"
+ ],
+ "scan": ["(scan: progressive)", "(scan: interlace)"],
+ "grid": ["(grid)", "(grid: 0)", "(grid:-0)", "(grid: 1)"]
+ }
+ },
+
+ "css3-ui": {
+ "title": "Basic User Interface",
+ "properties": {
+ "content": "icon",
+ "icon": ["auto", "url(foo.png)", "url(foo.png), url(foo.gif)"],
+ "box-sizing": ["border-box", "padding-box", "content-box"],
+ "outline-offset": ["-5px", "0", "5px"],
+ "resize": ["none", "both", "horizontal", "vertical"],
+ "text-overflow": ["clip", "ellipsis", "'foo'"].times(1, 2),
+ "cursor": [
+ "url(foo.png) 2 2", "default", "none", "context-menu", "cell", "vertical-text", "alias", "copy", "no-drop", "not-allowed",
+ "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "col-resize", "row-resize", "all-scroll", "zoom-in", "zoom-out"
+ ],
+ "nav-index": ["auto", "1", "10"],
+ "nav-up": ["auto", "#foo", "#foo current", "#foo root"],
+ "nav-right": ["auto", "#foo", "#foo current", "#foo root"],
+ "nav-down": ["auto", "#foo", "#foo current", "#foo root"],
+ "nav-left": ["auto", "#foo", "#foo current", "#foo root"],
+ "ime-mode": ["auto", "normal", "active", "inactive", "disabled"]
+ },
+ "selectors": {
+ ":indeterminate": ":indeterminate",
+ ":default": ":default",
+ ":valid": ":valid",
+ ":invalid": ":invalid",
+ ":in-range": ":in-range",
+ ":out-of-range": ":out-of-range",
+ ":required": ":required",
+ ":optional": ":optional",
+ ":read-only": ":read-only",
+ ":read-write": ":read-write",
+ "::value": "::value",
+ "::choices": "::choices",
+ "::repeat-item": "::repeat-item",
+ "::repeat-index": "::repeat-index"
+ }
+ },
+
+ "css3-transitions": {
+ "title": "Transitions",
+ "properties": {
+ "transition-property": ["none", "all", "width", "width, height"],
+ "transition-duration": ["0s", "1s", "100ms"],
+ "transition-timing-function": [
+ "ease", "linear", "ease-in", "ease-out", "ease-in-out",
+ "cubic-bezier(.5, .5, .5, .5)",
+ "cubic-bezier(.5, 1.5, .5, -2.5)",
+ "step-start", "step-end", "steps(3, start)", "steps(5, end)"
+ ],
+ "transition-delay": ["1s", "-1s"],
+ "transition": "1s 2s width linear"
+ }
+ },
+
+ "css3-animations": {
+ "title": "Animations",
+ "properties": {
+ "animation-name": ["foo", "foo, bar"],
+ "animation-duration": ["0s", "1s", "100ms"],
+ "animation-timing-function": [
+ "ease", "linear", "ease-in", "ease-out", "ease-in-out",
+ "cubic-bezier(.5, .5, .5, .5)",
+ "cubic-bezier(.5, 1.5, .5, -2.5)",
+ "step-start", "step-end", "steps(3, start)", "steps(5, end)"
+ ],
+ "animation-iteration-count": ["infinite", "8", "4.35"],
+ "animation-direction": ["normal", "alternate"],
+ "animation-play-state": ["running", "paused"],
+ "animation-delay": ["1s", "-1s"],
+ "animation-fill-mode": ["none", "forwards", "backwards", "both"],
+ "animation": "foo 1s 2s infinite linear alternate both"
+ },
+ "@rules": {
+ "@keyframes": "@keyframes foo"
+ }
+ },
+
+ "css3-2d-transforms": {
+ "title": "2D Transforms",
+ "properties": {
+ "transform": [
+ "none",
+ "translate(5px)", "translate(5px, 10px)", "translateY(5px)", "translateX(5px)", "translateY(5%)", "translateX(5%)",
+ "scale(2)", "scale(2, -1)", "scaleX(2)", "scaleY(2)",
+ "rotate(45deg)", "skewX(45deg)", "skewY(45deg)",
+ "matrix(1,-.2,0,1,0,0)"
+ ],
+ "transform-origin": ["top left", "50% 100%", "right 10px bottom 20px"]
+ }
+ },
+
+ "css3-3d-transforms": {
+ "title": "3D Transforms",
+ "properties": {
+ "transform-style": ["flat", "preserve-3d"],
+ "perspective": ["none", "0", "600px"],
+ "perspective-origin": ["top left", "50% 100%", "right 10px bottom 20px"],
+ "backface-visibility": ["visible", "hidden"],
+ "transform": [
+ "matrix3d(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)", "translateZ(5px)",
+ "scale3d(1, 0, -1)", "scaleZ(1.5)",
+ "rotate3d(1, 1, 1, 45deg)", "rotateZ(-45deg)",
+ "perspective(600)"
+ ]
+ }
+ },
+
+ "css3-text": {
+ "title": "Text",
+ "properties": {
+ "text-transform": ["full-width", "full-size-kana"],
+ "text-space-collapse": ["collapse", "preserve", "preserve-breaks"],
+ "tab-size": ["4", "1em"],
+ "line-break": ["auto", "loose", "normal", "strict"],
+ "word-break": ["normal", "keep-all", "break-all"],
+ "hyphens": ["auto", "manual", "none"],
+ "text-wrap": ["normal", "none", "avoid"],
+ "overflow-wrap": ["normal", "break-word"],
+ "text-align": ["start", "end", "'a'", "match-parent", "start end"],
+ "text-align-last": ["auto", "start", "end", "left", "right", "center", "justify"],
+ "text-justify": ["auto", "none", "inter-word", "inter-ideograph", "inter-cluster", "distribute", "kashida"],
+ "word-spacing": ["50%", "1em .5em", "1em .5em 2em", "normal 1em 2em"],
+ "letter-spacing": ["50%", "1em .5em", "1em .5em 2em", "normal 1em 2em"],
+ "text-indent": ["1em hanging", "1em each-line", "1em hanging each-line"],
+ "hanging-punctuation": ["none", "first", "last", "force-end", "allow-end", "first last"],
+ "text-decoration-line": ["none", "underline", "overline", "line-through", "underline overline"],
+ "text-decoration-color": "white",
+ "text-decoration-style": ["solid", "double", "dotted", "dashed", "wavy"],
+ "text-decoration": "underline dotted green",
+ "text-decoration-skip": ["none", "objects", "spaces", "ink", "edges", "objects edges"],
+ "text-underline-position": ["auto", "alphabetic","below", "left", "below right"],
+ "text-emphasis-style": ["none", "filled", "open dot", "circle", "double-circle", "triangle", "sesame", "'foo'"],
+ "text-emphasis-color": "green",
+ "text-emphasis": "open dot green",
+ "text-emphasis-position": ["above right", "below left"],
+ "text-shadow": ["1px 1px", "0 0 black", "1px 2px 3px black"]
+ }
+ },
+
+ "css3-fonts": {
+ "title": "Fonts",
+ "properties": {
+ "font-stretch": ["normal", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"],
+ "font-size-adjust": ["none", ".5"],
+ "font-synthesis": ["none", "weight", "style", "weight style", "style weight"],
+ "font-kerning": ["auto", "normal", "none"],
+ "font-variant-position": ["normal", "sub", "super"],
+ "font-variant-ligatures": [
+ "normal",
+ "common-ligatures", "no-common-ligatures",
+ "discretionary-ligatures", "no-discretionary-ligatures",
+ "historical-ligatures", "no-historical-ligatures",
+ "common-ligatures discretionary-ligatures historical-ligatures"
+ ],
+ "font-variant-caps": ["normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "titling-caps", "unicase"],
+ "font-variant-numeric": [
+ "normal",
+ "lining-nums", "oldstyle-nums",
+ "proportional-nums", "tabular-nums",
+ "diagonal-fractions", "stacked-fractions",
+ "ordinal", "slashed-zero",
+ "lining-nums proportional-nums diagonal-fractions",
+ "oldstyle-nums tabular-nums stacked-fractions ordinal slashed-zero",
+ "slashed-zero ordinal tabular-nums stacked-fractions oldstyle-nums"
+ ],
+ "font-variant-alternates": [
+ "normal",
+ "contextual", "no-contextual",
+ "historical-forms",
+ "contextual historical-forms"
+ // TODO add tests for functions
+ ],
+ "font-variant-east-asian": [
+ "normal",
+ "jis78", "jis83", "jis90", "jis04", "simplified", "traditional",
+ "full-width", "proportional-width",
+ "ruby", "simplified full-width ruby"
+ ],
+ "font-variant": "sub lining-nums contextual ruby"
+ },
+ "@rules": {
+ "@font-face": "@font-face",
+ "@font-feature-values": "@font-feature-values Jupiter Sans"
+ }
+ },
+
+ "css3-color": {
+ "title": "Color",
+ "values": {
+ "properties": [
+ "color",
+ "background-color",
+ "border-color",
+ "text-decoration-color",
+ "column-rule-color"
+ ],
+ "rgba": 'rgba(0,0,0,.5)',
+ "hsl": 'hsl(0,0%,0%)',
+ "hsla": 'hsla(0,0%,0%,.5)',
+ "transparent": "transparent",
+ "currentColor": "currentColor"
+ },
+ "properties": {
+ "opacity": ["-5", "0", ".5", "1", "2"]
+ }
+ },
+
+ "css3-multicol": {
+ "title": "Multi-column Layout",
+ "properties": {
+ "column-width": ["10em", "auto"],
+ "column-count": ["2", "auto"],
+ "columns": ["10em 2", "auto 2", "10em auto", "auto auto", "2 10em", "auto 10em", "2 auto"],
+ "column-gap": ["1em", "normal"],
+ "column-rule-color": "red",
+ "column-rule-style": ["none", "solid", "dotted"],
+ "column-rule-width": "1px",
+ "column-rule": ["transparent", "1px solid black"],
+ "break-before": ["auto", "always", "avoid", "left", "right", "page", "column", "avoid-page", "avoid-column"],
+ "break-after": ["auto", "always", "avoid", "left", "right", "page", "column", "avoid-page", "avoid-column"],
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"],
+ "column-span": ["none", "all"],
+ "column-fill": ["auto", "balance"]
+ }
+ },
+
+ "css3-values": {
+ "title": "Values and Units",
+ "values": {
+ "properties": [
+ "width",
+ "padding",
+ "border-width"
+ ],
+ "rem": "5rem",
+ "ch": "5ch",
+ "vh": "5vh",
+ "vw": "5vw",
+ "attr()": "attr(data-px)",
+ "calc()": ["calc(1px+2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)"],
+ "cycle()": "cycle(1px, 2x)"
+ }
+ }
+};
\ No newline at end of file
diff --git a/utopia.js b/utopia.js
new file mode 100644
index 00000000..04c7c690
--- /dev/null
+++ b/utopia.js
@@ -0,0 +1,237 @@
+/**
+ * Utopia: A JavaScript util library that assumes modern standards support and doesn't fix any browser bugs
+ * @author Lea Verou (http://lea.verou.me)
+ * @version 0.2
+ */
+
+function $(expr, con) { return (con || document).querySelector(expr); }
+function $$(expr, con) { return Array.prototype.slice.call((con || document).querySelectorAll(expr)); }
+
+// Make each ID a global variable
+// Many browsers do this anyway (it’s in the HTML5 spec), so it ensures consistency
+$$('[id]').forEach(function(element) { window[element.id] = element; });
+
+(function(){
+
+var _ = window.Utopia = {
+ /**
+ * Returns the [[Class]] of an object in lowercase (eg. array, date, regexp, string etc)
+ * Caution: Results for DOM elements and collections aren't reliable.
+ * @param {Object} obj
+ *
+ * @return {String}
+ */
+ type: function(obj) {
+ if(obj === null) { return 'null'; }
+
+ if(obj === undefined) { return 'undefined'; }
+
+ var ret = Object.prototype.toString.call(obj).match(/^\[object\s+(.*?)\]$/)[1];
+
+ ret = ret? ret.toLowerCase() : '';
+
+ if(ret == 'number' && isNaN(obj)) {
+ return 'NaN';
+ }
+
+ return ret;
+ },
+
+ /**
+ * Iterate over the properties of an object. Checks whether the properties actually belong to it.
+ * Can be stopped if the function explicitly returns a value that isn't null, undefined or NaN.
+ *
+ * @param obj {Object} The object to iterate over
+ * @param func {Function} The function used in the iteration. Can accept 2 parameters: one of the
+ * value of the object and one for its name.
+ * @param context {Object} Context for the above function. Default is the object being iterated.
+ *
+ * @return {Object} Null or the return value of func, if it broke the loop at some point.
+ */
+ each: function(obj, func, context) {
+ if(!_.type(func) == 'function') {
+ throw Error('The second argument in Utopia.each() must be a function');
+ };
+
+ context = context || obj;
+
+ for (var i in obj) {
+ if(obj.hasOwnProperty && obj.hasOwnProperty(i)) {
+ var ret = func.call(context, obj[i], i);
+
+ if(!!ret || ret === 0 || ret === '') {
+ return ret;
+ }
+ }
+ }
+
+ return null;
+ },
+
+ /**
+ * Copies the properties of one object onto another.
+ *
+ * @return {Object} destination object
+ */
+ merge: function(objects) {
+ var ret = {};
+
+ for(var i=0; i
Date: Thu, 2 Feb 2012 13:36:51 +0200
Subject: [PATCH 002/668] Last minute fixes
---
csstest.js | 2 +-
index.html | 12 ++++++++++++
style.css | 41 +++++++++++++++++++++++++++++++++++++++--
3 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/csstest.js b/csstest.js
index 5ae48b7e..b952d28f 100644
--- a/csstest.js
+++ b/csstest.js
@@ -170,7 +170,7 @@ Test.prototype = {
thisSection.appendChild(dl);
// Add to browserscope
- _bTestResults[this.id + ' / ' + feature] = 100 * Math.round(passed / tests.length);
+ _bTestResults[this.id + ' / ' + feature.replace(/[,=]/g, '')] = Math.round(100 * passed / tests.length);
}
}
}
diff --git a/index.html b/index.html
index a581cf88..713f5276 100644
--- a/index.html
+++ b/index.html
@@ -12,6 +12,10 @@
+
+
+
+
The CSS3 test
@@ -30,6 +34,14 @@ Determined by passing tests out of
Time taken:
+
+
+
Specs tested:
diff --git a/style.css b/style.css
index 0672f78f..f49e5ad1 100644
--- a/style.css
+++ b/style.css
@@ -211,7 +211,7 @@ aside {
}
aside section {
- margin-left: 65%;
+ margin-left: 66%;
}
aside .caution p {
@@ -265,4 +265,41 @@ footer {
padding: 1em 0;
border-top: 1px solid hsl(200, 10%, 20%);
text-align: center;
- }
\ No newline at end of file
+ }
+
+/* Ad packs */
+.bsa_it_ad {
+ padding:10px !important;
+ font: inherit !important;
+ overflow: hidden;
+}
+
+ .bsa_it_i {
+ display:block;
+ float:none;
+ margin: 0 10px 5px 0 !important;
+ }
+
+ .bsa_it_ad img {
+ padding:0;
+ border:none;
+ }
+
+ .bsa_it_ad .bsa_it_t {
+ padding:1px 0 0 0;
+ }
+
+ .bsa_it_d {
+ font-size: 70% !important;
+ }
+
+.bsa_it_p {
+ display: none !important;
+}
+
+#bsap_aplink {
+ display:block;
+ font-size:10px;
+ margin:12px 15px 0;
+ text-align:right;
+}
From c2d7b9f3cd4ee5e89659d238eb97aba39e90e5c3 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 13:47:22 +0200
Subject: [PATCH 003/668] Last minute fixes
---
csstest.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/csstest.js b/csstest.js
index b952d28f..e879d542 100644
--- a/csstest.js
+++ b/csstest.js
@@ -21,7 +21,11 @@ Score.prototype = {
},
toString: function() {
- return Math.round(100 * this.passed / this.total) + '%';
+ return this.percent() + '%';
+ },
+
+ percent: function() {
+ return Math.round(100 * this.passed / this.total);
}
};
@@ -337,6 +341,8 @@ onload = function() {
// Send to Browserscope
var testKey = 'agt1YS1wcm9maWxlcnINCxIEVGVzdBjk97ENDA';
+
+ _bTestResults['Overall'] = mainScore.percent();
$u.element.create({
tag: 'script',
From 66d0d561a553ace5b733f3d80d89feac60552e81 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 13:53:58 +0200
Subject: [PATCH 004/668] Last minute fixes
---
csstest.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/csstest.js b/csstest.js
index e879d542..e7368fae 100644
--- a/csstest.js
+++ b/csstest.js
@@ -340,7 +340,7 @@ onload = function() {
timeTaken.textContent = +new Date - timeBefore + 'ms';
// Send to Browserscope
- var testKey = 'agt1YS1wcm9maWxlcnINCxIEVGVzdBjk97ENDA';
+ var testKey = 'agt1YS1wcm9maWxlcnINCxIEVGVzdBidzawNDA';
_bTestResults['Overall'] = mainScore.percent();
From 22be48d42a1dba59826d9431c37cecc086819d74 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 13:56:48 +0200
Subject: [PATCH 005/668] Last minute fixes
---
style.css | 1 +
1 file changed, 1 insertion(+)
diff --git a/style.css b/style.css
index f49e5ad1..3ddb9b91 100644
--- a/style.css
+++ b/style.css
@@ -252,6 +252,7 @@ aside {
width: 1.2em;
height: 1.2em;
margin-right: .5em;
+ vertical-align: -.2em;
border-radius: 50%;
box-shadow: 0 2px white;
}
From c8b75d0fddb7e34b050ab4ea8cc23c37f8d2f788 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 14:10:21 +0200
Subject: [PATCH 006/668] Last minute fixes
---
csstest.js | 2 +-
index.html | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/csstest.js b/csstest.js
index e7368fae..05c52266 100644
--- a/csstest.js
+++ b/csstest.js
@@ -347,7 +347,7 @@ onload = function() {
$u.element.create({
tag: 'script',
properties: {
- src: 'http://www.browserscope.org/user/beacon/' + testKey
+ src: '//www.browserscope.org/user/beacon/' + testKey
},
inside: $('head')
});
diff --git a/index.html b/index.html
index 713f5276..17e9e8bb 100644
--- a/index.html
+++ b/index.html
@@ -3,7 +3,7 @@
-CSS browser support tests
+The CSS3 Test
@@ -58,7 +58,9 @@ Cheaters
From afeb61578e4a87f57d47be48ffdad0c8cba56d21 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 14:14:36 +0200
Subject: [PATCH 007/668] Last minute fixes
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 8c059551..7f19d942 100644
--- a/tests.js
+++ b/tests.js
@@ -421,7 +421,7 @@ window.Specs = {
"vh": "5vh",
"vw": "5vw",
"attr()": "attr(data-px)",
- "calc()": ["calc(1px+2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)"],
+ "calc()": ["calc(1px + 2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)"],
"cycle()": "cycle(1px, 2x)"
}
}
From 6f89440133776f50281261e8c0dbadc66a9ecdf2 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 16:05:47 +0200
Subject: [PATCH 008/668] Added Donate link
---
index.html | 5 +++--
style.css | 2 ++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/index.html b/index.html
index 17e9e8bb..6a33bdad 100644
--- a/index.html
+++ b/index.html
@@ -59,8 +59,9 @@ Cheaters
diff --git a/style.css b/style.css
index 3ddb9b91..f6d6ead8 100644
--- a/style.css
+++ b/style.css
@@ -259,6 +259,8 @@ aside {
footer {
margin-left: 65%;
+ font-size: 85%;
+ word-spacing: -1px;
}
footer > p {
From 6bb476b0f64de9d79b7132331ff4654c50734a69 Mon Sep 17 00:00:00 2001
From: Oli Studholme
Date: Fri, 3 Feb 2012 00:26:18 +0900
Subject: [PATCH 009/668] Extra tests for CSS3 Transitions, Animations and
Transforms
* transitions - negative duration (treated as 0s)
* animations - negative duration (treated as 0s)
* 2d-transforms - extra values for transform-origin, and transform (skew and matrix (FF3.5-9 required px for transform values, FF10 accepts spec's unitless numbers), multivalue transform)
* 3d-transforms - extra values for perspective-origin, transform-origin, and transform (translate, matrix with unitless transform values, multivalue transform), perspective() to px
---
tests.js | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/tests.js b/tests.js
index 7f19d942..6c63c18d 100644
--- a/tests.js
+++ b/tests.js
@@ -224,7 +224,7 @@ window.Specs = {
"title": "Transitions",
"properties": {
"transition-property": ["none", "all", "width", "width, height"],
- "transition-duration": ["0s", "1s", "100ms"],
+ "transition-duration": ["0s", "1s", "100ms", "-1s"],
"transition-timing-function": [
"ease", "linear", "ease-in", "ease-out", "ease-in-out",
"cubic-bezier(.5, .5, .5, .5)",
@@ -240,7 +240,7 @@ window.Specs = {
"title": "Animations",
"properties": {
"animation-name": ["foo", "foo, bar"],
- "animation-duration": ["0s", "1s", "100ms"],
+ "animation-duration": ["0s", "1s", "100ms", "-1s"],
"animation-timing-function": [
"ease", "linear", "ease-in", "ease-out", "ease-in-out",
"cubic-bezier(.5, .5, .5, .5)",
@@ -265,11 +265,13 @@ window.Specs = {
"transform": [
"none",
"translate(5px)", "translate(5px, 10px)", "translateY(5px)", "translateX(5px)", "translateY(5%)", "translateX(5%)",
- "scale(2)", "scale(2, -1)", "scaleX(2)", "scaleY(2)",
- "rotate(45deg)", "skewX(45deg)", "skewY(45deg)",
- "matrix(1,-.2,0,1,0,0)"
+ "scale(2)", "scale(2, -1)", "scaleX(2)", "scaleY(2.5)",
+ "rotate(45deg)",
+ "skew(45deg)", "skew(45deg, 15deg)", "skewX(45deg)", "skewY(45deg)",
+ "matrix(1,-.2,0,1,0,0)", "matrix(1,-.2,0,1,10,10)",
+ "translate(50px, -24px) rotate(180deg) scale(.5) skew(0, 22.5deg)"
],
- "transform-origin": ["top left", "50% 100%", "right 10px bottom 20px"]
+ "transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"]
}
},
@@ -278,13 +280,16 @@ window.Specs = {
"properties": {
"transform-style": ["flat", "preserve-3d"],
"perspective": ["none", "0", "600px"],
- "perspective-origin": ["top left", "50% 100%", "right 10px bottom 20px"],
+ "perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%" "right 10px bottom 20px"],
+ "transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "left 0% 10px"],
"backface-visibility": ["visible", "hidden"],
"transform": [
- "matrix3d(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)", "translateZ(5px)",
+ "translate(0, 0, 5px)", "translateZ(5px)",
"scale3d(1, 0, -1)", "scaleZ(1.5)",
- "rotate3d(1, 1, 1, 45deg)", "rotateZ(-45deg)",
- "perspective(600)"
+ "rotate3d(1, 1, 1, 45deg)", "rotateX(-45deg)", "rotateY(-45deg)", "rotateZ(-45deg)",
+ "matrix3d(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)", "matrix3d(0,0,0,0,0,0,0,0,0,0,1,0,10,10,0,1)",
+ "translate(50px, -24px, 5px) rotate3d(1, 2, 3, 180deg) scale3d(-1, 0, .5)",
+ "perspective(600px)"
]
}
},
From d35c3d57ebf77d2ebeafb7889c1a4810813d3ea1 Mon Sep 17 00:00:00 2001
From: Oli Studholme
Date: Fri, 3 Feb 2012 00:36:55 +0900
Subject: [PATCH 010/668] kittehs in code, sorry
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 6c63c18d..c0985b5d 100644
--- a/tests.js
+++ b/tests.js
@@ -280,7 +280,7 @@ window.Specs = {
"properties": {
"transform-style": ["flat", "preserve-3d"],
"perspective": ["none", "0", "600px"],
- "perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%" "right 10px bottom 20px"],
+ "perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"],
"transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "left 0% 10px"],
"backface-visibility": ["visible", "hidden"],
"transform": [
From d532a18c360afa749555eebbf6eea456166ac223 Mon Sep 17 00:00:00 2001
From: Oli Studholme
Date: Fri, 3 Feb 2012 00:48:05 +0900
Subject: [PATCH 011/668] Puttin the 3d in translate3d
---
tests.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index c0985b5d..0eab6a6e 100644
--- a/tests.js
+++ b/tests.js
@@ -284,11 +284,11 @@ window.Specs = {
"transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "left 0% 10px"],
"backface-visibility": ["visible", "hidden"],
"transform": [
- "translate(0, 0, 5px)", "translateZ(5px)",
+ "translate3d(0, 0, 5px)", "translateZ(5px)",
"scale3d(1, 0, -1)", "scaleZ(1.5)",
"rotate3d(1, 1, 1, 45deg)", "rotateX(-45deg)", "rotateY(-45deg)", "rotateZ(-45deg)",
"matrix3d(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)", "matrix3d(0,0,0,0,0,0,0,0,0,0,1,0,10,10,0,1)",
- "translate(50px, -24px, 5px) rotate3d(1, 2, 3, 180deg) scale3d(-1, 0, .5)",
+ "translate3d(50px, -24px, 5px) rotate3d(1, 2, 3, 180deg) scale3d(-1, 0, .5)",
"perspective(600px)"
]
}
From 0adfa28a72eff92b3c6b9d7fbfb4ed01e603bae7 Mon Sep 17 00:00:00 2001
From: Oli Studholme
Date: Fri, 3 Feb 2012 01:16:45 +0900
Subject: [PATCH 012/668] Extra values - vmin, max(), min(), negative calc()
---
tests.js | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index 0eab6a6e..ebe33dd1 100644
--- a/tests.js
+++ b/tests.js
@@ -423,10 +423,13 @@ window.Specs = {
],
"rem": "5rem",
"ch": "5ch",
- "vh": "5vh",
"vw": "5vw",
+ "vh": "5vh",
+ "vmin": "5vmin",
"attr()": "attr(data-px)",
- "calc()": ["calc(1px + 2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)"],
+ "calc()": ["calc(1px + 2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)", "calc(5px - 10px)"],
+ "min()": ["min(10px, 3em)", "min(10% + 20px, 300px)"],
+ "max()": ["max(30px, 3em)", "max(10% + 20px, 300px)"],
"cycle()": "cycle(1px, 2x)"
}
}
From e14e5c6f284a01d0a4ded129e2a407eb8e272728 Mon Sep 17 00:00:00 2001
From: Han Lin Yap
Date: Thu, 2 Feb 2012 20:17:38 +0100
Subject: [PATCH 013/668] Fix "border-image fail" bug
---
supports.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/supports.js b/supports.js
index 92611cff..2591daa8 100644
--- a/supports.js
+++ b/supports.js
@@ -10,6 +10,7 @@ var dummy = document.createElement('_'),
document.documentElement.appendChild(style);
dummy.setAttribute('data-foo', 'bar');
dummy.setAttribute('data-px', '1px');
+document.documentElement.appendChild(dummy);
var _ = window.Supports = {
prefixes: ['', '-moz-', '-webkit-', '-o-', '-ms-', 'ms-', '-khtml-'],
From 2be622bc742d19e23ace9e64ed999725f655dbca Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 2 Feb 2012 22:29:39 +0200
Subject: [PATCH 014/668] Warning clarification
---
index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/index.html b/index.html
index 6a33bdad..e42397df 100644
--- a/index.html
+++ b/index.html
@@ -30,7 +30,7 @@ Determined by passing tests out of
Caution:
- This test checks which CSS3 features the browser recognizes, whether they are implemented correctly or not.
+ This test checks which CSS3 features the browser recognizes, not whether they are implemented correctly.
Time taken:
From 44b6fde65c71f78e4897e370c29934a3da53832f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Zugmeyer?=
Date: Thu, 2 Feb 2012 23:19:04 +0100
Subject: [PATCH 015/668] Quick JS code review.
* try to avoid defining a same variable multiple times
* creating functions in a loop is a performance killer
* avoid arguments.callee, the function name is more explicit and smaller
* unary '!' operator has precedence over ==
* if you fear that an object has no hasOwnProperty method, use the
Object.prototype's one
* small typo in Utopia.event.bind for the fourth argument
---
csstest.js | 22 ++++++++++++----------
utopia.js | 14 ++++++++------
2 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/csstest.js b/csstest.js
index 05c52266..ca6e518e 100644
--- a/csstest.js
+++ b/csstest.js
@@ -147,13 +147,14 @@ Test.prototype = {
tests = tests instanceof Array? tests : [tests];
for(var i=0, test; test = tests[i++];) {
- var results = testCallback(test, feature, theseTests);
+ var results = testCallback(test, feature, theseTests),
+ success, note;
if(typeof results === 'object') {
- var success = results.success,
- note = results.note;
+ success = results.success;
+ note = results.note;
}
- else { var success = +!!results }
+ else { success = +!!results }
passed += +success;
@@ -261,12 +262,13 @@ document.onclick = function(evt) {
Array.prototype.and = function(arr2, separator) {
separator = separator || ' ';
- var ret = [];
+ var ret = [],
+ map = function(val) {
+ return val + separator + arr2[j]
+ };
for(var j=0; j
Date: Fri, 3 Feb 2012 10:57:52 +0200
Subject: [PATCH 016/668] Added overall score for each spec
---
csstest.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/csstest.js b/csstest.js
index 05c52266..b0c96454 100644
--- a/csstest.js
+++ b/csstest.js
@@ -79,6 +79,9 @@ var Test = function (tests, spec, title) {
this.group(id, Test.groups[id]);
}
+ // Add overall spec score to BrowserScope
+ _bTestResults[this.id] = mainScore.percent();
+
// Display score for this spec
$u.element.create({
tag: 'span',
From 2d8a0584ca933dc0c8eacbe0923e85a5170a645f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Zugmeyer?=
Date: Sun, 5 Feb 2012 16:49:02 +0100
Subject: [PATCH 017/668] Reverted arguments.callee change
---
csstest.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/csstest.js b/csstest.js
index ca6e518e..05b07fb1 100644
--- a/csstest.js
+++ b/csstest.js
@@ -314,7 +314,7 @@ onload = function() {
specs.push(spec);
}
- (function checkIfDone() {
+ (function() {
if(specs.length) {
// Get spec id
var spec = specs.shift();
@@ -333,7 +333,7 @@ onload = function() {
total.textContent = mainScore.total;
// Schedule next test
- setTimeout(checkIfDone, 50)
+ setTimeout(arguments.callee, 50)
}
else {
// Done!
From 1003b4e2469c35bbcb29efd0434a8e9fb0856bf0 Mon Sep 17 00:00:00 2001
From: Estelle Weyl
Date: Mon, 6 Feb 2012 20:27:20 -0800
Subject: [PATCH 018/668] image("arrow.png" ltr)
---
tests.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests.js b/tests.js
index ebe33dd1..739c7d30 100644
--- a/tests.js
+++ b/tests.js
@@ -76,6 +76,7 @@ window.Specs = {
"image()": [
"image('sprites.png#xywh=10,30,60,20')",
"image('wavy.svg', 'wavy.png' , 'wavy.gif')",
+ "image('arrow.png' ltr)",
"image('dark.png', black)", "image(green)"
],
"element()": "element(#foo)"
From e62ae36716b42d33922b21a0f5b93bf75665e526 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 9 Feb 2012 20:22:43 +0200
Subject: [PATCH 019/668] Merged css3-2d-transforms and css3-3d-transforms into
css3-transforms
---
tests.js | 28 +++++++++-------------------
1 file changed, 9 insertions(+), 19 deletions(-)
diff --git a/tests.js b/tests.js
index 739c7d30..6ef1afd6 100644
--- a/tests.js
+++ b/tests.js
@@ -41,7 +41,6 @@ window.Specs = {
"properties": [
"background-image",
"list-style-image",
- "foo",
"border-image",
"cursor",
"content"
@@ -260,8 +259,8 @@ window.Specs = {
}
},
- "css3-2d-transforms": {
- "title": "2D Transforms",
+ "css3-transforms": {
+ "title": "Transforms",
"properties": {
"transform": [
"none",
@@ -270,28 +269,19 @@ window.Specs = {
"rotate(45deg)",
"skew(45deg)", "skew(45deg, 15deg)", "skewX(45deg)", "skewY(45deg)",
"matrix(1,-.2,0,1,0,0)", "matrix(1,-.2,0,1,10,10)",
- "translate(50px, -24px) rotate(180deg) scale(.5) skew(0, 22.5deg)"
- ],
- "transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"]
- }
- },
-
- "css3-3d-transforms": {
- "title": "3D Transforms",
- "properties": {
- "transform-style": ["flat", "preserve-3d"],
- "perspective": ["none", "0", "600px"],
- "perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"],
- "transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "left 0% 10px"],
- "backface-visibility": ["visible", "hidden"],
- "transform": [
+ "translate(50px, -24px) rotate(180deg) scale(.5) skew(0, 22.5deg)",
"translate3d(0, 0, 5px)", "translateZ(5px)",
"scale3d(1, 0, -1)", "scaleZ(1.5)",
"rotate3d(1, 1, 1, 45deg)", "rotateX(-45deg)", "rotateY(-45deg)", "rotateZ(-45deg)",
"matrix3d(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)", "matrix3d(0,0,0,0,0,0,0,0,0,0,1,0,10,10,0,1)",
"translate3d(50px, -24px, 5px) rotate3d(1, 2, 3, 180deg) scale3d(-1, 0, .5)",
"perspective(600px)"
- ]
+ ],
+ "transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"],
+ "transform-style": ["flat", "preserve-3d"],
+ "perspective": ["none", "0", "600px"],
+ "perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"],
+ "backface-visibility": ["visible", "hidden"],
}
},
From 69785d6d26dc7207b8664e64b07a9026d4959b44 Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Fri, 10 Feb 2012 11:26:13 -0600
Subject: [PATCH 020/668] Add support for writing-modes
---
tests.js | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/tests.js b/tests.js
index 6ef1afd6..e412709b 100644
--- a/tests.js
+++ b/tests.js
@@ -364,6 +364,19 @@ window.Specs = {
}
},
+ "css3-writing-modes": {
+ "title": "Writing Modes",
+ "properties": {
+ "direction": ["ltr", "rtl"],
+ "unicode-bidi": ["normal", "embed", "isolate", "bidi-override", "plaintext"],
+ "writing-mode": ["horizontal-tb", "vertical-rl", "vertical-lr"],
+ "text-orientation": ["upright-right", "upright", "sideways-right", "sideways-left", "sideways", "use-glyph-orientation"],
+ "caption-side": ["before", "after"],
+ "text-combine-horizontal": ["none", "all", "digits 2", "ascii-digits 2", "alpha 2", "latin 2", "alphanumeric 2"],
+ "text-combine-mode": ["auto", "compress", "no-compress", "use-glyphs"]
+ }
+ },
+
"css3-color": {
"title": "Color",
"values": {
From fd0c5772e3a2dae1a7ee7847908f0512f46cc52c Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Fri, 10 Feb 2012 13:07:39 -0600
Subject: [PATCH 021/668] Remove CSS2.1 properties / values.
---
tests.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index e412709b..0b08e14c 100644
--- a/tests.js
+++ b/tests.js
@@ -367,8 +367,7 @@ window.Specs = {
"css3-writing-modes": {
"title": "Writing Modes",
"properties": {
- "direction": ["ltr", "rtl"],
- "unicode-bidi": ["normal", "embed", "isolate", "bidi-override", "plaintext"],
+ "unicode-bidi": ["isolate", "plaintext"],
"writing-mode": ["horizontal-tb", "vertical-rl", "vertical-lr"],
"text-orientation": ["upright-right", "upright", "sideways-right", "sideways-left", "sideways", "use-glyph-orientation"],
"caption-side": ["before", "after"],
From 8b91e0d0c222ac50a94f615e2fa0e0e0f451bdc2 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Wed, 22 Feb 2012 06:50:00 +0200
Subject: [PATCH 022/668] Made media query tests more accurate. Now besides
being parsed, they also need to actually match
---
csstest.js | 4 +++-
supports.js | 29 +++++++++++++++++++++++++++++
tests.js | 48 ++++++++++++++++++++++++++++--------------------
3 files changed, 60 insertions(+), 21 deletions(-)
diff --git a/csstest.js b/csstest.js
index d30cad9c..4bb5ceba 100644
--- a/csstest.js
+++ b/csstest.js
@@ -220,7 +220,9 @@ Test.groups = {
},
'Media queries': function(test) {
- return Supports.mq(test);
+ var matches = matchMedia(test);
+
+ return matches.media !== 'invalid' && matches.matches;
}
};
diff --git a/supports.js b/supports.js
index 2591daa8..8a071f0a 100644
--- a/supports.js
+++ b/supports.js
@@ -1,3 +1,32 @@
+/*! matchMedia() polyfill - Test a CSS media type/query in JS.
+Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
+window.matchMedia = window.matchMedia || (function(doc, undefined){
+
+ var bool,
+ docElem = doc.documentElement,
+ refNode = docElem.firstElementChild || docElem.firstChild,
+ // fakeBody required for
+ fakeBody = doc.createElement('body'),
+ div = doc.createElement('div');
+
+ div.id = 'mq-test-1';
+ div.style.cssText = "position:absolute;top:-100em";
+ fakeBody.appendChild(div);
+
+ return function(q){
+
+ div.innerHTML = '';
+
+ docElem.insertBefore(fakeBody, refNode);
+ bool = div.offsetWidth == 42;
+ docElem.removeChild(fakeBody);
+
+ return { matches: bool, media: q };
+ };
+
+})(document);
+
+
(function(){
/**
diff --git a/tests.js b/tests.js
index 0b08e14c..63bb55c9 100644
--- a/tests.js
+++ b/tests.js
@@ -144,41 +144,49 @@ window.Specs = {
}
},
+ /*
+ * Note: the following media queries must be true in supporting UAs!
+ */
"css3-mediaqueries": {
"title": "Media Queries",
"Media queries": {
- "width": ["(width:10px)", "(min-width:10px)", "(max-width:10px)"],
- "height": ["(height:10px)", "(min-height:10px)", "(max-height:10px)"],
- "device-width": ["(device-width:10px)", "(device-min-width:10px)", "(device-max-width:10px)"],
- "device-height": ["(device-height:10px)", "(device-min-height:10px)", "(device-max-height:10px)"],
- "orientation": ["(orientation:portrait)", "(orientation:landscape)"],
+ "negation": ["not print", "(not width:1px)"],
+ "width": ["(width)", "(min-width:1px)", "(max-width:1000000px)"],
+ "height": ["(height)", "(min-height:1px)", "(max-height:1000000px)"],
+ "device-width": ["(device-width)", "(min-device-width:1px)", "(max-device-width:1000000px)"],
+ "device-height": ["(device-height)", "(min-device-height:1px)", "(max-device-height:1000000px)"],
+ "orientation": "(orientation:portrait), (orientation:landscape)",
"aspect-ratio": [
- "(aspect-ratio:3/4)", "(aspect-ratio:3 /4)", "(aspect-ratio:3/ 4)",
- "(min-aspect-ratio:3/4)", "(max-aspect-ratio:3/4)"
+ "(aspect-ratio)",
+ "(min-aspect-ratio:1/1000000)",
+ "(min-aspect-ratio:1 / 1000000)",
+ "(max-aspect-ratio:1000000/1)",
],
"device-aspect-ratio": [
- "(device-aspect-ratio:3/4)", "(device-aspect-ratio:3 /4)", "(device-aspect-ratio:3/ 4)",
- "(min-device-aspect-ratio:3/4)", "(max-device-aspect-ratio:3/4)"
+ "(device-aspect-ratio)",
+ "(min-device-aspect-ratio:1/1000000)",
+ "(min-device-aspect-ratio:1 / 1000000)",
+ "(max-device-aspect-ratio:1000000/1)",
],
"color": [
- "(color)", "(color: 0)", "(color: 1)", "(color: 100)",
- "(min-color: 2)", "(max-color: 3)"
+ "(color)", "(min-color: 0)", "(max-color: 100)"
],
"color-index": [
- "(color-index)", "(color-index: 0)", "(color-index: 1)", "(color-index: 100)",
- "(min-color-index: 2)", "(max-color-index: 3)"
+ "all, (color-index)",
+ "(min-color-index: 0)",
+ "(max-color-index: 10000000)"
],
"monochrome": [
- "(monochrome)", "(monochrome: 0)", "(monochrome: 1)", "(monochrome: 100)",
- "(min-monochrome: 2)", "(max-monochrome: 3)"
+ "all, (monochrome)", "(min-monochrome: 0)", "(max-monochrome: 10000)"
],
"resolution": [
- "(resolution: 300dpi)", "(resolution: 120dpcm)",
- "(min-resolution: 300dpi)", "(min-resolution: 120dpcm)",
- "(max-resolution: 300dpi)", "(max-resolution: 120dpcm)"
+ "(resolution)",
+ "(min-resolution: 1dpi)",
+ "(max-resolution: 1000000dpi)",
+ "(max-resolution: 1000000dpcm)"
],
- "scan": ["(scan: progressive)", "(scan: interlace)"],
- "grid": ["(grid)", "(grid: 0)", "(grid:-0)", "(grid: 1)"]
+ "scan": ["not tv, (scan: progressive)", "not tv, (scan: interlace)"],
+ "grid": ["all, (grid)", "(grid: 0), (grid: 1)"]
}
},
From 4529638e81f0639b4910e41f1e12556ac74d8d16 Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Wed, 22 Feb 2012 13:18:11 -0600
Subject: [PATCH 023/668] Add marquee, speech, flexbox, and page
---
tests.js | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 80 insertions(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 63bb55c9..799ff41c 100644
--- a/tests.js
+++ b/tests.js
@@ -443,5 +443,84 @@ window.Specs = {
"max()": ["max(30px, 3em)", "max(10% + 20px, 300px)"],
"cycle()": "cycle(1px, 2x)"
}
- }
+ },
+
+ "css3-marquee": {
+ "title": "Marquee",
+ "properties": {
+ "overflow-style": ["auto", "marquee-line", "marquee-block"],
+ "marquee-style": ["scroll", "slide", "alternate"],
+ "marquee-play-count": ["0", "1", "infinite"],
+ "marquee-direction": ["forward", "reverse"],
+ "marquee-speed": ["slow", "normal", "fast"],
+ "text-combine-mode": ["auto", "compress", "no-compress", "use-glyphs"]
+ }
+ },
+
+ "css3-speech": {
+ "title": "Speech",
+ "properties": {
+ "voice-volume": ["silent", "x-soft", "soft", "medium", "loud", "x-loud", "-6dB", "0", "6db"],
+ "voice-balance": ["left", "center", "right", "leftwards", "rightwards", "-100", "0", "100"],
+ "speak": ["auto"],
+ "speak-as": ["normal", "spell-out", "digits", "literal-punctuation", "no-punctuation"],
+ "pause-before": ["none", "x-weak", "weak", "medium", "strong", "x-strong"],
+ "pause-after": ["none", "x-weak", "weak", "medium", "strong", "x-strong"],
+ "pause": ["none", "x-weak", "weak", "medium", "strong", "x-strong"],
+ "rest-before": ["none", "x-weak", "weak", "medium", "strong", "x-strong", "+3s", "250ms"],
+ "rest-after": ["none", "x-weak", "weak", "medium", "strong", "x-strong", "+3s", "250ms"],
+ "rest": ["none", "x-weak", "weak", "medium", "strong", "x-strong", "+3s", "250ms"],
+ "cue-before": ["-6dB", "0", "6db"],
+ "cue-after": ["-6dB", "0", "6db"],
+ "cue": ["-6dB", "0", "6db"],
+ "voice-family": ["preserve"],
+ "voice-rate": ["normal", "x-slow", "slow", "medium", "fast", "x-fast", "0", "100%"],
+ "voice-pitch": ["absolute", "x-low", "low", "medium", "high", "x-high", "0", "100%", "-100%", "250Hz", "+250Hz", "-20Hz", "-3.5st", "3.5st"],
+ "voice-range": ["absolute", "x-low", "low", "medium", "high", "x-high", "0", "100%", "-100%", "250Hz", "+250Hz", "-20Hz", "-3.5st", "3.5st"],
+ "voice-stress": ["normal", "strong", "moderate", "none", "reduced "],
+ "voice-duration": ["auto", "+3s", "250ms"]
+ }
+ },
+
+ "css3-flexbox": {
+ "title": "Flexible Box Layout",
+ "properties": {
+ "display": ["flexbox", "inline-flexbox"],
+ "flex-flow": ["row", "row-reverse", "column", "column-reverse", "wrap", "wrap-reverse"],
+ "flex-order": ["0", "1"],
+ "flex-pack": ["start", "end", "center", "justify"],
+ "flex-align": ["start", "end", "center", "baseline", "stretch"],
+ "flex-line-pack": ["start", "end", "center", "justify"]
+ }
+ },
+
+ "css3-page": {
+ "title": "Paged Media",
+ "properties": {
+ "size": ["auto", "portrait", "landscape", "8.5in 11in", "A4", "legal"],
+ "page": ["auto", "foo"],
+ "image-orientation": ["auto", "0", "90deg", "-1deg"],
+ "fit": ["fill", "hidden", "meet", "slice"],
+ "fit-position": ["0 0", "14% 84%", "2cm 2cm", "top", "center", "bottom", "left", "center", "right", "auto", "bottom left"]
+ },
+ "@rules": {
+ "@page": "@page foo",
+ "@top-left-corner": "@top-left-corner",
+ "@top-left": "@top-left",
+ "@top-center": "@top-center",
+ "@top-right": "@top-right",
+ "@top-right-corner": "@top-right-corner",
+ "@bottom-left-corner": "@bottom-left-corner",
+ "@bottom-left": "@bottom-left",
+ "@bottom-center": "@bottom-center",
+ "@bottom-right": "@bottom-right",
+ "@bottom-right-corner": "@bottom-right-corner",
+ "@left-top": "@left-top",
+ "@left-middle": "@left-middle",
+ "@right-bottom": "@right-bottom",
+ "@right-top": "@right-top",
+ "@right-middle": "@right-middle",
+ "@right-bottom": "@right-bottom"
+ }
+ },
};
\ No newline at end of file
From 4de0b637a7bb8094227e561d75df6e6eeca225ad Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Wed, 22 Feb 2012 13:21:40 -0600
Subject: [PATCH 024/668] Update tests.js
---
tests.js | 32 +-------------------------------
1 file changed, 1 insertion(+), 31 deletions(-)
diff --git a/tests.js b/tests.js
index 799ff41c..d5ec7451 100644
--- a/tests.js
+++ b/tests.js
@@ -492,35 +492,5 @@ window.Specs = {
"flex-align": ["start", "end", "center", "baseline", "stretch"],
"flex-line-pack": ["start", "end", "center", "justify"]
}
- },
-
- "css3-page": {
- "title": "Paged Media",
- "properties": {
- "size": ["auto", "portrait", "landscape", "8.5in 11in", "A4", "legal"],
- "page": ["auto", "foo"],
- "image-orientation": ["auto", "0", "90deg", "-1deg"],
- "fit": ["fill", "hidden", "meet", "slice"],
- "fit-position": ["0 0", "14% 84%", "2cm 2cm", "top", "center", "bottom", "left", "center", "right", "auto", "bottom left"]
- },
- "@rules": {
- "@page": "@page foo",
- "@top-left-corner": "@top-left-corner",
- "@top-left": "@top-left",
- "@top-center": "@top-center",
- "@top-right": "@top-right",
- "@top-right-corner": "@top-right-corner",
- "@bottom-left-corner": "@bottom-left-corner",
- "@bottom-left": "@bottom-left",
- "@bottom-center": "@bottom-center",
- "@bottom-right": "@bottom-right",
- "@bottom-right-corner": "@bottom-right-corner",
- "@left-top": "@left-top",
- "@left-middle": "@left-middle",
- "@right-bottom": "@right-bottom",
- "@right-top": "@right-top",
- "@right-middle": "@right-middle",
- "@right-bottom": "@right-bottom"
- }
- },
+ }
};
\ No newline at end of file
From 77d5036f71e5acb9494a9c022c4c28492dc3ec8b Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Wed, 22 Feb 2012 21:54:23 -0600
Subject: [PATCH 025/668] Remove marquee
---
tests.js | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/tests.js b/tests.js
index d5ec7451..d2582743 100644
--- a/tests.js
+++ b/tests.js
@@ -445,18 +445,6 @@ window.Specs = {
}
},
- "css3-marquee": {
- "title": "Marquee",
- "properties": {
- "overflow-style": ["auto", "marquee-line", "marquee-block"],
- "marquee-style": ["scroll", "slide", "alternate"],
- "marquee-play-count": ["0", "1", "infinite"],
- "marquee-direction": ["forward", "reverse"],
- "marquee-speed": ["slow", "normal", "fast"],
- "text-combine-mode": ["auto", "compress", "no-compress", "use-glyphs"]
- }
- },
-
"css3-speech": {
"title": "Speech",
"properties": {
From b19c48929c263c7a551e2182a8597756dc9c573c Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Tue, 13 Mar 2012 23:18:39 -0500
Subject: [PATCH 026/668] Added 2 tests
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 63bb55c9..63477f69 100644
--- a/tests.js
+++ b/tests.js
@@ -410,7 +410,7 @@ window.Specs = {
"properties": {
"column-width": ["10em", "auto"],
"column-count": ["2", "auto"],
- "columns": ["10em 2", "auto 2", "10em auto", "auto auto", "2 10em", "auto 10em", "2 auto"],
+ "columns": ["100px", "3", "10em 2", "auto 2", "10em auto", "auto auto", "2 10em", "auto 10em", "2 auto"],
"column-gap": ["1em", "normal"],
"column-rule-color": "red",
"column-rule-style": ["none", "solid", "dotted"],
From 2fe1229ef9c90bd27ab4021203f6d20e5a5a47d8 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Tue, 13 Mar 2012 23:20:31 -0500
Subject: [PATCH 027/668] Fixed #15
---
index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/index.html b/index.html
index e42397df..48fe48c8 100644
--- a/index.html
+++ b/index.html
@@ -59,7 +59,7 @@ Cheaters
From ed844bf40b5fd6055308957c47de5a610ec79b64 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Thu, 26 Apr 2012 11:49:08 +0200
Subject: [PATCH 028/668] Added new values for animation-direction: reverse and
alternate-reverse
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 1fdf23af..cbe32dc3 100644
--- a/tests.js
+++ b/tests.js
@@ -256,7 +256,7 @@ window.Specs = {
"step-start", "step-end", "steps(3, start)", "steps(5, end)"
],
"animation-iteration-count": ["infinite", "8", "4.35"],
- "animation-direction": ["normal", "alternate"],
+ "animation-direction": ["normal", "alternate", "reverse", "alternate-reverse"],
"animation-play-state": ["running", "paused"],
"animation-delay": ["1s", "-1s"],
"animation-fill-mode": ["none", "forwards", "backwards", "both"],
From 2b02ad72e234394d617a74015af2b6cae5cd471b Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Wed, 2 May 2012 12:14:08 -0500
Subject: [PATCH 029/668] Removed Image Values and Replaced Content element()
test and image() test using ltr per http://www.w3.org/TR/css3-images/#changes
Closed issue #16 Changed writing-mode test for "upright-right" to
"mixed-right" per http://www.w3.org/TR/css3-writing-modes/#recent-changes
---
tests.js | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/tests.js b/tests.js
index cbe32dc3..749fd993 100644
--- a/tests.js
+++ b/tests.js
@@ -75,10 +75,8 @@ window.Specs = {
"image()": [
"image('sprites.png#xywh=10,30,60,20')",
"image('wavy.svg', 'wavy.png' , 'wavy.gif')",
- "image('arrow.png' ltr)",
"image('dark.png', black)", "image(green)"
],
- "element()": "element(#foo)"
},
"properties": {
"object-fit": ["fill", "contain", "cover", "none", "scale-down"],
@@ -377,9 +375,9 @@ window.Specs = {
"properties": {
"unicode-bidi": ["isolate", "plaintext"],
"writing-mode": ["horizontal-tb", "vertical-rl", "vertical-lr"],
- "text-orientation": ["upright-right", "upright", "sideways-right", "sideways-left", "sideways", "use-glyph-orientation"],
+ "text-orientation": ["mixed-right", "upright", "sideways-right", "sideways-left", "sideways", "use-glyph-orientation"],
"caption-side": ["before", "after"],
- "text-combine-horizontal": ["none", "all", "digits 2", "ascii-digits 2", "alpha 2", "latin 2", "alphanumeric 2"],
+ "text-combine-horizontal": ["none", "all", "numeric 2", "digits 2", "alpha 2", "latin 2", "alphanumeric 2"],
"text-combine-mode": ["auto", "compress", "no-compress", "use-glyphs"]
}
},
@@ -439,8 +437,6 @@ window.Specs = {
"vmin": "5vmin",
"attr()": "attr(data-px)",
"calc()": ["calc(1px + 2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)", "calc(5px - 10px)"],
- "min()": ["min(10px, 3em)", "min(10% + 20px, 300px)"],
- "max()": ["max(30px, 3em)", "max(10% + 20px, 300px)"],
"cycle()": "cycle(1px, 2x)"
}
},
From d6e88743d70c516abd49abcdc0eb4ced81bc9b65 Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Wed, 23 May 2012 18:26:53 -0700
Subject: [PATCH 030/668] Update tests.js
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 749fd993..71919e65 100644
--- a/tests.js
+++ b/tests.js
@@ -469,7 +469,7 @@ window.Specs = {
"css3-flexbox": {
"title": "Flexible Box Layout",
"properties": {
- "display": ["flexbox", "inline-flexbox"],
+ "display": ["flex", "inline-flex"],
"flex-flow": ["row", "row-reverse", "column", "column-reverse", "wrap", "wrap-reverse"],
"flex-order": ["0", "1"],
"flex-pack": ["start", "end", "center", "justify"],
From 592c30cbdc4f77dd5a9eae97287fa646e0615973 Mon Sep 17 00:00:00 2001
From: Alexis Menard
Date: Mon, 4 Jun 2012 14:23:59 -0300
Subject: [PATCH 031/668] According to http://dev.w3.org/csswg/css3-flexbox/
various flexbox properties has been renamed. This patch updates them.
---
tests.js | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/tests.js b/tests.js
index 71919e65..f4c8e04d 100644
--- a/tests.js
+++ b/tests.js
@@ -471,10 +471,11 @@ window.Specs = {
"properties": {
"display": ["flex", "inline-flex"],
"flex-flow": ["row", "row-reverse", "column", "column-reverse", "wrap", "wrap-reverse"],
- "flex-order": ["0", "1"],
- "flex-pack": ["start", "end", "center", "justify"],
- "flex-align": ["start", "end", "center", "baseline", "stretch"],
- "flex-line-pack": ["start", "end", "center", "justify"]
+ "order": ["0", "1"],
+ "justify-content": ["flex-start", "flex-end", "center", "space-between", "space-around"],
+ "align-content": ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"],
+ "align-items": ["flex-start", "flex-end", "center", "baseline", "stretch"],
+ "align-self": ["flex-start", "flex-end", "center", "baseline", "stretch", "auto"]
}
}
-};
\ No newline at end of file
+};
From dec5655c2fc993f508b5642abdca39957a6d4c97 Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Sat, 30 Jun 2012 10:12:47 -0500
Subject: [PATCH 032/668] Close Issue 23
---
style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/style.css b/style.css
index f6d6ead8..000fed84 100644
--- a/style.css
+++ b/style.css
@@ -20,7 +20,7 @@ h1, h2 {
}
body > section section section h1 {
- font-size: 200%;
+ font-size: 180%;
}
section section section section h1 {
From b79f1ef519efb49f216bd9524141731cbd74447c Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Sat, 30 Jun 2012 10:13:59 -0500
Subject: [PATCH 033/668] =?UTF-8?q?http://dev.w3.org/csswg/css3-text/#chan?=
=?UTF-8?q?ges=20Dropped=20the=20=E2=80=98text-wrap=E2=80=99=20and=20?=
=?UTF-8?q?=E2=80=98text-space-collapse=E2=80=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tests.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/tests.js b/tests.js
index f4c8e04d..2f380590 100644
--- a/tests.js
+++ b/tests.js
@@ -295,12 +295,10 @@ window.Specs = {
"title": "Text",
"properties": {
"text-transform": ["full-width", "full-size-kana"],
- "text-space-collapse": ["collapse", "preserve", "preserve-breaks"],
"tab-size": ["4", "1em"],
"line-break": ["auto", "loose", "normal", "strict"],
"word-break": ["normal", "keep-all", "break-all"],
"hyphens": ["auto", "manual", "none"],
- "text-wrap": ["normal", "none", "avoid"],
"overflow-wrap": ["normal", "break-word"],
"text-align": ["start", "end", "'a'", "match-parent", "start end"],
"text-align-last": ["auto", "start", "end", "left", "right", "center", "justify"],
From f633dbcb0dadd62cd31c1c558fee7571a1737dbd Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Sat, 30 Jun 2012 10:17:09 -0500
Subject: [PATCH 034/668] http://dev.w3.org/csswg/css3-values/#toggle cycle()
is now toggle()
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 2f380590..b51216e3 100644
--- a/tests.js
+++ b/tests.js
@@ -435,7 +435,7 @@ window.Specs = {
"vmin": "5vmin",
"attr()": "attr(data-px)",
"calc()": ["calc(1px + 2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)", "calc(5px - 10px)"],
- "cycle()": "cycle(1px, 2x)"
+ "toggle()": "toggle(1px, 2px)"
}
},
From b9a636f1ba4d992a06531e6285794ed0dc62dc3f Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Sat, 30 Jun 2012 10:23:53 -0500
Subject: [PATCH 035/668] http://dev.w3.org/csswg/css3-flexbox/#changes Major
changes to flexbox
---
tests.js | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/tests.js b/tests.js
index b51216e3..326537dc 100644
--- a/tests.js
+++ b/tests.js
@@ -467,13 +467,21 @@ window.Specs = {
"css3-flexbox": {
"title": "Flexible Box Layout",
"properties": {
- "display": ["flex", "inline-flex"],
- "flex-flow": ["row", "row-reverse", "column", "column-reverse", "wrap", "wrap-reverse"],
- "order": ["0", "1"],
- "justify-content": ["flex-start", "flex-end", "center", "space-between", "space-around"],
"align-content": ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"],
"align-items": ["flex-start", "flex-end", "center", "baseline", "stretch"],
"align-self": ["flex-start", "flex-end", "center", "baseline", "stretch", "auto"]
+ "display": ["flex", "inline-flex"],
+ "flex": ["none","5 7 10%"],
+ "flex-basis": ["auto","1px"],
+ "flex-direction": ["row","row-reverse","column","column-reverse"],
+ "flex-flow": ["row", "row-reverse", "column", "column-reverse", "wrap", "wrap-reverse"],
+ "flex-grow": ["0","5"],
+ "flex-shrink": ["1","10"],
+ "flex-wrap": ["nowrap", "wrap", "wrap-reverse"],
+ "justify-content": ["flex-start", "flex-end", "center", "space-between", "space-around"],
+ "min-height": ["auto"],
+ "min-width": ["auto"],
+ "order": ["0", "1"],
}
}
};
From 72a02be62510623e307adf571fe7c714717411f4 Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Sat, 30 Jun 2012 10:31:22 -0500
Subject: [PATCH 036/668] Fixed order of "buggy" and "very-buggy"
---
csstest.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/csstest.js b/csstest.js
index 4bb5ceba..5839f68c 100644
--- a/csstest.js
+++ b/csstest.js
@@ -241,8 +241,8 @@ function passclass(info) {
var classes = [
'fail',
- 'buggy',
'very-buggy',
+ 'buggy',
'slightly-buggy',
'almost-pass',
];
From 3f1f80f19165d15571c8aa2d728de37d3f9d466c Mon Sep 17 00:00:00 2001
From: rasamassen
Date: Sat, 30 Jun 2012 10:40:39 -0500
Subject: [PATCH 037/668] Missing comma
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 326537dc..a24bd5bc 100644
--- a/tests.js
+++ b/tests.js
@@ -469,7 +469,7 @@ window.Specs = {
"properties": {
"align-content": ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"],
"align-items": ["flex-start", "flex-end", "center", "baseline", "stretch"],
- "align-self": ["flex-start", "flex-end", "center", "baseline", "stretch", "auto"]
+ "align-self": ["flex-start", "flex-end", "center", "baseline", "stretch", "auto"],
"display": ["flex", "inline-flex"],
"flex": ["none","5 7 10%"],
"flex-basis": ["auto","1px"],
From 5007cea391c8fa077aedf10bfcc480608288dbfb Mon Sep 17 00:00:00 2001
From: Peter Gasston
Date: Wed, 25 Jul 2012 12:47:15 +0100
Subject: [PATCH 038/668] Added emoticons to remove reliance on colour
---
style.css | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/style.css b/style.css
index 000fed84..48663110 100644
--- a/style.css
+++ b/style.css
@@ -131,6 +131,7 @@ dt, dd[class] {
color: white;
border-radius: .3em;
text-shadow: 0 -.05em .1em rgba(0,0,0,.5);
+ position: relative;
}
dt {
@@ -206,6 +207,23 @@ dl.open > dd {
display: block;
}
+dt:after,
+dd[class]:after {
+ letter-spacing: -3px;
+ line-height: 35px;
+ position: absolute;
+ right: 10px;
+ top: 0;
+}
+
+.buggy:after { content: ':|'; }
+
+.epic-fail:after { content: '>:('; }
+
+.pass:after { content: ':)'; }
+
+.very-buggy:after { content: ':('; }
+
aside {
font-size: 85%;
}
From d86f8b95ce4baaf834f425f425e82b7558e6d204 Mon Sep 17 00:00:00 2001
From: Peter Gasston
Date: Wed, 25 Jul 2012 13:12:25 +0100
Subject: [PATCH 039/668] Added slighgtly-buggy state, altered letter-spacing
---
style.css | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/style.css b/style.css
index 48663110..54af6bca 100644
--- a/style.css
+++ b/style.css
@@ -209,7 +209,7 @@ dl.open > dd {
dt:after,
dd[class]:after {
- letter-spacing: -3px;
+ letter-spacing: -2px;
line-height: 35px;
position: absolute;
right: 10px;
@@ -220,7 +220,9 @@ dd[class]:after {
.epic-fail:after { content: '>:('; }
-.pass:after { content: ':)'; }
+.pass:after { content: ':D'; }
+
+.slightly-buggy:after { content: ':)'; }
.very-buggy:after { content: ':('; }
From 249715198612e77c30efbda4aa7d5769a87a4c95 Mon Sep 17 00:00:00 2001
From: Peter Gasston
Date: Fri, 27 Jul 2012 00:47:18 +0100
Subject: [PATCH 040/668] Updated styling; added missing states
---
style.css | 33 ++++++++++++++++++++++++++++-----
1 file changed, 28 insertions(+), 5 deletions(-)
diff --git a/style.css b/style.css
index 54af6bca..ecaf48c2 100644
--- a/style.css
+++ b/style.css
@@ -207,24 +207,43 @@ dl.open > dd {
display: block;
}
+/* Emoticons */
+
+dt:after,
+dd[class]:after,
+#specsTested li:after {
+ opacity: 0.75;
+ position: absolute;
+ top: 0;
+}
+
dt:after,
dd[class]:after {
letter-spacing: -2px;
line-height: 35px;
- position: absolute;
right: 10px;
- top: 0;
}
-.buggy:after { content: ':|'; }
+#specsTested li:after {
+ line-height: 29px;
+ right: 0;
+}
+
+.almost-pass:after { content: ':)'; }
+
+.buggy:after { content: ':('; }
.epic-fail:after { content: '>:('; }
+.fail:after { content: ':′('; }
+
.pass:after { content: ':D'; }
-.slightly-buggy:after { content: ':)'; }
+.slightly-buggy:after { content: ':|'; }
-.very-buggy:after { content: ':('; }
+.very-buggy:after { content: ':o'; }
+
+/* End emoticons */
aside {
font-size: 85%;
@@ -266,6 +285,10 @@ aside {
border-bottom: none;
}
+ #specsTested li {
+ position: relative;
+ }
+
#specsTested li:before {
content: '';
display: inline-block;
From 19d757e88bc07dde404fd5c3bb4e25b1e44d8a24 Mon Sep 17 00:00:00 2001
From: Peter Gasston
Date: Fri, 27 Jul 2012 01:00:06 +0100
Subject: [PATCH 041/668] Updated angry emoticon
---
style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/style.css b/style.css
index ecaf48c2..e9648067 100644
--- a/style.css
+++ b/style.css
@@ -233,7 +233,7 @@ dd[class]:after {
.buggy:after { content: ':('; }
-.epic-fail:after { content: '>:('; }
+.epic-fail:after { content: '›:('; }
.fail:after { content: ':′('; }
From 66d92e05163c3d95660904c1265b249ab785e195 Mon Sep 17 00:00:00 2001
From: Peter Gasston
Date: Fri, 27 Jul 2012 01:12:20 +0100
Subject: [PATCH 042/668] Sidebar emoticons use Monaco/Consolas
---
style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/style.css b/style.css
index e9648067..00924d67 100644
--- a/style.css
+++ b/style.css
@@ -225,7 +225,7 @@ dd[class]:after {
}
#specsTested li:after {
- line-height: 29px;
+ font: 83.3%/29px Monaco, Consolas, monospace;
right: 0;
}
From 44554fc0945b261b3a22b58d6ebb0d8c669db46b Mon Sep 17 00:00:00 2001
From: Christian Oliff
Date: Mon, 30 Jul 2012 17:31:57 +0900
Subject: [PATCH 043/668] Added favicon.ico
A quick and simple favicon.ico based on the nice design at
css3test.com, just the curly brackets on pink background.
Icon will automatically display in all versions of Opera, Firefox, IE,
Chrome, Safari etc. The icon is 32x32 pixels which is used in IE10 and
all other browsers auto-scale the icon down to 16x16. Just drop it in
the root folder.
---
favicon.ico | Bin 0 -> 766 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 favicon.ico
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..7fda0a8af6683a0bd077e1d0d07694e7af657705
GIT binary patch
literal 766
zcmchVy-Gtt5QUE-SlDEU#KIq~b}Uoq~HgGyBc%&Rk{}7_u*)&zK#-+c1y=uwcrYR!tuFQMa}1
zSX3rNq9KX>IpSiEc(@^2cZ7o27UFn`I9(&omAF13ZWE&OM0~t69A;O02K!Mp@J5o<
zbTMh#M*8MUk){@9#sfAg5?P)jZ>2mLxhz?q?8`x8$z-NOI?
literal 0
HcmV?d00001
From 129de331986b0157b5945060abda4ea3b96ec4bf Mon Sep 17 00:00:00 2001
From: Peter Kavanagh
Date: Sun, 26 Aug 2012 11:16:13 +1000
Subject: [PATCH 044/668] "full-size-kana" value removed from text-transform
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index a24bd5bc..144e6e79 100644
--- a/tests.js
+++ b/tests.js
@@ -294,7 +294,7 @@ window.Specs = {
"css3-text": {
"title": "Text",
"properties": {
- "text-transform": ["full-width", "full-size-kana"],
+ "text-transform": ["full-width"],
"tab-size": ["4", "1em"],
"line-break": ["auto", "loose", "normal", "strict"],
"word-break": ["normal", "keep-all", "break-all"],
From c83683370b4c86dbe8e8f52a6406a72d52da656a Mon Sep 17 00:00:00 2001
From: Peter Kavanagh
Date: Sun, 26 Aug 2012 11:58:29 +1000
Subject: [PATCH 045/668] Bring css3-fonts up-to-date with the latest spec.
---
tests.js | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index 144e6e79..ff163066 100644
--- a/tests.js
+++ b/tests.js
@@ -330,7 +330,7 @@ window.Specs = {
"font-kerning": ["auto", "normal", "none"],
"font-variant-position": ["normal", "sub", "super"],
"font-variant-ligatures": [
- "normal",
+ "normal", "none",
"common-ligatures", "no-common-ligatures",
"discretionary-ligatures", "no-discretionary-ligatures",
"historical-ligatures", "no-historical-ligatures",
@@ -360,7 +360,10 @@ window.Specs = {
"full-width", "proportional-width",
"ruby", "simplified full-width ruby"
],
- "font-variant": "sub lining-nums contextual ruby"
+ "font-variant": "sub lining-nums contextual ruby",
+ "font-feature-settings": ["normal", "'c2sc'", "'smcp' on", "'liga' off", "'smcp', 'swsh' 2"],
+ "font-language-override": ["normal", "'SRB'"],
+ "unicode-range": ["U+416", "U+0-7F", "U+A5, U+4E00-9FFF", "U+30??"]
},
"@rules": {
"@font-face": "@font-face",
From 176158e9b3904034e9cfb3dca3a0a3d728e1d387 Mon Sep 17 00:00:00 2001
From: Peter Kavanagh
Date: Sun, 26 Aug 2012 12:04:49 +1000
Subject: [PATCH 046/668] Just some housekeeping
---
tests.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests.js b/tests.js
index ff163066..a7b2d7c0 100644
--- a/tests.js
+++ b/tests.js
@@ -17,7 +17,7 @@ window.Specs = {
],
"border-radius": ["10px", "50%", "10px / 20px", "2px 4px 8px 16px"],
"border-image-source": ["none", "url(foo.png)"],
- "border-image-slice": ['10', '30%'].times(1, 4).concat(["fill 30%", "fill 10", "fill 2 4 8% 16%", "30% fill", "10 fill", "2 4 8% 16% fill"]),
+ "border-image-slice": ["10", "30%"].times(1, 4).concat(["fill 30%", "fill 10", "fill 2 4 8% 16%", "30% fill", "10 fill", "2 4 8% 16% fill"]),
"border-image-width": ["10px", "5%", "28", "auto", "10px 10px", "5% 10px", "28 10px", "auto 10px", "10px 5%", "5% 5%", "28 5%", "auto 5%", "10px 28", "5% 28", "28 28", "auto 28", "10px auto", "5% auto", "28 auto", "auto auto", "10px 10% 10", "5% 10px 20 auto"],
"border-image-outset": ["10px", "20", "10px 20", "10px 20px", "20 30", "2px 3px 4", "1 2px 3px 4"],
"border-image-repeat": ["stretch", "repeat", "round", "space"].times(1, 2),
@@ -393,9 +393,9 @@ window.Specs = {
"text-decoration-color",
"column-rule-color"
],
- "rgba": 'rgba(0,0,0,.5)',
- "hsl": 'hsl(0,0%,0%)',
- "hsla": 'hsla(0,0%,0%,.5)',
+ "rgba": "rgba(0,0,0,.5)",
+ "hsl": "hsl(0,0%,0%)",
+ "hsla": "hsla(0,0%,0%,.5)",
"transparent": "transparent",
"currentColor": "currentColor"
},
From 550349ae167db7c732b8ce46248f4d7d1c189775 Mon Sep 17 00:00:00 2001
From: Peter Kavanagh
Date: Sat, 1 Sep 2012 01:40:56 +1000
Subject: [PATCH 047/668] CSS3 Values & Units Module Spec Updates
---
tests.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index a7b2d7c0..263572f7 100644
--- a/tests.js
+++ b/tests.js
@@ -436,7 +436,8 @@ window.Specs = {
"vw": "5vw",
"vh": "5vh",
"vmin": "5vmin",
- "attr()": "attr(data-px)",
+ "vmax": "5vmax",
+ "attr()": ["attr(data-px)", "attr(data-px px)", "attr(data-px px, initial)"],
"calc()": ["calc(1px + 2px)", "calc(5px*2)", "calc(5px/2)", "calc(100%/3 - 2*1em - 2*1px)", "calc(attr(data-px)*2)", "calc(5px - 10px)"],
"toggle()": "toggle(1px, 2px)"
}
From 37495ea4ef6efdf27816939833180cd6ef03b370 Mon Sep 17 00:00:00 2001
From: Peter Kavanagh
Date: Sat, 1 Sep 2012 02:11:56 +1000
Subject: [PATCH 048/668] Add test for radians
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 263572f7..a4a8bd0a 100644
--- a/tests.js
+++ b/tests.js
@@ -82,7 +82,7 @@ window.Specs = {
"object-fit": ["fill", "contain", "cover", "none", "scale-down"],
"object-position": ["50% 50%", "center", "top right", "bottom 10px right 20px"],
"image-resolution": ["from-image", "from-image snap", "snap from-image", "1dppx", "300dpi", "from-image 300dpi", "300dpi from-image", "300dpi from-image snap"],
- "image-orientation": ["0deg", "90deg", "45deg", "1turn", "100grad"]
+ "image-orientation": ["0deg", "90deg", "45deg", "1turn", "100grad", "2rad"]
}
},
From 0687cd116730ee60eb89a1719b6fd8ffaa460307 Mon Sep 17 00:00:00 2001
From: Peter Kavanagh
Date: Sat, 1 Sep 2012 02:20:28 +1000
Subject: [PATCH 049/668] Add in missing test for kilohertz unit
---
tests.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index a4a8bd0a..42a2806c 100644
--- a/tests.js
+++ b/tests.js
@@ -461,8 +461,8 @@ window.Specs = {
"cue": ["-6dB", "0", "6db"],
"voice-family": ["preserve"],
"voice-rate": ["normal", "x-slow", "slow", "medium", "fast", "x-fast", "0", "100%"],
- "voice-pitch": ["absolute", "x-low", "low", "medium", "high", "x-high", "0", "100%", "-100%", "250Hz", "+250Hz", "-20Hz", "-3.5st", "3.5st"],
- "voice-range": ["absolute", "x-low", "low", "medium", "high", "x-high", "0", "100%", "-100%", "250Hz", "+250Hz", "-20Hz", "-3.5st", "3.5st"],
+ "voice-pitch": ["absolute", "x-low", "low", "medium", "high", "x-high", "0", "100%", "-100%", "250Hz", "+250Hz", "-20Hz", ".2kHz", "-3.5st", "3.5st"],
+ "voice-range": ["absolute", "x-low", "low", "medium", "high", "x-high", "0", "100%", "-100%", "250Hz", "+250Hz", "-20Hz", ".2kHz", "-3.5st", "3.5st"],
"voice-stress": ["normal", "strong", "moderate", "none", "reduced "],
"voice-duration": ["auto", "+3s", "250ms"]
}
From c3a88cad25141b39451112e0aa2cc08be35d21a1 Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Tue, 9 Oct 2012 15:43:11 +0900
Subject: [PATCH 050/668] Remove transition-duration and animation-duration's
"-1s" tests
---
tests.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index 42a2806c..ec22b590 100644
--- a/tests.js
+++ b/tests.js
@@ -230,7 +230,7 @@ window.Specs = {
"title": "Transitions",
"properties": {
"transition-property": ["none", "all", "width", "width, height"],
- "transition-duration": ["0s", "1s", "100ms", "-1s"],
+ "transition-duration": ["0s", "1s", "100ms"],
"transition-timing-function": [
"ease", "linear", "ease-in", "ease-out", "ease-in-out",
"cubic-bezier(.5, .5, .5, .5)",
@@ -246,7 +246,7 @@ window.Specs = {
"title": "Animations",
"properties": {
"animation-name": ["foo", "foo, bar"],
- "animation-duration": ["0s", "1s", "100ms", "-1s"],
+ "animation-duration": ["0s", "1s", "100ms"],
"animation-timing-function": [
"ease", "linear", "ease-in", "ease-out", "ease-in-out",
"cubic-bezier(.5, .5, .5, .5)",
From 76aafa49596b38a7580394020f40b46b5d35f3a5 Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 18:53:55 +0900
Subject: [PATCH 051/668] Fix bug that border-image test is incorrect
---
tests.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index ec22b590..eabf3f06 100644
--- a/tests.js
+++ b/tests.js
@@ -24,8 +24,8 @@ window.Specs = {
"border-image": [
"url(foo.png) 10", "url(foo.png) 10%", "url(foo.png) 10% fill",
"url(foo.png) 10 round", "url(foo.png) 10 stretch repeat",
- "url(foo.png) 10 / 10px", "url(foo.png) 10 / 10px / 10%",
- "url(foo.png) fill 10 / 10px / 10%", "url(foo.png) fill 10 / 10px / 10% space"
+ "url(foo.png) 10 / 10px", "url(foo.png) 10 / 10% / 10px",
+ "url(foo.png) fill 10 / 10% / 10px", "url(foo.png) fill 10 / 10% / 10px space"
],
"box-decoration-break": ["slice", "clone"],
"box-shadow": [
From d9dcd987a37f29a4eb65bfddd6a3fe255f8bd4b1 Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 19:50:57 +0900
Subject: [PATCH 052/668] Fix bug that Media Queries's "not" keyword test is
incorrect
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index eabf3f06..cece361c 100644
--- a/tests.js
+++ b/tests.js
@@ -148,7 +148,7 @@ window.Specs = {
"css3-mediaqueries": {
"title": "Media Queries",
"Media queries": {
- "negation": ["not print", "(not width:1px)"],
+ "negation": ["not print", "not all and (width:1px)"],
"width": ["(width)", "(min-width:1px)", "(max-width:1000000px)"],
"height": ["(height)", "(min-height:1px)", "(max-height:1000000px)"],
"device-width": ["(device-width)", "(min-device-width:1px)", "(max-device-width:1000000px)"],
From bf2088fa0c962f50a2517c2f1a1050cce5a2976f Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 20:08:16 +0900
Subject: [PATCH 053/668] Fix bug that cursor test is incorrect
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index cece361c..c341a9a3 100644
--- a/tests.js
+++ b/tests.js
@@ -198,7 +198,7 @@ window.Specs = {
"resize": ["none", "both", "horizontal", "vertical"],
"text-overflow": ["clip", "ellipsis", "'foo'"].times(1, 2),
"cursor": [
- "url(foo.png) 2 2", "default", "none", "context-menu", "cell", "vertical-text", "alias", "copy", "no-drop", "not-allowed",
+ "url(foo.png) 2 2, auto", "default", "none", "context-menu", "cell", "vertical-text", "alias", "copy", "no-drop", "not-allowed",
"ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "col-resize", "row-resize", "all-scroll", "zoom-in", "zoom-out"
],
"nav-index": ["auto", "1", "10"],
From d228adbedc40092617405ea5677b2c2030d26d29 Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 20:41:43 +0900
Subject: [PATCH 054/668] Update Text
-add support for Text Decoration
Text Decoration is a spec that separates from Text.
---
tests.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index c341a9a3..ff323a80 100644
--- a/tests.js
+++ b/tests.js
@@ -306,7 +306,13 @@ window.Specs = {
"word-spacing": ["50%", "1em .5em", "1em .5em 2em", "normal 1em 2em"],
"letter-spacing": ["50%", "1em .5em", "1em .5em 2em", "normal 1em 2em"],
"text-indent": ["1em hanging", "1em each-line", "1em hanging each-line"],
- "hanging-punctuation": ["none", "first", "last", "force-end", "allow-end", "first last"],
+ "hanging-punctuation": ["none", "first", "last", "force-end", "allow-end", "first last"]
+ }
+ },
+
+ "css-text-decor-3": {
+ "title": "Text Decoration",
+ "properties": {
"text-decoration-line": ["none", "underline", "overline", "line-through", "underline overline"],
"text-decoration-color": "white",
"text-decoration-style": ["solid", "double", "dotted", "dashed", "wavy"],
From e0a9104cccfcc5e17cc37567de8bf8523c5e51b4 Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 21:09:47 +0900
Subject: [PATCH 055/668] Update Text Decoration
-text-decoration-skip: add "box-decoration"
-text-underline-position: change "below" to "under"
-text-emphasis-position: change "above" and "below" to "over" and "under"
---
tests.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tests.js b/tests.js
index ff323a80..74ead7ad 100644
--- a/tests.js
+++ b/tests.js
@@ -317,12 +317,12 @@ window.Specs = {
"text-decoration-color": "white",
"text-decoration-style": ["solid", "double", "dotted", "dashed", "wavy"],
"text-decoration": "underline dotted green",
- "text-decoration-skip": ["none", "objects", "spaces", "ink", "edges", "objects edges"],
- "text-underline-position": ["auto", "alphabetic","below", "left", "below right"],
+ "text-decoration-skip": ["none", "objects", "spaces", "ink", "edges", "box-decoration", "objects edges"],
+ "text-underline-position": ["auto", "alphabetic","under", "left", "under right"],
"text-emphasis-style": ["none", "filled", "open dot", "circle", "double-circle", "triangle", "sesame", "'foo'"],
"text-emphasis-color": "green",
"text-emphasis": "open dot green",
- "text-emphasis-position": ["above right", "below left"],
+ "text-emphasis-position": ["over right", "under left"],
"text-shadow": ["1px 1px", "0 0 black", "1px 2px 3px black"]
}
},
From f6db3cf8fa7a78e474dd6e0777894cd60fdf98b0 Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 21:55:24 +0900
Subject: [PATCH 056/668] Update Fonts
-font-variant-ligatures: add "contextual" and "no-contextual"
-font-variant-alternates: remove "contextual" and "no-contextual"
-font-variant: add "none"
---
tests.js | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/tests.js b/tests.js
index 74ead7ad..4d506501 100644
--- a/tests.js
+++ b/tests.js
@@ -340,7 +340,8 @@ window.Specs = {
"common-ligatures", "no-common-ligatures",
"discretionary-ligatures", "no-discretionary-ligatures",
"historical-ligatures", "no-historical-ligatures",
- "common-ligatures discretionary-ligatures historical-ligatures"
+ "contextual", "no-contextual",
+ "common-ligatures discretionary-ligatures historical-ligatures contextual"
],
"font-variant-caps": ["normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "titling-caps", "unicase"],
"font-variant-numeric": [
@@ -355,9 +356,7 @@ window.Specs = {
],
"font-variant-alternates": [
"normal",
- "contextual", "no-contextual",
- "historical-forms",
- "contextual historical-forms"
+ "historical-forms"
// TODO add tests for functions
],
"font-variant-east-asian": [
@@ -366,7 +365,7 @@ window.Specs = {
"full-width", "proportional-width",
"ruby", "simplified full-width ruby"
],
- "font-variant": "sub lining-nums contextual ruby",
+ "font-variant": ["none", "sub lining-nums contextual ruby"],
"font-feature-settings": ["normal", "'c2sc'", "'smcp' on", "'liga' off", "'smcp', 'swsh' 2"],
"font-language-override": ["normal", "'SRB'"],
"unicode-range": ["U+416", "U+0-7F", "U+A5, U+4E00-9FFF", "U+30??"]
From 12a4bdb23672e4d6b9fd1a9e16b8618aa8646b68 Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 22:16:17 +0900
Subject: [PATCH 057/668] Update Writing Modes
-unicode-bidi: add "isolate-override"
-text-orientation: change "mixed-right" to "mixed"
-text-combine-horizontal: remove "numeric 2", "digits 2", "alpha 2", "latin 2", "alphanumeric 2"
-remove text-combine-mode
---
tests.js | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tests.js b/tests.js
index 4d506501..e94047d4 100644
--- a/tests.js
+++ b/tests.js
@@ -379,12 +379,11 @@ window.Specs = {
"css3-writing-modes": {
"title": "Writing Modes",
"properties": {
- "unicode-bidi": ["isolate", "plaintext"],
+ "unicode-bidi": ["isolate", "isolate-override", "plaintext"],
"writing-mode": ["horizontal-tb", "vertical-rl", "vertical-lr"],
- "text-orientation": ["mixed-right", "upright", "sideways-right", "sideways-left", "sideways", "use-glyph-orientation"],
+ "text-orientation": ["mixed", "upright", "sideways-right", "sideways-left", "sideways", "use-glyph-orientation"],
"caption-side": ["before", "after"],
- "text-combine-horizontal": ["none", "all", "numeric 2", "digits 2", "alpha 2", "latin 2", "alphanumeric 2"],
- "text-combine-mode": ["auto", "compress", "no-compress", "use-glyphs"]
+ "text-combine-horizontal": ["none", "all"]
}
},
From 8a97d3a0a5de7c49966eb783fce323b13cbfbd5d Mon Sep 17 00:00:00 2001
From: Syoichi Tsuyuhara
Date: Sun, 11 Nov 2012 23:04:35 +0900
Subject: [PATCH 058/668] Remove border-width from properties of Values and
Units
border-width property doesn't accept a value containing the percentage,
like "calc(100%/3 - 2*1em - 2*1px)".
---
tests.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index e94047d4..f4472bdb 100644
--- a/tests.js
+++ b/tests.js
@@ -432,8 +432,7 @@ window.Specs = {
"values": {
"properties": [
"width",
- "padding",
- "border-width"
+ "padding"
],
"rem": "5rem",
"ch": "5ch",
From 380b8c5c4c5f30b8a92d2c4c669d88b747d3f65b Mon Sep 17 00:00:00 2001
From: Daniel Holbert
Date: Fri, 29 Mar 2013 14:03:51 -0700
Subject: [PATCH 059/668] Remove check for "min-width:auto"/"min-height:auto"
as part of flexbox section, since these values were recently removed from the
flexbox spec.
---
tests.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/tests.js b/tests.js
index f4472bdb..42bbb967 100644
--- a/tests.js
+++ b/tests.js
@@ -486,8 +486,6 @@ window.Specs = {
"flex-shrink": ["1","10"],
"flex-wrap": ["nowrap", "wrap", "wrap-reverse"],
"justify-content": ["flex-start", "flex-end", "center", "space-between", "space-around"],
- "min-height": ["auto"],
- "min-width": ["auto"],
"order": ["0", "1"],
}
}
From ae56aa70d23af0d4dab9fbaa00ea41dd2a74d852 Mon Sep 17 00:00:00 2001
From: Christoph
Date: Sat, 1 Jun 2013 12:07:57 +0300
Subject: [PATCH 060/668] Add test for CSS3 all
http://www.w3.org/TR/css3-cascade/#all-shorthand
---
tests.js | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index 42bbb967..8a066406 100644
--- a/tests.js
+++ b/tests.js
@@ -460,7 +460,7 @@ window.Specs = {
"rest-after": ["none", "x-weak", "weak", "medium", "strong", "x-strong", "+3s", "250ms"],
"rest": ["none", "x-weak", "weak", "medium", "strong", "x-strong", "+3s", "250ms"],
"cue-before": ["-6dB", "0", "6db"],
- "cue-after": ["-6dB", "0", "6db"],
+ "cue"-after": ["-6dB", "0", "6db"],
"cue": ["-6dB", "0", "6db"],
"voice-family": ["preserve"],
"voice-rate": ["normal", "x-slow", "slow", "medium", "fast", "x-fast", "0", "100%"],
@@ -486,7 +486,14 @@ window.Specs = {
"flex-shrink": ["1","10"],
"flex-wrap": ["nowrap", "wrap", "wrap-reverse"],
"justify-content": ["flex-start", "flex-end", "center", "space-between", "space-around"],
- "order": ["0", "1"],
+ "order": ["0", "1"]
+ }
+ },
+
+ "css3-cascade": {
+ "title": "Resetting All Properties",
+ "properties": {
+ "all": ["initial", "inherit", "default"]
}
}
};
From 3bacbcf79835935bd1a1d3df69985f321eb96b22 Mon Sep 17 00:00:00 2001
From: Christoph
Date: Mon, 10 Jun 2013 10:16:57 +0300
Subject: [PATCH 061/668] Update tests.js
remove extra "
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 8a066406..af75a19e 100644
--- a/tests.js
+++ b/tests.js
@@ -460,7 +460,7 @@ window.Specs = {
"rest-after": ["none", "x-weak", "weak", "medium", "strong", "x-strong", "+3s", "250ms"],
"rest": ["none", "x-weak", "weak", "medium", "strong", "x-strong", "+3s", "250ms"],
"cue-before": ["-6dB", "0", "6db"],
- "cue"-after": ["-6dB", "0", "6db"],
+ "cue-after": ["-6dB", "0", "6db"],
"cue": ["-6dB", "0", "6db"],
"voice-family": ["preserve"],
"voice-rate": ["normal", "x-slow", "slow", "medium", "fast", "x-fast", "0", "100%"],
From 2473a5604068ea49fffd4fef00f7c460df4e4d4a Mon Sep 17 00:00:00 2001
From: Christoph
Date: Mon, 19 Aug 2013 11:23:10 +0200
Subject: [PATCH 062/668] updated "all" property to newest version of spec
Currently in "last call" status now so it shouldn't change anymore.
http://www.w3.org/TR/2013/WD-css-cascade-3-20130730/#all
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index af75a19e..077a77bf 100644
--- a/tests.js
+++ b/tests.js
@@ -493,7 +493,7 @@ window.Specs = {
"css3-cascade": {
"title": "Resetting All Properties",
"properties": {
- "all": ["initial", "inherit", "default"]
+ "all": ["initial", "inherit", "unset"]
}
}
};
From d654bbe4602bc48a1dc0868850a4abab084656dd Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 17:29:15 +0200
Subject: [PATCH 063/668] Update Writing Modes module
according the latest editor's draft
http://dev.w3.org/csswg/css-writing-modes-3/
---
tests.js | 43 ++++++++++++++++++++++---------------------
1 file changed, 22 insertions(+), 21 deletions(-)
diff --git a/tests.js b/tests.js
index 077a77bf..ce9a166e 100644
--- a/tests.js
+++ b/tests.js
@@ -22,7 +22,7 @@ window.Specs = {
"border-image-outset": ["10px", "20", "10px 20", "10px 20px", "20 30", "2px 3px 4", "1 2px 3px 4"],
"border-image-repeat": ["stretch", "repeat", "round", "space"].times(1, 2),
"border-image": [
- "url(foo.png) 10", "url(foo.png) 10%", "url(foo.png) 10% fill",
+ "url(foo.png) 10", "url(foo.png) 10%", "url(foo.png) 10% fill",
"url(foo.png) 10 round", "url(foo.png) 10 stretch repeat",
"url(foo.png) 10 / 10px", "url(foo.png) 10 / 10% / 10px",
"url(foo.png) fill 10 / 10% / 10px", "url(foo.png) fill 10 / 10% / 10px space"
@@ -34,7 +34,7 @@ window.Specs = {
]
}
},
-
+
"css3-images": {
"title": "Image Values and Replaced Content",
"values": {
@@ -44,7 +44,7 @@ window.Specs = {
"border-image",
"cursor",
"content"
-
+
],
"linear-gradient": [
"linear-gradient(white, black)",
@@ -85,7 +85,7 @@ window.Specs = {
"image-orientation": ["0deg", "90deg", "45deg", "1turn", "100grad", "2rad"]
}
},
-
+
"css3-selectors": {
"title": "Selectors",
"selectors": {
@@ -141,7 +141,7 @@ window.Specs = {
":not()": [":not(*)", ":not(element)", ":not(.class):not(#id):not([attr]):not(:link)"],
}
},
-
+
/*
* Note: the following media queries must be true in supporting UAs!
*/
@@ -187,7 +187,7 @@ window.Specs = {
"grid": ["all, (grid)", "(grid: 0), (grid: 1)"]
}
},
-
+
"css3-ui": {
"title": "Basic User Interface",
"properties": {
@@ -225,7 +225,7 @@ window.Specs = {
"::repeat-index": "::repeat-index"
}
},
-
+
"css3-transitions": {
"title": "Transitions",
"properties": {
@@ -241,7 +241,7 @@ window.Specs = {
"transition": "1s 2s width linear"
}
},
-
+
"css3-animations": {
"title": "Animations",
"properties": {
@@ -264,7 +264,7 @@ window.Specs = {
"@keyframes": "@keyframes foo"
}
},
-
+
"css3-transforms": {
"title": "Transforms",
"properties": {
@@ -290,7 +290,7 @@ window.Specs = {
"backface-visibility": ["visible", "hidden"],
}
},
-
+
"css3-text": {
"title": "Text",
"properties": {
@@ -326,7 +326,7 @@ window.Specs = {
"text-shadow": ["1px 1px", "0 0 black", "1px 2px 3px black"]
}
},
-
+
"css3-fonts": {
"title": "Fonts",
"properties": {
@@ -375,18 +375,19 @@ window.Specs = {
"@font-feature-values": "@font-feature-values Jupiter Sans"
}
},
-
+
"css3-writing-modes": {
"title": "Writing Modes",
"properties": {
- "unicode-bidi": ["isolate", "isolate-override", "plaintext"],
+ "direction": ["ltr", "rtl"],
+ "unicode-bidi": ["normal", "embed", "isolate", "bidi-override", "isolate-override", "plaintext"],
"writing-mode": ["horizontal-tb", "vertical-rl", "vertical-lr"],
"text-orientation": ["mixed", "upright", "sideways-right", "sideways-left", "sideways", "use-glyph-orientation"],
- "caption-side": ["before", "after"],
- "text-combine-horizontal": ["none", "all"]
+ "caption-side": ["block-start", "block-end"],
+ "text-combine-horizontal": ["none", "all", "digits 2"]
}
},
-
+
"css3-color": {
"title": "Color",
"values": {
@@ -407,7 +408,7 @@ window.Specs = {
"opacity": ["-5", "0", ".5", "1", "2"]
}
},
-
+
"css3-multicol": {
"title": "Multi-column Layout",
"properties": {
@@ -426,7 +427,7 @@ window.Specs = {
"column-fill": ["auto", "balance"]
}
},
-
+
"css3-values": {
"title": "Values and Units",
"values": {
@@ -445,7 +446,7 @@ window.Specs = {
"toggle()": "toggle(1px, 2px)"
}
},
-
+
"css3-speech": {
"title": "Speech",
"properties": {
@@ -470,7 +471,7 @@ window.Specs = {
"voice-duration": ["auto", "+3s", "250ms"]
}
},
-
+
"css3-flexbox": {
"title": "Flexible Box Layout",
"properties": {
@@ -489,7 +490,7 @@ window.Specs = {
"order": ["0", "1"]
}
},
-
+
"css3-cascade": {
"title": "Resetting All Properties",
"properties": {
From d95098205af3e74589ebdd95a9d1ef4c85035d3a Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 19:06:22 +0200
Subject: [PATCH 064/668] Add missing testing dpcm value to image-resolution
test
---
tests.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index ce9a166e..154aaa1a 100644
--- a/tests.js
+++ b/tests.js
@@ -44,7 +44,6 @@ window.Specs = {
"border-image",
"cursor",
"content"
-
],
"linear-gradient": [
"linear-gradient(white, black)",
@@ -81,7 +80,7 @@ window.Specs = {
"properties": {
"object-fit": ["fill", "contain", "cover", "none", "scale-down"],
"object-position": ["50% 50%", "center", "top right", "bottom 10px right 20px"],
- "image-resolution": ["from-image", "from-image snap", "snap from-image", "1dppx", "300dpi", "from-image 300dpi", "300dpi from-image", "300dpi from-image snap"],
+ "image-resolution": ["from-image", "from-image snap", "snap from-image", "1dppx", "1dpcm", "300dpi", "from-image 300dpi", "300dpi from-image", "300dpi from-image snap"],
"image-orientation": ["0deg", "90deg", "45deg", "1turn", "100grad", "2rad"]
}
},
From cf544df131aa751264add4f667b82ebeb0a4ba49 Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 00:25:45 +0200
Subject: [PATCH 065/668] Add missing CSS 3 Regions Module
---
tests.js | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/tests.js b/tests.js
index 154aaa1a..334e8d5e 100644
--- a/tests.js
+++ b/tests.js
@@ -446,6 +446,17 @@ window.Specs = {
}
},
+ "css3-regions": {
+ "title": "Regions",
+ "properties": {
+ "break-after": ["region",],
+ "break-before": ["region"],
+ "flow-from": ["none", "named-flow"],
+ "flow-into": ["none", "named-flow"],
+ "region-fragment": ["auto", "break"]
+ }
+ },
+
"css3-speech": {
"title": "Speech",
"properties": {
From 0e107d8f9f7d892835b1128110cedcb880274da7 Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 17:35:42 +0200
Subject: [PATCH 066/668] Fix typo in break-after test in CSS 3 Regions Module
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 334e8d5e..3fc83a26 100644
--- a/tests.js
+++ b/tests.js
@@ -449,7 +449,7 @@ window.Specs = {
"css3-regions": {
"title": "Regions",
"properties": {
- "break-after": ["region",],
+ "break-after": ["region"],
"break-before": ["region"],
"flow-from": ["none", "named-flow"],
"flow-into": ["none", "named-flow"],
From fd32fabae566de71c357a7fa7a640f5bf295efde Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 20:12:26 +0200
Subject: [PATCH 067/668] Update CSS 3 Text Decoration module
- mirror improvements in tests
- 'alphabetic' value is not longer valid in 'text-underline-position'
property according to the specification
---
tests.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests.js b/tests.js
index 3fc83a26..1a7ebf67 100644
--- a/tests.js
+++ b/tests.js
@@ -317,12 +317,12 @@ window.Specs = {
"text-decoration-style": ["solid", "double", "dotted", "dashed", "wavy"],
"text-decoration": "underline dotted green",
"text-decoration-skip": ["none", "objects", "spaces", "ink", "edges", "box-decoration", "objects edges"],
- "text-underline-position": ["auto", "alphabetic","under", "left", "under right"],
- "text-emphasis-style": ["none", "filled", "open dot", "circle", "double-circle", "triangle", "sesame", "'foo'"],
+ "text-underline-position": ["auto", "under", "left", "right", "under left", "under right"],
+ "text-emphasis-style": ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame", "open dot", "'foo'"],
"text-emphasis-color": "green",
"text-emphasis": "open dot green",
- "text-emphasis-position": ["over right", "under left"],
- "text-shadow": ["1px 1px", "0 0 black", "1px 2px 3px black"]
+ "text-emphasis-position": ["over left", "over right", "under left", "under right"],
+ "text-shadow": ["none", "1px 1px", "0 0 black", "1px 2px 3px black"]
}
},
From fd9df72e230293f70d3f85ca3cbdf050923d1255 Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 20:55:37 +0200
Subject: [PATCH 068/668] Update CSS 3 Text Module
- add missing word-wrap property
- remove invalid values in several properties according to the latest
editor's draft
---
tests.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index 1a7ebf67..271d7d2b 100644
--- a/tests.js
+++ b/tests.js
@@ -299,9 +299,10 @@ window.Specs = {
"word-break": ["normal", "keep-all", "break-all"],
"hyphens": ["auto", "manual", "none"],
"overflow-wrap": ["normal", "break-word"],
- "text-align": ["start", "end", "'a'", "match-parent", "start end"],
+ "word-wrap": ["normal", "break-word"],
+ "text-align": ["start", "end", "match-parent", "start end"],
"text-align-last": ["auto", "start", "end", "left", "right", "center", "justify"],
- "text-justify": ["auto", "none", "inter-word", "inter-ideograph", "inter-cluster", "distribute", "kashida"],
+ "text-justify": ["auto", "none", "inter-word", "distribute"],
"word-spacing": ["50%", "1em .5em", "1em .5em 2em", "normal 1em 2em"],
"letter-spacing": ["50%", "1em .5em", "1em .5em 2em", "normal 1em 2em"],
"text-indent": ["1em hanging", "1em each-line", "1em hanging each-line"],
From fb99f80dd71f7b11b990db7dae4e211f2e91162b Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 22:40:41 +0200
Subject: [PATCH 069/668] Add missing CSS 3 Grid Layout Module
---
tests.js | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/tests.js b/tests.js
index 271d7d2b..04f417e1 100644
--- a/tests.js
+++ b/tests.js
@@ -502,6 +502,29 @@ window.Specs = {
}
},
+ "css3-grid-layout": {
+ "title": "Grid Layout",
+ "properties": {
+ "display": ["grid", "inline-grid"],
+ "grid-template-columns": ["none", "subgrid", "auto", "100px", "1fr", "100px 1fr auto", "repeat(2, 100px 1fr)", "100px, 1fr, 100px, 1fr, 100px", "100px 1fr max-content minmax(min-content, 1fr)", "10px (col-start) 250px (col-end)"],
+ "grid-template-rows": ["none", "subgrid", "auto", "100px", "1fr", "100px 1fr auto", "repeat(2, 100px 1fr)", "100px, 1fr, 100px, 1fr, 100px", "100px 1fr max-content minmax(min-content, 1fr)", "10px (row-start) 250px (row-end)"],
+ "grid-template-areas": ["none", "articles", "nav articles"],
+ "grid-template": ["none", "auto 1fr auto / auto 1fr", "auto 1fr auto / (row-start) 'a a a' (row-end)"],
+ "grid-auto-columns": ["auto", "1fr", "100px", "max-content", "minmax(min-content, 1fr)"],
+ "grid-auto-rows": ["auto", "1fr", "100px", "min-content", "minmax(min-content, 1fr)"],
+ "grid-auto-flow": ["none", "rows", "colums"],
+ "grid-auto-position": ["1 / 1"],
+ "grid": ["columns 1fr / auto"],
+ "grid-row-start": ["auto", "4", "'C'", "'C' 2", "span 'C'", 'span 1'],
+ "grid-column-start": ["auto", "4", "'C'", "'C' 2", "span 'C'", 'span 1'],
+ "grid-row-end": ["auto", "4", "'C'", "'C' 2", "span 'C'", 'span 1'],
+ "grid-column-end": ["auto", "4", "'C'", "'C' 2", "span 'C'", 'span 1'],
+ "grid-column": ["auto", "1", "-1", "1 / 1", "1 / -1", "auto / auto", "2 / span 2"],
+ "grid-row": ["auto", "1", "-1", "1 / 1", "1 / -1", "auto / auto", "2 / span 2"],
+ "grid-area": ["1 / 1", "1 / span 1", "span / 10 / -1"]
+ }
+ },
+
"css3-cascade": {
"title": "Resetting All Properties",
"properties": {
From 38f3ff3c3fbb28d87591cfdf6bf2d7771071d38b Mon Sep 17 00:00:00 2001
From: deepj
Date: Sun, 8 Sep 2013 22:54:04 +0200
Subject: [PATCH 070/668] Fix transform-origin and perspective-origin tests
---
tests.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests.js b/tests.js
index 04f417e1..7f451bdb 100644
--- a/tests.js
+++ b/tests.js
@@ -282,10 +282,10 @@ window.Specs = {
"translate3d(50px, -24px, 5px) rotate3d(1, 2, 3, 180deg) scale3d(-1, 0, .5)",
"perspective(600px)"
],
- "transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"],
+ "transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "left 50% 0"],
"transform-style": ["flat", "preserve-3d"],
"perspective": ["none", "0", "600px"],
- "perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "right 10px bottom 20px"],
+ "perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%"],
"backface-visibility": ["visible", "hidden"],
}
},
From 52eaa0e60cb3b248bf5967ba2e095ec9aedd4669 Mon Sep 17 00:00:00 2001
From: deepj
Date: Mon, 9 Sep 2013 00:03:29 +0200
Subject: [PATCH 071/668] Perspective property supports only positive lengths
Zero doesn't belong to positive numbers
---
tests.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 7f451bdb..098e10b1 100644
--- a/tests.js
+++ b/tests.js
@@ -284,7 +284,7 @@ window.Specs = {
],
"transform-origin": ["10px", "top", "top left", "50% 100%", "left 0%", "left 50% 0"],
"transform-style": ["flat", "preserve-3d"],
- "perspective": ["none", "0", "600px"],
+ "perspective": ["none", "600px"],
"perspective-origin": ["10px", "top", "top left", "50% 100%", "left 0%"],
"backface-visibility": ["visible", "hidden"],
}
From 76a95db1983c5b4d9e64c9bd5a0f718121043269 Mon Sep 17 00:00:00 2001
From: DasBlub
Date: Sun, 20 Oct 2013 16:34:31 +0200
Subject: [PATCH 072/668] Make index.html pass the W3C HTML5 validator
- hgroup has been removed from the HTML5 spec:
http://lists.w3.org/Archives/Public/public-html-admin/2013Apr/0003.html
- An img element must have an alt attribute
- "&" has to be escaped as & (this includes "&" in URLs!)
- Escape Unicode character
---
index.html | 10 +++++-----
style.css | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/index.html b/index.html
index 48fe48c8..812dfff3 100644
--- a/index.html
+++ b/index.html
@@ -19,10 +19,10 @@
The CSS3 test
-
+
Your browser scores 0%
Determined by passing tests out of total for features
-
+
@@ -57,11 +57,11 @@ Cheaters
diff --git a/style.css b/style.css
index 00924d67..2e2507bd 100644
--- a/style.css
+++ b/style.css
@@ -97,11 +97,11 @@ body > h1 {
margin-right: 2em;
}
- #tests hgroup {
+ #tests #hgroup {
text-align: center;
}
- #tests > hgroup > h1 {
+ #tests > #hgroup > h1 {
font-size: 250%;
}
From 9f00ed89bcbd3f300817a6ef37f0e21408de9611 Mon Sep 17 00:00:00 2001
From: deepj
Date: Fri, 14 Feb 2014 02:48:49 +0100
Subject: [PATCH 073/668] Add CSS3 Box Alignment Module
---
tests.js | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/tests.js b/tests.js
index 098e10b1..6f6b7695 100644
--- a/tests.js
+++ b/tests.js
@@ -486,9 +486,9 @@ window.Specs = {
"css3-flexbox": {
"title": "Flexible Box Layout",
"properties": {
- "align-content": ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"],
- "align-items": ["flex-start", "flex-end", "center", "baseline", "stretch"],
- "align-self": ["flex-start", "flex-end", "center", "baseline", "stretch", "auto"],
+ "align-content": ["flex-start", "flex-end", "space-between", "space-around"],
+ "align-items": ["flex-start", "flex-end"],
+ "align-self": ["flex-start", "flex-end"],
"display": ["flex", "inline-flex"],
"flex": ["none","5 7 10%"],
"flex-basis": ["auto","1px"],
@@ -497,7 +497,7 @@ window.Specs = {
"flex-grow": ["0","5"],
"flex-shrink": ["1","10"],
"flex-wrap": ["nowrap", "wrap", "wrap-reverse"],
- "justify-content": ["flex-start", "flex-end", "center", "space-between", "space-around"],
+ "justify-content": ["flex-start", "flex-end", "space-between", "space-around"],
"order": ["0", "1"]
}
},
@@ -525,6 +525,18 @@ window.Specs = {
}
},
+ "css3-align": {
+ "title": "Box Alignment",
+ "properties": {
+ "align-self": ["auto", "stretch", "baseline", "center", "start", "end", "self-start", "self-end", "left", "right", "true", "safe", "start true", "start safe"],
+ "align-items": ["auto", "stretch", "baseline", "center", "start", "end", "self-start", "self-end", "left", "right", "true", "safe", "start true", "start safe"],
+ "align-content": ["auto", "baseline", "center", "start", "end", "self-start", "self-end", "left", "right", "start start", "start flex-end", "start start self-end", "start start safe", "start start self-end safe"],
+ "justify-self": ["auto", "stretch", "baseline", "center", "start", "end", "self-start", "self-end", "left", "right", "true", "safe", "start true", "start safe", "self-start true", "self-end safe"],
+ "justify-items": ["auto", "stretch", "baseline", "center", "start", "end", "self-start", "self-end", "left", "right", "true", "safe", "start true", "start safe", "self-start true", "self-end safe", "legacy", "legacy left", "legacy right", "legacy center"],
+ "justify-content": ["auto", "baseline", "center", "start", "end", "self-start", "self-end", "left", "right", "start start", "start self-end", "start start self-end", "start start safe", "start start self-end safe"]
+ }
+ },
+
"css3-cascade": {
"title": "Resetting All Properties",
"properties": {
From 94658078c06f2b5bf7a14f5f8e1a1a8f8992a18e Mon Sep 17 00:00:00 2001
From: deepj
Date: Fri, 14 Feb 2014 16:40:48 +0100
Subject: [PATCH 074/668] Add Compositing and Blending Module
---
tests.js | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 098e10b1..d7fbaeb5 100644
--- a/tests.js
+++ b/tests.js
@@ -530,5 +530,14 @@ window.Specs = {
"properties": {
"all": ["initial", "inherit", "unset"]
}
- }
+ },
+
+ "compositing": {
+ "title": "Compositing and Blending",
+ "properties": {
+ "mix-blend-mode": ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"],
+ "isolation": ["auto", "isolate"],
+ "background-blend-mode": ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity", "normal, multiply"]
+ }
+ }
};
From b003ee198b48b45396704db001235bb2a5a8081a Mon Sep 17 00:00:00 2001
From: deepj
Date: Fri, 14 Feb 2014 20:24:34 +0100
Subject: [PATCH 075/668] Add Masking Module
---
tests.js | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/tests.js b/tests.js
index 098e10b1..8373c092 100644
--- a/tests.js
+++ b/tests.js
@@ -530,5 +530,28 @@ window.Specs = {
"properties": {
"all": ["initial", "inherit", "unset"]
}
- }
+ },
+
+ "css-masking": {
+ "title": "Masking",
+ "properties": {
+ "clip-path": ["url('#clip')", "rectangle", "inset-rectangle", "circle", "ellipse", "border-box", "padding-box", "content-box", "margin-box", "fill", "stroke", "view-box", "none"],
+ "mask-image": ["none", "linear-gradient(black 0%, transparent 100%)", "url(image.png)"],
+ "mask-type": ["alpha", "luminance", "auto"],
+ "mask-repeat": ["repeat-x", "repeat-y"].concat(["repeat", "space", "round", "no-repeat"].times(1, 2)),
+ "mask-position": ["center", "left 50%", "bottom 10px right 20px", "bottom 10px right", "top right 10px"],
+ "mask-clip": ["border-box", "padding-box", "content-box", "margin-box", "fill", "stroke", "view-box", "no-clip"],
+ "mask-origin": ["border-box", "padding-box", "content-box", "margin-box", "fill", "stroke", "view-box"],
+ "mask-size": ["auto", "10px", "cover", "contain", "10px", "50%", "10px auto", "auto 10%", "50em 50%"],
+ "mask": ["top", "space", "url(image.png#')", "url(image.png') luminance", "url(image.png') luminance top space"],
+ "mask-box-source": ["none", "url(image.png#mask)"],
+ "mask-box-slice": ["0 fill", "50% fill", "1.1 fill", "0 1 fill", "0 1 2 fill", "0 1 2 3 fill"],
+ "mask-box-width": ["auto", "10px", "50%", "1", "1.0", "auto 1", "auto 1 50%", "auto 1 50% 1.1"],
+ "mask-box-outset": ["0", "1.1", "0 1", "0 1 2", "0 1 2 3"],
+ "mask-box-repeat": ["stretch", "repeat", "round", "space"].times(1,2),
+ "mask-box": ["url(image.png)", "url(image.png) 10px", "url(image.png#mask) space", "url(image.png) 1 fill", "url(image.png) 1 fill 10px", "url(image.png) 1 fill 10px", "url(image.png#mask) 1 fill 10px 2"],
+ "mask-source-type": ["luminance", "alpha"]
+ }
+ }
+
};
From 04f3a7ccfb62ca44cf5560aaf68bc1140c20f67a Mon Sep 17 00:00:00 2001
From: Lea Verou
Date: Fri, 21 Feb 2014 19:03:13 +0200
Subject: [PATCH 076/668] Update paypal email
---
index.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/index.html b/index.html
index 812dfff3..2b524a06 100644
--- a/index.html
+++ b/index.html
@@ -61,7 +61,7 @@ Cheaters
Results
✿ Handcrafted by Lea Verou
- ✿ Donate
+ ✿ Donate
@@ -70,4 +70,4 @@ Cheaters
-
\ No newline at end of file
+