[gtk+] Add some css parser tests



commit d081b309d5b87bff1b68e189289de5b3c0ef7dc6
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Dec 20 17:33:24 2015 -0500

    Add some css parser tests
    
    These tests exercise many allowed ways to specify various
    properties.

 testsuite/css/parser/background-clip.css           |   27 +++++
 testsuite/css/parser/background-clip.ref.css       |   27 +++++
 testsuite/css/parser/background-image.css          |   88 ++++++++++++++
 testsuite/css/parser/background-image.ref.css      |   87 ++++++++++++++
 testsuite/css/parser/background-origin.css         |   27 +++++
 testsuite/css/parser/background-origin.ref.css     |   27 +++++
 testsuite/css/parser/background-repeat.css         |   16 +++
 testsuite/css/parser/background-repeat.ref.css     |   16 +++
 testsuite/css/parser/background-size.css           |   16 +++
 testsuite/css/parser/background-size.ref.css       |   16 +++
 testsuite/css/parser/border-color.css              |   34 ++++++
 testsuite/css/parser/border-color.ref.css          |   34 ++++++
 testsuite/css/parser/border-radius-shorthand.css   |  113 ++++++++++++++++++
 ...adius.errors => border-radius-shorthand.errors} |    0
 .../css/parser/border-radius-shorthand.ref.css     |  104 +++++++++++++++++
 testsuite/css/parser/border-radius.css             |  123 ++++++--------------
 testsuite/css/parser/border-radius.ref.css         |  114 ++++++------------
 testsuite/css/parser/border-style.css              |   90 ++++++++++++++
 testsuite/css/parser/border-style.ref.css          |   90 ++++++++++++++
 testsuite/css/parser/border-width.css              |   34 ++++++
 testsuite/css/parser/border-width.ref.css          |   34 ++++++
 testsuite/css/parser/box-shadow.css                |   35 ++++++
 testsuite/css/parser/box-shadow.ref.css            |   35 ++++++
 testsuite/css/parser/color.css                     |   65 ++++++++++
 testsuite/css/parser/color.ref.css                 |   65 ++++++++++
 testsuite/css/parser/font-family.css               |   54 +--------
 testsuite/css/parser/font-family.ref.css           |   16 +--
 testsuite/css/parser/font-size.css                 |   79 +++++++++++++
 testsuite/css/parser/font-size.ref.css             |   79 +++++++++++++
 testsuite/css/parser/font-stretch.css              |   47 ++++++++
 testsuite/css/parser/font-stretch.ref.css          |   47 ++++++++
 testsuite/css/parser/font-style.css                |   23 ++++
 testsuite/css/parser/font-style.ref.css            |   23 ++++
 testsuite/css/parser/font-variant.css              |   19 +++
 testsuite/css/parser/font-variant.ref.css          |   19 +++
 testsuite/css/parser/font-weight.css               |   63 ++++++++++
 testsuite/css/parser/font-weight.ref.css           |   63 ++++++++++
 testsuite/css/parser/letter-spacing.css            |   23 ++++
 testsuite/css/parser/letter-spacing.ref.css        |   23 ++++
 testsuite/css/parser/margin.css                    |   34 ++++++
 testsuite/css/parser/margin.ref.css                |   34 ++++++
 testsuite/css/parser/opacity.css                   |   23 ++++
 testsuite/css/parser/opacity.ref.css               |   23 ++++
 testsuite/css/parser/outline-color.css             |   19 +++
 testsuite/css/parser/outline-color.ref.css         |   19 +++
 testsuite/css/parser/outline-offset.css            |   23 ++++
 testsuite/css/parser/outline-offset.ref.css        |   23 ++++
 testsuite/css/parser/outline-radius.css            |   62 ++++++++++
 testsuite/css/parser/outline-radius.ref.css        |   62 ++++++++++
 testsuite/css/parser/outline-style.css             |   51 ++++++++
 testsuite/css/parser/outline-style.ref.css         |   51 ++++++++
 testsuite/css/parser/outline-width.css             |   19 +++
 testsuite/css/parser/outline-width.ref.css         |   19 +++
 testsuite/css/parser/padding.css                   |   34 ++++++
 testsuite/css/parser/padding.ref.css               |   34 ++++++
 testsuite/css/parser/text-decoration-color.css     |   27 +++++
 testsuite/css/parser/text-decoration-color.ref.css |   27 +++++
 testsuite/css/parser/text-decoration-line.css      |   23 ++++
 testsuite/css/parser/text-decoration-line.ref.css  |   23 ++++
 testsuite/css/parser/text-decoration-style.css     |   23 ++++
 testsuite/css/parser/text-decoration-style.ref.css |   23 ++++
 testsuite/css/parser/text-shadow.css               |   23 ++++
 testsuite/css/parser/text-shadow.ref.css           |   23 ++++
 63 files changed, 2394 insertions(+), 223 deletions(-)
---
diff --git a/testsuite/css/parser/background-clip.css b/testsuite/css/parser/background-clip.css
new file mode 100644
index 0000000..91b9b7c
--- /dev/null
+++ b/testsuite/css/parser/background-clip.css
@@ -0,0 +1,27 @@
+a {
+  background-clip: initial;
+}
+
+b {
+  background-clip: inherit;
+}
+
+c {
+  background-clip: unset;
+}
+
+d {
+  background-clip: border-box;
+}
+
+e {
+  background-clip: padding-box;
+}
+
+f {
+  background-clip: content-box;
+}
+
+g {
+  background-clip: border-box, border-box, content-box;
+}
diff --git a/testsuite/css/parser/background-clip.ref.css b/testsuite/css/parser/background-clip.ref.css
new file mode 100644
index 0000000..91b9b7c
--- /dev/null
+++ b/testsuite/css/parser/background-clip.ref.css
@@ -0,0 +1,27 @@
+a {
+  background-clip: initial;
+}
+
+b {
+  background-clip: inherit;
+}
+
+c {
+  background-clip: unset;
+}
+
+d {
+  background-clip: border-box;
+}
+
+e {
+  background-clip: padding-box;
+}
+
+f {
+  background-clip: content-box;
+}
+
+g {
+  background-clip: border-box, border-box, content-box;
+}
diff --git a/testsuite/css/parser/background-image.css b/testsuite/css/parser/background-image.css
new file mode 100644
index 0000000..f44b6e9
--- /dev/null
+++ b/testsuite/css/parser/background-image.css
@@ -0,0 +1,88 @@
+a {
+  background-image: initial;
+}
+
+b {
+  background-image: inherit;
+}
+
+c {
+  background-image: unset;
+}
+
+d {
+  background-image: none;
+}
+
+e {
+  background-image: none, none;
+}
+
+f {
+  background-image: url("test.png");
+}
+
+g {
+  background-image: linear-gradient(45deg, red 10%, green 20px);
+}
+
+h {
+  background-image: linear-gradient(to top, blue, black);
+}
+
+i {
+  background-image: linear-gradient(to bottom left, blue, black);
+}
+
+j {
+  background-image: linear-gradient(yellow, blue);
+}
+
+k {
+  background-image: repeating-linear-gradient(45deg, red 10%, green 20px);
+}
+
+l {
+  background-image: repeating-linear-gradient(to top, blue, black);
+}
+
+m {
+  background-image: repeating-linear-gradient(to bottom left, blue, black);
+
+}
+
+n {
+  background-image: repeating-linear-gradient(yellow, blue);
+}
+
+o {
+  background-image: cross-fade(40% linear-gradient(blue, black), linear-gradient(black, red));
+}
+
+p {
+  background-image: cross-fade(linear-gradient(blue, black), linear-gradient(black, red));
+}
+
+q {
+  background-image: cross-fade(40% linear-gradient(blue, black));
+}
+
+r {
+  background-image: -gtk-icontheme("object-select-symbolic");
+}
+
+s {
+  background-image: -gtk-scaled(-gtk-icontheme("object-select-symbolic"),linear-gradient(yellow, blue));
+}
+
+t {
+  background-image: -gtk-gradient(linear, left top, 0 1, from(red), to(green));
+}
+
+u {
+  background-image: -gtk-gradient(linear, center center, 0.2 bottom, color-stop(0, rgb(0,0,0)), 
color-stop(0.5, rgb(128,128,128)), color-stop(1, rgb(255,255,255)));
+}
+
+v {
+  background-image: -gtk-gradient(radial, left top, 0.1, 0 1, 0.3, color-stop(0, black), color-stop(1, 
blue));
+}
diff --git a/testsuite/css/parser/background-image.ref.css b/testsuite/css/parser/background-image.ref.css
new file mode 100644
index 0000000..9be98ec
--- /dev/null
+++ b/testsuite/css/parser/background-image.ref.css
@@ -0,0 +1,87 @@
+a {
+  background-image: initial;
+}
+
+b {
+  background-image: inherit;
+}
+
+c {
+  background-image: unset;
+}
+
+d {
+  background-image: none;
+}
+
+e {
+  background-image: none, none;
+}
+
+f {
+  background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAABmJLR0QA/wD/AP+gvaeTAAAAFUlEQVQImQXBAQEAAACAEP9PF1CpMCnkBftPnd1xAAAAAElFTkSuQmCC");
+}
+
+g {
+  background-image: linear-gradient(45deg, rgb(255,0,0) 10%, rgb(0,128,0) 20px);
+}
+
+h {
+  background-image: linear-gradient(to top, rgb(0,0,255), rgb(0,0,0));
+}
+
+i {
+  background-image: linear-gradient(to bottom left, rgb(0,0,255), rgb(0,0,0));
+}
+
+j {
+  background-image: linear-gradient(rgb(255,255,0), rgb(0,0,255));
+}
+
+k {
+  background-image: repeating-linear-gradient(45deg, rgb(255,0,0) 10%, rgb(0,128,0) 20px);
+}
+
+l {
+  background-image: repeating-linear-gradient(to top, rgb(0,0,255), rgb(0,0,0));
+}
+
+m {
+  background-image: repeating-linear-gradient(to bottom left, rgb(0,0,255), rgb(0,0,0));
+}
+
+n {
+  background-image: repeating-linear-gradient(rgb(255,255,0), rgb(0,0,255));
+}
+
+o {
+  background-image: cross-fade(40% linear-gradient(rgb(0,0,255), rgb(0,0,0)), linear-gradient(rgb(0,0,0), 
rgb(255,0,0)));
+}
+
+p {
+  background-image: cross-fade(linear-gradient(rgb(0,0,255), rgb(0,0,0)), linear-gradient(rgb(0,0,0), 
rgb(255,0,0)));
+}
+
+q {
+  background-image: cross-fade(40% linear-gradient(rgb(0,0,255), rgb(0,0,0)));
+}
+
+r {
+  background-image: -gtk-icontheme("object-select-symbolic");
+}
+
+s {
+  background-image: -gtk-scaled(-gtk-icontheme("object-select-symbolic"),linear-gradient(rgb(255,255,0), 
rgb(0,0,255)));
+}
+
+t {
+  background-image: -gtk-gradient (linear, left top, left bottom, from (rgb(255,0,0)), to (rgb(0,128,0)));
+}
+
+u {
+  background-image: -gtk-gradient (linear, center center, 0.20000000000000001 bottom, from (rgb(0,0,0)), 
color-stop (0.5, rgb(128,128,128)), to (rgb(255,255,255)));
+}
+
+v {
+  background-image: -gtk-gradient (radial, left top, 0.10000000000000001, left bottom, 0.29999999999999999, 
from (rgb(0,0,0)), to (rgb(0,0,255)));
+}
diff --git a/testsuite/css/parser/background-origin.css b/testsuite/css/parser/background-origin.css
new file mode 100644
index 0000000..f2ce823
--- /dev/null
+++ b/testsuite/css/parser/background-origin.css
@@ -0,0 +1,27 @@
+a {
+  background-origin: initial;
+}
+
+b {
+  background-origin: inherit;
+}
+
+c {
+  background-origin: unset;
+}
+
+d {
+  background-origin: border-box;
+}
+
+e {
+  background-origin: padding-box;
+}
+
+f {
+  background-origin: content-box;
+}
+
+g {
+  background-origin: border-box, border-box, content-box;
+}
diff --git a/testsuite/css/parser/background-origin.ref.css b/testsuite/css/parser/background-origin.ref.css
new file mode 100644
index 0000000..f2ce823
--- /dev/null
+++ b/testsuite/css/parser/background-origin.ref.css
@@ -0,0 +1,27 @@
+a {
+  background-origin: initial;
+}
+
+b {
+  background-origin: inherit;
+}
+
+c {
+  background-origin: unset;
+}
+
+d {
+  background-origin: border-box;
+}
+
+e {
+  background-origin: padding-box;
+}
+
+f {
+  background-origin: content-box;
+}
+
+g {
+  background-origin: border-box, border-box, content-box;
+}
diff --git a/testsuite/css/parser/background-repeat.css b/testsuite/css/parser/background-repeat.css
index 6bfec32..b4f1503 100644
--- a/testsuite/css/parser/background-repeat.css
+++ b/testsuite/css/parser/background-repeat.css
@@ -85,3 +85,19 @@ s {
 t {
   background-repeat: no-repeat no-repeat;
 }
+
+aa {
+  background-repeat: initial;
+}
+
+bb {
+  background-repeat: inherit;
+}
+
+cc {
+  background-repeat: unset;
+}
+
+dd {
+  background-repeat: repeat-x, space round, no-repeat;
+}
diff --git a/testsuite/css/parser/background-repeat.ref.css b/testsuite/css/parser/background-repeat.ref.css
index 67b42e6..69f5592 100644
--- a/testsuite/css/parser/background-repeat.ref.css
+++ b/testsuite/css/parser/background-repeat.ref.css
@@ -85,3 +85,19 @@ s {
 t {
   background-repeat: no-repeat;
 }
+
+aa {
+  background-repeat: initial;
+}
+
+bb {
+  background-repeat: inherit;
+}
+
+cc {
+  background-repeat: unset;
+}
+
+dd {
+  background-repeat: repeat-x, space round, no-repeat;
+}
diff --git a/testsuite/css/parser/background-size.css b/testsuite/css/parser/background-size.css
index ea75a05..8d253dd 100644
--- a/testsuite/css/parser/background-size.css
+++ b/testsuite/css/parser/background-size.css
@@ -1,3 +1,15 @@
+aa {
+  background-size: initial;
+}
+
+bb {
+  background-size: inherit;
+}
+
+cc {
+  background-size: unset;
+}
+
 a {
   background-size: cover;
 }
@@ -49,3 +61,7 @@ l {
 m {
   background-size: 10px 10px;
 }
+
+n {
+  background-size: auto, cover, 10px 100%;
+}
diff --git a/testsuite/css/parser/background-size.ref.css b/testsuite/css/parser/background-size.ref.css
index b3ce6bf..759250e 100644
--- a/testsuite/css/parser/background-size.ref.css
+++ b/testsuite/css/parser/background-size.ref.css
@@ -1,3 +1,15 @@
+aa {
+  background-size: initial;
+}
+
+bb {
+  background-size: inherit;
+}
+
+cc {
+  background-size: unset;
+}
+
 a {
   background-size: cover;
 }
@@ -49,3 +61,7 @@ l {
 m {
   background-size: 10px 10px;
 }
+
+n {
+  background-size: auto, cover, 10px 100%;
+}
diff --git a/testsuite/css/parser/border-color.css b/testsuite/css/parser/border-color.css
new file mode 100644
index 0000000..fda28ae
--- /dev/null
+++ b/testsuite/css/parser/border-color.css
@@ -0,0 +1,34 @@
+a {
+  border-bottom-color: initial;
+  border-left-color: initial;
+  border-right-color: initial;
+  border-top-color: initial;
+}
+
+b {
+  border-bottom-color: inherit;
+  border-left-color: inherit;
+  border-right-color: inherit;
+  border-top-color: inherit;
+}
+
+c {
+  border-bottom-color: unset;
+  border-left-color: unset;
+  border-right-color: unset;
+  border-top-color: unset;
+}
+
+d {
+  border-bottom-color: currentColor;
+  border-left-color: currentColor;
+  border-right-color: currentColor;
+  border-top-color: currentColor;
+}
+
+e {
+  border-bottom-color: rgb(128,128,0);
+  border-left-color: rgb(128,128,0);
+  border-right-color: rgb(128,128,0);
+  border-top-color: rgb(128,128,0);
+}
diff --git a/testsuite/css/parser/border-color.ref.css b/testsuite/css/parser/border-color.ref.css
new file mode 100644
index 0000000..fda28ae
--- /dev/null
+++ b/testsuite/css/parser/border-color.ref.css
@@ -0,0 +1,34 @@
+a {
+  border-bottom-color: initial;
+  border-left-color: initial;
+  border-right-color: initial;
+  border-top-color: initial;
+}
+
+b {
+  border-bottom-color: inherit;
+  border-left-color: inherit;
+  border-right-color: inherit;
+  border-top-color: inherit;
+}
+
+c {
+  border-bottom-color: unset;
+  border-left-color: unset;
+  border-right-color: unset;
+  border-top-color: unset;
+}
+
+d {
+  border-bottom-color: currentColor;
+  border-left-color: currentColor;
+  border-right-color: currentColor;
+  border-top-color: currentColor;
+}
+
+e {
+  border-bottom-color: rgb(128,128,0);
+  border-left-color: rgb(128,128,0);
+  border-right-color: rgb(128,128,0);
+  border-top-color: rgb(128,128,0);
+}
diff --git a/testsuite/css/parser/border-radius-shorthand.css 
b/testsuite/css/parser/border-radius-shorthand.css
new file mode 100644
index 0000000..5dd8fb0
--- /dev/null
+++ b/testsuite/css/parser/border-radius-shorthand.css
@@ -0,0 +1,113 @@
+a {
+  border-radius: 1px;
+}
+
+b {
+  border-radius: 1px 2px;
+}
+
+c {
+  border-radius: 1px 2px 3px;
+}
+
+d {
+  border-radius: 1px 2px 3px 4px;
+}
+
+e {
+  border-radius: 1px 2px 3px 4px / 5px;
+}
+
+f {
+  border-radius: 1px 2px 3px 4px / 5px 6px;
+}
+
+g {
+  border-radius: 1px 2px 3px 4px / 5px 6px 7px;
+}
+
+h {
+  border-radius: 1px 2px 3px 4px / 5px 6px 7px 8px;
+}
+
+i {
+  border-radius: 1.125px / 5.5px;
+}
+
+j {
+  border-radius: 1px 2.25px / 5px;
+}
+
+k {
+  border-radius: 1px 2px 3.5px / 5.5px 6.75px;
+}
+
+l {
+  border-radius: 0 / 0;
+}
+
+m {
+  border-radius: 0;
+}
+
+n {
+  border-radius: 0 / 1px;
+}
+
+o {
+  border-radius: 1px / 0;
+}
+
+/* errors go here */
+
+ea {
+  border-radius: -1px 1px 1px 1px / 1px 1px 1px 1px;
+}
+
+eb {
+  border-radius: 1px -1px 1px 1px / 1px 1px 1px 1px;
+}
+
+ec {
+  border-radius: 1px 1px -1px 1px / 1px 1px 1px 1px;
+}
+
+ed {
+  border-radius: 1px 1px 1px -1px / 1px 1px 1px 1px;
+}
+
+ee {
+  border-radius: 1px 1px 1px 1px / -1px 1px 1px 1px;
+}
+
+ef {
+  border-radius: 1px 1px 1px 1px / 1px -1px 1px 1px;
+}
+
+eg {
+  border-radius: 1px 1px 1px 1px / 1px 1px -1px 1px;
+}
+
+eh {
+  border-radius: 1px 1px 1px 1px / 1px 1px 1px -1px;
+}
+
+ei {
+  border-radius: /;
+}
+
+ej {
+  border-radius: ;
+}
+
+ek {
+  border-radius: 1px /;
+}
+
+el {
+  border-radius: 1px 2px 3px 4px 5px;
+}
+
+em {
+  border-radius: 1px 2px / 1px 2px 3px 4px 5px;
+}
diff --git a/testsuite/css/parser/border-radius.errors b/testsuite/css/parser/border-radius-shorthand.errors
similarity index 100%
rename from testsuite/css/parser/border-radius.errors
rename to testsuite/css/parser/border-radius-shorthand.errors
diff --git a/testsuite/css/parser/border-radius-shorthand.ref.css 
b/testsuite/css/parser/border-radius-shorthand.ref.css
new file mode 100644
index 0000000..51a211d
--- /dev/null
+++ b/testsuite/css/parser/border-radius-shorthand.ref.css
@@ -0,0 +1,104 @@
+a {
+  border-bottom-left-radius: 1px;
+  border-bottom-right-radius: 1px;
+  border-top-left-radius: 1px;
+  border-top-right-radius: 1px;
+}
+
+b {
+  border-bottom-left-radius: 2px;
+  border-bottom-right-radius: 1px;
+  border-top-left-radius: 1px;
+  border-top-right-radius: 2px;
+}
+
+c {
+  border-bottom-left-radius: 2px;
+  border-bottom-right-radius: 3px;
+  border-top-left-radius: 1px;
+  border-top-right-radius: 2px;
+}
+
+d {
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 3px;
+  border-top-left-radius: 1px;
+  border-top-right-radius: 2px;
+}
+
+e {
+  border-bottom-left-radius: 4px 5px;
+  border-bottom-right-radius: 3px 5px;
+  border-top-left-radius: 1px 5px;
+  border-top-right-radius: 2px 5px;
+}
+
+f {
+  border-bottom-left-radius: 4px 6px;
+  border-bottom-right-radius: 3px 5px;
+  border-top-left-radius: 1px 5px;
+  border-top-right-radius: 2px 6px;
+}
+
+g {
+  border-bottom-left-radius: 4px 6px;
+  border-bottom-right-radius: 3px 7px;
+  border-top-left-radius: 1px 5px;
+  border-top-right-radius: 2px 6px;
+}
+
+h {
+  border-bottom-left-radius: 4px 8px;
+  border-bottom-right-radius: 3px 7px;
+  border-top-left-radius: 1px 5px;
+  border-top-right-radius: 2px 6px;
+}
+
+i {
+  border-bottom-left-radius: 1.125px 5.5px;
+  border-bottom-right-radius: 1.125px 5.5px;
+  border-top-left-radius: 1.125px 5.5px;
+  border-top-right-radius: 1.125px 5.5px;
+}
+
+j {
+  border-bottom-left-radius: 2.25px 5px;
+  border-bottom-right-radius: 1px 5px;
+  border-top-left-radius: 1px 5px;
+  border-top-right-radius: 2.25px 5px;
+}
+
+k {
+  border-bottom-left-radius: 2px 6.75px;
+  border-bottom-right-radius: 3.5px 5.5px;
+  border-top-left-radius: 1px 5.5px;
+  border-top-right-radius: 2px 6.75px;
+}
+
+l {
+  border-bottom-left-radius: 0;
+  border-bottom-right-radius: 0;
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
+
+m {
+  border-bottom-left-radius: 0;
+  border-bottom-right-radius: 0;
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
+
+n {
+  border-bottom-left-radius: 0 1px;
+  border-bottom-right-radius: 0 1px;
+  border-top-left-radius: 0 1px;
+  border-top-right-radius: 0 1px;
+}
+
+o {
+  border-bottom-left-radius: 1px 0;
+  border-bottom-right-radius: 1px 0;
+  border-top-left-radius: 1px 0;
+  border-top-right-radius: 1px 0;
+}
diff --git a/testsuite/css/parser/border-radius.css b/testsuite/css/parser/border-radius.css
index 5dd8fb0..8989f4a 100644
--- a/testsuite/css/parser/border-radius.css
+++ b/testsuite/css/parser/border-radius.css
@@ -1,113 +1,62 @@
 a {
-  border-radius: 1px;
+  border-bottom-left-radius: initial;
+  border-bottom-right-radius: initial;
+  border-top-left-radius: initial;
+  border-top-right-radius: initial;
 }
 
 b {
-  border-radius: 1px 2px;
+  border-bottom-left-radius: inherit;
+  border-bottom-right-radius: inherit;
+  border-top-left-radius: inherit;
+  border-top-right-radius: inherit;
 }
 
 c {
-  border-radius: 1px 2px 3px;
+  border-bottom-left-radius: unset;
+  border-bottom-right-radius: unset;
+  border-top-left-radius: unset;
+  border-top-right-radius: unset;
 }
 
 d {
-  border-radius: 1px 2px 3px 4px;
+  border-bottom-left-radius: 0;
+  border-bottom-right-radius: 0;
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
 }
 
 e {
-  border-radius: 1px 2px 3px 4px / 5px;
+  border-bottom-left-radius: 5px;
+  border-bottom-right-radius: 5px;
+  border-top-left-radius: 5px;
+  border-top-right-radius: 5px;
 }
 
 f {
-  border-radius: 1px 2px 3px 4px / 5px 6px;
+  border-bottom-left-radius: 50%;
+  border-bottom-right-radius: 50%;
+  border-top-left-radius: 50%;
+  border-top-right-radius: 50%;
 }
 
 g {
-  border-radius: 1px 2px 3px 4px / 5px 6px 7px;
+  border-bottom-left-radius: 5px 6px;
+  border-bottom-right-radius: 5px 6px;
+  border-top-left-radius: 5px 6px;
+  border-top-right-radius: 5px 6px;
 }
 
 h {
-  border-radius: 1px 2px 3px 4px / 5px 6px 7px 8px;
+  border-bottom-left-radius: 5px 20%;
+  border-bottom-right-radius: 5px 20%;
+  border-top-left-radius: 5px 20%;
+  border-top-right-radius: 5px 20%;
 }
 
 i {
-  border-radius: 1.125px / 5.5px;
-}
-
-j {
-  border-radius: 1px 2.25px / 5px;
-}
-
-k {
-  border-radius: 1px 2px 3.5px / 5.5px 6.75px;
-}
-
-l {
-  border-radius: 0 / 0;
-}
-
-m {
-  border-radius: 0;
-}
-
-n {
-  border-radius: 0 / 1px;
-}
-
-o {
-  border-radius: 1px / 0;
-}
-
-/* errors go here */
-
-ea {
-  border-radius: -1px 1px 1px 1px / 1px 1px 1px 1px;
-}
-
-eb {
-  border-radius: 1px -1px 1px 1px / 1px 1px 1px 1px;
-}
-
-ec {
-  border-radius: 1px 1px -1px 1px / 1px 1px 1px 1px;
-}
-
-ed {
-  border-radius: 1px 1px 1px -1px / 1px 1px 1px 1px;
-}
-
-ee {
-  border-radius: 1px 1px 1px 1px / -1px 1px 1px 1px;
-}
-
-ef {
-  border-radius: 1px 1px 1px 1px / 1px -1px 1px 1px;
-}
-
-eg {
-  border-radius: 1px 1px 1px 1px / 1px 1px -1px 1px;
-}
-
-eh {
-  border-radius: 1px 1px 1px 1px / 1px 1px 1px -1px;
-}
-
-ei {
-  border-radius: /;
-}
-
-ej {
-  border-radius: ;
-}
-
-ek {
-  border-radius: 1px /;
-}
-
-el {
-  border-radius: 1px 2px 3px 4px 5px;
-}
-
-em {
-  border-radius: 1px 2px / 1px 2px 3px 4px 5px;
+  border-bottom-left-radius: 10% 20%;
+  border-bottom-right-radius: 10% 20%;
+  border-top-left-radius: 10% 20%;
+  border-top-right-radius: 10% 20%;
 }
diff --git a/testsuite/css/parser/border-radius.ref.css b/testsuite/css/parser/border-radius.ref.css
index 51a211d..8989f4a 100644
--- a/testsuite/css/parser/border-radius.ref.css
+++ b/testsuite/css/parser/border-radius.ref.css
@@ -1,104 +1,62 @@
 a {
-  border-bottom-left-radius: 1px;
-  border-bottom-right-radius: 1px;
-  border-top-left-radius: 1px;
-  border-top-right-radius: 1px;
+  border-bottom-left-radius: initial;
+  border-bottom-right-radius: initial;
+  border-top-left-radius: initial;
+  border-top-right-radius: initial;
 }
 
 b {
-  border-bottom-left-radius: 2px;
-  border-bottom-right-radius: 1px;
-  border-top-left-radius: 1px;
-  border-top-right-radius: 2px;
+  border-bottom-left-radius: inherit;
+  border-bottom-right-radius: inherit;
+  border-top-left-radius: inherit;
+  border-top-right-radius: inherit;
 }
 
 c {
-  border-bottom-left-radius: 2px;
-  border-bottom-right-radius: 3px;
-  border-top-left-radius: 1px;
-  border-top-right-radius: 2px;
+  border-bottom-left-radius: unset;
+  border-bottom-right-radius: unset;
+  border-top-left-radius: unset;
+  border-top-right-radius: unset;
 }
 
 d {
-  border-bottom-left-radius: 4px;
-  border-bottom-right-radius: 3px;
-  border-top-left-radius: 1px;
-  border-top-right-radius: 2px;
+  border-bottom-left-radius: 0;
+  border-bottom-right-radius: 0;
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
 }
 
 e {
-  border-bottom-left-radius: 4px 5px;
-  border-bottom-right-radius: 3px 5px;
-  border-top-left-radius: 1px 5px;
-  border-top-right-radius: 2px 5px;
+  border-bottom-left-radius: 5px;
+  border-bottom-right-radius: 5px;
+  border-top-left-radius: 5px;
+  border-top-right-radius: 5px;
 }
 
 f {
-  border-bottom-left-radius: 4px 6px;
-  border-bottom-right-radius: 3px 5px;
-  border-top-left-radius: 1px 5px;
-  border-top-right-radius: 2px 6px;
+  border-bottom-left-radius: 50%;
+  border-bottom-right-radius: 50%;
+  border-top-left-radius: 50%;
+  border-top-right-radius: 50%;
 }
 
 g {
-  border-bottom-left-radius: 4px 6px;
-  border-bottom-right-radius: 3px 7px;
-  border-top-left-radius: 1px 5px;
-  border-top-right-radius: 2px 6px;
+  border-bottom-left-radius: 5px 6px;
+  border-bottom-right-radius: 5px 6px;
+  border-top-left-radius: 5px 6px;
+  border-top-right-radius: 5px 6px;
 }
 
 h {
-  border-bottom-left-radius: 4px 8px;
-  border-bottom-right-radius: 3px 7px;
-  border-top-left-radius: 1px 5px;
-  border-top-right-radius: 2px 6px;
+  border-bottom-left-radius: 5px 20%;
+  border-bottom-right-radius: 5px 20%;
+  border-top-left-radius: 5px 20%;
+  border-top-right-radius: 5px 20%;
 }
 
 i {
-  border-bottom-left-radius: 1.125px 5.5px;
-  border-bottom-right-radius: 1.125px 5.5px;
-  border-top-left-radius: 1.125px 5.5px;
-  border-top-right-radius: 1.125px 5.5px;
-}
-
-j {
-  border-bottom-left-radius: 2.25px 5px;
-  border-bottom-right-radius: 1px 5px;
-  border-top-left-radius: 1px 5px;
-  border-top-right-radius: 2.25px 5px;
-}
-
-k {
-  border-bottom-left-radius: 2px 6.75px;
-  border-bottom-right-radius: 3.5px 5.5px;
-  border-top-left-radius: 1px 5.5px;
-  border-top-right-radius: 2px 6.75px;
-}
-
-l {
-  border-bottom-left-radius: 0;
-  border-bottom-right-radius: 0;
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-
-m {
-  border-bottom-left-radius: 0;
-  border-bottom-right-radius: 0;
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-
-n {
-  border-bottom-left-radius: 0 1px;
-  border-bottom-right-radius: 0 1px;
-  border-top-left-radius: 0 1px;
-  border-top-right-radius: 0 1px;
-}
-
-o {
-  border-bottom-left-radius: 1px 0;
-  border-bottom-right-radius: 1px 0;
-  border-top-left-radius: 1px 0;
-  border-top-right-radius: 1px 0;
+  border-bottom-left-radius: 10% 20%;
+  border-bottom-right-radius: 10% 20%;
+  border-top-left-radius: 10% 20%;
+  border-top-right-radius: 10% 20%;
 }
diff --git a/testsuite/css/parser/border-style.css b/testsuite/css/parser/border-style.css
new file mode 100644
index 0000000..ab5c026
--- /dev/null
+++ b/testsuite/css/parser/border-style.css
@@ -0,0 +1,90 @@
+a {
+  border-bottom-style: initial;
+  border-left-style: initial;
+  border-right-style: initial;
+  border-top-style: initial;
+}
+
+b {
+  border-bottom-style: inherit;
+  border-left-style: inherit;
+  border-right-style: inherit;
+  border-top-style: inherit;
+}
+
+c {
+  border-bottom-style: unset;
+  border-left-style: unset;
+  border-right-style: unset;
+  border-top-style: unset;
+}
+
+d {
+  border-bottom-style: none;
+  border-left-style: none;
+  border-right-style: none;
+  border-top-style: none;
+}
+
+e {
+  border-bottom-style: solid;
+  border-left-style: solid;
+  border-right-style: solid;
+  border-top-style: solid;
+}
+
+f {
+  border-bottom-style: inset;
+  border-left-style: inset;
+  border-right-style: inset;
+  border-top-style: inset;
+}
+
+g {
+  border-bottom-style: outset;
+  border-left-style: outset;
+  border-right-style: outset;
+  border-top-style: outset;
+}
+
+h {
+  border-bottom-style: hidden;
+  border-left-style: hidden;
+  border-right-style: hidden;
+  border-top-style: hidden;
+}
+
+i {
+  border-bottom-style: dotted;
+  border-left-style: dotted;
+  border-right-style: dotted;
+  border-top-style: dotted;
+}
+
+j {
+  border-bottom-style: dashed;
+  border-left-style: dashed;
+  border-right-style: dashed;
+  border-top-style: dashed;
+}
+
+k {
+  border-bottom-style: double;
+  border-left-style: double;
+  border-right-style: double;
+  border-top-style: double;
+}
+
+l {
+  border-bottom-style: groove;
+  border-left-style: groove;
+  border-right-style: groove;
+  border-top-style: groove;
+}
+
+m {
+  border-bottom-style: ridge;
+  border-left-style: ridge;
+  border-right-style: ridge;
+  border-top-style: ridge;
+}
diff --git a/testsuite/css/parser/border-style.ref.css b/testsuite/css/parser/border-style.ref.css
new file mode 100644
index 0000000..ab5c026
--- /dev/null
+++ b/testsuite/css/parser/border-style.ref.css
@@ -0,0 +1,90 @@
+a {
+  border-bottom-style: initial;
+  border-left-style: initial;
+  border-right-style: initial;
+  border-top-style: initial;
+}
+
+b {
+  border-bottom-style: inherit;
+  border-left-style: inherit;
+  border-right-style: inherit;
+  border-top-style: inherit;
+}
+
+c {
+  border-bottom-style: unset;
+  border-left-style: unset;
+  border-right-style: unset;
+  border-top-style: unset;
+}
+
+d {
+  border-bottom-style: none;
+  border-left-style: none;
+  border-right-style: none;
+  border-top-style: none;
+}
+
+e {
+  border-bottom-style: solid;
+  border-left-style: solid;
+  border-right-style: solid;
+  border-top-style: solid;
+}
+
+f {
+  border-bottom-style: inset;
+  border-left-style: inset;
+  border-right-style: inset;
+  border-top-style: inset;
+}
+
+g {
+  border-bottom-style: outset;
+  border-left-style: outset;
+  border-right-style: outset;
+  border-top-style: outset;
+}
+
+h {
+  border-bottom-style: hidden;
+  border-left-style: hidden;
+  border-right-style: hidden;
+  border-top-style: hidden;
+}
+
+i {
+  border-bottom-style: dotted;
+  border-left-style: dotted;
+  border-right-style: dotted;
+  border-top-style: dotted;
+}
+
+j {
+  border-bottom-style: dashed;
+  border-left-style: dashed;
+  border-right-style: dashed;
+  border-top-style: dashed;
+}
+
+k {
+  border-bottom-style: double;
+  border-left-style: double;
+  border-right-style: double;
+  border-top-style: double;
+}
+
+l {
+  border-bottom-style: groove;
+  border-left-style: groove;
+  border-right-style: groove;
+  border-top-style: groove;
+}
+
+m {
+  border-bottom-style: ridge;
+  border-left-style: ridge;
+  border-right-style: ridge;
+  border-top-style: ridge;
+}
diff --git a/testsuite/css/parser/border-width.css b/testsuite/css/parser/border-width.css
new file mode 100644
index 0000000..fe8b097
--- /dev/null
+++ b/testsuite/css/parser/border-width.css
@@ -0,0 +1,34 @@
+a {
+  border-bottom-width: initial;
+  border-left-width: initial;
+  border-right-width: initial;
+  border-top-width: initial;
+}
+
+b {
+  border-bottom-width: inherit;
+  border-left-width: inherit;
+  border-right-width: inherit;
+  border-top-width: inherit;
+}
+
+c {
+  border-bottom-width: unset;
+  border-left-width: unset;
+  border-right-width: unset;
+  border-top-width: unset;
+}
+
+d {
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  border-top-width: 0;
+}
+
+e {
+  border-bottom-width: 10px;
+  border-left-width: 10px;
+  border-right-width: 10px;
+  border-top-width: 10px;
+}
diff --git a/testsuite/css/parser/border-width.ref.css b/testsuite/css/parser/border-width.ref.css
new file mode 100644
index 0000000..fe8b097
--- /dev/null
+++ b/testsuite/css/parser/border-width.ref.css
@@ -0,0 +1,34 @@
+a {
+  border-bottom-width: initial;
+  border-left-width: initial;
+  border-right-width: initial;
+  border-top-width: initial;
+}
+
+b {
+  border-bottom-width: inherit;
+  border-left-width: inherit;
+  border-right-width: inherit;
+  border-top-width: inherit;
+}
+
+c {
+  border-bottom-width: unset;
+  border-left-width: unset;
+  border-right-width: unset;
+  border-top-width: unset;
+}
+
+d {
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  border-top-width: 0;
+}
+
+e {
+  border-bottom-width: 10px;
+  border-left-width: 10px;
+  border-right-width: 10px;
+  border-top-width: 10px;
+}
diff --git a/testsuite/css/parser/box-shadow.css b/testsuite/css/parser/box-shadow.css
new file mode 100644
index 0000000..a41dbee
--- /dev/null
+++ b/testsuite/css/parser/box-shadow.css
@@ -0,0 +1,35 @@
+a {
+  box-shadow: initial;
+}
+
+b {
+  box-shadow: inherit;
+}
+
+c {
+  box-shadow: unset;
+}
+
+d {
+  box-shadow: none;
+}
+
+e {
+  box-shadow: 1px 2px;
+}
+
+f {
+  box-shadow: 1px 2px 3px;
+}
+
+g {
+  box-shadow: 1px 2px 3px 4px;
+}
+
+h {
+  box-shadow: 1px 2px red;
+}
+
+i {
+  box-shadow: inset 0 1px green, blue 2px 3px 4px;
+}
diff --git a/testsuite/css/parser/box-shadow.ref.css b/testsuite/css/parser/box-shadow.ref.css
new file mode 100644
index 0000000..7066b34
--- /dev/null
+++ b/testsuite/css/parser/box-shadow.ref.css
@@ -0,0 +1,35 @@
+a {
+  box-shadow: initial;
+}
+
+b {
+  box-shadow: inherit;
+}
+
+c {
+  box-shadow: unset;
+}
+
+d {
+  box-shadow: none;
+}
+
+e {
+  box-shadow: 1px 2px currentColor;
+}
+
+f {
+  box-shadow: 1px 2px 3px currentColor;
+}
+
+g {
+  box-shadow: 1px 2px 3px 4px currentColor;
+}
+
+h {
+  box-shadow: 1px 2px rgb(255,0,0);
+}
+
+i {
+  box-shadow: 0 1px rgb(0,128,0) inset, 2px 3px 4px rgb(0,0,255);
+}
diff --git a/testsuite/css/parser/color.css b/testsuite/css/parser/color.css
new file mode 100644
index 0000000..38e5448
--- /dev/null
+++ b/testsuite/css/parser/color.css
@@ -0,0 +1,65 @@
+ define-color mygreen rgb(0,1,0);
+
+a {
+  color: initial;
+}
+
+b {
+  color: inherit;
+}
+
+c {
+  color: unset;
+}
+
+d {
+  color: currentColor;
+}
+
+e {
+  color: transparent;
+}
+
+f {
+  color: red;
+}
+
+g {
+  color: rgba(0,1,0,1);
+}
+
+h {
+  color: rgb(1,0,1);
+}
+
+i {
+  color: #abc;
+}
+
+j {
+  color: #012345;
+}
+
+k {
+  color: lighter(red);
+}
+
+l {
+  color: darker(red);
+}
+
+m {
+  color: shade(green,0.5);
+}
+
+n {
+  color: alpha(green,0.5);
+}
+
+o {
+  color: mix(red,blue,0.25);
+}
+
+p {
+  color: @mygreen;
+}
diff --git a/testsuite/css/parser/color.ref.css b/testsuite/css/parser/color.ref.css
new file mode 100644
index 0000000..ee6faf1
--- /dev/null
+++ b/testsuite/css/parser/color.ref.css
@@ -0,0 +1,65 @@
+ define-color mygreen rgb(0,1,0);
+
+a {
+  color: initial;
+}
+
+b {
+  color: inherit;
+}
+
+c {
+  color: unset;
+}
+
+d {
+  color: currentColor;
+}
+
+e {
+  color: rgba(0,0,0,0);
+}
+
+f {
+  color: rgb(255,0,0);
+}
+
+g {
+  color: rgb(0,1,0);
+}
+
+h {
+  color: rgb(1,0,1);
+}
+
+i {
+  color: rgb(170,187,204);
+}
+
+j {
+  color: rgb(1,35,69);
+}
+
+k {
+  color: shade(rgb(255,0,0), 1.3);
+}
+
+l {
+  color: shade(rgb(255,0,0), 0.69999999999999996);
+}
+
+m {
+  color: shade(rgb(0,128,0), 0.5);
+}
+
+n {
+  color: alpha(rgb(0,128,0), 0.5);
+}
+
+o {
+  color: mix(rgb(255,0,0), rgb(0,0,255), 0.25);
+}
+
+p {
+  color: @mygreen;
+}
diff --git a/testsuite/css/parser/font-family.css b/testsuite/css/parser/font-family.css
index 700fc81..8b9b6c3 100644
--- a/testsuite/css/parser/font-family.css
+++ b/testsuite/css/parser/font-family.css
@@ -1,65 +1,23 @@
 a {
-  font-family: none;
+  font-family: initial;
 }
 
 b {
-  font-family: Sans Serif;
+  font-family: inherit;
 }
 
 c {
-  font-family: A Font with a lot of text\2C       spaces        and special characters\2122;
+  font-family: unset;
 }
 
 d {
-  font-family: "A Font with a lot of text, spaces and special characters™" ;
+  font-family: Macaroni;
 }
 
 e {
-  font-family: A, Lot, Of, Fonts;
+  font-family: "Macaroni";
 }
 
 f {
-  font-family: "A", "Lot", "Of", "Fonts";
+  font-family: Macaroni, Spaghetti, Sans;
 }
-
-g {
-  font-family: "A Lot", Of, "Fonts";
-}
-
-/* errors straight from the CSS 2.1 spec */
-
-cssa {
-  font-family: Red/Black, sans-serif;
-}
-
-cssb {
-  font-family: "Lucida" Grande, sans-serif;
-}
-
-cssc {
-  font-family: Ahem!, sans-serif;
-}
-
-cssd {
-  font-family: test foo, sans-serif;
-}
-
-csse {
-  font-family: #POUND, sans-serif;
-}
-
-cssf {
-  font-family: Hawaii 5-0, sans-serif;
-}
-
-/* errors */
-
-ea {
-  font-family: ;
-}
-
-eb {
-  font-family: No comma at the end, please, ;
-}
-
-
diff --git a/testsuite/css/parser/font-family.ref.css b/testsuite/css/parser/font-family.ref.css
index 319f3d0..8ae4644 100644
--- a/testsuite/css/parser/font-family.ref.css
+++ b/testsuite/css/parser/font-family.ref.css
@@ -1,27 +1,23 @@
 a {
-  font-family: "none";
+  font-family: initial;
 }
 
 b {
-  font-family: "Sans Serif";
+  font-family: inherit;
 }
 
 c {
-  font-family: "A Font with a lot of text, spaces and special characters™";
+  font-family: unset;
 }
 
 d {
-  font-family: "A Font with a lot of text, spaces and special characters™";
+  font-family: "Macaroni";
 }
 
 e {
-  font-family: "A", "Lot", "Of", "Fonts";
+  font-family: "Macaroni";
 }
 
 f {
-  font-family: "A", "Lot", "Of", "Fonts";
-}
-
-g {
-  font-family: "A Lot", "Of", "Fonts";
+  font-family: "Macaroni", "Spaghetti", "Sans";
 }
diff --git a/testsuite/css/parser/font-size.css b/testsuite/css/parser/font-size.css
new file mode 100644
index 0000000..08106f3
--- /dev/null
+++ b/testsuite/css/parser/font-size.css
@@ -0,0 +1,79 @@
+a {
+  font-size: initial;
+}
+
+b {
+  font-size: inherit;
+}
+
+c {
+  font-size: unset;
+}
+
+d {
+  font-size: xx-small;
+}
+
+e {
+  font-size: x-small;
+}
+
+f {
+  font-size: small;
+}
+
+g {
+  font-size: medium;
+}
+
+h {
+  font-size: large;
+}
+
+i {
+  font-size: x-large;
+}
+
+j {
+  font-size: xx-large;
+}
+
+k {
+  font-size: larger;
+}
+
+l {
+  font-size: smaller;
+}
+
+m {
+  font-size: 5px;
+}
+
+n {
+  font-size: 5pt;
+}
+
+o {
+  font-size: 5em;
+}
+
+p {
+  font-size: 5ex;
+}
+
+q {
+  font-size: 5in;
+}
+
+r {
+  font-size: 5cm;
+}
+
+s {
+  font-size: 5mm;
+}
+
+t {
+  font-size: 50%;
+}
diff --git a/testsuite/css/parser/font-size.ref.css b/testsuite/css/parser/font-size.ref.css
new file mode 100644
index 0000000..08106f3
--- /dev/null
+++ b/testsuite/css/parser/font-size.ref.css
@@ -0,0 +1,79 @@
+a {
+  font-size: initial;
+}
+
+b {
+  font-size: inherit;
+}
+
+c {
+  font-size: unset;
+}
+
+d {
+  font-size: xx-small;
+}
+
+e {
+  font-size: x-small;
+}
+
+f {
+  font-size: small;
+}
+
+g {
+  font-size: medium;
+}
+
+h {
+  font-size: large;
+}
+
+i {
+  font-size: x-large;
+}
+
+j {
+  font-size: xx-large;
+}
+
+k {
+  font-size: larger;
+}
+
+l {
+  font-size: smaller;
+}
+
+m {
+  font-size: 5px;
+}
+
+n {
+  font-size: 5pt;
+}
+
+o {
+  font-size: 5em;
+}
+
+p {
+  font-size: 5ex;
+}
+
+q {
+  font-size: 5in;
+}
+
+r {
+  font-size: 5cm;
+}
+
+s {
+  font-size: 5mm;
+}
+
+t {
+  font-size: 50%;
+}
diff --git a/testsuite/css/parser/font-stretch.css b/testsuite/css/parser/font-stretch.css
new file mode 100644
index 0000000..bc78790
--- /dev/null
+++ b/testsuite/css/parser/font-stretch.css
@@ -0,0 +1,47 @@
+a {
+  font-stretch: initial;
+}
+
+b {
+  font-stretch: inherit;
+}
+
+c {
+  font-stretch: unset;
+}
+
+d {
+  font-stretch: ultra-condensed;
+}
+
+e {
+  font-stretch: extra-condensed;
+}
+
+f {
+  font-stretch: condensed;
+}
+
+g {
+  font-stretch: semi-condensed;
+}
+
+h {
+  font-stretch: normal;
+}
+
+i {
+  font-stretch: semi-expanded;
+}
+
+j {
+  font-stretch: expanded;
+}
+
+k {
+  font-stretch: extra-expanded;
+}
+
+l {
+  font-stretch: ultra-expanded;
+}
diff --git a/testsuite/css/parser/font-stretch.ref.css b/testsuite/css/parser/font-stretch.ref.css
new file mode 100644
index 0000000..bc78790
--- /dev/null
+++ b/testsuite/css/parser/font-stretch.ref.css
@@ -0,0 +1,47 @@
+a {
+  font-stretch: initial;
+}
+
+b {
+  font-stretch: inherit;
+}
+
+c {
+  font-stretch: unset;
+}
+
+d {
+  font-stretch: ultra-condensed;
+}
+
+e {
+  font-stretch: extra-condensed;
+}
+
+f {
+  font-stretch: condensed;
+}
+
+g {
+  font-stretch: semi-condensed;
+}
+
+h {
+  font-stretch: normal;
+}
+
+i {
+  font-stretch: semi-expanded;
+}
+
+j {
+  font-stretch: expanded;
+}
+
+k {
+  font-stretch: extra-expanded;
+}
+
+l {
+  font-stretch: ultra-expanded;
+}
diff --git a/testsuite/css/parser/font-style.css b/testsuite/css/parser/font-style.css
new file mode 100644
index 0000000..95ea903
--- /dev/null
+++ b/testsuite/css/parser/font-style.css
@@ -0,0 +1,23 @@
+a {
+  font-style: initial;
+}
+
+b {
+  font-style: inherit;
+}
+
+c {
+  font-style: unset;
+}
+
+d {
+  font-style: normal;
+}
+
+e {
+  font-style: oblique;
+}
+
+f {
+  font-style: italic;
+}
diff --git a/testsuite/css/parser/font-style.ref.css b/testsuite/css/parser/font-style.ref.css
new file mode 100644
index 0000000..95ea903
--- /dev/null
+++ b/testsuite/css/parser/font-style.ref.css
@@ -0,0 +1,23 @@
+a {
+  font-style: initial;
+}
+
+b {
+  font-style: inherit;
+}
+
+c {
+  font-style: unset;
+}
+
+d {
+  font-style: normal;
+}
+
+e {
+  font-style: oblique;
+}
+
+f {
+  font-style: italic;
+}
diff --git a/testsuite/css/parser/font-variant.css b/testsuite/css/parser/font-variant.css
new file mode 100644
index 0000000..d37946b
--- /dev/null
+++ b/testsuite/css/parser/font-variant.css
@@ -0,0 +1,19 @@
+a {
+  font-variant: initial;
+}
+
+b {
+  font-variant: inherit;
+}
+
+c {
+  font-variant: unset;
+}
+
+d {
+  font-variant: normal;
+}
+
+e {
+  font-variant: small-caps;
+}
diff --git a/testsuite/css/parser/font-variant.ref.css b/testsuite/css/parser/font-variant.ref.css
new file mode 100644
index 0000000..d37946b
--- /dev/null
+++ b/testsuite/css/parser/font-variant.ref.css
@@ -0,0 +1,19 @@
+a {
+  font-variant: initial;
+}
+
+b {
+  font-variant: inherit;
+}
+
+c {
+  font-variant: unset;
+}
+
+d {
+  font-variant: normal;
+}
+
+e {
+  font-variant: small-caps;
+}
diff --git a/testsuite/css/parser/font-weight.css b/testsuite/css/parser/font-weight.css
new file mode 100644
index 0000000..13752c2
--- /dev/null
+++ b/testsuite/css/parser/font-weight.css
@@ -0,0 +1,63 @@
+a {
+  font-weight: initial;
+}
+
+b {
+  font-weight: inherit;
+}
+
+c {
+  font-weight: unset;
+}
+
+d {
+  font-weight: normal;
+}
+
+e {
+  font-weight: bold;
+}
+
+f {
+  font-weight: bolder;
+}
+
+g {
+  font-weight: lighter;
+}
+
+h {
+  font-weight: 100;
+}
+
+i {
+  font-weight: 200;
+}
+
+j {
+  font-weight: 300;
+}
+
+k {
+  font-weight: 400;
+}
+
+l {
+  font-weight: 500;
+}
+
+m {
+  font-weight: 600;
+}
+
+n {
+  font-weight: 700;
+}
+
+o {
+  font-weight: 800;
+}
+
+p {
+  font-weight: 900;
+}
diff --git a/testsuite/css/parser/font-weight.ref.css b/testsuite/css/parser/font-weight.ref.css
new file mode 100644
index 0000000..13752c2
--- /dev/null
+++ b/testsuite/css/parser/font-weight.ref.css
@@ -0,0 +1,63 @@
+a {
+  font-weight: initial;
+}
+
+b {
+  font-weight: inherit;
+}
+
+c {
+  font-weight: unset;
+}
+
+d {
+  font-weight: normal;
+}
+
+e {
+  font-weight: bold;
+}
+
+f {
+  font-weight: bolder;
+}
+
+g {
+  font-weight: lighter;
+}
+
+h {
+  font-weight: 100;
+}
+
+i {
+  font-weight: 200;
+}
+
+j {
+  font-weight: 300;
+}
+
+k {
+  font-weight: 400;
+}
+
+l {
+  font-weight: 500;
+}
+
+m {
+  font-weight: 600;
+}
+
+n {
+  font-weight: 700;
+}
+
+o {
+  font-weight: 800;
+}
+
+p {
+  font-weight: 900;
+}
diff --git a/testsuite/css/parser/letter-spacing.css b/testsuite/css/parser/letter-spacing.css
new file mode 100644
index 0000000..5b1ec8f
--- /dev/null
+++ b/testsuite/css/parser/letter-spacing.css
@@ -0,0 +1,23 @@
+a {
+  letter-spacing: initial;
+}
+
+b {
+  letter-spacing: inherit;
+}
+
+c {
+  letter-spacing: unset;
+}
+
+d {
+  letter-spacing: 5px;
+}
+
+e {
+  letter-spacing: 5em;
+}
+
+f {
+  letter-spacing: 1in;
+}
diff --git a/testsuite/css/parser/letter-spacing.ref.css b/testsuite/css/parser/letter-spacing.ref.css
new file mode 100644
index 0000000..5b1ec8f
--- /dev/null
+++ b/testsuite/css/parser/letter-spacing.ref.css
@@ -0,0 +1,23 @@
+a {
+  letter-spacing: initial;
+}
+
+b {
+  letter-spacing: inherit;
+}
+
+c {
+  letter-spacing: unset;
+}
+
+d {
+  letter-spacing: 5px;
+}
+
+e {
+  letter-spacing: 5em;
+}
+
+f {
+  letter-spacing: 1in;
+}
diff --git a/testsuite/css/parser/margin.css b/testsuite/css/parser/margin.css
new file mode 100644
index 0000000..d1da202
--- /dev/null
+++ b/testsuite/css/parser/margin.css
@@ -0,0 +1,34 @@
+a {
+  margin-bottom: initial;
+  margin-left: initial;
+  margin-right: initial;
+  margin-top: initial;
+}
+
+b {
+  margin-bottom: inherit;
+  margin-left: inherit;
+  margin-right: inherit;
+  margin-top: inherit;
+}
+
+c {
+  margin-bottom: unset;
+  margin-left: unset;
+  margin-right: unset;
+  margin-top: unset;
+}
+
+d {
+  margin-bottom: 0;
+  margin-left: 0;
+  margin-right: 0;
+  margin-top: 0;
+}
+
+e {
+  margin-bottom: 10px;
+  margin-left: 10px;
+  margin-right: 10px;
+  margin-top: 10px;
+}
diff --git a/testsuite/css/parser/margin.ref.css b/testsuite/css/parser/margin.ref.css
new file mode 100644
index 0000000..d1da202
--- /dev/null
+++ b/testsuite/css/parser/margin.ref.css
@@ -0,0 +1,34 @@
+a {
+  margin-bottom: initial;
+  margin-left: initial;
+  margin-right: initial;
+  margin-top: initial;
+}
+
+b {
+  margin-bottom: inherit;
+  margin-left: inherit;
+  margin-right: inherit;
+  margin-top: inherit;
+}
+
+c {
+  margin-bottom: unset;
+  margin-left: unset;
+  margin-right: unset;
+  margin-top: unset;
+}
+
+d {
+  margin-bottom: 0;
+  margin-left: 0;
+  margin-right: 0;
+  margin-top: 0;
+}
+
+e {
+  margin-bottom: 10px;
+  margin-left: 10px;
+  margin-right: 10px;
+  margin-top: 10px;
+}
diff --git a/testsuite/css/parser/opacity.css b/testsuite/css/parser/opacity.css
new file mode 100644
index 0000000..9aa762f
--- /dev/null
+++ b/testsuite/css/parser/opacity.css
@@ -0,0 +1,23 @@
+a {
+  opacity: initial;
+}
+
+b {
+  opacity: inherit;
+}
+
+c {
+  opacity: unset;
+}
+
+d {
+  opacity: 1;
+}
+
+e {
+  opacity: 0.5;
+}
+
+f {
+  opacity: 0;
+}
diff --git a/testsuite/css/parser/opacity.ref.css b/testsuite/css/parser/opacity.ref.css
new file mode 100644
index 0000000..9aa762f
--- /dev/null
+++ b/testsuite/css/parser/opacity.ref.css
@@ -0,0 +1,23 @@
+a {
+  opacity: initial;
+}
+
+b {
+  opacity: inherit;
+}
+
+c {
+  opacity: unset;
+}
+
+d {
+  opacity: 1;
+}
+
+e {
+  opacity: 0.5;
+}
+
+f {
+  opacity: 0;
+}
diff --git a/testsuite/css/parser/outline-color.css b/testsuite/css/parser/outline-color.css
new file mode 100644
index 0000000..410de49
--- /dev/null
+++ b/testsuite/css/parser/outline-color.css
@@ -0,0 +1,19 @@
+a {
+  outline-color: initial;
+}
+
+b {
+  outline-color: inherit;
+}
+
+c {
+  outline-color: unset;
+}
+
+d {
+  outline-color: currentColor;
+}
+
+e {
+  outline-color: rgb(128,128,0);
+}
diff --git a/testsuite/css/parser/outline-color.ref.css b/testsuite/css/parser/outline-color.ref.css
new file mode 100644
index 0000000..410de49
--- /dev/null
+++ b/testsuite/css/parser/outline-color.ref.css
@@ -0,0 +1,19 @@
+a {
+  outline-color: initial;
+}
+
+b {
+  outline-color: inherit;
+}
+
+c {
+  outline-color: unset;
+}
+
+d {
+  outline-color: currentColor;
+}
+
+e {
+  outline-color: rgb(128,128,0);
+}
diff --git a/testsuite/css/parser/outline-offset.css b/testsuite/css/parser/outline-offset.css
new file mode 100644
index 0000000..a369331
--- /dev/null
+++ b/testsuite/css/parser/outline-offset.css
@@ -0,0 +1,23 @@
+a {
+  outline-offset: initial;
+}
+
+b {
+  outline-offset: inherit;
+}
+
+c {
+  outline-offset: unset;
+}
+
+d {
+  outline-offset: 0;
+}
+
+e {
+  outline-offset: 10px;
+}
+
+f {
+  outline-offset: -10px;
+}
diff --git a/testsuite/css/parser/outline-offset.ref.css b/testsuite/css/parser/outline-offset.ref.css
new file mode 100644
index 0000000..a369331
--- /dev/null
+++ b/testsuite/css/parser/outline-offset.ref.css
@@ -0,0 +1,23 @@
+a {
+  outline-offset: initial;
+}
+
+b {
+  outline-offset: inherit;
+}
+
+c {
+  outline-offset: unset;
+}
+
+d {
+  outline-offset: 0;
+}
+
+e {
+  outline-offset: 10px;
+}
+
+f {
+  outline-offset: -10px;
+}
diff --git a/testsuite/css/parser/outline-radius.css b/testsuite/css/parser/outline-radius.css
new file mode 100644
index 0000000..2e7d31b
--- /dev/null
+++ b/testsuite/css/parser/outline-radius.css
@@ -0,0 +1,62 @@
+a {
+  outline-bottom-left-radius: initial;
+  outline-bottom-right-radius: initial;
+  outline-top-left-radius: initial;
+  outline-top-right-radius: initial;
+}
+
+b {
+  outline-bottom-left-radius: inherit;
+  outline-bottom-right-radius: inherit;
+  outline-top-left-radius: inherit;
+  outline-top-right-radius: inherit;
+}
+
+c {
+  outline-bottom-left-radius: unset;
+  outline-bottom-right-radius: unset;
+  outline-top-left-radius: unset;
+  outline-top-right-radius: unset;
+}
+
+d {
+  outline-bottom-left-radius: 0;
+  outline-bottom-right-radius: 0;
+  outline-top-left-radius: 0;
+  outline-top-right-radius: 0;
+}
+
+e {
+  outline-bottom-left-radius: 5px;
+  outline-bottom-right-radius: 5px;
+  outline-top-left-radius: 5px;
+  outline-top-right-radius: 5px;
+}
+
+f {
+  outline-bottom-left-radius: 50%;
+  outline-bottom-right-radius: 50%;
+  outline-top-left-radius: 50%;
+  outline-top-right-radius: 50%;
+}
+
+g {
+  outline-bottom-left-radius: 5px 6px;
+  outline-bottom-right-radius: 5px 6px;
+  outline-top-left-radius: 5px 6px;
+  outline-top-right-radius: 5px 6px;
+}
+
+h {
+  outline-bottom-left-radius: 5px 20%;
+  outline-bottom-right-radius: 5px 20%;
+  outline-top-left-radius: 5px 20%;
+  outline-top-right-radius: 5px 20%;
+}
+
+i {
+  outline-bottom-left-radius: 10% 20%;
+  outline-bottom-right-radius: 10% 20%;
+  outline-top-left-radius: 10% 20%;
+  outline-top-right-radius: 10% 20%;
+}
diff --git a/testsuite/css/parser/outline-radius.ref.css b/testsuite/css/parser/outline-radius.ref.css
new file mode 100644
index 0000000..2e7d31b
--- /dev/null
+++ b/testsuite/css/parser/outline-radius.ref.css
@@ -0,0 +1,62 @@
+a {
+  outline-bottom-left-radius: initial;
+  outline-bottom-right-radius: initial;
+  outline-top-left-radius: initial;
+  outline-top-right-radius: initial;
+}
+
+b {
+  outline-bottom-left-radius: inherit;
+  outline-bottom-right-radius: inherit;
+  outline-top-left-radius: inherit;
+  outline-top-right-radius: inherit;
+}
+
+c {
+  outline-bottom-left-radius: unset;
+  outline-bottom-right-radius: unset;
+  outline-top-left-radius: unset;
+  outline-top-right-radius: unset;
+}
+
+d {
+  outline-bottom-left-radius: 0;
+  outline-bottom-right-radius: 0;
+  outline-top-left-radius: 0;
+  outline-top-right-radius: 0;
+}
+
+e {
+  outline-bottom-left-radius: 5px;
+  outline-bottom-right-radius: 5px;
+  outline-top-left-radius: 5px;
+  outline-top-right-radius: 5px;
+}
+
+f {
+  outline-bottom-left-radius: 50%;
+  outline-bottom-right-radius: 50%;
+  outline-top-left-radius: 50%;
+  outline-top-right-radius: 50%;
+}
+
+g {
+  outline-bottom-left-radius: 5px 6px;
+  outline-bottom-right-radius: 5px 6px;
+  outline-top-left-radius: 5px 6px;
+  outline-top-right-radius: 5px 6px;
+}
+
+h {
+  outline-bottom-left-radius: 5px 20%;
+  outline-bottom-right-radius: 5px 20%;
+  outline-top-left-radius: 5px 20%;
+  outline-top-right-radius: 5px 20%;
+}
+
+i {
+  outline-bottom-left-radius: 10% 20%;
+  outline-bottom-right-radius: 10% 20%;
+  outline-top-left-radius: 10% 20%;
+  outline-top-right-radius: 10% 20%;
+}
diff --git a/testsuite/css/parser/outline-style.css b/testsuite/css/parser/outline-style.css
new file mode 100644
index 0000000..cd422da
--- /dev/null
+++ b/testsuite/css/parser/outline-style.css
@@ -0,0 +1,51 @@
+a {
+  outline-style: initial;
+}
+
+b {
+  outline-style: inherit;
+}
+
+c {
+  outline-style: unset;
+}
+
+d {
+  outline-style: none;
+}
+
+e {
+  outline-style: solid;
+}
+
+f {
+  outline-style: inset;
+}
+
+g {
+  outline-style: outset;
+}
+
+h {
+  outline-style: hidden;
+}
+
+i {
+  outline-style: dotted;
+}
+
+j {
+  outline-style: dashed;
+}
+
+k {
+  outline-style: double;
+}
+
+l {
+  outline-style: groove;
+}
+
+m {
+  outline-style: ridge;
+}
diff --git a/testsuite/css/parser/outline-style.ref.css b/testsuite/css/parser/outline-style.ref.css
new file mode 100644
index 0000000..cd422da
--- /dev/null
+++ b/testsuite/css/parser/outline-style.ref.css
@@ -0,0 +1,51 @@
+a {
+  outline-style: initial;
+}
+
+b {
+  outline-style: inherit;
+}
+
+c {
+  outline-style: unset;
+}
+
+d {
+  outline-style: none;
+}
+
+e {
+  outline-style: solid;
+}
+
+f {
+  outline-style: inset;
+}
+
+g {
+  outline-style: outset;
+}
+
+h {
+  outline-style: hidden;
+}
+
+i {
+  outline-style: dotted;
+}
+
+j {
+  outline-style: dashed;
+}
+
+k {
+  outline-style: double;
+}
+
+l {
+  outline-style: groove;
+}
+
+m {
+  outline-style: ridge;
+}
diff --git a/testsuite/css/parser/outline-width.css b/testsuite/css/parser/outline-width.css
new file mode 100644
index 0000000..d902c65
--- /dev/null
+++ b/testsuite/css/parser/outline-width.css
@@ -0,0 +1,19 @@
+a {
+  outline-width: initial;
+}
+
+b {
+  outline-width: inherit;
+}
+
+c {
+  outline-width: unset;
+}
+
+d {
+  outline-width: 0;
+}
+
+e {
+  outline-width: 10px;
+}
diff --git a/testsuite/css/parser/outline-width.ref.css b/testsuite/css/parser/outline-width.ref.css
new file mode 100644
index 0000000..d902c65
--- /dev/null
+++ b/testsuite/css/parser/outline-width.ref.css
@@ -0,0 +1,19 @@
+a {
+  outline-width: initial;
+}
+
+b {
+  outline-width: inherit;
+}
+
+c {
+  outline-width: unset;
+}
+
+d {
+  outline-width: 0;
+}
+
+e {
+  outline-width: 10px;
+}
diff --git a/testsuite/css/parser/padding.css b/testsuite/css/parser/padding.css
new file mode 100644
index 0000000..26add1d
--- /dev/null
+++ b/testsuite/css/parser/padding.css
@@ -0,0 +1,34 @@
+a {
+  padding-bottom: initial;
+  padding-left: initial;
+  padding-right: initial;
+  padding-top: initial;
+}
+
+b {
+  padding-bottom: inherit;
+  padding-left: inherit;
+  padding-right: inherit;
+  padding-top: inherit;
+}
+
+c {
+  padding-bottom: unset;
+  padding-left: unset;
+  padding-right: unset;
+  padding-top: unset;
+}
+
+d {
+  padding-bottom: 0;
+  padding-left: 0;
+  padding-right: 0;
+  padding-top: 0;
+}
+
+e {
+  padding-bottom: 10px;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 10px;
+}
diff --git a/testsuite/css/parser/padding.ref.css b/testsuite/css/parser/padding.ref.css
new file mode 100644
index 0000000..26add1d
--- /dev/null
+++ b/testsuite/css/parser/padding.ref.css
@@ -0,0 +1,34 @@
+a {
+  padding-bottom: initial;
+  padding-left: initial;
+  padding-right: initial;
+  padding-top: initial;
+}
+
+b {
+  padding-bottom: inherit;
+  padding-left: inherit;
+  padding-right: inherit;
+  padding-top: inherit;
+}
+
+c {
+  padding-bottom: unset;
+  padding-left: unset;
+  padding-right: unset;
+  padding-top: unset;
+}
+
+d {
+  padding-bottom: 0;
+  padding-left: 0;
+  padding-right: 0;
+  padding-top: 0;
+}
+
+e {
+  padding-bottom: 10px;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-top: 10px;
+}
diff --git a/testsuite/css/parser/text-decoration-color.css b/testsuite/css/parser/text-decoration-color.css
new file mode 100644
index 0000000..6bf6f86
--- /dev/null
+++ b/testsuite/css/parser/text-decoration-color.css
@@ -0,0 +1,27 @@
+a {
+  text-decoration-color: initial;
+}
+
+b {
+  text-decoration-color: inherit;
+}
+
+c {
+  text-decoration-color: unset;
+}
+
+d {
+  text-decoration-color: currentColor;
+}
+
+e {
+  text-decoration-color: red;
+}
+
+f {
+  text-decoration-color: transparent;
+}
+
+g {
+  text-decoration-color: #123;
+}
diff --git a/testsuite/css/parser/text-decoration-color.ref.css 
b/testsuite/css/parser/text-decoration-color.ref.css
new file mode 100644
index 0000000..ef55acf
--- /dev/null
+++ b/testsuite/css/parser/text-decoration-color.ref.css
@@ -0,0 +1,27 @@
+a {
+  text-decoration-color: initial;
+}
+
+b {
+  text-decoration-color: inherit;
+}
+
+c {
+  text-decoration-color: unset;
+}
+
+d {
+  text-decoration-color: currentColor;
+}
+
+e {
+  text-decoration-color: rgb(255,0,0);
+}
+
+f {
+  text-decoration-color: rgba(0,0,0,0);
+}
+
+g {
+  text-decoration-color: rgb(17,34,51);
+}
diff --git a/testsuite/css/parser/text-decoration-line.css b/testsuite/css/parser/text-decoration-line.css
new file mode 100644
index 0000000..16311eb
--- /dev/null
+++ b/testsuite/css/parser/text-decoration-line.css
@@ -0,0 +1,23 @@
+a {
+  text-decoration-line: initial;
+}
+
+b {
+  text-decoration-line: inherit;
+}
+
+c {
+  text-decoration-line: unset;
+}
+
+d {
+  text-decoration-line: none;
+}
+
+e {
+  text-decoration-line: underline;
+}
+
+f {
+  text-decoration-line: line-through;
+}
diff --git a/testsuite/css/parser/text-decoration-line.ref.css 
b/testsuite/css/parser/text-decoration-line.ref.css
new file mode 100644
index 0000000..16311eb
--- /dev/null
+++ b/testsuite/css/parser/text-decoration-line.ref.css
@@ -0,0 +1,23 @@
+a {
+  text-decoration-line: initial;
+}
+
+b {
+  text-decoration-line: inherit;
+}
+
+c {
+  text-decoration-line: unset;
+}
+
+d {
+  text-decoration-line: none;
+}
+
+e {
+  text-decoration-line: underline;
+}
+
+f {
+  text-decoration-line: line-through;
+}
diff --git a/testsuite/css/parser/text-decoration-style.css b/testsuite/css/parser/text-decoration-style.css
new file mode 100644
index 0000000..22517b5
--- /dev/null
+++ b/testsuite/css/parser/text-decoration-style.css
@@ -0,0 +1,23 @@
+a {
+  text-decoration-style: initial;
+}
+
+b {
+  text-decoration-style: inherit;
+}
+
+c {
+  text-decoration-style: unset;
+}
+
+d {
+  text-decoration-style: solid;
+}
+
+e {
+  text-decoration-style: double;
+}
+
+f {
+  text-decoration-style: wavy;
+}
diff --git a/testsuite/css/parser/text-decoration-style.ref.css 
b/testsuite/css/parser/text-decoration-style.ref.css
new file mode 100644
index 0000000..22517b5
--- /dev/null
+++ b/testsuite/css/parser/text-decoration-style.ref.css
@@ -0,0 +1,23 @@
+a {
+  text-decoration-style: initial;
+}
+
+b {
+  text-decoration-style: inherit;
+}
+
+c {
+  text-decoration-style: unset;
+}
+
+d {
+  text-decoration-style: solid;
+}
+
+e {
+  text-decoration-style: double;
+}
+
+f {
+  text-decoration-style: wavy;
+}
diff --git a/testsuite/css/parser/text-shadow.css b/testsuite/css/parser/text-shadow.css
new file mode 100644
index 0000000..017be17
--- /dev/null
+++ b/testsuite/css/parser/text-shadow.css
@@ -0,0 +1,23 @@
+a {
+  text-shadow: initial;
+}
+
+b {
+  text-shadow: inherit;
+}
+
+c {
+  text-shadow: unset;
+}
+
+d {
+  text-shadow: none;
+}
+
+e {
+  text-shadow: 0 5em;
+}
+
+f {
+  text-shadow: 5px 3mm black;
+}
diff --git a/testsuite/css/parser/text-shadow.ref.css b/testsuite/css/parser/text-shadow.ref.css
new file mode 100644
index 0000000..cefec6c
--- /dev/null
+++ b/testsuite/css/parser/text-shadow.ref.css
@@ -0,0 +1,23 @@
+a {
+  text-shadow: initial;
+}
+
+b {
+  text-shadow: inherit;
+}
+
+c {
+  text-shadow: unset;
+}
+
+d {
+  text-shadow: none;
+}
+
+e {
+  text-shadow: 0 5em currentColor;
+}
+
+f {
+  text-shadow: 5px 3mm rgb(0,0,0);
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]