less 1.2.21 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -3
- data/.gitmodules +6 -0
- data/Gemfile +3 -0
- data/README.md +39 -46
- data/Rakefile +5 -50
- data/bin/lessc +1 -100
- data/less.gemspec +21 -125
- data/lib/less.rb +11 -30
- data/{LICENSE → lib/less/js/LICENSE} +1 -1
- data/lib/less/js/Makefile +56 -0
- data/lib/less/js/README.md +20 -0
- data/lib/less/js/benchmark/benchmark.less +3979 -0
- data/lib/less/js/benchmark/less-benchmark.js +49 -0
- data/lib/less/js/bin/lessc +105 -0
- data/lib/less/js/build/ecma-5.js +120 -0
- data/lib/less/js/build/header.js +7 -0
- data/lib/less/js/build/require.js +7 -0
- data/lib/less/js/dist/less-1.0.44.js +2655 -0
- data/lib/less/js/dist/less-1.1.0.js +2695 -0
- data/lib/less/js/dist/less-1.1.0.min.js +16 -0
- data/lib/less/js/dist/less-1.1.1.js +2710 -0
- data/lib/less/js/dist/less-1.1.1.min.js +16 -0
- data/lib/less/js/dist/less-1.1.2.js +2712 -0
- data/lib/less/js/dist/less-1.1.2.min.js +16 -0
- data/lib/less/js/dist/less-1.1.3.js +2721 -0
- data/lib/less/js/dist/less-1.1.3.min.js +16 -0
- data/lib/less/js/lib/less/browser.js +369 -0
- data/lib/less/js/lib/less/functions.js +174 -0
- data/lib/less/js/lib/less/index.js +137 -0
- data/lib/less/js/lib/less/parser.js +1098 -0
- data/lib/less/js/lib/less/tree.js +13 -0
- data/lib/less/js/lib/less/tree/alpha.js +17 -0
- data/lib/less/js/lib/less/tree/anonymous.js +13 -0
- data/lib/less/js/lib/less/tree/call.js +45 -0
- data/lib/less/js/lib/less/tree/color.js +98 -0
- data/lib/less/js/lib/less/tree/comment.js +14 -0
- data/lib/less/js/lib/less/tree/dimension.js +34 -0
- data/lib/less/js/lib/less/tree/directive.js +33 -0
- data/lib/less/js/lib/less/tree/element.js +32 -0
- data/lib/less/js/lib/less/tree/expression.js +23 -0
- data/lib/less/js/lib/less/tree/import.js +77 -0
- data/lib/less/js/lib/less/tree/javascript.js +51 -0
- data/lib/less/js/lib/less/tree/keyword.js +9 -0
- data/lib/less/js/lib/less/tree/mixin.js +106 -0
- data/lib/less/js/lib/less/tree/operation.js +32 -0
- data/lib/less/js/lib/less/tree/quoted.js +29 -0
- data/lib/less/js/lib/less/tree/rule.js +38 -0
- data/lib/less/js/lib/less/tree/ruleset.js +179 -0
- data/lib/less/js/lib/less/tree/selector.js +28 -0
- data/lib/less/js/lib/less/tree/url.js +25 -0
- data/lib/less/js/lib/less/tree/value.js +24 -0
- data/lib/less/js/lib/less/tree/variable.js +24 -0
- data/lib/less/js/package.json +13 -0
- data/lib/less/js/test/css/colors.css +42 -0
- data/lib/less/js/test/css/comments.css +52 -0
- data/lib/less/js/test/css/css-3.css +42 -0
- data/lib/less/js/test/css/css-escapes.css +20 -0
- data/lib/less/js/test/css/css.css +82 -0
- data/lib/less/js/test/css/functions.css +30 -0
- data/{spec → lib/less/js/test}/css/import.css +4 -2
- data/lib/less/js/test/css/javascript.css +22 -0
- data/lib/less/js/test/css/lazy-eval.css +3 -0
- data/lib/less/js/test/css/media.css +21 -0
- data/lib/less/js/test/css/mixins-args.css +61 -0
- data/lib/less/js/test/css/mixins-closure.css +9 -0
- data/lib/less/js/test/css/mixins-nested.css +14 -0
- data/lib/less/js/test/css/mixins-pattern.css +49 -0
- data/lib/less/js/test/css/mixins.css +50 -0
- data/{spec → lib/less/js/test}/css/operations.css +20 -2
- data/{spec → lib/less/js/test}/css/parens.css +0 -0
- data/lib/less/js/test/css/rulesets.css +29 -0
- data/{spec → lib/less/js/test}/css/scope.css +6 -2
- data/lib/less/js/test/css/selectors.css +32 -0
- data/lib/less/js/test/css/strings.css +38 -0
- data/lib/less/js/test/css/variables.css +24 -0
- data/lib/less/js/test/css/whitespace.css +36 -0
- data/lib/less/js/test/less-test.js +75 -0
- data/{spec → lib/less/js/test}/less/colors.less +13 -2
- data/{spec → lib/less/js/test}/less/comments.less +19 -2
- data/{spec → lib/less/js/test}/less/css-3.less +4 -1
- data/lib/less/js/test/less/css-escapes.less +28 -0
- data/{spec → lib/less/js/test}/less/css.less +10 -18
- data/lib/less/js/test/less/functions.less +35 -0
- data/{spec → lib/less/js/test}/less/import.less +1 -1
- data/{spec → lib/less/js/test}/less/import/import-test-a.less +0 -0
- data/{spec → lib/less/js/test}/less/import/import-test-b.less +0 -0
- data/{spec → lib/less/js/test}/less/import/import-test-c.less +0 -0
- data/{spec → lib/less/js/test}/less/import/import-test-d.css +0 -0
- data/lib/less/js/test/less/javascript.less +27 -0
- data/{spec → lib/less/js/test}/less/lazy-eval.less +0 -0
- data/lib/less/js/test/less/media.less +25 -0
- data/lib/less/js/test/less/mixins-args.less +118 -0
- data/lib/less/js/test/less/mixins-closure.less +26 -0
- data/lib/less/js/test/less/mixins-nested.less +22 -0
- data/lib/less/js/test/less/mixins-pattern.less +96 -0
- data/{spec → lib/less/js/test}/less/mixins.less +8 -4
- data/{spec → lib/less/js/test}/less/operations.less +19 -0
- data/{spec → lib/less/js/test}/less/parens.less +0 -0
- data/{spec → lib/less/js/test}/less/rulesets.less +2 -2
- data/{spec → lib/less/js/test}/less/scope.less +1 -1
- data/{spec → lib/less/js/test}/less/selectors.less +1 -1
- data/lib/less/js/test/less/strings.less +49 -0
- data/lib/less/js/test/less/variables.less +50 -0
- data/{spec → lib/less/js/test}/less/whitespace.less +3 -0
- data/lib/less/loader.rb +67 -0
- data/lib/less/parser.rb +46 -0
- data/lib/less/version.rb +3 -0
- data/spec/less/one/one.less +1 -0
- data/spec/less/parser_spec.rb +30 -0
- data/spec/less/two/two.less +1 -0
- data/spec/spec_helper.rb +2 -7
- metadata +156 -106
- data/CHANGELOG +0 -62
- data/VERSION +0 -1
- data/lib/less/command.rb +0 -110
- data/lib/less/engine.rb +0 -52
- data/lib/less/engine/grammar/common.tt +0 -29
- data/lib/less/engine/grammar/entity.tt +0 -144
- data/lib/less/engine/grammar/less.tt +0 -341
- data/lib/less/engine/nodes.rb +0 -9
- data/lib/less/engine/nodes/element.rb +0 -281
- data/lib/less/engine/nodes/entity.rb +0 -79
- data/lib/less/engine/nodes/function.rb +0 -93
- data/lib/less/engine/nodes/literal.rb +0 -171
- data/lib/less/engine/nodes/property.rb +0 -232
- data/lib/less/engine/nodes/ruleset.rb +0 -12
- data/lib/less/engine/nodes/selector.rb +0 -44
- data/lib/less/ext.rb +0 -60
- data/spec/command_spec.rb +0 -102
- data/spec/css/accessors.css +0 -18
- data/spec/css/big.css +0 -3768
- data/spec/css/colors.css +0 -14
- data/spec/css/comments.css +0 -9
- data/spec/css/css-3.css +0 -21
- data/spec/css/css.css +0 -50
- data/spec/css/dash-prefix.css +0 -12
- data/spec/css/functions.css +0 -6
- data/spec/css/import-with-extra-paths.css +0 -8
- data/spec/css/import-with-partial-in-extra-path.css +0 -6
- data/spec/css/lazy-eval.css +0 -1
- data/spec/css/mixins-args.css +0 -32
- data/spec/css/mixins.css +0 -28
- data/spec/css/rulesets.css +0 -17
- data/spec/css/selectors.css +0 -13
- data/spec/css/strings.css +0 -12
- data/spec/css/variables.css +0 -8
- data/spec/css/whitespace.css +0 -7
- data/spec/engine_spec.rb +0 -127
- data/spec/less/accessors.less +0 -20
- data/spec/less/big.less +0 -1264
- data/spec/less/dash-prefix.less +0 -21
- data/spec/less/exceptions/mixed-units-error.less +0 -3
- data/spec/less/exceptions/name-error-1.0.less +0 -3
- data/spec/less/exceptions/syntax-error-1.0.less +0 -3
- data/spec/less/extra_import_path/extra.less +0 -1
- data/spec/less/extra_import_path/import/import-test-a.css +0 -1
- data/spec/less/extra_import_path/import/import-test-a.less +0 -4
- data/spec/less/functions.less +0 -6
- data/spec/less/hidden.less +0 -25
- data/spec/less/import-with-extra-paths.less +0 -4
- data/spec/less/literal-css.less +0 -11
- data/spec/less/mixins-args.less +0 -59
- data/spec/less/strings.less +0 -14
- data/spec/less/variables.less +0 -29
- data/spec/spec.css +0 -50
@@ -1,3 +1,15 @@
|
|
1
|
+
/******************\
|
2
|
+
* *
|
3
|
+
* Comment Header *
|
4
|
+
* *
|
5
|
+
\******************/
|
6
|
+
|
7
|
+
/*
|
8
|
+
|
9
|
+
Comment
|
10
|
+
|
11
|
+
*/
|
12
|
+
|
1
13
|
/*
|
2
14
|
* Comment Test
|
3
15
|
*
|
@@ -22,7 +34,7 @@
|
|
22
34
|
|
23
35
|
/* @group Variables
|
24
36
|
------------------- */
|
25
|
-
#comments {
|
37
|
+
#comments /* boo */ {
|
26
38
|
/**/ // An empty comment
|
27
39
|
color: red; /* A C-style comment */
|
28
40
|
background-color: orange; // A little comment
|
@@ -33,7 +45,7 @@
|
|
33
45
|
border: 1px solid black;
|
34
46
|
|
35
47
|
// padding & margin //
|
36
|
-
padding: 0;
|
48
|
+
padding: 0; // }{ '"
|
37
49
|
margin: 2em;
|
38
50
|
} //
|
39
51
|
|
@@ -43,4 +55,9 @@
|
|
43
55
|
}
|
44
56
|
*/
|
45
57
|
|
58
|
+
.selector /* .with */, .lots, /* of */ .comments {
|
59
|
+
color: grey, /* blue */ orange;
|
60
|
+
}
|
61
|
+
|
62
|
+
#last { color: blue }
|
46
63
|
//
|
@@ -34,7 +34,6 @@ ol.comma > li:nth-last-child(2)::after {
|
|
34
34
|
|
35
35
|
li:nth-child(4n+1),
|
36
36
|
li:nth-child(-5n),
|
37
|
-
li:nth-child(n+1),
|
38
37
|
li:nth-child(-n+2) {
|
39
38
|
color: white;
|
40
39
|
}
|
@@ -47,6 +46,10 @@ a[href$="http://"] {
|
|
47
46
|
color: black;
|
48
47
|
}
|
49
48
|
|
49
|
+
form[data-disabled] {
|
50
|
+
color: black;
|
51
|
+
}
|
52
|
+
|
50
53
|
p::before {
|
51
54
|
color: black;
|
52
55
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
@ugly: fuchsia;
|
2
|
+
|
3
|
+
.escape\|random\|char {
|
4
|
+
color: red;
|
5
|
+
}
|
6
|
+
|
7
|
+
.mixin\!tUp {
|
8
|
+
font-weight: bold;
|
9
|
+
}
|
10
|
+
|
11
|
+
// class="404"
|
12
|
+
.\34 04 {
|
13
|
+
background: red;
|
14
|
+
|
15
|
+
strong {
|
16
|
+
color: @ugly;
|
17
|
+
.mixin\!tUp;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
.trailingTest\+ {
|
22
|
+
color: red;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* This hideous test of hideousness checks for the selector "blockquote" with various permutations of hex escapes */
|
26
|
+
\62\6c\6f \63 \6B \0071 \000075o\74 e {
|
27
|
+
color: silver;
|
28
|
+
}
|
@@ -1,9 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
a CSS File
|
4
|
-
|
5
|
-
*/
|
6
|
-
|
1
|
+
@charset "utf-8";
|
7
2
|
div { color: black; }
|
8
3
|
div { width: 99%; }
|
9
4
|
|
@@ -60,21 +55,10 @@ p + h1 {
|
|
60
55
|
font-size: 2.2em;
|
61
56
|
}
|
62
57
|
|
63
|
-
input[type="text"] {
|
64
|
-
font-weight: normal;
|
65
|
-
}
|
66
|
-
|
67
|
-
h2[title] {
|
68
|
-
font-size: 100%;
|
69
|
-
}
|
70
|
-
|
71
|
-
[disabled] {
|
72
|
-
color: transparent;
|
73
|
-
}
|
74
|
-
|
75
58
|
#shorthands {
|
76
59
|
border: 1px solid #000;
|
77
60
|
font: 12px/16px Arial;
|
61
|
+
font: 100%/16px Arial;
|
78
62
|
margin: 1px 0;
|
79
63
|
padding: 0 auto;
|
80
64
|
background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
|
@@ -94,6 +78,7 @@ h2[title] {
|
|
94
78
|
background-image: url(images/image.jpg);
|
95
79
|
background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue));
|
96
80
|
margin: ;
|
81
|
+
filter: alpha(opacity=100);
|
97
82
|
}
|
98
83
|
|
99
84
|
#important {
|
@@ -102,3 +87,10 @@ h2[title] {
|
|
102
87
|
height: 20px ! important;
|
103
88
|
}
|
104
89
|
|
90
|
+
#data-uri {
|
91
|
+
background: url(data:image/png;charset=utf-8;base64,
|
92
|
+
kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/
|
93
|
+
k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U
|
94
|
+
kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC);
|
95
|
+
background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==);
|
96
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#functions {
|
2
|
+
@var: 10;
|
3
|
+
color: color("evil red"); // #660000
|
4
|
+
width: increment(15);
|
5
|
+
height: undefined("self");
|
6
|
+
border-width: add(2, 3);
|
7
|
+
variable: increment(@var);
|
8
|
+
}
|
9
|
+
|
10
|
+
#built-in {
|
11
|
+
@r: 32;
|
12
|
+
escaped: e("-Some::weird(#thing, y)");
|
13
|
+
lighten: lighten(#ff0000, 40%);
|
14
|
+
darken: darken(#ff0000, 40%);
|
15
|
+
saturate: saturate(#29332f, 20%);
|
16
|
+
desaturate: desaturate(#203c31, 20%);
|
17
|
+
greyscale: greyscale(#203c31);
|
18
|
+
spin-p: spin(hsl(340, 50%, 50%), 40);
|
19
|
+
spin-n: spin(hsl(30, 50%, 50%), -40);
|
20
|
+
format: %("rgb(%d, %d, %d)", @r, 128, 64);
|
21
|
+
format-string: %("hello %s", "world");
|
22
|
+
format-multiple: %("hello %s %d", "earth", 2);
|
23
|
+
format-url-encode: %('red is %A', #ff0000);
|
24
|
+
eformat: e(%("rgb(%d, %d, %d)", @r, 128, 64));
|
25
|
+
|
26
|
+
hue: hue(hsl(98, 12%, 95%));
|
27
|
+
saturation: saturation(hsl(98, 12%, 95%));
|
28
|
+
lightness: lightness(hsl(98, 12%, 95%));
|
29
|
+
rounded: round(@r/3);
|
30
|
+
roundedpx: round(10px / 3);
|
31
|
+
}
|
32
|
+
|
33
|
+
#alpha {
|
34
|
+
alpha: darken(hsla(25, 50%, 50%, 0.6), 10%);
|
35
|
+
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,27 @@
|
|
1
|
+
.eval {
|
2
|
+
js: `42`;
|
3
|
+
js: `1 + 1`;
|
4
|
+
js: `"hello world"`;
|
5
|
+
js: `[1, 2, 3]`;
|
6
|
+
title: `process.title`;
|
7
|
+
ternary: `(1 + 1 == 2 ? true : false)`;
|
8
|
+
}
|
9
|
+
.scope {
|
10
|
+
@foo: 42;
|
11
|
+
var: `this.foo.toJS()`;
|
12
|
+
escaped: ~`2 + 5 + 'px'`;
|
13
|
+
}
|
14
|
+
.vars {
|
15
|
+
@var: `4 + 4`;
|
16
|
+
width: @var;
|
17
|
+
}
|
18
|
+
.escape-interpol {
|
19
|
+
@world: "world";
|
20
|
+
width: ~`"hello" + " " + @{world}`;
|
21
|
+
}
|
22
|
+
.arrays {
|
23
|
+
@ary: 1, 2, 3;
|
24
|
+
@ary2: 1 2 3;
|
25
|
+
ary: `@{ary}.join(', ')`;
|
26
|
+
ary: `@{ary2}.join(', ')`;
|
27
|
+
}
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
|
2
|
+
// For now, variables can't be declared inside @media blocks.
|
3
|
+
|
4
|
+
@var: 42;
|
5
|
+
|
6
|
+
@media print {
|
7
|
+
.class {
|
8
|
+
color: blue;
|
9
|
+
.sub {
|
10
|
+
width: @var;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
.top, header > h1 {
|
14
|
+
color: #222 * 2;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
@media screen {
|
19
|
+
@base: 8;
|
20
|
+
body { max-width: @base * 60; }
|
21
|
+
}
|
22
|
+
|
23
|
+
@media all and (orientation:portrait) {
|
24
|
+
aside { float: none; }
|
25
|
+
}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
.mixin (@a: 1px, @b: 50%) {
|
2
|
+
width: @a * 5;
|
3
|
+
height: @b - 1%;
|
4
|
+
}
|
5
|
+
|
6
|
+
.mixina (@style, @width, @color: black) {
|
7
|
+
border: @width @style @color;
|
8
|
+
}
|
9
|
+
|
10
|
+
.mixiny
|
11
|
+
(@a: 0, @b: 0) {
|
12
|
+
margin: @a;
|
13
|
+
padding: @b;
|
14
|
+
}
|
15
|
+
|
16
|
+
.hidden() {
|
17
|
+
color: transparent; // asd
|
18
|
+
}
|
19
|
+
|
20
|
+
#hidden {
|
21
|
+
.hidden;
|
22
|
+
.hidden();
|
23
|
+
}
|
24
|
+
|
25
|
+
.two-args {
|
26
|
+
color: blue;
|
27
|
+
.mixin(2px, 100%);
|
28
|
+
.mixina(dotted, 2px);
|
29
|
+
}
|
30
|
+
|
31
|
+
.one-arg {
|
32
|
+
.mixin(3px);
|
33
|
+
}
|
34
|
+
|
35
|
+
.no-parens {
|
36
|
+
.mixin;
|
37
|
+
}
|
38
|
+
|
39
|
+
.no-args {
|
40
|
+
.mixin();
|
41
|
+
}
|
42
|
+
|
43
|
+
.var-args {
|
44
|
+
@var: 9;
|
45
|
+
.mixin(@var, @var * 2);
|
46
|
+
}
|
47
|
+
|
48
|
+
.multi-mix {
|
49
|
+
.mixin(2px, 30%);
|
50
|
+
.mixiny(4, 5);
|
51
|
+
}
|
52
|
+
|
53
|
+
.maxa(@arg1: 10, @arg2: #f00) {
|
54
|
+
padding: @arg1 * 2px;
|
55
|
+
color: @arg2;
|
56
|
+
}
|
57
|
+
|
58
|
+
body {
|
59
|
+
.maxa(15);
|
60
|
+
}
|
61
|
+
|
62
|
+
@glob: 5;
|
63
|
+
.global-mixin(@a:2) {
|
64
|
+
width: @glob + @a;
|
65
|
+
}
|
66
|
+
|
67
|
+
.scope-mix {
|
68
|
+
.global-mixin(3);
|
69
|
+
}
|
70
|
+
|
71
|
+
.nested-ruleset (@width: 200px) {
|
72
|
+
width: @width;
|
73
|
+
.column { margin: @width; }
|
74
|
+
}
|
75
|
+
.content {
|
76
|
+
.nested-ruleset(600px);
|
77
|
+
}
|
78
|
+
|
79
|
+
//
|
80
|
+
|
81
|
+
.same-var-name2(@radius) {
|
82
|
+
radius: @radius;
|
83
|
+
}
|
84
|
+
.same-var-name(@radius) {
|
85
|
+
.same-var-name2(@radius);
|
86
|
+
}
|
87
|
+
#same-var-name {
|
88
|
+
.same-var-name(5px);
|
89
|
+
}
|
90
|
+
|
91
|
+
//
|
92
|
+
|
93
|
+
.var-inside () {
|
94
|
+
@var: 10px;
|
95
|
+
width: @var;
|
96
|
+
}
|
97
|
+
#var-inside { .var-inside; }
|
98
|
+
|
99
|
+
// # mixins
|
100
|
+
|
101
|
+
#id-mixin () {
|
102
|
+
color: red;
|
103
|
+
}
|
104
|
+
.id-class {
|
105
|
+
#id-mixin();
|
106
|
+
#id-mixin;
|
107
|
+
}
|
108
|
+
|
109
|
+
.mixin-arguments (@width: 0px) {
|
110
|
+
border: @arguments;
|
111
|
+
}
|
112
|
+
|
113
|
+
.arguments {
|
114
|
+
.mixin-arguments(1px, solid, black);
|
115
|
+
}
|
116
|
+
.arguments2 {
|
117
|
+
.mixin-arguments();
|
118
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
.scope {
|
2
|
+
@var: 99px;
|
3
|
+
.mixin () {
|
4
|
+
width: @var;
|
5
|
+
}
|
6
|
+
}
|
7
|
+
|
8
|
+
.class {
|
9
|
+
.scope > .mixin;
|
10
|
+
}
|
11
|
+
|
12
|
+
.overwrite {
|
13
|
+
@var: 0px;
|
14
|
+
.scope > .mixin;
|
15
|
+
}
|
16
|
+
|
17
|
+
.nested {
|
18
|
+
@var: 5px;
|
19
|
+
.mixin () {
|
20
|
+
width: @var;
|
21
|
+
}
|
22
|
+
.class {
|
23
|
+
@var: 10px;
|
24
|
+
.mixin;
|
25
|
+
}
|
26
|
+
}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
.mixin () {
|
2
|
+
zero: 0;
|
3
|
+
}
|
4
|
+
.mixin (@a: 1px) {
|
5
|
+
one: 1;
|
6
|
+
}
|
7
|
+
.mixin (@a) {
|
8
|
+
one-req: 1;
|
9
|
+
}
|
10
|
+
.mixin (@a: 1px, @b: 2px) {
|
11
|
+
two: 2;
|
12
|
+
}
|
13
|
+
|
14
|
+
.mixin (@a, @b, @c) {
|
15
|
+
three-req: 3;
|
16
|
+
}
|
17
|
+
|
18
|
+
.mixin (@a: 1px, @b: 2px, @c: 3px) {
|
19
|
+
three: 3;
|
20
|
+
}
|
21
|
+
|
22
|
+
.zero {
|
23
|
+
.mixin();
|
24
|
+
}
|
25
|
+
|
26
|
+
.one {
|
27
|
+
.mixin(1);
|
28
|
+
}
|
29
|
+
|
30
|
+
.two {
|
31
|
+
.mixin(1, 2);
|
32
|
+
}
|
33
|
+
|
34
|
+
.three {
|
35
|
+
.mixin(1, 2, 3);
|
36
|
+
}
|
37
|
+
|
38
|
+
//
|
39
|
+
|
40
|
+
.mixout ('left') {
|
41
|
+
left: 1;
|
42
|
+
}
|
43
|
+
|
44
|
+
.mixout ('right') {
|
45
|
+
right: 1;
|
46
|
+
}
|
47
|
+
|
48
|
+
.left {
|
49
|
+
.mixout('left');
|
50
|
+
}
|
51
|
+
.right {
|
52
|
+
.mixout('right');
|
53
|
+
}
|
54
|
+
|
55
|
+
//
|
56
|
+
|
57
|
+
.border (@side, @width) {
|
58
|
+
color: black;
|
59
|
+
.border-side(@side, @width);
|
60
|
+
}
|
61
|
+
.border-side (left, @w) {
|
62
|
+
border-left: @w;
|
63
|
+
}
|
64
|
+
.border-side (right, @w) {
|
65
|
+
border-right: @w;
|
66
|
+
}
|
67
|
+
|
68
|
+
.border-right {
|
69
|
+
.border(right, 4px);
|
70
|
+
}
|
71
|
+
.border-left {
|
72
|
+
.border(left, 4px);
|
73
|
+
}
|
74
|
+
|
75
|
+
//
|
76
|
+
|
77
|
+
|
78
|
+
.border-radius (@r) {
|
79
|
+
both: @r * 10;
|
80
|
+
}
|
81
|
+
.border-radius (@r, left) {
|
82
|
+
left: @r;
|
83
|
+
}
|
84
|
+
.border-radius (@r, right) {
|
85
|
+
right: @r;
|
86
|
+
}
|
87
|
+
|
88
|
+
.only-right {
|
89
|
+
.border-radius(33, right);
|
90
|
+
}
|
91
|
+
.only-left {
|
92
|
+
.border-radius(33, left);
|
93
|
+
}
|
94
|
+
.left-right {
|
95
|
+
.border-radius(33);
|
96
|
+
}
|