less 2.3.3 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +5 -0
  3. data/less.gemspec +1 -1
  4. data/lib/less/js/.gitattributes +9 -0
  5. data/lib/less/js/.gitignore +1 -0
  6. data/lib/less/js/.npmignore +1 -1
  7. data/lib/less/js/CHANGELOG.md +68 -0
  8. data/lib/less/js/CONTRIBUTING.md +33 -34
  9. data/lib/less/js/Makefile +24 -9
  10. data/lib/less/js/README.md +2 -2
  11. data/lib/less/js/bin/lessc +102 -25
  12. data/lib/less/js/build/amd.js +1 -1
  13. data/lib/less/js/build/header.js +9 -7
  14. data/lib/less/js/dist/less-1.3.3.js +2 -2
  15. data/lib/less/js/dist/less-1.3.3.min.js +2 -2
  16. data/lib/less/js/dist/less-1.4.0-beta.js +5830 -0
  17. data/lib/less/js/dist/less-1.4.0-beta.min.js +11 -0
  18. data/lib/less/js/dist/less-1.4.0.js +5830 -0
  19. data/lib/less/js/dist/less-1.4.0.min.js +11 -0
  20. data/lib/less/js/dist/less-1.4.1.js +5837 -0
  21. data/lib/less/js/dist/less-1.4.1.min.js +11 -0
  22. data/lib/less/js/dist/less-1.4.2.js +5837 -0
  23. data/lib/less/js/dist/less-1.4.2.min.js +11 -0
  24. data/lib/less/js/dist/less-rhino-1.4.0.js +4273 -0
  25. data/lib/less/js/lib/less/browser.js +131 -101
  26. data/lib/less/js/lib/less/env.js +105 -0
  27. data/lib/less/js/lib/less/extend-visitor.js +391 -0
  28. data/lib/less/js/lib/less/functions.js +174 -19
  29. data/lib/less/js/lib/less/import-visitor.js +107 -0
  30. data/lib/less/js/lib/less/index.js +70 -63
  31. data/lib/less/js/lib/less/join-selector-visitor.js +37 -0
  32. data/lib/less/js/lib/less/lessc_helper.js +13 -4
  33. data/lib/less/js/lib/less/parser.js +353 -264
  34. data/lib/less/js/lib/less/rhino.js +5 -2
  35. data/lib/less/js/lib/less/tree.js +1 -1
  36. data/lib/less/js/lib/less/tree/alpha.js +7 -3
  37. data/lib/less/js/lib/less/tree/anonymous.js +1 -0
  38. data/lib/less/js/lib/less/tree/assignment.js +4 -0
  39. data/lib/less/js/lib/less/tree/call.js +14 -8
  40. data/lib/less/js/lib/less/tree/color.js +50 -5
  41. data/lib/less/js/lib/less/tree/comment.js +1 -0
  42. data/lib/less/js/lib/less/tree/condition.js +35 -28
  43. data/lib/less/js/lib/less/tree/dimension.js +270 -16
  44. data/lib/less/js/lib/less/tree/directive.js +7 -2
  45. data/lib/less/js/lib/less/tree/element.js +57 -21
  46. data/lib/less/js/lib/less/tree/expression.js +29 -4
  47. data/lib/less/js/lib/less/tree/extend.js +43 -0
  48. data/lib/less/js/lib/less/tree/import.js +49 -28
  49. data/lib/less/js/lib/less/tree/javascript.js +1 -0
  50. data/lib/less/js/lib/less/tree/keyword.js +3 -2
  51. data/lib/less/js/lib/less/tree/media.js +20 -4
  52. data/lib/less/js/lib/less/tree/mixin.js +38 -18
  53. data/lib/less/js/lib/less/tree/negative.js +22 -0
  54. data/lib/less/js/lib/less/tree/operation.js +32 -17
  55. data/lib/less/js/lib/less/tree/paren.js +5 -1
  56. data/lib/less/js/lib/less/tree/quoted.js +5 -3
  57. data/lib/less/js/lib/less/tree/rule.js +44 -31
  58. data/lib/less/js/lib/less/tree/ruleset.js +50 -23
  59. data/lib/less/js/lib/less/tree/selector.js +49 -39
  60. data/lib/less/js/lib/less/tree/unicode-descriptor.js +1 -0
  61. data/lib/less/js/lib/less/tree/url.js +9 -5
  62. data/lib/less/js/lib/less/tree/value.js +4 -1
  63. data/lib/less/js/lib/less/tree/variable.js +4 -3
  64. data/lib/less/js/lib/less/visitor.js +54 -0
  65. data/lib/less/js/package.json +69 -19
  66. data/lib/less/js/test/browser-test-prepare.js +23 -6
  67. data/lib/less/js/test/browser/common.js +55 -3
  68. data/lib/less/js/test/browser/css/urls.css +13 -0
  69. data/lib/less/js/test/browser/less/relative-urls/urls.less +1 -1
  70. data/lib/less/js/test/browser/less/urls.less +16 -0
  71. data/lib/less/js/test/browser/phantom-runner.js +7 -5
  72. data/lib/less/js/test/browser/runner-browser.js +5 -1
  73. data/lib/less/js/test/browser/runner-errors.js +5 -0
  74. data/lib/less/js/test/browser/runner-legacy.js +6 -0
  75. data/lib/less/js/test/browser/runner-production.js +7 -0
  76. data/lib/less/js/test/browser/template.htm +6 -6
  77. data/lib/less/js/test/css/comments.css +1 -0
  78. data/lib/less/js/test/css/compression/compression.css +2 -0
  79. data/lib/less/js/test/css/css-3.css +4 -0
  80. data/lib/less/js/test/css/css.css +9 -3
  81. data/lib/less/js/test/css/extend-chaining.css +72 -0
  82. data/lib/less/js/test/css/extend-clearfix.css +19 -0
  83. data/lib/less/js/test/css/extend-exact.css +37 -0
  84. data/lib/less/js/test/css/extend-media.css +24 -0
  85. data/lib/less/js/test/css/extend-nest.css +57 -0
  86. data/lib/less/js/test/css/extend-selector.css +72 -0
  87. data/lib/less/js/test/css/extend.css +76 -0
  88. data/lib/less/js/test/css/functions.css +28 -0
  89. data/lib/less/js/test/css/import-interpolation.css +6 -0
  90. data/lib/less/js/test/css/import.css +18 -1
  91. data/lib/less/js/test/css/legacy/legacy.css +7 -0
  92. data/lib/less/js/test/css/media.css +9 -1
  93. data/lib/less/js/test/css/mixins-args.css +18 -0
  94. data/lib/less/js/test/css/mixins-guards.css +5 -0
  95. data/lib/less/js/test/css/parens.css +18 -5
  96. data/lib/less/js/test/css/selectors.css +14 -6
  97. data/lib/less/js/test/css/urls.css +17 -0
  98. data/lib/less/js/test/css/variables.css +22 -3
  99. data/lib/less/js/test/data/data-uri-fail.png +0 -0
  100. data/lib/less/js/test/data/image.jpg +0 -0
  101. data/lib/less/js/test/data/page.html +1 -0
  102. data/lib/less/js/test/less-test.js +41 -9
  103. data/lib/less/js/test/less/colors.less +4 -4
  104. data/lib/less/js/test/less/comments.less +2 -2
  105. data/lib/less/js/test/less/compression/compression.less +16 -0
  106. data/lib/less/js/test/less/css-3.less +5 -1
  107. data/lib/less/js/test/less/css.less +9 -3
  108. data/lib/less/js/test/less/errors/add-mixed-units.less +3 -0
  109. data/lib/less/js/test/less/errors/add-mixed-units.txt +2 -0
  110. data/lib/less/js/test/less/errors/add-mixed-units2.less +3 -0
  111. data/lib/less/js/test/less/errors/add-mixed-units2.txt +2 -0
  112. data/lib/less/js/test/less/errors/bad-variable-declaration1.txt +1 -1
  113. data/lib/less/js/test/less/errors/color-operation-error.less +3 -0
  114. data/lib/less/js/test/less/errors/color-operation-error.txt +2 -0
  115. data/lib/less/js/test/less/errors/comment-in-selector.txt +1 -1
  116. data/lib/less/js/test/less/errors/divide-mixed-units.less +3 -0
  117. data/lib/less/js/test/less/errors/divide-mixed-units.txt +4 -0
  118. data/lib/less/js/test/less/errors/extend-no-selector.less +3 -0
  119. data/lib/less/js/test/less/errors/extend-no-selector.txt +3 -0
  120. data/lib/less/js/test/less/errors/extend-not-at-end.less +3 -0
  121. data/lib/less/js/test/less/errors/extend-not-at-end.txt +3 -0
  122. data/lib/less/js/test/less/errors/import-missing.less +5 -0
  123. data/lib/less/js/test/less/errors/import-missing.txt +3 -3
  124. data/lib/less/js/test/less/errors/import-no-semi.txt +1 -1
  125. data/lib/less/js/test/less/errors/import-subfolder1.txt +1 -1
  126. data/lib/less/js/test/less/errors/import-subfolder2.txt +1 -1
  127. data/lib/less/js/test/less/errors/javascript-error.txt +1 -1
  128. data/lib/less/js/test/less/errors/mixed-mixin-definition-args-1.txt +1 -1
  129. data/lib/less/js/test/less/errors/mixed-mixin-definition-args-2.txt +1 -1
  130. data/lib/less/js/test/less/errors/mixin-not-defined.txt +1 -1
  131. data/lib/less/js/test/less/errors/mixin-not-matched.txt +1 -1
  132. data/lib/less/js/test/less/errors/mixin-not-matched2.txt +1 -1
  133. data/lib/less/js/test/less/errors/multiply-mixed-units.less +7 -0
  134. data/lib/less/js/test/less/errors/multiply-mixed-units.txt +4 -0
  135. data/lib/less/js/test/less/errors/parens-error-1.less +3 -0
  136. data/lib/less/js/test/less/errors/parens-error-1.txt +4 -0
  137. data/lib/less/js/test/less/errors/parens-error-2.less +3 -0
  138. data/lib/less/js/test/less/errors/parens-error-2.txt +4 -0
  139. data/lib/less/js/test/less/errors/parens-error-3.less +3 -0
  140. data/lib/less/js/test/less/errors/parens-error-3.txt +4 -0
  141. data/lib/less/js/test/less/errors/parse-error-curly-bracket.txt +1 -1
  142. data/lib/less/js/test/less/errors/parse-error-missing-bracket.txt +2 -1
  143. data/lib/less/js/test/less/errors/parse-error-with-import.txt +1 -1
  144. data/lib/less/js/test/less/errors/property-ie5-hack.txt +1 -1
  145. data/lib/less/js/test/less/errors/property-in-root.less +4 -0
  146. data/lib/less/js/test/less/errors/property-in-root.txt +4 -0
  147. data/lib/less/js/test/less/errors/property-in-root2.less +1 -0
  148. data/lib/less/js/test/less/errors/property-in-root2.txt +4 -0
  149. data/lib/less/js/test/less/errors/property-in-root3.less +4 -0
  150. data/lib/less/js/test/less/errors/property-in-root3.txt +3 -0
  151. data/lib/less/js/test/less/errors/recursive-variable.txt +1 -1
  152. data/lib/less/js/test/less/extend-chaining.less +79 -0
  153. data/lib/less/js/test/less/extend-clearfix.less +19 -0
  154. data/lib/less/js/test/less/extend-exact.less +46 -0
  155. data/lib/less/js/test/less/extend-media.less +24 -0
  156. data/lib/less/js/test/less/extend-nest.less +65 -0
  157. data/lib/less/js/test/less/extend-selector.less +84 -0
  158. data/lib/less/js/test/less/extend.less +81 -0
  159. data/lib/less/js/test/less/functions.less +37 -6
  160. data/lib/less/js/test/less/import-interpolation.less +8 -0
  161. data/lib/less/js/test/less/import-once.less +4 -4
  162. data/lib/less/js/test/less/import.less +11 -2
  163. data/lib/less/js/test/less/import/deeper/import-once-test-a.less +1 -1
  164. data/lib/less/js/test/less/import/import-interpolation.less +1 -0
  165. data/lib/less/js/test/less/import/import-interpolation2.less +5 -0
  166. data/lib/less/js/test/less/javascript.less +1 -1
  167. data/lib/less/js/test/less/legacy/legacy.less +7 -0
  168. data/lib/less/js/test/less/media.less +14 -3
  169. data/lib/less/js/test/less/mixins-args.less +43 -5
  170. data/lib/less/js/test/less/mixins-guards.less +13 -0
  171. data/lib/less/js/test/less/mixins-named-args.less +5 -5
  172. data/lib/less/js/test/less/mixins-nested.less +2 -2
  173. data/lib/less/js/test/less/mixins-pattern.less +1 -1
  174. data/lib/less/js/test/less/mixins.less +1 -1
  175. data/lib/less/js/test/less/operations.less +27 -27
  176. data/lib/less/js/test/less/parens.less +20 -5
  177. data/lib/less/js/test/less/selectors.less +14 -7
  178. data/lib/less/js/test/less/urls.less +24 -0
  179. data/lib/less/js/test/less/variables.less +42 -12
  180. data/lib/less/loader.rb +33 -0
  181. data/lib/less/version.rb +1 -1
  182. data/spec/less/parser_spec.rb +5 -5
  183. metadata +76 -6
  184. data/lib/less/js/build/ecma-5.js +0 -120
  185. data/lib/less/js/lib/less/tree/ratio.js +0 -13
@@ -1,3 +1,7 @@
1
- describe("less.js browser tests", function() {
1
+ describe("less.js browser behaviour", function() {
2
2
  testLessEqualsInDocument();
3
+
4
+ it("has some log messages", function() {
5
+ expect(logMessages.length).toBeGreaterThan(0);
6
+ });
3
7
  });
@@ -0,0 +1,5 @@
1
+ less.strictUnits = true;
2
+
3
+ describe("less.js error tests", function() {
4
+ testLessErrorsInDocument();
5
+ });
@@ -0,0 +1,6 @@
1
+ less.strictMath = false;
2
+ less.strictUnits = false;
3
+
4
+ describe("less.js legacy tests", function() {
5
+ testLessEqualsInDocument();
6
+ });
@@ -0,0 +1,7 @@
1
+ less.env = "production";
2
+
3
+ describe("less.js production behaviour", function() {
4
+ it("doesn't log any messages", function() {
5
+ expect(logMessages.length).toEqual(0);
6
+ });
7
+ });
@@ -1,9 +1,9 @@
1
- <script src="http://localhost:8081/browser/jasmine.js" type="text/javascript"></script>
2
- <script src="http://localhost:8081/browser/jasmine-html.js" type="text/javascript"></script>
3
- <script src="http://localhost:8081/browser/common.js" type="text/javascript"></script>
4
- <script src="http://localhost:8081/browser/runner-{runner-name}.js" type="text/javascript"></script>
5
- <script src="http://localhost:8081/browser/less.js" type="text/javascript"></script>
6
- <link rel="stylesheet" type="text/css" href="http://localhost:8081/browser/jasmine.css"></link>
1
+ <script src="/browser/jasmine.js" type="text/javascript"></script>
2
+ <script src="/browser/jasmine-html.js" type="text/javascript"></script>
3
+ <script src="/browser/common.js" type="text/javascript"></script>
4
+ <script src="/browser/runner-{runner-name}.js" type="text/javascript"></script>
5
+ <script src="/browser/less.js" type="text/javascript"></script>
6
+ <link rel="stylesheet" type="text/css" href="/browser/jasmine.css"></link>
7
7
  </head>
8
8
  <body>
9
9
  </body>
@@ -30,6 +30,7 @@
30
30
  /**/
31
31
  color: red;
32
32
  /* A C-style comment */
33
+ /* A C-style comment */
33
34
 
34
35
  background-color: orange;
35
36
  font-size: 12px;
@@ -0,0 +1,2 @@
1
+ #colours{color1:#fea;color2:#fea;color3:rgba(255,238,170,0.1);string:"#ffeeaa"}
2
+ dimensions{val:.1px;val:0;val:4cm;val:.2;val:5;angles-must-have-unit:0deg;width:auto\9}
@@ -1,6 +1,7 @@
1
1
  .comma-delimited {
2
2
  text-shadow: -1px -1px 1px #ff0000, 6px 5px 5px #ffff00;
3
3
  -moz-box-shadow: 0pt 0pt 2px rgba(255, 255, 255, 0.4) inset, 0pt 4px 6px rgba(255, 255, 255, 0.4) inset;
4
+ -webkit-transform: rotate(-0.0000000001deg);
4
5
  }
5
6
  @font-face {
6
7
  font-family: Headline;
@@ -111,3 +112,6 @@ foo | * {
111
112
  h1 {
112
113
  color: green;
113
114
  }
115
+ .upper-test {
116
+ UpperCaseProperties: allowed;
117
+ }
@@ -26,10 +26,14 @@ div#id {
26
26
  color: grey;
27
27
  }
28
28
  @media print {
29
- font-size: 3em;
29
+ * {
30
+ font-size: 3em;
31
+ }
30
32
  }
31
33
  @media screen {
32
- font-size: 10px;
34
+ * {
35
+ font-size: 10px;
36
+ }
33
37
  }
34
38
  @font-face {
35
39
  font-family: 'Garamond Pro';
@@ -58,8 +62,9 @@ p + h1 {
58
62
  #more-shorthands {
59
63
  margin: 0;
60
64
  padding: 1px 0 2px 0;
61
- font: normal small/20px 'Trebuchet MS', Verdana, sans-serif;
65
+ font: normal small / 20px 'Trebuchet MS', Verdana, sans-serif;
62
66
  font: 0/0 a;
67
+ border-radius: 5px / 10px;
63
68
  }
64
69
  .misc {
65
70
  -moz-border-radius: 2px;
@@ -69,6 +74,7 @@ p + h1 {
69
74
  background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), to(#0000ff));
70
75
  margin: ;
71
76
  filter: alpha(opacity=100);
77
+ width: auto\9;
72
78
  }
73
79
  .misc .nested-multiple {
74
80
  multiple-semi-colons: yes;
@@ -0,0 +1,72 @@
1
+ .a,
2
+ .b,
3
+ .c {
4
+ color: black;
5
+ }
6
+ .f,
7
+ .e,
8
+ .d {
9
+ color: black;
10
+ }
11
+ .g.h,
12
+ .i.j.h,
13
+ .k.j.h {
14
+ color: black;
15
+ }
16
+ .i.j,
17
+ .k.j {
18
+ color: white;
19
+ }
20
+ .l,
21
+ .m,
22
+ .n,
23
+ .o,
24
+ .p,
25
+ .q,
26
+ .r,
27
+ .s,
28
+ .t {
29
+ color: black;
30
+ }
31
+ .u,
32
+ .v.u.v {
33
+ color: black;
34
+ }
35
+ .w,
36
+ .v.w.v {
37
+ color: black;
38
+ }
39
+ .x,
40
+ .y,
41
+ .z {
42
+ color: x;
43
+ }
44
+ .y,
45
+ .z,
46
+ .x {
47
+ color: y;
48
+ }
49
+ .z,
50
+ .x,
51
+ .y {
52
+ color: z;
53
+ }
54
+ @media tv {
55
+ .ma,
56
+ .mb,
57
+ .mc {
58
+ color: black;
59
+ }
60
+ .md,
61
+ .ma,
62
+ .mb,
63
+ .mc {
64
+ color: white;
65
+ }
66
+ }
67
+ @media tv and plasma {
68
+ .me,
69
+ .mf {
70
+ background: red;
71
+ }
72
+ }
@@ -0,0 +1,19 @@
1
+ .clearfix,
2
+ .foo,
3
+ .bar {
4
+ *zoom: 1;
5
+ }
6
+ .clearfix:after,
7
+ .foo:after,
8
+ .bar:after {
9
+ content: '';
10
+ display: block;
11
+ clear: both;
12
+ height: 0;
13
+ }
14
+ .foo {
15
+ color: red;
16
+ }
17
+ .bar {
18
+ color: blue;
19
+ }
@@ -0,0 +1,37 @@
1
+ .replace.replace .replace,
2
+ .c.replace + .replace .replace,
3
+ .replace.replace .c,
4
+ .c.replace + .replace .c,
5
+ .rep_ace {
6
+ prop: copy-paste-replace;
7
+ }
8
+ .a .b .c {
9
+ prop: not_effected;
10
+ }
11
+ .a,
12
+ .effected {
13
+ prop: is_effected;
14
+ }
15
+ .a .b {
16
+ prop: not_effected;
17
+ }
18
+ .a .b.c {
19
+ prop: not_effected;
20
+ }
21
+ .c .b .a,
22
+ .a .b .a,
23
+ .c .a .a,
24
+ .a .a .a,
25
+ .c .b .c,
26
+ .a .b .c,
27
+ .c .a .c,
28
+ .a .a .c {
29
+ prop: not_effected;
30
+ }
31
+ .e.e,
32
+ .dbl {
33
+ prop: extend-double;
34
+ }
35
+ .e.e:hover {
36
+ hover: not-extended;
37
+ }
@@ -0,0 +1,24 @@
1
+ .ext1 .ext2,
2
+ .all .ext2 {
3
+ background: black;
4
+ }
5
+ @media tv {
6
+ .ext1 .ext3,
7
+ .tv-lowres .ext3,
8
+ .all .ext3 {
9
+ color: white;
10
+ }
11
+ .tv-lowres {
12
+ background: blue;
13
+ }
14
+ }
15
+ @media tv and hires {
16
+ .ext1 .ext4,
17
+ .tv-hires .ext4,
18
+ .all .ext4 {
19
+ color: green;
20
+ }
21
+ .tv-hires {
22
+ background: red;
23
+ }
24
+ }
@@ -0,0 +1,57 @@
1
+ .sidebar,
2
+ .sidebar2,
3
+ .type1 .sidebar3,
4
+ .type2.sidebar4 {
5
+ width: 300px;
6
+ background: red;
7
+ }
8
+ .sidebar .box,
9
+ .sidebar2 .box,
10
+ .type1 .sidebar3 .box,
11
+ .type2.sidebar4 .box {
12
+ background: #FFF;
13
+ border: 1px solid #000;
14
+ margin: 10px 0;
15
+ }
16
+ .sidebar2 {
17
+ background: blue;
18
+ }
19
+ .type1 .sidebar3 {
20
+ background: green;
21
+ }
22
+ .type2.sidebar4 {
23
+ background: red;
24
+ }
25
+ .button,
26
+ .submit {
27
+ color: black;
28
+ }
29
+ .button:hover,
30
+ .submit:hover {
31
+ color: white;
32
+ }
33
+ .button2 :hover {
34
+ nested: white;
35
+ }
36
+ .button2 :hover {
37
+ notnested: black;
38
+ }
39
+ .amp-test-h,
40
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
41
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g,
42
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
43
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g,
44
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
45
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g,
46
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
47
+ .amp-test-f.amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g,
48
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
49
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g,
50
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
51
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g,
52
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
53
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-a.amp-test-d.amp-test-b.amp-test-e.amp-test-g,
54
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-a.amp-test-e.amp-test-g,
55
+ .amp-test-f.amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e + .amp-test-c .amp-test-b.amp-test-d.amp-test-b.amp-test-e.amp-test-g {
56
+ test: extended by masses of selectors;
57
+ }
@@ -0,0 +1,72 @@
1
+ .error,
2
+ .badError {
3
+ border: 1px #f00;
4
+ background: #fdd;
5
+ }
6
+ .error.intrusion,
7
+ .badError.intrusion {
8
+ font-size: 1.3em;
9
+ font-weight: bold;
10
+ }
11
+ .intrusion .error,
12
+ .intrusion .badError {
13
+ display: none;
14
+ }
15
+ .badError {
16
+ border-width: 3px;
17
+ }
18
+ .foo .bar,
19
+ .foo .baz,
20
+ .ext1 .ext2 .bar,
21
+ .ext1 .ext2 .baz,
22
+ .ext3 .bar,
23
+ .ext3 .baz,
24
+ .ext4 .bar,
25
+ .ext4 .baz {
26
+ display: none;
27
+ }
28
+ div.ext5,
29
+ .ext6 > .ext5,
30
+ div.ext7,
31
+ .ext6 > .ext7 {
32
+ width: 100px;
33
+ }
34
+ .ext,
35
+ .a .c,
36
+ .b .c {
37
+ test: 1;
38
+ }
39
+ .a,
40
+ .b {
41
+ test: 2;
42
+ }
43
+ .a .c,
44
+ .b .c {
45
+ test: 3;
46
+ }
47
+ .a .c .d,
48
+ .b .c .d {
49
+ test: 4;
50
+ }
51
+ .replace.replace .replace,
52
+ .c.replace + .replace .replace,
53
+ .replace.replace .c,
54
+ .c.replace + .replace .c,
55
+ .rep_ace .rep_ace .rep_ace,
56
+ .c.rep_ace + .rep_ace .rep_ace,
57
+ .rep_ace .rep_ace .c,
58
+ .c.rep_ace + .rep_ace .c {
59
+ prop: copy-paste-replace;
60
+ }
61
+ .attributes [data="test"],
62
+ .attributes .attributes .attribute-test {
63
+ extend: attributes;
64
+ }
65
+ .attributes [data],
66
+ .attributes .attributes .attribute-test2 {
67
+ extend: attributes2;
68
+ }
69
+ .attributes [data="test3"],
70
+ .attributes .attributes .attribute-test {
71
+ extend: attributes2;
72
+ }
@@ -0,0 +1,76 @@
1
+ .error,
2
+ .badError {
3
+ border: 1px #f00;
4
+ background: #fdd;
5
+ }
6
+ .error.intrusion,
7
+ .badError.intrusion {
8
+ font-size: 1.3em;
9
+ font-weight: bold;
10
+ }
11
+ .intrusion .error,
12
+ .intrusion .badError {
13
+ display: none;
14
+ }
15
+ .badError {
16
+ border-width: 3px;
17
+ }
18
+ .foo .bar,
19
+ .foo .baz,
20
+ .ext1 .ext2 .bar,
21
+ .ext1 .ext2 .baz,
22
+ .ext3 .bar,
23
+ .ext3 .baz,
24
+ .foo .ext3,
25
+ .ext4 .bar,
26
+ .ext4 .baz,
27
+ .foo .ext4 {
28
+ display: none;
29
+ }
30
+ div.ext5,
31
+ .ext6 > .ext5,
32
+ div.ext7,
33
+ .ext6 > .ext7 {
34
+ width: 100px;
35
+ }
36
+ .ext8.ext9,
37
+ .fuu {
38
+ result: add-foo;
39
+ }
40
+ .ext8 .ext9,
41
+ .ext8 + .ext9,
42
+ .ext8 > .ext9,
43
+ .buu,
44
+ .zap,
45
+ .zoo {
46
+ result: bar-matched;
47
+ }
48
+ .ext8.nomatch {
49
+ result: none;
50
+ }
51
+ .ext8 .ext9,
52
+ .buu {
53
+ result: match-nested-bar;
54
+ }
55
+ .ext8.ext9,
56
+ .fuu {
57
+ result: match-nested-foo;
58
+ }
59
+ .aa,
60
+ .cc {
61
+ color: black;
62
+ }
63
+ .aa .dd,
64
+ .aa .ee {
65
+ background: red;
66
+ }
67
+ .bb,
68
+ .cc,
69
+ .ee,
70
+ .ff {
71
+ background: red;
72
+ }
73
+ .bb .bb,
74
+ .ff .ff {
75
+ color: black;
76
+ }