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
@@ -0,0 +1,49 @@
|
|
1
|
+
.zero {
|
2
|
+
zero: 0;
|
3
|
+
one: 1;
|
4
|
+
two: 2;
|
5
|
+
three: 3;
|
6
|
+
}
|
7
|
+
.one {
|
8
|
+
zero: 0;
|
9
|
+
one: 1;
|
10
|
+
one-req: 1;
|
11
|
+
two: 2;
|
12
|
+
three: 3;
|
13
|
+
}
|
14
|
+
.two {
|
15
|
+
zero: 0;
|
16
|
+
one: 1;
|
17
|
+
two: 2;
|
18
|
+
three: 3;
|
19
|
+
}
|
20
|
+
.three {
|
21
|
+
zero: 0;
|
22
|
+
one: 1;
|
23
|
+
two: 2;
|
24
|
+
three-req: 3;
|
25
|
+
three: 3;
|
26
|
+
}
|
27
|
+
.left {
|
28
|
+
left: 1;
|
29
|
+
}
|
30
|
+
.right {
|
31
|
+
right: 1;
|
32
|
+
}
|
33
|
+
.border-right {
|
34
|
+
color: black;
|
35
|
+
border-right: 4px;
|
36
|
+
}
|
37
|
+
.border-left {
|
38
|
+
color: black;
|
39
|
+
border-left: 4px;
|
40
|
+
}
|
41
|
+
.only-right {
|
42
|
+
right: 33;
|
43
|
+
}
|
44
|
+
.only-left {
|
45
|
+
left: 33;
|
46
|
+
}
|
47
|
+
.left-right {
|
48
|
+
both: 330;
|
49
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
.mixin {
|
2
|
+
border: 1px solid black;
|
3
|
+
}
|
4
|
+
.mixout {
|
5
|
+
border-color: orange;
|
6
|
+
}
|
7
|
+
.borders {
|
8
|
+
border-style: dashed;
|
9
|
+
}
|
10
|
+
#namespace .borders {
|
11
|
+
border-style: dotted;
|
12
|
+
}
|
13
|
+
#namespace .biohazard {
|
14
|
+
content: "death";
|
15
|
+
}
|
16
|
+
#namespace .biohazard .man {
|
17
|
+
color: transparent;
|
18
|
+
}
|
19
|
+
#theme > .mixin {
|
20
|
+
background-color: grey;
|
21
|
+
}
|
22
|
+
#container {
|
23
|
+
color: black;
|
24
|
+
border: 1px solid black;
|
25
|
+
border-color: orange;
|
26
|
+
background-color: grey;
|
27
|
+
}
|
28
|
+
#header .milk {
|
29
|
+
color: white;
|
30
|
+
border: 1px solid black;
|
31
|
+
background-color: grey;
|
32
|
+
}
|
33
|
+
#header #cookie {
|
34
|
+
border-style: dashed;
|
35
|
+
}
|
36
|
+
#header #cookie .chips {
|
37
|
+
border-style: dotted;
|
38
|
+
}
|
39
|
+
#header #cookie .chips .calories {
|
40
|
+
color: black;
|
41
|
+
border: 1px solid black;
|
42
|
+
border-color: orange;
|
43
|
+
background-color: grey;
|
44
|
+
}
|
45
|
+
.secure-zone {
|
46
|
+
color: transparent;
|
47
|
+
}
|
48
|
+
.direct {
|
49
|
+
border-style: dotted;
|
50
|
+
}
|
@@ -2,6 +2,8 @@
|
|
2
2
|
color: #111111;
|
3
3
|
height: 9px;
|
4
4
|
width: 3em;
|
5
|
+
substraction: 0;
|
6
|
+
division: 1;
|
5
7
|
}
|
6
8
|
#operations .spacing {
|
7
9
|
height: 9px;
|
@@ -12,13 +14,20 @@
|
|
12
14
|
width: 24em;
|
13
15
|
size: 1cm;
|
14
16
|
}
|
17
|
+
.with-functions {
|
18
|
+
color: #646464;
|
19
|
+
color: #ff8080;
|
20
|
+
color: #c94a4a;
|
21
|
+
}
|
15
22
|
.negative {
|
16
23
|
height: 0px;
|
17
24
|
width: 4px;
|
18
25
|
}
|
19
|
-
.shorthands {
|
26
|
+
.shorthands {
|
27
|
+
padding: -1px 2px 0 -4px;
|
28
|
+
}
|
20
29
|
.colors {
|
21
|
-
color: #
|
30
|
+
color: #123;
|
22
31
|
border-color: #334455;
|
23
32
|
background-color: #000000;
|
24
33
|
}
|
@@ -26,3 +35,12 @@
|
|
26
35
|
color: #222222;
|
27
36
|
border-color: #222222;
|
28
37
|
}
|
38
|
+
.negations {
|
39
|
+
variable: -4px;
|
40
|
+
variable1: 0px;
|
41
|
+
variable2: 0px;
|
42
|
+
variable3: 8px;
|
43
|
+
variable4: 0px;
|
44
|
+
paren: -4px;
|
45
|
+
paren2: 16px;
|
46
|
+
}
|
File without changes
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#first > .one {
|
2
|
+
font-size: 2em;
|
3
|
+
}
|
4
|
+
#first > .one > #second .two > #deux {
|
5
|
+
width: 50%;
|
6
|
+
}
|
7
|
+
#first > .one > #second .two > #deux #third {
|
8
|
+
height: 100%;
|
9
|
+
}
|
10
|
+
#first > .one > #second .two > #deux #third:focus {
|
11
|
+
color: black;
|
12
|
+
}
|
13
|
+
#first > .one > #second .two > #deux #third:focus #fifth > #sixth .seventh #eighth + #ninth {
|
14
|
+
color: purple;
|
15
|
+
}
|
16
|
+
#first > .one > #second .two > #deux #fourth, #first > .one > #second .two > #deux #five, #first > .one > #second .two > #deux #six {
|
17
|
+
color: #110000;
|
18
|
+
}
|
19
|
+
#first > .one > #second .two > #deux #fourth .seven,
|
20
|
+
#first > .one > #second .two > #deux #five .seven,
|
21
|
+
#first > .one > #second .two > #deux #six .seven,
|
22
|
+
#first > .one > #second .two > #deux #fourth .eight > #nine,
|
23
|
+
#first > .one > #second .two > #deux #five .eight > #nine,
|
24
|
+
#first > .one > #second .two > #deux #six .eight > #nine {
|
25
|
+
border: 1px solid black;
|
26
|
+
}
|
27
|
+
#first > .one > #second .two > #deux #fourth #ten, #first > .one > #second .two > #deux #five #ten, #first > .one > #second .two > #deux #six #ten {
|
28
|
+
color: red;
|
29
|
+
}
|
@@ -1,9 +1,13 @@
|
|
1
|
-
.tiny-scope {
|
1
|
+
.tiny-scope {
|
2
|
+
color: #998899;
|
3
|
+
}
|
2
4
|
.scope1 {
|
3
5
|
color: blue;
|
4
6
|
border-color: black;
|
5
7
|
}
|
6
|
-
.scope1 .scope2 {
|
8
|
+
.scope1 .scope2 {
|
9
|
+
color: blue;
|
10
|
+
}
|
7
11
|
.scope1 .scope2 .scope3 {
|
8
12
|
color: red;
|
9
13
|
border-color: black;
|
@@ -0,0 +1,32 @@
|
|
1
|
+
h1 a:hover,
|
2
|
+
h2 a:hover,
|
3
|
+
h3 a:hover,
|
4
|
+
h1 p:hover,
|
5
|
+
h2 p:hover,
|
6
|
+
h3 p:hover {
|
7
|
+
color: red;
|
8
|
+
}
|
9
|
+
#all {
|
10
|
+
color: blue;
|
11
|
+
}
|
12
|
+
#the {
|
13
|
+
color: blue;
|
14
|
+
}
|
15
|
+
#same {
|
16
|
+
color: blue;
|
17
|
+
}
|
18
|
+
ul,
|
19
|
+
li,
|
20
|
+
div,
|
21
|
+
q,
|
22
|
+
blockquote,
|
23
|
+
textarea {
|
24
|
+
margin: 0;
|
25
|
+
}
|
26
|
+
td {
|
27
|
+
margin: 0;
|
28
|
+
padding: 0;
|
29
|
+
}
|
30
|
+
td, input {
|
31
|
+
line-height: 1em;
|
32
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#strings {
|
2
|
+
background-image: url("http://son-of-a-banana.com");
|
3
|
+
quotes: "~" "~";
|
4
|
+
content: "#*%:&^,)!.(~*})";
|
5
|
+
empty: "";
|
6
|
+
brackets: "{" "}";
|
7
|
+
}
|
8
|
+
#comments {
|
9
|
+
content: "/* hello */ // not-so-secret";
|
10
|
+
}
|
11
|
+
#single-quote {
|
12
|
+
quotes: "'" "'";
|
13
|
+
content: '""#!&""';
|
14
|
+
empty: '';
|
15
|
+
semi-colon: ';';
|
16
|
+
}
|
17
|
+
#escaped {
|
18
|
+
filter: DX.Transform.MS.BS.filter(opacity=50);
|
19
|
+
}
|
20
|
+
#one-line {
|
21
|
+
image: url(http://tooks.com);
|
22
|
+
}
|
23
|
+
#crazy {
|
24
|
+
image: url(http://), "}", url("http://}");
|
25
|
+
}
|
26
|
+
#interpolation {
|
27
|
+
url: "http://lesscss.org/dev/image.jpg";
|
28
|
+
url2: "http://lesscss.org/image-256.jpg";
|
29
|
+
url3: "http://lesscss.org#445566";
|
30
|
+
url4: "http://lesscss.org/hello";
|
31
|
+
url5: "http://lesscss.org/54.4";
|
32
|
+
}
|
33
|
+
.mix-mul-class {
|
34
|
+
color: blue;
|
35
|
+
color: red;
|
36
|
+
color: blue;
|
37
|
+
color: orange;
|
38
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
.variables {
|
2
|
+
width: 14cm;
|
3
|
+
}
|
4
|
+
.variables {
|
5
|
+
height: 24px;
|
6
|
+
color: #888888;
|
7
|
+
font-family: "Trebuchet MS", Verdana, sans-serif;
|
8
|
+
quotes: "~" "~";
|
9
|
+
}
|
10
|
+
.redefinition {
|
11
|
+
three: 3;
|
12
|
+
}
|
13
|
+
.values {
|
14
|
+
font-family: 'Trebuchet', 'Trebuchet', 'Trebuchet';
|
15
|
+
color: #888888 !important;
|
16
|
+
url: url('Trebuchet');
|
17
|
+
multi: something 'A', B, C, 'Trebuchet';
|
18
|
+
}
|
19
|
+
.variable-names {
|
20
|
+
name: 'hello';
|
21
|
+
}
|
22
|
+
.alpha {
|
23
|
+
filter: alpha(opacity=42);
|
24
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
.whitespace {
|
2
|
+
color: white;
|
3
|
+
}
|
4
|
+
.whitespace {
|
5
|
+
color: white;
|
6
|
+
}
|
7
|
+
.whitespace {
|
8
|
+
color: white;
|
9
|
+
}
|
10
|
+
.whitespace {
|
11
|
+
color: white;
|
12
|
+
}
|
13
|
+
.whitespace {
|
14
|
+
color: white ;
|
15
|
+
}
|
16
|
+
.white, .space, .mania {
|
17
|
+
color: white;
|
18
|
+
}
|
19
|
+
.no-semi-column {
|
20
|
+
color: white;
|
21
|
+
}
|
22
|
+
.no-semi-column {
|
23
|
+
color: white;
|
24
|
+
white-space: pre;
|
25
|
+
}
|
26
|
+
.no-semi-column {
|
27
|
+
border: 2px solid white;
|
28
|
+
}
|
29
|
+
.newlines {
|
30
|
+
background: the,
|
31
|
+
great,
|
32
|
+
wall;
|
33
|
+
border: 2px
|
34
|
+
solid
|
35
|
+
black;
|
36
|
+
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
var path = require('path'),
|
2
|
+
fs = require('fs'),
|
3
|
+
sys = require('sys');
|
4
|
+
|
5
|
+
require.paths.unshift(__dirname, path.join(__dirname, '..'));
|
6
|
+
|
7
|
+
var less = require('lib/less');
|
8
|
+
|
9
|
+
less.tree.functions.add = function (a, b) {
|
10
|
+
return new(less.tree.Dimension)(a.value + b.value);
|
11
|
+
}
|
12
|
+
less.tree.functions.increment = function (a) {
|
13
|
+
return new(less.tree.Dimension)(a.value + 1);
|
14
|
+
}
|
15
|
+
less.tree.functions.color = function (str) {
|
16
|
+
if (str.value === "evil red") { return new(less.tree.Color)("600") }
|
17
|
+
}
|
18
|
+
|
19
|
+
sys.puts("\n" + stylize("LESS", 'underline') + "\n");
|
20
|
+
|
21
|
+
fs.readdirSync('test/less').forEach(function (file) {
|
22
|
+
if (! /\.less/.test(file)) { return }
|
23
|
+
|
24
|
+
toCSS('test/less/' + file, function (err, less) {
|
25
|
+
var name = path.basename(file, '.less');
|
26
|
+
|
27
|
+
fs.readFile(path.join('test/css', name) + '.css', 'utf-8', function (e, css) {
|
28
|
+
sys.print("- " + name + ": ")
|
29
|
+
if (less === css) { sys.print(stylize('OK', 'green')) }
|
30
|
+
else if (err) {
|
31
|
+
sys.print(stylize("ERROR: " + (err && err.message), 'red'));
|
32
|
+
} else {
|
33
|
+
sys.print(stylize("FAIL", 'yellow'));
|
34
|
+
}
|
35
|
+
sys.puts("");
|
36
|
+
});
|
37
|
+
});
|
38
|
+
});
|
39
|
+
|
40
|
+
function toCSS(path, callback) {
|
41
|
+
var tree, css;
|
42
|
+
fs.readFile(path, 'utf-8', function (e, str) {
|
43
|
+
if (e) { return callback(e) }
|
44
|
+
|
45
|
+
new(less.Parser)({
|
46
|
+
paths: [require('path').dirname(path)],
|
47
|
+
optimization: 0
|
48
|
+
}).parse(str, function (err, tree) {
|
49
|
+
if (err) {
|
50
|
+
callback(err);
|
51
|
+
} else {
|
52
|
+
try {
|
53
|
+
css = tree.toCSS();
|
54
|
+
callback(null, css);
|
55
|
+
} catch (e) {
|
56
|
+
callback(e);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
});
|
60
|
+
});
|
61
|
+
}
|
62
|
+
|
63
|
+
// Stylize a string
|
64
|
+
function stylize(str, style) {
|
65
|
+
var styles = {
|
66
|
+
'bold' : [1, 22],
|
67
|
+
'inverse' : [7, 27],
|
68
|
+
'underline' : [4, 24],
|
69
|
+
'yellow' : [33, 39],
|
70
|
+
'green' : [32, 39],
|
71
|
+
'red' : [31, 39]
|
72
|
+
};
|
73
|
+
return '\033[' + styles[style][0] + 'm' + str +
|
74
|
+
'\033[' + styles[style][1] + 'm';
|
75
|
+
}
|
@@ -22,6 +22,10 @@
|
|
22
22
|
}
|
23
23
|
}
|
24
24
|
|
25
|
+
#alpha #hsla {
|
26
|
+
color: hsla(11, 20%, 20%, 0.6);
|
27
|
+
}
|
28
|
+
|
25
29
|
#overflow {
|
26
30
|
.a { color: #111111 - #444444; } // #000000
|
27
31
|
.b { color: #eee + #fff; } // #ffffff
|
@@ -31,5 +35,12 @@
|
|
31
35
|
|
32
36
|
#grey {
|
33
37
|
color: rgb(200, 200, 200);
|
34
|
-
|
35
|
-
|
38
|
+
}
|
39
|
+
|
40
|
+
#808080 {
|
41
|
+
color: hsl(50, 0%, 50%);
|
42
|
+
}
|
43
|
+
|
44
|
+
#00ff00 {
|
45
|
+
color: hsl(120, 100%, 50%);
|
46
|
+
}
|