less 2.3.3 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +5 -0
- data/less.gemspec +1 -1
- data/lib/less/js/.gitattributes +9 -0
- data/lib/less/js/.gitignore +1 -0
- data/lib/less/js/.npmignore +1 -1
- data/lib/less/js/CHANGELOG.md +68 -0
- data/lib/less/js/CONTRIBUTING.md +33 -34
- data/lib/less/js/Makefile +24 -9
- data/lib/less/js/README.md +2 -2
- data/lib/less/js/bin/lessc +102 -25
- data/lib/less/js/build/amd.js +1 -1
- data/lib/less/js/build/header.js +9 -7
- data/lib/less/js/dist/less-1.3.3.js +2 -2
- data/lib/less/js/dist/less-1.3.3.min.js +2 -2
- data/lib/less/js/dist/less-1.4.0-beta.js +5830 -0
- data/lib/less/js/dist/less-1.4.0-beta.min.js +11 -0
- data/lib/less/js/dist/less-1.4.0.js +5830 -0
- data/lib/less/js/dist/less-1.4.0.min.js +11 -0
- data/lib/less/js/dist/less-1.4.1.js +5837 -0
- data/lib/less/js/dist/less-1.4.1.min.js +11 -0
- data/lib/less/js/dist/less-1.4.2.js +5837 -0
- data/lib/less/js/dist/less-1.4.2.min.js +11 -0
- data/lib/less/js/dist/less-rhino-1.4.0.js +4273 -0
- data/lib/less/js/lib/less/browser.js +131 -101
- data/lib/less/js/lib/less/env.js +105 -0
- data/lib/less/js/lib/less/extend-visitor.js +391 -0
- data/lib/less/js/lib/less/functions.js +174 -19
- data/lib/less/js/lib/less/import-visitor.js +107 -0
- data/lib/less/js/lib/less/index.js +70 -63
- data/lib/less/js/lib/less/join-selector-visitor.js +37 -0
- data/lib/less/js/lib/less/lessc_helper.js +13 -4
- data/lib/less/js/lib/less/parser.js +353 -264
- data/lib/less/js/lib/less/rhino.js +5 -2
- data/lib/less/js/lib/less/tree.js +1 -1
- data/lib/less/js/lib/less/tree/alpha.js +7 -3
- data/lib/less/js/lib/less/tree/anonymous.js +1 -0
- data/lib/less/js/lib/less/tree/assignment.js +4 -0
- data/lib/less/js/lib/less/tree/call.js +14 -8
- data/lib/less/js/lib/less/tree/color.js +50 -5
- data/lib/less/js/lib/less/tree/comment.js +1 -0
- data/lib/less/js/lib/less/tree/condition.js +35 -28
- data/lib/less/js/lib/less/tree/dimension.js +270 -16
- data/lib/less/js/lib/less/tree/directive.js +7 -2
- data/lib/less/js/lib/less/tree/element.js +57 -21
- data/lib/less/js/lib/less/tree/expression.js +29 -4
- data/lib/less/js/lib/less/tree/extend.js +43 -0
- data/lib/less/js/lib/less/tree/import.js +49 -28
- data/lib/less/js/lib/less/tree/javascript.js +1 -0
- data/lib/less/js/lib/less/tree/keyword.js +3 -2
- data/lib/less/js/lib/less/tree/media.js +20 -4
- data/lib/less/js/lib/less/tree/mixin.js +38 -18
- data/lib/less/js/lib/less/tree/negative.js +22 -0
- data/lib/less/js/lib/less/tree/operation.js +32 -17
- data/lib/less/js/lib/less/tree/paren.js +5 -1
- data/lib/less/js/lib/less/tree/quoted.js +5 -3
- data/lib/less/js/lib/less/tree/rule.js +44 -31
- data/lib/less/js/lib/less/tree/ruleset.js +50 -23
- data/lib/less/js/lib/less/tree/selector.js +49 -39
- data/lib/less/js/lib/less/tree/unicode-descriptor.js +1 -0
- data/lib/less/js/lib/less/tree/url.js +9 -5
- data/lib/less/js/lib/less/tree/value.js +4 -1
- data/lib/less/js/lib/less/tree/variable.js +4 -3
- data/lib/less/js/lib/less/visitor.js +54 -0
- data/lib/less/js/package.json +69 -19
- data/lib/less/js/test/browser-test-prepare.js +23 -6
- data/lib/less/js/test/browser/common.js +55 -3
- data/lib/less/js/test/browser/css/urls.css +13 -0
- data/lib/less/js/test/browser/less/relative-urls/urls.less +1 -1
- data/lib/less/js/test/browser/less/urls.less +16 -0
- data/lib/less/js/test/browser/phantom-runner.js +7 -5
- data/lib/less/js/test/browser/runner-browser.js +5 -1
- data/lib/less/js/test/browser/runner-errors.js +5 -0
- data/lib/less/js/test/browser/runner-legacy.js +6 -0
- data/lib/less/js/test/browser/runner-production.js +7 -0
- data/lib/less/js/test/browser/template.htm +6 -6
- data/lib/less/js/test/css/comments.css +1 -0
- data/lib/less/js/test/css/compression/compression.css +2 -0
- data/lib/less/js/test/css/css-3.css +4 -0
- data/lib/less/js/test/css/css.css +9 -3
- data/lib/less/js/test/css/extend-chaining.css +72 -0
- data/lib/less/js/test/css/extend-clearfix.css +19 -0
- data/lib/less/js/test/css/extend-exact.css +37 -0
- data/lib/less/js/test/css/extend-media.css +24 -0
- data/lib/less/js/test/css/extend-nest.css +57 -0
- data/lib/less/js/test/css/extend-selector.css +72 -0
- data/lib/less/js/test/css/extend.css +76 -0
- data/lib/less/js/test/css/functions.css +28 -0
- data/lib/less/js/test/css/import-interpolation.css +6 -0
- data/lib/less/js/test/css/import.css +18 -1
- data/lib/less/js/test/css/legacy/legacy.css +7 -0
- data/lib/less/js/test/css/media.css +9 -1
- data/lib/less/js/test/css/mixins-args.css +18 -0
- data/lib/less/js/test/css/mixins-guards.css +5 -0
- data/lib/less/js/test/css/parens.css +18 -5
- data/lib/less/js/test/css/selectors.css +14 -6
- data/lib/less/js/test/css/urls.css +17 -0
- data/lib/less/js/test/css/variables.css +22 -3
- data/lib/less/js/test/data/data-uri-fail.png +0 -0
- data/lib/less/js/test/data/image.jpg +0 -0
- data/lib/less/js/test/data/page.html +1 -0
- data/lib/less/js/test/less-test.js +41 -9
- data/lib/less/js/test/less/colors.less +4 -4
- data/lib/less/js/test/less/comments.less +2 -2
- data/lib/less/js/test/less/compression/compression.less +16 -0
- data/lib/less/js/test/less/css-3.less +5 -1
- data/lib/less/js/test/less/css.less +9 -3
- data/lib/less/js/test/less/errors/add-mixed-units.less +3 -0
- data/lib/less/js/test/less/errors/add-mixed-units.txt +2 -0
- data/lib/less/js/test/less/errors/add-mixed-units2.less +3 -0
- data/lib/less/js/test/less/errors/add-mixed-units2.txt +2 -0
- data/lib/less/js/test/less/errors/bad-variable-declaration1.txt +1 -1
- data/lib/less/js/test/less/errors/color-operation-error.less +3 -0
- data/lib/less/js/test/less/errors/color-operation-error.txt +2 -0
- data/lib/less/js/test/less/errors/comment-in-selector.txt +1 -1
- data/lib/less/js/test/less/errors/divide-mixed-units.less +3 -0
- data/lib/less/js/test/less/errors/divide-mixed-units.txt +4 -0
- data/lib/less/js/test/less/errors/extend-no-selector.less +3 -0
- data/lib/less/js/test/less/errors/extend-no-selector.txt +3 -0
- data/lib/less/js/test/less/errors/extend-not-at-end.less +3 -0
- data/lib/less/js/test/less/errors/extend-not-at-end.txt +3 -0
- data/lib/less/js/test/less/errors/import-missing.less +5 -0
- data/lib/less/js/test/less/errors/import-missing.txt +3 -3
- data/lib/less/js/test/less/errors/import-no-semi.txt +1 -1
- data/lib/less/js/test/less/errors/import-subfolder1.txt +1 -1
- data/lib/less/js/test/less/errors/import-subfolder2.txt +1 -1
- data/lib/less/js/test/less/errors/javascript-error.txt +1 -1
- data/lib/less/js/test/less/errors/mixed-mixin-definition-args-1.txt +1 -1
- data/lib/less/js/test/less/errors/mixed-mixin-definition-args-2.txt +1 -1
- data/lib/less/js/test/less/errors/mixin-not-defined.txt +1 -1
- data/lib/less/js/test/less/errors/mixin-not-matched.txt +1 -1
- data/lib/less/js/test/less/errors/mixin-not-matched2.txt +1 -1
- data/lib/less/js/test/less/errors/multiply-mixed-units.less +7 -0
- data/lib/less/js/test/less/errors/multiply-mixed-units.txt +4 -0
- data/lib/less/js/test/less/errors/parens-error-1.less +3 -0
- data/lib/less/js/test/less/errors/parens-error-1.txt +4 -0
- data/lib/less/js/test/less/errors/parens-error-2.less +3 -0
- data/lib/less/js/test/less/errors/parens-error-2.txt +4 -0
- data/lib/less/js/test/less/errors/parens-error-3.less +3 -0
- data/lib/less/js/test/less/errors/parens-error-3.txt +4 -0
- data/lib/less/js/test/less/errors/parse-error-curly-bracket.txt +1 -1
- data/lib/less/js/test/less/errors/parse-error-missing-bracket.txt +2 -1
- data/lib/less/js/test/less/errors/parse-error-with-import.txt +1 -1
- data/lib/less/js/test/less/errors/property-ie5-hack.txt +1 -1
- data/lib/less/js/test/less/errors/property-in-root.less +4 -0
- data/lib/less/js/test/less/errors/property-in-root.txt +4 -0
- data/lib/less/js/test/less/errors/property-in-root2.less +1 -0
- data/lib/less/js/test/less/errors/property-in-root2.txt +4 -0
- data/lib/less/js/test/less/errors/property-in-root3.less +4 -0
- data/lib/less/js/test/less/errors/property-in-root3.txt +3 -0
- data/lib/less/js/test/less/errors/recursive-variable.txt +1 -1
- data/lib/less/js/test/less/extend-chaining.less +79 -0
- data/lib/less/js/test/less/extend-clearfix.less +19 -0
- data/lib/less/js/test/less/extend-exact.less +46 -0
- data/lib/less/js/test/less/extend-media.less +24 -0
- data/lib/less/js/test/less/extend-nest.less +65 -0
- data/lib/less/js/test/less/extend-selector.less +84 -0
- data/lib/less/js/test/less/extend.less +81 -0
- data/lib/less/js/test/less/functions.less +37 -6
- data/lib/less/js/test/less/import-interpolation.less +8 -0
- data/lib/less/js/test/less/import-once.less +4 -4
- data/lib/less/js/test/less/import.less +11 -2
- data/lib/less/js/test/less/import/deeper/import-once-test-a.less +1 -1
- data/lib/less/js/test/less/import/import-interpolation.less +1 -0
- data/lib/less/js/test/less/import/import-interpolation2.less +5 -0
- data/lib/less/js/test/less/javascript.less +1 -1
- data/lib/less/js/test/less/legacy/legacy.less +7 -0
- data/lib/less/js/test/less/media.less +14 -3
- data/lib/less/js/test/less/mixins-args.less +43 -5
- data/lib/less/js/test/less/mixins-guards.less +13 -0
- data/lib/less/js/test/less/mixins-named-args.less +5 -5
- data/lib/less/js/test/less/mixins-nested.less +2 -2
- data/lib/less/js/test/less/mixins-pattern.less +1 -1
- data/lib/less/js/test/less/mixins.less +1 -1
- data/lib/less/js/test/less/operations.less +27 -27
- data/lib/less/js/test/less/parens.less +20 -5
- data/lib/less/js/test/less/selectors.less +14 -7
- data/lib/less/js/test/less/urls.less +24 -0
- data/lib/less/js/test/less/variables.less +42 -12
- data/lib/less/loader.rb +33 -0
- data/lib/less/version.rb +1 -1
- data/spec/less/parser_spec.rb +5 -5
- metadata +76 -6
- data/lib/less/js/build/ecma-5.js +0 -120
- data/lib/less/js/lib/less/tree/ratio.js +0 -13
@@ -0,0 +1,24 @@
|
|
1
|
+
.ext1 .ext2 {
|
2
|
+
background: black;
|
3
|
+
}
|
4
|
+
|
5
|
+
@media tv {
|
6
|
+
.ext1 .ext3 {
|
7
|
+
color: white;
|
8
|
+
}
|
9
|
+
.tv-lowres :extend(.ext1 all) {
|
10
|
+
background: blue;
|
11
|
+
}
|
12
|
+
@media hires {
|
13
|
+
.ext1 .ext4 {
|
14
|
+
color: green;
|
15
|
+
}
|
16
|
+
.tv-hires :extend(.ext1 all) {
|
17
|
+
background: red;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
.all:extend(.ext1 all) {
|
23
|
+
|
24
|
+
}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
.sidebar {
|
2
|
+
width: 300px;
|
3
|
+
background: red;
|
4
|
+
|
5
|
+
.box {
|
6
|
+
background: #FFF;
|
7
|
+
border: 1px solid #000;
|
8
|
+
margin: 10px 0;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
.sidebar2 {
|
13
|
+
&:extend(.sidebar all);
|
14
|
+
background: blue;
|
15
|
+
}
|
16
|
+
|
17
|
+
.type1 {
|
18
|
+
.sidebar3 {
|
19
|
+
&:extend(.sidebar all);
|
20
|
+
background: green;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
.type2 {
|
25
|
+
&.sidebar4 {
|
26
|
+
&:extend(.sidebar all);
|
27
|
+
background: red;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
.button {
|
32
|
+
color: black;
|
33
|
+
&:hover {
|
34
|
+
color: white;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
.submit {
|
38
|
+
&:extend(.button);
|
39
|
+
&:hover:extend(.button:hover) {}
|
40
|
+
}
|
41
|
+
|
42
|
+
.nomatch {
|
43
|
+
&:hover:extend(.button :hover) {}
|
44
|
+
}
|
45
|
+
|
46
|
+
.button2 {
|
47
|
+
:hover {
|
48
|
+
nested: white;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
.button2 :hover {
|
52
|
+
notnested: black;
|
53
|
+
}
|
54
|
+
|
55
|
+
.nomatch :extend(.button2:hover) {}
|
56
|
+
|
57
|
+
.amp-test-a,
|
58
|
+
.amp-test-b {
|
59
|
+
.amp-test-c &.amp-test-d&.amp-test-e {
|
60
|
+
.amp-test-f&+&.amp-test-g:extend(.amp-test-h) {}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
.amp-test-h {
|
64
|
+
test: extended by masses of selectors;
|
65
|
+
}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
.error {
|
2
|
+
border: 1px #f00;
|
3
|
+
background: #fdd;
|
4
|
+
}
|
5
|
+
.error.intrusion {
|
6
|
+
font-size: 1.3em;
|
7
|
+
font-weight: bold;
|
8
|
+
}
|
9
|
+
.intrusion .error {
|
10
|
+
display: none;
|
11
|
+
}
|
12
|
+
.badError:extend(.error all) {
|
13
|
+
border-width: 3px;
|
14
|
+
}
|
15
|
+
|
16
|
+
.foo .bar, .foo .baz {
|
17
|
+
display: none;
|
18
|
+
}
|
19
|
+
|
20
|
+
.ext1 .ext2
|
21
|
+
:extend(.foo all) {
|
22
|
+
}
|
23
|
+
|
24
|
+
.ext3:extend(.foo all),
|
25
|
+
.ext4:extend(.foo all) {
|
26
|
+
}
|
27
|
+
|
28
|
+
div.ext5,
|
29
|
+
.ext6 > .ext5 {
|
30
|
+
width: 100px;
|
31
|
+
}
|
32
|
+
|
33
|
+
.should-not-exist-in-output,
|
34
|
+
.ext7:extend(.ext5 all) {
|
35
|
+
}
|
36
|
+
|
37
|
+
.ext {
|
38
|
+
test: 1;
|
39
|
+
}
|
40
|
+
// same as
|
41
|
+
// .a .c:extend(.ext all)
|
42
|
+
// .b .c:extend(.ext all)
|
43
|
+
// .a .c .d
|
44
|
+
// .b .c .d
|
45
|
+
.a, .b {
|
46
|
+
test: 2;
|
47
|
+
.c:extend(.ext all) {
|
48
|
+
test: 3;
|
49
|
+
.d {
|
50
|
+
test: 4;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
.replace.replace,
|
56
|
+
.c.replace + .replace {
|
57
|
+
.replace,
|
58
|
+
.c {
|
59
|
+
prop: copy-paste-replace;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
.rep_ace:extend(.replace all) {}
|
63
|
+
|
64
|
+
.attributes {
|
65
|
+
[data="test"] {
|
66
|
+
extend: attributes;
|
67
|
+
}
|
68
|
+
.attribute-test {
|
69
|
+
&:extend([data="test"] all);
|
70
|
+
}
|
71
|
+
[data] {
|
72
|
+
extend: attributes2;
|
73
|
+
}
|
74
|
+
.attribute-test2 {
|
75
|
+
&:extend([data] all); //you could argue it should match [data="test"]... not for now though...
|
76
|
+
}
|
77
|
+
@attr-data: "test3";
|
78
|
+
[data=@{attr-data}] {
|
79
|
+
extend: attributes2;
|
80
|
+
}
|
81
|
+
.attribute-test {
|
82
|
+
&:extend([data="test3"] all);
|
83
|
+
}
|
84
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
.error {
|
2
|
+
border: 1px #f00;
|
3
|
+
background: #fdd;
|
4
|
+
}
|
5
|
+
.error.intrusion {
|
6
|
+
font-size: 1.3em;
|
7
|
+
font-weight: bold;
|
8
|
+
}
|
9
|
+
.intrusion .error {
|
10
|
+
display: none;
|
11
|
+
}
|
12
|
+
.badError {
|
13
|
+
&:extend(.error all);
|
14
|
+
border-width: 3px;
|
15
|
+
}
|
16
|
+
|
17
|
+
.foo .bar, .foo .baz {
|
18
|
+
display: none;
|
19
|
+
}
|
20
|
+
|
21
|
+
.ext1 .ext2 {
|
22
|
+
&:extend(.foo all);
|
23
|
+
}
|
24
|
+
|
25
|
+
.ext3,
|
26
|
+
.ext4 {
|
27
|
+
&:extend(.foo all);
|
28
|
+
&:extend(.bar all);
|
29
|
+
}
|
30
|
+
|
31
|
+
div.ext5,
|
32
|
+
.ext6 > .ext5 {
|
33
|
+
width: 100px;
|
34
|
+
}
|
35
|
+
|
36
|
+
.ext7 {
|
37
|
+
&:extend(.ext5 all);
|
38
|
+
}
|
39
|
+
|
40
|
+
.ext8.ext9 {
|
41
|
+
result: add-foo;
|
42
|
+
}
|
43
|
+
.ext8 .ext9,
|
44
|
+
.ext8 + .ext9,
|
45
|
+
.ext8 > .ext9 {
|
46
|
+
result: bar-matched;
|
47
|
+
}
|
48
|
+
.ext8.nomatch {
|
49
|
+
result: none;
|
50
|
+
}
|
51
|
+
.ext8 {
|
52
|
+
.ext9 {
|
53
|
+
result: match-nested-bar;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
.ext8 {
|
57
|
+
&.ext9 {
|
58
|
+
result: match-nested-foo;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
.fuu:extend(.ext8.ext9 all) {}
|
63
|
+
.buu:extend(.ext8 .ext9 all) {}
|
64
|
+
.zap:extend(.ext8 + .ext9 all) {}
|
65
|
+
.zoo:extend(.ext8 > .ext9 all) {}
|
66
|
+
|
67
|
+
.aa {
|
68
|
+
color: black;
|
69
|
+
.dd {
|
70
|
+
background: red;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
.bb {
|
74
|
+
background: red;
|
75
|
+
.bb {
|
76
|
+
color: black;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
.cc:extend(.aa,.bb) {}
|
80
|
+
.ee:extend(.dd all,.bb) {}
|
81
|
+
.ff:extend(.dd,.bb all) {}
|
@@ -17,6 +17,7 @@
|
|
17
17
|
saturate: saturate(#29332f, 20%);
|
18
18
|
desaturate: desaturate(#203c31, 20%);
|
19
19
|
greyscale: greyscale(#203c31);
|
20
|
+
hsl-clamp: hsl(380, 150%, 150%);
|
20
21
|
spin-p: spin(hsl(340, 50%, 50%), 40);
|
21
22
|
spin-n: spin(hsl(30, 50%, 50%), -40);
|
22
23
|
luma-white: luma(#fff);
|
@@ -38,10 +39,15 @@
|
|
38
39
|
contrast-cyan: contrast(#00ffff);
|
39
40
|
contrast-light: contrast(#fff, #111111, #eeeeee);
|
40
41
|
contrast-dark: contrast(#000, #111111, #eeeeee);
|
42
|
+
contrast-wrongorder: contrast(#fff, #eeeeee, #111111, 0.5);
|
41
43
|
contrast-light-thresh: contrast(#fff, #111111, #eeeeee, 0.5);
|
42
44
|
contrast-dark-thresh: contrast(#000, #111111, #eeeeee, 0.5);
|
43
45
|
contrast-high-thresh: contrast(#555, #111111, #eeeeee, 0.6);
|
44
46
|
contrast-low-thresh: contrast(#555, #111111, #eeeeee, 0.1);
|
47
|
+
contrast-light-thresh-per: contrast(#fff, #111111, #eeeeee, 50%);
|
48
|
+
contrast-dark-thresh-per: contrast(#000, #111111, #eeeeee, 50%);
|
49
|
+
contrast-high-thresh-per: contrast(#555, #111111, #eeeeee, 60%);
|
50
|
+
contrast-low-thresh-per: contrast(#555, #111111, #eeeeee, 10%);
|
45
51
|
format: %("rgb(%d, %d, %d)", @r, 128, 64);
|
46
52
|
format-string: %("hello %s", "world");
|
47
53
|
format-multiple: %("hello %s %d", "earth", 2);
|
@@ -49,22 +55,38 @@
|
|
49
55
|
eformat: e(%("rgb(%d, %d, %d)", @r, 128, 64));
|
50
56
|
|
51
57
|
unitless: unit(12px);
|
52
|
-
unit: unit(13px + 1px, em);
|
58
|
+
unit: unit((13px + 1px), em);
|
53
59
|
|
54
60
|
hue: hue(hsl(98, 12%, 95%));
|
55
61
|
saturation: saturation(hsl(98, 12%, 95%));
|
56
62
|
lightness: lightness(hsl(98, 12%, 95%));
|
63
|
+
hsvhue: hsvhue(hsv(98, 12%, 95%));
|
64
|
+
hsvsaturation: hsvsaturation(hsv(98, 12%, 95%));
|
65
|
+
hsvvalue: hsvvalue(hsv(98, 12%, 95%));
|
57
66
|
red: red(#f00);
|
58
67
|
green: green(#0f0);
|
59
68
|
blue: blue(#00f);
|
60
|
-
rounded: round(@r/3);
|
61
|
-
rounded-two: round(@r/3, 2);
|
62
|
-
roundedpx: round(10px / 3);
|
63
|
-
roundedpx-three: round(10px / 3, 3);
|
69
|
+
rounded: round((@r/3));
|
70
|
+
rounded-two: round((@r/3), 2);
|
71
|
+
roundedpx: round((10px / 3));
|
72
|
+
roundedpx-three: round((10px / 3), 3);
|
64
73
|
rounded-percentage: round(10.2%);
|
65
74
|
ceil: ceil(10.1px);
|
66
75
|
floor: floor(12.9px);
|
67
|
-
|
76
|
+
sqrt: sqrt(25px);
|
77
|
+
pi: pi();
|
78
|
+
mod: mod(13m, 11cm); // could take into account units, doesn't at the moment
|
79
|
+
abs: abs(-4%);
|
80
|
+
tan: tan(42deg);
|
81
|
+
sin: sin(10deg);
|
82
|
+
cos: cos(12);
|
83
|
+
atan: atan(tan(0.1rad));
|
84
|
+
atan: convert(acos(cos(34deg)), deg);
|
85
|
+
atan: convert(acos(cos(50grad)), deg);
|
86
|
+
pow: pow(8px, 2);
|
87
|
+
pow: pow(4, 3);
|
88
|
+
pow: pow(3, 3em);
|
89
|
+
percentage: percentage((10px / 50));
|
68
90
|
color: color("#ff0011");
|
69
91
|
tint: tint(#777777, 13);
|
70
92
|
tint-full: tint(#777777, 100);
|
@@ -72,6 +94,9 @@
|
|
72
94
|
shade: shade(#777777, 13);
|
73
95
|
shade-full: shade(#777777, 100);
|
74
96
|
shade-percent: shade(#777777, 13%);
|
97
|
+
|
98
|
+
fade-out: fadeOut(red, 5%); // support fadeOut and fadeout
|
99
|
+
fade-in: fadein(fadeout(red, 10%), 5%);
|
75
100
|
|
76
101
|
hsv: hsv(5, 50%, 30%);
|
77
102
|
hsva: hsva(3, 50%, 30%, 0.2);
|
@@ -91,6 +116,7 @@
|
|
91
116
|
pixel: ispixel(32px);
|
92
117
|
percent: ispercentage(32%);
|
93
118
|
em: isem(32em);
|
119
|
+
cat: isunit(32cat, cat);
|
94
120
|
}
|
95
121
|
}
|
96
122
|
|
@@ -109,3 +135,8 @@
|
|
109
135
|
average: average(#f60000, #0000f6);
|
110
136
|
negation: negation(#f60000, #313131);
|
111
137
|
}
|
138
|
+
|
139
|
+
#extract {
|
140
|
+
@anon: A B C 1 2 3;
|
141
|
+
result: extract(@anon, 6) extract(@anon, 5) extract(@anon, 4) extract(@anon, 3) extract(@anon, 2) extract(@anon, 1);
|
142
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
@import
|
2
|
-
@import
|
3
|
-
@import
|
4
|
-
@import
|
1
|
+
@import "import/import-once-test-c";
|
2
|
+
@import "import/import-once-test-c";
|
3
|
+
@import "import/import-once-test-c.less";
|
4
|
+
@import "import/deeper/import-once-test-a";
|
@@ -1,12 +1,21 @@
|
|
1
1
|
@import url(http://fonts.googleapis.com/css?family=Open+Sans);
|
2
2
|
|
3
|
-
@import url(something.css) screen and (color) and (max-width: 600px);
|
3
|
+
@import url(/absolute/something.css) screen and (color) and (max-width: 600px);
|
4
|
+
|
5
|
+
@var: 100px;
|
6
|
+
@import url("//ha.com/file.css") (min-width:@var);
|
4
7
|
|
5
8
|
#import-test {
|
6
9
|
.mixin;
|
7
10
|
width: 10px;
|
8
|
-
height: @a + 10
|
11
|
+
height: (@a + 10%);
|
9
12
|
}
|
10
13
|
@import "import/import-test-e" screen and (max-width: 600px);
|
11
14
|
|
12
15
|
@import url("import/import-test-a.less");
|
16
|
+
|
17
|
+
@import (less, multiple) "import/import-test-d.css" screen and (max-width: 601px);
|
18
|
+
|
19
|
+
@import (multiple) "import/import-test-e" screen and (max-width: 602px);
|
20
|
+
|
21
|
+
@import (less, multiple) url("import/import-test-d.css") screen and (max-width: 603px);
|
@@ -1 +1 @@
|
|
1
|
-
@import
|
1
|
+
@import "../import-once-test-c";
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "import-@{in}@{terpolation}2.less";
|
@@ -11,16 +11,19 @@
|
|
11
11
|
}
|
12
12
|
}
|
13
13
|
.top, header > h1 {
|
14
|
-
color: #222 * 2;
|
14
|
+
color: (#222 * 2);
|
15
15
|
}
|
16
16
|
}
|
17
17
|
|
18
18
|
@media screen {
|
19
19
|
@base: 8;
|
20
|
-
body { max-width: @base * 60; }
|
20
|
+
body { max-width: (@base * 60); }
|
21
21
|
}
|
22
22
|
|
23
|
-
@
|
23
|
+
@ratio_large: 16;
|
24
|
+
@ratio_small: 9;
|
25
|
+
|
26
|
+
@media all and (device-aspect-ratio: @ratio_large / @ratio_small) {
|
24
27
|
body { max-width: 800px; }
|
25
28
|
}
|
26
29
|
|
@@ -197,3 +200,11 @@ body {
|
|
197
200
|
background: blue;
|
198
201
|
}
|
199
202
|
}
|
203
|
+
|
204
|
+
@media (max-width: 1200px) {
|
205
|
+
/* a comment */
|
206
|
+
|
207
|
+
@media (max-width: 900px) {
|
208
|
+
body { font-size: 11px; }
|
209
|
+
}
|
210
|
+
}
|