less 1.2.21 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. data/.gitignore +4 -3
  2. data/.gitmodules +6 -0
  3. data/Gemfile +3 -0
  4. data/README.md +39 -46
  5. data/Rakefile +5 -50
  6. data/bin/lessc +1 -100
  7. data/less.gemspec +21 -125
  8. data/lib/less.rb +11 -30
  9. data/{LICENSE → lib/less/js/LICENSE} +1 -1
  10. data/lib/less/js/Makefile +56 -0
  11. data/lib/less/js/README.md +20 -0
  12. data/lib/less/js/benchmark/benchmark.less +3979 -0
  13. data/lib/less/js/benchmark/less-benchmark.js +49 -0
  14. data/lib/less/js/bin/lessc +105 -0
  15. data/lib/less/js/build/ecma-5.js +120 -0
  16. data/lib/less/js/build/header.js +7 -0
  17. data/lib/less/js/build/require.js +7 -0
  18. data/lib/less/js/dist/less-1.0.44.js +2655 -0
  19. data/lib/less/js/dist/less-1.1.0.js +2695 -0
  20. data/lib/less/js/dist/less-1.1.0.min.js +16 -0
  21. data/lib/less/js/dist/less-1.1.1.js +2710 -0
  22. data/lib/less/js/dist/less-1.1.1.min.js +16 -0
  23. data/lib/less/js/dist/less-1.1.2.js +2712 -0
  24. data/lib/less/js/dist/less-1.1.2.min.js +16 -0
  25. data/lib/less/js/dist/less-1.1.3.js +2721 -0
  26. data/lib/less/js/dist/less-1.1.3.min.js +16 -0
  27. data/lib/less/js/lib/less/browser.js +369 -0
  28. data/lib/less/js/lib/less/functions.js +174 -0
  29. data/lib/less/js/lib/less/index.js +137 -0
  30. data/lib/less/js/lib/less/parser.js +1098 -0
  31. data/lib/less/js/lib/less/tree.js +13 -0
  32. data/lib/less/js/lib/less/tree/alpha.js +17 -0
  33. data/lib/less/js/lib/less/tree/anonymous.js +13 -0
  34. data/lib/less/js/lib/less/tree/call.js +45 -0
  35. data/lib/less/js/lib/less/tree/color.js +98 -0
  36. data/lib/less/js/lib/less/tree/comment.js +14 -0
  37. data/lib/less/js/lib/less/tree/dimension.js +34 -0
  38. data/lib/less/js/lib/less/tree/directive.js +33 -0
  39. data/lib/less/js/lib/less/tree/element.js +32 -0
  40. data/lib/less/js/lib/less/tree/expression.js +23 -0
  41. data/lib/less/js/lib/less/tree/import.js +77 -0
  42. data/lib/less/js/lib/less/tree/javascript.js +51 -0
  43. data/lib/less/js/lib/less/tree/keyword.js +9 -0
  44. data/lib/less/js/lib/less/tree/mixin.js +106 -0
  45. data/lib/less/js/lib/less/tree/operation.js +32 -0
  46. data/lib/less/js/lib/less/tree/quoted.js +29 -0
  47. data/lib/less/js/lib/less/tree/rule.js +38 -0
  48. data/lib/less/js/lib/less/tree/ruleset.js +179 -0
  49. data/lib/less/js/lib/less/tree/selector.js +28 -0
  50. data/lib/less/js/lib/less/tree/url.js +25 -0
  51. data/lib/less/js/lib/less/tree/value.js +24 -0
  52. data/lib/less/js/lib/less/tree/variable.js +24 -0
  53. data/lib/less/js/package.json +13 -0
  54. data/lib/less/js/test/css/colors.css +42 -0
  55. data/lib/less/js/test/css/comments.css +52 -0
  56. data/lib/less/js/test/css/css-3.css +42 -0
  57. data/lib/less/js/test/css/css-escapes.css +20 -0
  58. data/lib/less/js/test/css/css.css +82 -0
  59. data/lib/less/js/test/css/functions.css +30 -0
  60. data/{spec → lib/less/js/test}/css/import.css +4 -2
  61. data/lib/less/js/test/css/javascript.css +22 -0
  62. data/lib/less/js/test/css/lazy-eval.css +3 -0
  63. data/lib/less/js/test/css/media.css +21 -0
  64. data/lib/less/js/test/css/mixins-args.css +61 -0
  65. data/lib/less/js/test/css/mixins-closure.css +9 -0
  66. data/lib/less/js/test/css/mixins-nested.css +14 -0
  67. data/lib/less/js/test/css/mixins-pattern.css +49 -0
  68. data/lib/less/js/test/css/mixins.css +50 -0
  69. data/{spec → lib/less/js/test}/css/operations.css +20 -2
  70. data/{spec → lib/less/js/test}/css/parens.css +0 -0
  71. data/lib/less/js/test/css/rulesets.css +29 -0
  72. data/{spec → lib/less/js/test}/css/scope.css +6 -2
  73. data/lib/less/js/test/css/selectors.css +32 -0
  74. data/lib/less/js/test/css/strings.css +38 -0
  75. data/lib/less/js/test/css/variables.css +24 -0
  76. data/lib/less/js/test/css/whitespace.css +36 -0
  77. data/lib/less/js/test/less-test.js +75 -0
  78. data/{spec → lib/less/js/test}/less/colors.less +13 -2
  79. data/{spec → lib/less/js/test}/less/comments.less +19 -2
  80. data/{spec → lib/less/js/test}/less/css-3.less +4 -1
  81. data/lib/less/js/test/less/css-escapes.less +28 -0
  82. data/{spec → lib/less/js/test}/less/css.less +10 -18
  83. data/lib/less/js/test/less/functions.less +35 -0
  84. data/{spec → lib/less/js/test}/less/import.less +1 -1
  85. data/{spec → lib/less/js/test}/less/import/import-test-a.less +0 -0
  86. data/{spec → lib/less/js/test}/less/import/import-test-b.less +0 -0
  87. data/{spec → lib/less/js/test}/less/import/import-test-c.less +0 -0
  88. data/{spec → lib/less/js/test}/less/import/import-test-d.css +0 -0
  89. data/lib/less/js/test/less/javascript.less +27 -0
  90. data/{spec → lib/less/js/test}/less/lazy-eval.less +0 -0
  91. data/lib/less/js/test/less/media.less +25 -0
  92. data/lib/less/js/test/less/mixins-args.less +118 -0
  93. data/lib/less/js/test/less/mixins-closure.less +26 -0
  94. data/lib/less/js/test/less/mixins-nested.less +22 -0
  95. data/lib/less/js/test/less/mixins-pattern.less +96 -0
  96. data/{spec → lib/less/js/test}/less/mixins.less +8 -4
  97. data/{spec → lib/less/js/test}/less/operations.less +19 -0
  98. data/{spec → lib/less/js/test}/less/parens.less +0 -0
  99. data/{spec → lib/less/js/test}/less/rulesets.less +2 -2
  100. data/{spec → lib/less/js/test}/less/scope.less +1 -1
  101. data/{spec → lib/less/js/test}/less/selectors.less +1 -1
  102. data/lib/less/js/test/less/strings.less +49 -0
  103. data/lib/less/js/test/less/variables.less +50 -0
  104. data/{spec → lib/less/js/test}/less/whitespace.less +3 -0
  105. data/lib/less/loader.rb +67 -0
  106. data/lib/less/parser.rb +46 -0
  107. data/lib/less/version.rb +3 -0
  108. data/spec/less/one/one.less +1 -0
  109. data/spec/less/parser_spec.rb +30 -0
  110. data/spec/less/two/two.less +1 -0
  111. data/spec/spec_helper.rb +2 -7
  112. metadata +156 -106
  113. data/CHANGELOG +0 -62
  114. data/VERSION +0 -1
  115. data/lib/less/command.rb +0 -110
  116. data/lib/less/engine.rb +0 -52
  117. data/lib/less/engine/grammar/common.tt +0 -29
  118. data/lib/less/engine/grammar/entity.tt +0 -144
  119. data/lib/less/engine/grammar/less.tt +0 -341
  120. data/lib/less/engine/nodes.rb +0 -9
  121. data/lib/less/engine/nodes/element.rb +0 -281
  122. data/lib/less/engine/nodes/entity.rb +0 -79
  123. data/lib/less/engine/nodes/function.rb +0 -93
  124. data/lib/less/engine/nodes/literal.rb +0 -171
  125. data/lib/less/engine/nodes/property.rb +0 -232
  126. data/lib/less/engine/nodes/ruleset.rb +0 -12
  127. data/lib/less/engine/nodes/selector.rb +0 -44
  128. data/lib/less/ext.rb +0 -60
  129. data/spec/command_spec.rb +0 -102
  130. data/spec/css/accessors.css +0 -18
  131. data/spec/css/big.css +0 -3768
  132. data/spec/css/colors.css +0 -14
  133. data/spec/css/comments.css +0 -9
  134. data/spec/css/css-3.css +0 -21
  135. data/spec/css/css.css +0 -50
  136. data/spec/css/dash-prefix.css +0 -12
  137. data/spec/css/functions.css +0 -6
  138. data/spec/css/import-with-extra-paths.css +0 -8
  139. data/spec/css/import-with-partial-in-extra-path.css +0 -6
  140. data/spec/css/lazy-eval.css +0 -1
  141. data/spec/css/mixins-args.css +0 -32
  142. data/spec/css/mixins.css +0 -28
  143. data/spec/css/rulesets.css +0 -17
  144. data/spec/css/selectors.css +0 -13
  145. data/spec/css/strings.css +0 -12
  146. data/spec/css/variables.css +0 -8
  147. data/spec/css/whitespace.css +0 -7
  148. data/spec/engine_spec.rb +0 -127
  149. data/spec/less/accessors.less +0 -20
  150. data/spec/less/big.less +0 -1264
  151. data/spec/less/dash-prefix.less +0 -21
  152. data/spec/less/exceptions/mixed-units-error.less +0 -3
  153. data/spec/less/exceptions/name-error-1.0.less +0 -3
  154. data/spec/less/exceptions/syntax-error-1.0.less +0 -3
  155. data/spec/less/extra_import_path/extra.less +0 -1
  156. data/spec/less/extra_import_path/import/import-test-a.css +0 -1
  157. data/spec/less/extra_import_path/import/import-test-a.less +0 -4
  158. data/spec/less/functions.less +0 -6
  159. data/spec/less/hidden.less +0 -25
  160. data/spec/less/import-with-extra-paths.less +0 -4
  161. data/spec/less/literal-css.less +0 -11
  162. data/spec/less/mixins-args.less +0 -59
  163. data/spec/less/strings.less +0 -14
  164. data/spec/less/variables.less +0 -29
  165. data/spec/spec.css +0 -50
data/spec/css/colors.css DELETED
@@ -1,14 +0,0 @@
1
- #yelow #short { color: #ffeeaa; }
2
- #yelow #long { color: #ffeeaa; }
3
- #yelow #rgba { color: rgba(255, 238, 170, 0.1); }
4
- #blue #short { color: #0000ff; }
5
- #blue #long { color: #0000ff; }
6
- #blue #rgba { color: rgba(0, 0, 255, 0.1); }
7
- #overflow .a { color: #000000; }
8
- #overflow .b { color: #ffffff; }
9
- #overflow .c { color: #ffffff; }
10
- #overflow .d { color: #00ff00; }
11
- #grey {
12
- color: #c8c8c8;
13
- background-color: #323232;
14
- }
@@ -1,9 +0,0 @@
1
- #comments {
2
- color: red;
3
- background-color: orange;
4
- font-size: 12px;
5
- content: "content";
6
- border: 1px solid black;
7
- padding: 0;
8
- margin: 2em;
9
- }
data/spec/css/css-3.css DELETED
@@ -1,21 +0,0 @@
1
- .comma-delimited {
2
- background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg);
3
- text-shadow: -1px -1px 1px red, 6px 5px 5px yellow;
4
- -moz-box-shadow: 0pt 0pt 2px rgba(255, 255, 255, 0.4) inset, 0pt 4px 6px rgba(255, 255, 255, 0.4) inset;
5
- }
6
- @font-face {
7
- font-family: Headline;
8
- src: local(Futura-Medium), url(fonts.svg#MyGeometricModern) format("svg");
9
- }
10
- .other { -moz-transform: translate(0, 11em) rotate(-90deg); }
11
- p:not([class*="lead"]) { color: black; }
12
- input[type="text"].class#id[attr=32]:not(1) { color: white; }
13
- div#id.class[a=1][b=2].class:not(1) { color: white; }
14
- ul.comma > li:not(:only-child)::after { color: white; }
15
- ol.comma > li:nth-last-child(2)::after { color: white; }
16
- li:nth-child(4n+1) { color: white; }
17
- li:nth-child(-5n) { color: white; }
18
- li:nth-child(n+1) { color: white; }
19
- li:nth-child(-n+2) { color: white; }
20
- a[href^="http://"], a[href$="http://"] { color: black; }
21
- p::before { color: black; }
data/spec/css/css.css DELETED
@@ -1,50 +0,0 @@
1
- div { color: black; }
2
- div { width: 99%; }
3
- * { min-width: 45em; }
4
- h1 { color: none; }
5
- h2 > a > p { color: none; }
6
- h3 { color: none; }
7
- div.class { color: blue; }
8
- div#id { color: green; }
9
- .class#id { color: purple; }
10
- .one.two.three { color: grey; }
11
- @media print { font-size: 3em; }
12
- @media screen { font-size: 10px; }
13
- @font-face {
14
- font-family: 'Garamond Pro';
15
- src: url("/fonts/garamond-pro.ttf");
16
- }
17
- a:hover { color: #999999; }
18
- a:link { color: #999999; }
19
- p { text-transform: none; }
20
- p:first-child { text-transform: none; }
21
- q:lang(no) { quotes: none; }
22
- p + h1 { font-size: 2.2em; }
23
- input[type="text"] { font-weight: normal; }
24
- h2[title] { font-size: 100%; }
25
- [disabled] { color: transparent; }
26
- #shorthands {
27
- border: 1px solid #000000;
28
- font: 12px/16px Arial;
29
- margin: 1px 0;
30
- padding: 0 auto;
31
- background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
32
- }
33
- #more-shorthands {
34
- margin: 0;
35
- padding: 1px 0 2px 0;
36
- font: normal small/20px 'Trebuchet MS', Verdana, sans-serif;
37
- }
38
- .misc {
39
- -moz-border-radius: 2px;
40
- display: -moz-inline-stack;
41
- width: 0.1em;
42
- background-color: #009998;
43
- background-image: url(images/image.jpg);
44
- background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue));
45
- }
46
- #important {
47
- color: red !important;
48
- width: 100% !important;
49
- height: 20px ! important;
50
- }
@@ -1,12 +0,0 @@
1
- .test1 {
2
- background-image: -moz-linear-gradient(top, bottom, from(#030303), to(#010101));
3
- background-image: -webkit-gradient(linear, left top, left bottom, from(#030303), to(#010101));
4
- }
5
- .test2 {
6
- background-image: -moz-linear-gradient(top, bottom, from(#020202), to(#010101));
7
- background-image: -webkit-gradient(linear, left top, left bottom, from(#020202), to(#010101));
8
- }
9
- .test3 {
10
- background-image: -moz-linear-gradient(top, bottom, from(red), to(green));
11
- background-image: -webkit-gradient(linear, left top, left bottom, from(red), to(green));
12
- }
@@ -1,6 +0,0 @@
1
- #functions {
2
- color: #999999;
3
- width: 16;
4
- height: undefined("self");
5
- border-width: 5;
6
- }
@@ -1,8 +0,0 @@
1
- #css { color: yellow; }
2
- #import { color: red; }
3
- .mixin {
4
- height: 10px;
5
- color: red;
6
- }
7
- body { font-size: 0.75em; }
8
- h2 { font-size: 2em; }
@@ -1,6 +0,0 @@
1
- .mixin { font-size: 0.75em; }
2
- #import-test {
3
- font-size: 0.75em;
4
- width: 10px;
5
- height: 30%;
6
- }
@@ -1 +0,0 @@
1
- .lazy-eval { width: 100%; }
@@ -1,32 +0,0 @@
1
- .two-args {
2
- color: blue;
3
- width: 10px;
4
- height: 99%;
5
- }
6
- .one-arg {
7
- width: 15px;
8
- height: 49%;
9
- }
10
- .no-parens {
11
- width: 5px;
12
- height: 49%;
13
- }
14
- .no-args {
15
- width: 5px;
16
- height: 49%;
17
- }
18
- .var-args {
19
- width: 45;
20
- height: 17%;
21
- }
22
- .multi-mix {
23
- width: 10px;
24
- height: 29%;
25
- margin: 4;
26
- padding: 5;
27
- }
28
- body {
29
- padding: 30px;
30
- color: #ff0000;
31
- }
32
- .scope-mix { width: 8; }
data/spec/css/mixins.css DELETED
@@ -1,28 +0,0 @@
1
- .mixin { border: 1px solid black; }
2
- .mixout { border-color: orange; }
3
- .borders { border-style: dashed; }
4
- #namespace .borders { border-style: dotted; }
5
- #namespace .biohazard { content: "death"; }
6
- #namespace .biohazard .man { color: transparent; }
7
- #theme > .mixin { background-color: grey; }
8
- #container {
9
- color: black;
10
- border: 1px solid black;
11
- border-color: orange;
12
- background-color: grey;
13
- }
14
- #header .milk {
15
- color: white;
16
- border: 1px solid black;
17
- background-color: grey;
18
- }
19
- #header #cookie { border-style: dashed; }
20
- #header #cookie .chips { border-style: dotted; }
21
- #header #cookie .chips .calories {
22
- color: black;
23
- border: 1px solid black;
24
- border-color: orange;
25
- background-color: grey;
26
- }
27
- .secure-zone { color: transparent; }
28
- .direct { border-style: dotted; }
@@ -1,17 +0,0 @@
1
- #first > .one { font-size: 2em; }
2
- #first > .one > #second .two > #deux { width: 50%; }
3
- #first > .one > #second .two > #deux #third { height: 100%; }
4
- #first > .one > #second .two > #deux #third:focus { color: black; }
5
- #first > .one > #second .two > #deux #third:focus #fifth > #sixth .seventh #eighth + #ninth { color: purple; }
6
- #first > .one > #second .two > #deux #fourth { color: #110000; }
7
- #first > .one > #second .two > #deux #fourth .seven { border: 1px solid black; }
8
- #first > .one > #second .two > #deux #fourth .eight > #nine { border: 1px solid black; }
9
- #first > .one > #second .two > #deux #fourth #ten { color: red; }
10
- #first > .one > #second .two > #deux #five { color: #110000; }
11
- #first > .one > #second .two > #deux #five .seven { border: 1px solid black; }
12
- #first > .one > #second .two > #deux #five .eight > #nine { border: 1px solid black; }
13
- #first > .one > #second .two > #deux #five #ten { color: red; }
14
- #first > .one > #second .two > #deux #six { color: #110000; }
15
- #first > .one > #second .two > #deux #six .seven { border: 1px solid black; }
16
- #first > .one > #second .two > #deux #six .eight > #nine { border: 1px solid black; }
17
- #first > .one > #second .two > #deux #six #ten { color: red; }
@@ -1,13 +0,0 @@
1
- h1 a:hover { color: red; }
2
- h1 p:hover { color: red; }
3
- h2 a:hover { color: red; }
4
- h2 p:hover { color: red; }
5
- h3 a:hover { color: red; }
6
- h3 p:hover { color: red; }
7
- #all, #the, #same { color: blue; }
8
- ul, li, div, q, blockquote, textarea { margin: 0; }
9
- td {
10
- margin: 0;
11
- padding: 0;
12
- }
13
- td, input { line-height: 1em; }
data/spec/css/strings.css DELETED
@@ -1,12 +0,0 @@
1
- #strings {
2
- background-image: url("http://son-of-a-banana.com");
3
- quotes: "~" "~";
4
- content: "#*%:&^,)!.(~*})";
5
- empty: "";
6
- }
7
- #comments { content: "/* hello */ // not-so-secret"; }
8
- #single-quote {
9
- quotes: "'" "'";
10
- content: '""#!&""';
11
- empty: '';
12
- }
@@ -1,8 +0,0 @@
1
- .variables { width: 14cm; }
2
- .variables {
3
- height: 24px;
4
- color: #888888;
5
- font-family: "Trebuchet MS", Verdana, sans-serif;
6
- quotes: "~" "~";
7
- }
8
- .alpha { filter: alpha(opacity=95); }
@@ -1,7 +0,0 @@
1
- .whitespace, .white, .space, .mania, .no-semi-column { color: white; }
2
- .no-semi-column {
3
- color: white;
4
- white-space: pre;
5
- }
6
- .no-semi-column { border: 2px solid white; }
7
- .newlines { border: 2px solid black; }
data/spec/engine_spec.rb DELETED
@@ -1,127 +0,0 @@
1
- require 'spec/spec_helper'
2
-
3
- module LessEngineSpecHelper
4
- def lessify arg
5
- if arg.is_a? String or arg.is_a? File
6
- return Less::Engine.new(arg).to_css
7
- else
8
- lessify File.new("spec/less/#{arg.to_s.gsub('_', '-')}.less")
9
- end
10
- end
11
-
12
- def css file
13
- File.read("spec/css/#{file.to_s.gsub('_', '-')}.css")
14
- end
15
- end
16
-
17
- describe Less::Engine do
18
- include LessEngineSpecHelper
19
-
20
- describe "to_css" do
21
- it "should parse css" do
22
- lessify(:css).should == css(:css)
23
- end
24
-
25
- it "should group selectors when it can" do
26
- lessify(:selectors).should == css(:selectors)
27
- end
28
-
29
- it "should parse css 3" do
30
- lessify(:css_3).should == css(:css_3)
31
- end
32
-
33
- it "should handle properties prefixed with a dash" do
34
- lessify(:dash_prefix).should == css(:dash_prefix)
35
- end
36
-
37
- it "should parse comments" do
38
- lessify(:comments).should == css(:comments)
39
- end
40
-
41
- it "should deal with whitespace" do
42
- lessify(:whitespace).should == css(:whitespace)
43
- end
44
-
45
- it "should parse nested rules" do
46
- lessify(:rulesets).should == css(:rulesets)
47
- end
48
-
49
- it "should parse variables" do
50
- lessify(:variables).should == css(:variables)
51
- end
52
-
53
- it "should parse operations" do
54
- lessify(:operations).should == css(:operations)
55
- end
56
-
57
- it "should manage scope" do
58
- lessify(:scope).should == css(:scope)
59
- end
60
-
61
- it "should parse parens" do
62
- lessify(:parens).should == css(:parens)
63
- end
64
-
65
- it "should parse strings" do
66
- lessify(:strings).should == css(:strings)
67
- end
68
-
69
- it "should parse accessors" do
70
- lessify(:accessors).should == css(:accessors)
71
- end
72
-
73
- it "should parse colors in hex" do
74
- lessify(:colors).should == css(:colors)
75
- end
76
-
77
- it "should parse mixins" do
78
- lessify(:mixins).should == css(:mixins)
79
- end
80
-
81
- it "should parse mixins with arguments" do
82
- lessify(:mixins_args).should == css(:mixins_args)
83
- end
84
-
85
- it "should evaluate variables lazily" do
86
- lessify(:lazy_eval).should == css(:lazy_eval)
87
- end
88
-
89
- it "should handle custom functions" do
90
- module Less::Functions
91
- def color args
92
- arg = args.first
93
- Less::Node::Color.new("99", "99", "99") if arg == "evil red"
94
- end
95
-
96
- def increment a
97
- Less::Node::Number.new(a.evaluate.to_i + 1)
98
- end
99
-
100
- def add a, b
101
- Less::Node::Number.new(a.evaluate + b.evaluate)
102
- end
103
- end
104
- lessify(:functions).should == css(:functions)
105
- end
106
-
107
- it "should work with import" do
108
- lessify(:import).should == css(:import)
109
- end
110
-
111
- it "should work tih import using extra paths" do
112
- lambda {
113
- lessify(:import_with_extra_paths).should == css(:import_with_extra_paths)
114
- }.should raise_error(Less::ImportError)
115
- # finding a partial in another location
116
- $LESS_LOAD_PATH = ["spec/less/extra_import_path"]
117
- lessify(:import_with_extra_paths).should == css(:import_with_extra_paths)
118
- # overriding a partial in another location so this takes priority over the same named partial in the same directory
119
- lessify(:import).should == css(:import_with_partial_in_extra_path)
120
- end
121
-
122
- it "should parse a big file"
123
- it "should handle complex color operations"
124
- end
125
- end
126
-
127
-
@@ -1,20 +0,0 @@
1
- .magic-box {
2
- @trim: orange;
3
- content: "gold";
4
- width: 60cm;
5
- height: 40cm;
6
- #lock {
7
- color: silver;
8
- }
9
- }
10
-
11
- #accessors {
12
- content: .magic-box['content']; // "gold"
13
- width: .magic-box['width']; // 60cm
14
- }
15
-
16
- .unlock {
17
- .magic-box;
18
- color: #lock['color']; // silver
19
- border-color: .magic-box[@trim]; // orange
20
- }
data/spec/less/big.less DELETED
@@ -1,1264 +0,0 @@
1
-
2
- @bg: #193a59;
3
- @bg_sat: #1C202B;
4
- @bg_alt: #282C38;
5
- @fg: @white;
6
-
7
- @accent_colour: #64AE4B;
8
- @button_colour_off: #98000E;
9
- @button_colour_on: #A61A26;
10
-
11
- // Monochrome Colours
12
- @white: #FFFFFF;
13
- @light_grey: #C0C0C0;
14
- @grey: #808080;
15
- @dark_grey: #404040;
16
- @black: #000000;
17
-
18
- // Basic Colours
19
- @yellow: #FFFF00;
20
- @red: #FF0000;
21
- @green: #00FF00;
22
- @blue: #0000FF;
23
-
24
- // Other Colours
25
- @colour_negative: @bg * 0.2 + @red * 0.7 + @black * 0.1;
26
- @colour_positive: @bg * 0.2 + @green * 0.7 + @black * 0.1;
27
-
28
- .box-shadow (@h: 0, @v: 0, @blur: 0, @color: none) {
29
- box-shadow: @h @v @blur @color;
30
- -moz-box-shadow: @h @v @blur @color;
31
- -webkit-box-shadow: @h @v @blur @color;
32
- }
33
- .text-shadow (@ts_h: 0, @ts_v: 0, @ts_blur: 0, @ts_color: none) {
34
- text-shadow: @ts_h @ts_v @ts_blur @ts_color;
35
- }
36
- .border-radius (@r: 0) {
37
- border-radius: @r;
38
- -moz-border-radius: @r;
39
- -webkit-border-radius: @r;
40
- }
41
- .border-radius-top-left (@r: 0) {
42
- border-top-left-radius: @r;
43
- -moz-border-radius-topleft: @r;
44
- -webkit-border-top-left-radius: @r;
45
- }
46
- .border-radius-top-right (@r: 0) {
47
- border-top-right-radius: @r;
48
- -moz-border-radius-topright: @r;
49
- -webkit-border-top-right-radius: @r;
50
- }
51
- .border-radius-bottom-right (@r: 0) {
52
- border-bottom-right-radius: @r;
53
- -moz-border-radius-bottomright: @r;
54
- -webkit-border-bottom-right-radius: @r;
55
- }
56
- .border-radius-bottom-left (@r: 0) {
57
- border-bottom-left-radius: @r;
58
- -moz-border-radius-bottomleft: @r;
59
- -webkit-border-bottom-left-radius: @r;
60
- }
61
- /* Application > Home */
62
- #pages_controller.beta {
63
- background: @bg url('/images/body_bg_4.png') repeat-x left top;
64
- #feedback { top: 53px; }
65
- #top {
66
- position: relative;
67
- z-index: 10;
68
- #masthead {
69
- background: none;
70
- div.page_width {
71
- h1 {
72
- position: absolute; margin-top: 52px; margin-left: 9px;
73
- a {
74
- height: 152px; width: 370px; background: url('/images/logo_home_2.png');
75
- }
76
- span.beta_marker {
77
- position: absolute; top: 55px; left: 366px;
78
- }
79
- }
80
- }
81
- #utilities {
82
- a {
83
- background: url('/images/transparent_backgrounds/black_50.png');
84
- :hover {
85
- background: url('/images/transparent_backgrounds/black_25.png');
86
- }
87
- }
88
- }
89
- }
90
- #pitch {
91
- margin-top: 209px;
92
- div.page_width {
93
- position: relative;
94
- #pitch_left {
95
- float: left;
96
- width: 380px;
97
- padding-right: 60px;
98
- img.main_image { width: 100%; }
99
- }
100
- #pitch_right {
101
- margin: -10px 0 0 0;
102
- width: 520px;
103
- float: right; position: relative;
104
- div.container {
105
-
106
- }
107
- }
108
- }
109
- h2 { font-size: 36px; font-weight: normal; margin: 0; line-height: 42px; color: @white; .text-shadow(2px, 2px, 0, @black); margin: 0 0 20px; }
110
- h3 { font-size: 32px; font-weight: bold; color: @white; .text-shadow(2px, 2px, 0, @black); margin: 58px -40px 0 0; text-align: right; }
111
- h4 { font-size: 22px; font-weight: normal; color: @white; margin: 0 20px 0 0;.text-shadow(2px, 2px, 0, @black); }
112
- #get_invited {
113
- margin-top: 30px;
114
- p.flash.error {
115
- background: @red * 0.66 + @black * 0.33; padding: 5px; line-height: 1; margin: 0 0 10px;
116
- .border-radius(3px); color: @white;
117
- }
118
- form {
119
- label { text-transform: none; font-size: 14px; font-weight: normal; color: @grey; line-height: normal; margin: 0 0 5px; }
120
- #email { width: 320px; margin-right: 2px; font-size: 16px; height: 26px; }
121
- a.button { text-transform: uppercase; font-size: 12px; font-weight: bold; line-height: 26px; font-size: 16px; height: 29px; }
122
- }
123
- a.button.signup {
124
- display: block; margin: 10px 0 0;
125
- strong { text-transform: uppercase; font-size: 12px; font-weight: bold; line-height: 25px; }
126
- }
127
- }
128
- }
129
- }
130
- #content {
131
- background: transparent; border-bottom-color: @bg * 0.66 + @black * 0.33; min-height: 0;
132
- border-bottom: none;
133
- }
134
- #footer {
135
- border-top: none;
136
- div.page_width { padding-top: 40px; }
137
- }
138
- }
139
-
140
- /* Quick Help */
141
- #show_quick_help {
142
- position: absolute; top: 53px; right: 5px; z-index: 50; display: block;
143
- }
144
- #show_quick_help:hover { padding-right: 3px; }
145
- #quick_help {
146
- padding: 0; margin: 0 0 20px; .border-radius(3px);
147
- > ul {
148
- margin: 0; overflow: hidden; background: transparent url('/images/transparent_backgrounds/white_05.png'); padding: 20px;
149
- li {
150
- display: block; float: left; width: 292px; margin: 0 20px 0 0; padding: 0; list-style: none;
151
- h3 { font-size: 18px; margin: 0 0 0 38px; }
152
- p { font-size: 14px; margin: 0 0 0 38px; }
153
- ul.social_networks {
154
- margin: 0; padding: 0;
155
- li { display: inline; margin: 0 5px 0 0; padding: 0; float: none; }
156
- }
157
- a.button { font-size: 24px; line-height: 1; height: auto; padding: 10px 20px 15px; display: block; text-align: center; }
158
- }
159
- li:last-child { margin: 0; }
160
- }
161
- }
162
-
163
- /* Feedback */
164
- #feedback { position: absolute; top: 174px; right: 5px; z-index: 50; display: block; }
165
- #feedback:hover { padding-right: 3px; }
166
-
167
- /* Browse */
168
- div.browse {
169
- margin: 0 0 20px;
170
- div.filters {
171
- padding: 10px 10px 9px; text-align: left; background: @light_grey * 0.75 + @white * 0.25;
172
- border-bottom: 1px solid @light_grey; overflow: hidden; line-height: 1;
173
- .border-radius-top-left(3px); .border-radius-top-right(3px); color: @light_grey;
174
- span.filter{
175
- float: left; display: block; overflow: hidden; position: relative; z-index: 5;
176
- a {
177
- margin: 0 1px 0 0; display: block; float: left; padding: 0 8px; height: 18px; font-weight: bold; font-size: 10px; line-height: 18px;
178
- text-transform: uppercase; background: @white; color: @grey; text-decoration: none; position: relative; z-index: 3;
179
- }
180
- a:first-child { .border-radius-top-left(3px); .border-radius-bottom-left(3px); }
181
- a:last-child { .border-radius-top-right(3px); .border-radius-bottom-right(3px); }
182
- a.active { background: @bg; color: @white; z-index: 4; }
183
- a:hover { color: @black; }
184
- a.active:hover { color: @white; }
185
- }
186
- span.switch_to { float: left; }
187
- span.show { float: right ;}
188
- }
189
- > ul {
190
- margin: 0; background: @white; padding: 10px 0 0 10px;
191
- .border-radius(3px);
192
- > li {
193
- .box-shadow(0, 0, 3px, @light_grey);
194
- position: relative;
195
- a.remove {
196
- position: absolute; height: 16px; width: 16px; padding: 3px; background: @white; .border-radius(99px); display: none;
197
- }
198
- a.thumbnail {
199
- display: block; overflow: hidden;
200
- img { height: 100%; width: 100%; }
201
- }
202
- }
203
- > li:hover {
204
- a.remove {
205
- display: block;
206
- }
207
- }
208
- }
209
- > div.footer {
210
- padding: 9px 10px 10px; background: @light_grey * 0.75 + @white * 0.25; overflow: hidden;
211
- border-top: 1px solid @light_grey; .border-radius-bottom-left(3px); .border-radius-bottom-right(3px);
212
- div.info {
213
- float: left; color: @grey;
214
- strong { color: @black; font-weight: normal; }
215
- }
216
- div.pagination {
217
- float: right;
218
- > * {
219
- display: inline-block; line-height: 1; padding: 0 6px; line-height: 18px; height: 18px; background: @white;
220
- .border-radius(3px); text-decoration: none; font-weight: bold;
221
- font-size: 10px; text-transform: uppercase;
222
- }
223
- a { color: @grey; }
224
- a:hover { color: @black; }
225
- span.disabled { color: @light_grey; }
226
- span.current { color: @white; background: @bg; border: none; }
227
- span.current:hover { color: @white; }
228
- }
229
- }
230
- }
231
-
232
- /* Browse Grid */
233
- div.browse.grid {
234
- > ul {
235
- margin: 0; min-height: 240px;
236
- padding: 10px 0 0 10px;
237
- .border-radius(3px);
238
- li {
239
- display: block; float: left; list-style: none; margin: 0 10px 10px 0;
240
- div.top {
241
- .border-radius-top-left(3px); .border-radius-top-right(3px); position: relative;
242
- .marker {
243
- position: absolute; padding: 2px; .border-radius(2px);
244
- background: url('/images/transparent_backgrounds/white_75.png'); height: 12px; width: 12px;
245
- }
246
- img.marker.media_type { left: 8px; }
247
- a.marker.remove {
248
- display: inline-block; text-decoration: none; top: 8px; left: 8px;
249
- font-size: 10px; filter: alpha(opacity=75); opacity: 0.75; -moz-opacity: 0.75;
250
- b { font-weight: normal; padding: 0 2px; line-height: 1; display: none; color: @red * 0.75; }
251
- img { vertical-align: middle; }
252
- }
253
- a.remove { top: -3px; right: -3px; }
254
- }
255
- div.footer {
256
- text-align: center;
257
- .border-radius-bottom-left(3px); .border-radius-bottom-right(3px);
258
- padding: 0 5px 5px; display: block;
259
- line-height: 13px;
260
- a { display: block; text-decoration: none; font-weight: bold; font-size: 12px; }
261
- }
262
- div.mouseover_box { width: 200px; }
263
- }
264
- li:hover {
265
- div.top {
266
- a.marker.remove, a.marker.media_type {
267
- filter: alpha(opacity=100); opacity: 1; -moz-opacity: 1;
268
- b { display: inline-block; }
269
- }
270
- }
271
- }
272
- li.with_mouseover_box:hover {
273
- div.top {
274
- background: @accent_colour;
275
- a.remove { background: @accent_colour; }
276
- }
277
- div.footer {
278
- background: @accent_colour;
279
- a { color: @white; }
280
- }
281
- }
282
- }
283
- }
284
- div.browse.ads.grid {
285
- > ul {
286
- li {
287
- width: 142px;
288
- div.top {
289
- img.marker.media_type { top: 85px; }
290
- a.thumbnail { width: 132px; height: 99px; padding: 5px; }
291
- }
292
- }
293
- }
294
- }
295
- div.browse.brands.grid {
296
- > ul {
297
- li {
298
- width: 140px;
299
- div.top {
300
- .border-radius(3px); padding: 5px;
301
- a.thumbnail {
302
- width: 120px; height: 120px; padding: 5px; background: @white;
303
- }
304
- }
305
- }
306
- }
307
- }
308
- div.browse.grid.with_categories { margin: 0 0 0 160px; }
309
- div.browse.grid.with_options {
310
- > ul { .border-radius-top-left(0px); .border-radius-top-right(0px); }
311
- }
312
- div.browse.grid.with_footer {
313
- > ul { .border-radius-bottom-left(0px); .border-radius-bottom-right(0px); }
314
- }
315
- div.browse.grid.fixed {
316
- > ul {
317
- li {
318
- width: 142px;
319
- div.top {
320
- img.marker.media_type { top: 85px; left: 8px; }
321
- a.thumbnail { width: 132px; height: 99px; padding: 5px; }
322
- }
323
- div.footer {
324
- height: 13px;
325
- a.title { font-size: 11px; font-weight: normal; }
326
- }
327
- }
328
- }
329
- }
330
-
331
- /* Browse List */
332
- div.browse.list {
333
- > ul {
334
- margin: 0; min-height: 320px;
335
- padding: 10px 0 0 10px; overflow: hidden;
336
- > li {
337
- display: block; list-style: none; margin: 0 10px 10px 0; padding: 5px;
338
- .border-radius(3px); position: relative; line-height: normal;
339
- .marker {
340
- position: absolute; padding: 2px; .border-radius(2px);
341
- background: url('/images/transparent_backgrounds/white_75.png');
342
- img { height: 12px; width: 12px; }
343
- }
344
- img.marker { height: 12px; width: 12px; }
345
- span.marker.new {
346
- color: black; left: -5px; top: -5px; background: none; background-color: @white * 0.1 + @yellow * 0.6 + @red * 0.3; line-height: 1; padding: 2px 5px;
347
- font-weight: bold;
348
- }
349
- a.marker.media_type {
350
- display: inline-block; text-decoration: none; top: 39px; left: 8px;
351
- font-size: 10px;
352
- b { font-weight: normal; margin: 0 0 0 2px; line-height: 1; display: none; }
353
- img { vertical-align: middle; }
354
- }
355
- a.thumbnail {
356
- float: left;
357
- width: 68px; display: block; overflow: hidden;
358
- border: 1px solid @light_grey;
359
- :hover { border-color: @accent_colour; }
360
- }
361
- span.title_brand {
362
- display: block; margin: 0 0 2px 75px;
363
- a { margin: 0; display: inline; }
364
- a.brand_name { font-weight: normal; font-size: 12px; }
365
- }
366
- a.ad_title {
367
- font-weight: bold; font-size: 14px; margin: 0 0 0 75px; display: block;
368
- }
369
- a.brand_name {
370
- font-weight: bold; font-size: 14px; margin: 0 0 0 75px; display: block;
371
- }
372
- small {
373
- display: block; color: @grey; margin: 0 0 0 75px; font-size: 12px;
374
- }
375
- small.brand_name { display: inline; margin: 0; }
376
- ul.chart {
377
- margin: 0 0 0 80px;
378
- height: 39px;
379
- }
380
- ul.networks {
381
- margin: 3px 0 0 75px; padding: 0; overflow: hidden;
382
- li { display: block; float: left; margin: 0 5px 0 0; line-height: 1; }
383
- }
384
- div.points {
385
- display: none;
386
- font-size: 12px; text-align: right;
387
- label { color: @grey; }
388
- }
389
- a.remove { bottom: -3px; right: -3px; }
390
- }
391
- li:hover {
392
- a.remove {
393
- img { filter: alpha(opacity=100); opacity: 1; -moz-opacity: 1; }
394
- }
395
- }
396
- li.ad {
397
- a.thumbnail { height: 51px; }
398
- span.title_brand {
399
- small.brand_name {
400
- display: block;
401
- a { font-weight: bold; }
402
- }
403
- }
404
- }
405
- li.brand {
406
- a.thumbnail { height: 68px; }
407
- }
408
- }
409
- }
410
- div.browse.list.with_options {
411
- > ul { .border-radius-top-left(0px); .border-radius-top-right(0px); }
412
- }
413
- div.browse.list.with_footer {
414
- > ul { .border-radius-bottom-left(0px); .border-radius-bottom-right(0px); }
415
- }
416
- div.browse.list.cols_2 {
417
- > ul {
418
- > li { width: 285px; float: left; }
419
- }
420
- }
421
- div.browse.ads.list {
422
- > ul {
423
- > li {
424
- height: 53px;
425
- a.thumbnail {
426
- height: 51px;
427
- }
428
- }
429
- }
430
- }
431
- div.browse.brands.list {
432
- > ul {
433
- > li {
434
- height: 68px;
435
- a.thumbnail {
436
- height: 66px;
437
- }
438
- }
439
- }
440
- }
441
-
442
- /* Categories List */
443
- #categories {
444
- margin: 40px 0 0;
445
- width: 160px;
446
- float: left;
447
- ul {
448
- margin: 0; padding: 10px 0 0;
449
- li {
450
- list-style: none; margin: 0; padding: 0; font-size: 14px;
451
- a { color: @grey; display: block; padding: 5px 10px; text-decoration: none; .border-radius-top-left(3px); .border-radius-bottom-left(3px); }
452
- a:hover { color: @black; background: @light_grey * 0.15 + @white * 0.85; }
453
- }
454
- .all a { font-weight: bold; }
455
- .current a { background: @white; color: @black; }
456
- }
457
- }
458
-
459
- /* Ads > Show */
460
- #ad {
461
- div.header {
462
- overflow: hidden;
463
- h3 { font-size: 16px; }
464
- small {
465
- a { font-weight: bold; }
466
- a.subscribe_to_brand {
467
- color: @white; font-size: 9px; text-transform: uppercase;
468
- background: @accent_colour; text-decoration: none; .border-radius(3px); padding: 1px 4px;
469
- .text-shadow(1px, 1px, 0, @accent_colour * 0.87 + @black * 0.25); letter-spacing: 0.5px;
470
- }
471
- span.networks img { position: relative; top: 3px; }
472
- }
473
- }
474
- div.content {
475
- padding: 0; position: relative;
476
- a.toggle_size {
477
- display: block; .border-radius(3px); background-color: @black; padding: 0 5px 0 26px;
478
- background-position: 5px center; background-repeat: no-repeat; text-decoration: none; margin: 5px 5px 0 0;
479
- position: absolute; top: 0; right: 0; line-height: 25px;
480
- filter: alpha(opacity=15); opacity: 0.15; -moz-opacity: 0.15;
481
- }
482
- a.toggle_size.enlarge { background-image: url('/images/icons/arrow-out.png'); }
483
- a.toggle_size.reduce { background-image: url('/images/icons/arrow-in.png'); }
484
- a.toggle_size:hover { background-color: @accent_colour; color: @white; }
485
- img.creative { max-width: 580px; padding: 20px; margin: 0 auto; display: block; }
486
- }
487
- }
488
- body.reduced_video {
489
- #ad {
490
- a.toggle_size.reduce { display: none; }
491
- }
492
- #ad:hover {
493
- a.toggle_size.enlarge { filter: alpha(opacity=66); opacity: 0.66; -moz-opacity: 0.66; }
494
- a.toggle_size.enlarge:hover { filter: alpha(opacity=100); opacity: 1.0; -moz-opacity: 1.0; }
495
- }
496
- }
497
- body.enlarged_video {
498
- #ad {
499
- width: 960px;
500
- a.toggle_size.enlarge { display: none; }
501
- }
502
- #ad:hover {
503
- a.toggle_size.reduce { filter: alpha(opacity=66); opacity: 0.66; -moz-opacity: 0.66; }
504
- a.toggle_size.reduce:hover { filter: alpha(opacity=100); opacity: 1.0; -moz-opacity: 1.0; }
505
- }
506
- #sidebar { margin: 827px 0 0 0; }
507
- }
508
- #sidebar {
509
- div.voted {
510
- margin: 0 0 20px; color: @white; font-weight: bold; font-size: 12px; text-transform: uppercase; line-height: 34px; height: 34px;
511
- .border-radius(3px); text-align: center;
512
- img { position: relative; top: 4px; }
513
- }
514
- #voted_up { background: @colour_positive * 0.66 + @bg * 0.15; }
515
- #voted_down { background: @colour_negative * 0.66 + @bg * 0.15; }
516
- #vote {
517
- margin: 0 0 20px; overflow: hidden;
518
- a {
519
- color: @white; font-weight: bold; overflow: hidden; display: block; height: 30px; line-height: 30px;
520
- width: 50%; text-decoration: none; text-align: center; font-size: 10px; padding: 0; text-transform: uppercase;
521
- img { position: relative; top: 4px; }
522
- }
523
- a.up {
524
- float: left; background: @colour_positive * 0.66 + @bg * 0.15; .border-radius-top-left(3px); .border-radius-bottom-left(3px);
525
- :hover { background: @colour_positive * 0.85 + @bg * 0.15; }
526
- }
527
- a.down {
528
- float: left; background: @colour_negative * 0.66 + @bg * 0.15; .border-radius-top-right(3px); .border-radius-bottom-right(3px);
529
- :hover { background: @colour_negative * 0.85 + @bg * 0.15; }
530
- }
531
- }
532
- #meta {
533
- table {
534
- margin: 0;
535
- tr:last-child td { padding-bottom: 0; }
536
- td {
537
- padding: 0 0 5px;
538
- ul.networks {
539
- margin: 0; padding: 0;
540
- li {
541
- list-style: none; display: inline;
542
- img { filter: alpha(opacity=4); opacity: 0.4; -moz-opacity: 0.4; position: relative; top: 2px; }
543
- }
544
- li {
545
- img.installed { filter: alpha(opacity=100); opacity: 1; -moz-opacity: 1; }
546
- }
547
- }
548
- }
549
- td.label { color: @grey; white-space: nowrap; width: 1%; text-align: right; padding-right: 5px; }
550
- }
551
- }
552
- }
553
-
554
- /* Charts */
555
- ul.chart {
556
- background: transparent;
557
- overflow: hidden; border-left: 1px solid @grey; margin: 0; padding: 0;
558
- li {
559
- height: 100%; display: block; float: left; padding: 0; margin: 0; position: relative; background: transparent;
560
- b { display: block; background: @light_grey; position: absolute; bottom: 0; left: 0; right: 0; border-bottom: 1px solid @grey; }
561
- }
562
- }
563
- ul.chart.two_wks {
564
- li {
565
- width: 7.142857142857143%;
566
- }
567
- }
568
-
569
- /* Panels */
570
- div.panel {
571
- margin: 0 0 20px; position: relative;
572
- > div.header {
573
- background: @light_grey * 0.75 + @white * 0.25;
574
- border-bottom: 1px solid @light_grey;
575
- padding: 5px 10px 4px;
576
- .border-radius-top-left(3px);
577
- .border-radius-top-right(3px);
578
- h3 { color: @black; font-size: 14px; margin: 0; }
579
- small { display: block; font-size: 12px; margin: 0 0 3px; }
580
- }
581
- > div.content {
582
- background: @white; padding: 10px;
583
- p.blank { margin: 0; }
584
- }
585
- > div.footer {
586
- background: @light_grey * 0.75 + @white * 0.25;
587
- border-top: 1px solid @light_grey;
588
- padding: 4px 10px 5px;
589
- .border-radius-bottom-left(3px);
590
- .border-radius-bottom-right(3px);
591
- }
592
- }
593
- div.panel.no_footer {
594
- div.content {
595
- .border-radius-bottom-left(3px);
596
- .border-radius-bottom-right(3px);
597
- }
598
- }
599
- div.panel.no_header {
600
- div.content {
601
- .border-radius-top-left(3px);
602
- .border-radius-top-right(3px);
603
- }
604
- }
605
- div.panel.collapsable {
606
- div.header {
607
- cursor: pointer;
608
- b.toggle { float: right; border: 5px solid transparent; border-bottom: 5px solid @black; border-top: none; display: block; width: 0; height: 0; margin: 6px 0 0 0; }
609
- }
610
- div.header:hover {
611
- background: @light_grey * 0.66 + @white * 0.33
612
- }
613
- }
614
- div.panel.collapsed {
615
- div.header {
616
- border-bottom: none; .border-radius(3px);
617
- b.toggle { border-bottom: none; border-top: 5px solid @black; }
618
- }
619
- div.blank { border-bottom: none; .border-radius-bottom-left(3px); .border-radius-bottom-right(3px); }
620
- div.content, div.footer { display: none; }
621
- }
622
-
623
-
624
- /* Sidebar Actions */
625
- #sidebar {
626
- #actions {
627
- margin: 0 0 20px;
628
- a.button { font-size: 16px; line-height: normal; height: auto; padding: 5px 10px; }
629
- small { display: block; margin: 5px 0 0; font-size: 12px; }
630
- }
631
- }
632
-
633
- /* Mouseover Box */
634
- div.mouseover_box {
635
- display: none; position: absolute; top: 100%; z-index: 10; left: 50%;
636
- b.tail {
637
- display: block; height: 0; width: 0; border: 5px solid transparent; border-bottom: 5px solid @accent_colour; border-top: 0; margin: 5px 0 0 -5px;
638
- position: relative; z-index: 9;
639
- }
640
- div.content {
641
- padding: 10px; background: @bg; overflow: hidden; line-height: normal; position: relative; .box-shadow(0, 0, 5px, @bg);
642
- position: relative; z-index: 8; left: -50%; .border-radius(3px); border: 5px solid @accent_colour; background: @white;
643
- a.name, a.title { font-weight: bold; font-size: 12px; }
644
- small {
645
- display: block; color: @grey; font-size: 11px; line-height: normal;
646
- strong { color: @black; }
647
- img.favicons { vertical-align: middle; }
648
- }
649
- }
650
- }
651
- .with_mouseover_box:hover {
652
- div.mouseover_box { display: block; }
653
- }
654
-
655
- /* Sidebar People */
656
- #sidebar {
657
- #people {
658
- > * > ul {
659
- margin: 0 0 -10px; padding: 0;
660
- > li {
661
- display: block; margin: 0 10px 10px 0; float: left; padding: 3px; width: 40px; position: relative;
662
- .box-shadow(0, 0, 3px, @light_grey); .border-radius(3px);
663
- a.avatar {
664
- display: block; width: 40px; height: 40px; overflow: hidden; .border-radius(3px);
665
- img { width: 100%; height: 100%; }
666
- }
667
- a.name { display: block; text-align: center; font-size: 10px; overflow: hidden; text-decoration: none; }
668
- div.mouseover_box {
669
- width: 500%;
670
- div.content {
671
- label { display: block; color: @grey; font-size: 10px; text-transform: uppercase; }
672
- div.networks {
673
- ul {
674
- overflow: hidden; margin: 0; padding: 0;
675
- li {
676
- display: block; float: left; list-style: none; margin: 3px 3px 0 0; padding: 0;
677
- a { display: block; height: 16px; width: 16px; }
678
- }
679
- }
680
- }
681
- div.points {
682
- width: 40px; float: right;
683
- border-left: 1px solid (@light_grey * 0.33 + @white * 0.66); padding-left: 10px; margin-left: 10px;
684
- strong { font-size: 14px; font-weight: bold; color: @black; }
685
- }
686
- }
687
- }
688
- }
689
- > li:hover {
690
- background-color: @accent_colour;
691
- a.name { color: @white; }
692
- }
693
- }
694
- }
695
- }
696
-
697
- /* Comments */
698
- #comments {
699
- ul {
700
- margin: 0 0 20px; padding: 0;
701
- li {
702
- display: block; list-style: none; padding: 0; margin: 0 0 10px;
703
- p.author {
704
- margin: 0; overflow: hidden;
705
- small { font-size: 12px; color: @light_grey; float: right; }
706
- a.avatar {
707
- display: inline-block; height: 16px; width: 16px; position: relative; top: 3px;
708
- img { height: 100%; width: 100%; }
709
- }
710
- a.name { font-weight: bold; }
711
- }
712
- b.tail { display: block; width: 0; height: 0; margin: 6px 0 0 10px; border: 5px solid transparent; border-top: none; border-bottom: 5px solid (@bg * 0.66 + @black * 0.33); }
713
- blockquote { margin: 0; padding: 10px; .border-radius(3px); font-style: normal; background: @bg * 0.66 + @black * 0.33; color: @white; }
714
- }
715
- }
716
- form {
717
- margin: 0;
718
- textarea { width: 500px; }
719
- }
720
- }
721
-
722
- /* Sidebar Categories */
723
- #sidebar {
724
- #categories {
725
- margin: 0 0 20px;
726
- width: auto;
727
- p { margin: 0; }
728
- }
729
- }
730
-
731
- /* Sidebar Campaigns */
732
- #sidebar {
733
- #campaigns {
734
- ul {
735
- margin: 0 0 -10px; padding: 0;
736
- li {
737
- margin: 0 0 10px; padding: 10px; .border-radius(3px); background: @white; list-style: none; overflow: hidden;
738
- a.thumbnail {
739
- float: left; width: 38px; height: 38px; display: block; border: 1px solid @light_grey; overflow: hidden;
740
- :hover { border-color: @accent_colour; }
741
- img { width: 100%; }
742
- }
743
- a.name { display: block; font-weight: bold; margin: 0 0 0 50px; }
744
- small {
745
- display: block; color: @grey; font-size: 11px; margin: 0 0 0 50px;
746
- strong { font-weight: normal; color: @black; }
747
- }
748
- }
749
- }
750
- }
751
- }
752
-
753
- /* Sidebar Dwellometer */
754
- #sidebar {
755
- #dwellometer {
756
- div.content {
757
- min-height: 80px;
758
- div.points {
759
- width: 80px; background: @white; .border-radius(3px); text-align: center; padding: 5px; line-height: 1; float: right;
760
- .box-shadow(0, 0, 2px, @grey);
761
- label { display: block; color: @light_grey; font-size: 11px; text-transform: uppercase; }
762
- strong { display: block; color: @black; font-size: 24px; }
763
- a.button { font-size: 12px; line-height: 1; display: block; text-align: center; height: auto; margin: 10px 0 0; padding: 3px 5px 4px; .box-shadow(0px, 0px, 0px, @black); }
764
- }
765
- div.chart {
766
- ul.chart { height: 88px; margin: 0 100px 0 0; }
767
- }
768
- div.activity {
769
- ul {
770
- margin: 10px 0 0; padding: 0;
771
- li {
772
- list-style: none; padding: 0; margin: 0;
773
- span.meta { float: right; color: @grey; }
774
- }
775
- }
776
- }
777
- img.gauge { width: 100%; }
778
- }
779
- }
780
- }
781
-
782
- /* Sidebar Ads */
783
- #sidebar {
784
- #ads {
785
- div.content {
786
- div.browse.list {
787
- > ul {
788
- margin: 0 0 -10px; min-height: 0;
789
- padding: 0;
790
- > li { margin: 0 0 10px; }
791
- }
792
- }
793
- }
794
- }
795
- }
796
-
797
- /* My Account */
798
- #accounts_controller {
799
- #top {
800
- #page_title {
801
- #page_options {
802
- a.button.public_profile {
803
- float: right; font-size: 16px; line-height: 1; height: auto; padding: 8px 15px;
804
- b.arrow { display: block; height: 0; width: 0; float: right; border: 6px solid transparent; border-right: none; border-left: 6px solid @white; margin: 3px 0 0 10px; }
805
- }
806
- }
807
- }
808
- }
809
- #main {
810
- > div {
811
- margin: 0 0 20px;
812
- form { margin: 0; }
813
- }
814
- #profile {
815
- a.avatar {
816
- float: left;
817
- width: 68px; border: 1px solid @light_grey; overflow: hidden; position: relative;
818
- img { width: 100%; }
819
- span {
820
- display: none; position: absolute; bottom: 0; left: 0; right: 0; line-height: 1; padding: 5px;
821
- text-align: center; font-size: 11px; color: @white; background: @accent_colour;
822
- }
823
- }
824
- a.avatar:hover {
825
- border: 1px solid @accent_colour;
826
- span { display: block; }
827
- }
828
- form {
829
- margin: 0 0 0 80px;
830
- }
831
- }
832
- #networks {
833
- ul { margin: 0 -10px -10px 0; padding: 0; overflow: hidden;
834
- li {
835
- filter: alpha(opacity=66); opacity: 0.66; -moz-opacity: 0.66;
836
- background: @light_grey; display: block; float: left; width: 180px;
837
- padding: 10px; margin: 0 10px 10px 0; list-style: none; .border-radius(3px);
838
- position: relative;
839
- * { line-height: normal; }
840
- img { vertical-align: middle; float: left; }
841
- .name { font-weight: bold; font-size: 14px; display: block; margin: -2px 0 0 42px; }
842
- small {
843
- font-size: 12px; color: @grey; display: block; margin-left: 42px;
844
- strong { color: @black; font-weight: normal; }
845
- }
846
- :hover {
847
- a.edit { filter: alpha(opacity=100); opacity: 1; -moz-opacity: 1; }
848
- }
849
- }
850
- li.installed {
851
- filter: alpha(opacity=100); opacity: 1; -moz-opacity: 1;
852
- background: @white;
853
- }
854
- li.unavailable {
855
- filter: alpha(opacity=33); opacity: 0.33; -moz-opacity: 0.33;
856
- .name { color: @black; }
857
- :hover {
858
- filter: alpha(opacity=33); opacity: 0.33; -moz-opacity: 0.33;
859
- background: @light_grey;
860
- }
861
- }
862
- li:hover {
863
- filter: alpha(opacity=100); opacity: 1; -moz-opacity: 1;
864
- background: @light_grey * 0.5 + @white * 0.5;
865
- }
866
- }
867
- }
868
- }
869
- #sidebar {
870
- ul.nav {
871
- margin: 0; padding: 0; width: 66%; float: right;
872
- li {
873
- margin: 0 0 5px; display: block; list-style: none; padding: 0;
874
- a {
875
- display: block; height: 30px; text-decoration: none; color: @white;
876
- b {
877
- border: 15px solid transparent; border-left: none; border-right: 10px solid transparent; width: 0;
878
- height: 0; float: left; display: none;
879
- }
880
- span {
881
- .border-radius(3px); background: @bg; display: block;
882
- line-height: 30px; padding: 0 10px; font-size: 14px; font-weight: bold; margin: 0 0 0 10px;
883
- }
884
- }
885
- :hover {
886
- a {
887
- color: @white;
888
- b { border-right-color: @bg; display: block; }
889
- span { background: @bg; .border-radius-top-left(0px); .border-radius-bottom-left(0px); }
890
- }
891
- }
892
- }
893
- li.current {
894
- a {
895
- b { border-right-color: @accent_colour; display: block; }
896
- span {
897
- background: @accent_colour; color: @white;
898
- .border-radius-top-left(0px); .border-radius-bottom-left(0px);
899
- }
900
- }
901
- }
902
- }
903
- }
904
- }
905
-
906
- /* People > Show */
907
- #people_controller.show {
908
- #content {
909
- div.page_width {
910
- > h2 { display: none; }
911
- #main {
912
- #profile {
913
- overflow: hidden; margin: 0 0 20px;
914
- img.avatar { width: 68px; border: 1px solid @light_grey; float: left; }
915
- h2.name { margin: 0 0 0 80px; line-height: 1; }
916
- small { font-size: 14px; color: @grey; margin: 0 0 0 80px; display: block; }
917
- }
918
- }
919
- }
920
- }
921
- }
922
-
923
- /* Quick Search */
924
- #quick_search {
925
- margin: 0 0 0 10px;
926
- input[type="text"] {
927
- border: 1px solid (@light_grey * 0.75 + @black + 0.25); font-size: 12px; padding-top: 5px;
928
- background-image: url('../../images/icons/magnifier.png');
929
- background-repeat: no-repeat;
930
- background-position: 5px center; height: 19px;
931
- padding-left: 26px; float: left; margin: 0 3px 0 0;
932
- }
933
- span.submit_and_options {
934
- position: relative; float: left; display: none;
935
- a.button { height: 24px; .box-shadow(0, 0, 0, @black); float: left; font-size: 12px; line-height: 21px; }
936
- a.button.submit {
937
- .border-radius-top-right(0px); .border-radius-bottom-right(0px); padding: 0 5px; line-height: 24px;
938
- }
939
- a.button.select {
940
- border-left: none; padding: 0 5px;
941
- .border-radius-top-left(0px); .border-radius-bottom-left(0px);
942
- b { display: block; height: 0; width: 0; border: 5px solid transparent; border-top: 5px solid @white; border-bottom: 0; position: relative; top: 9px; }
943
- }
944
- #select_type {
945
- position: absolute; top: 27px; right: 0; z-index: 5;
946
- ul {
947
- margin: 0 0 0 0; padding: 0;
948
- li {
949
- list-style: none; display: block; padding: 0; margin: 0;
950
- a {
951
- display: block; white-space: nowrap; float: none;
952
- border-bottom: none; .border-radius(0px); line-height: 22px; padding: 0 5px;
953
- }
954
- a.top { .border-radius-top-left(3px); .border-radius-top-right(3px); }
955
- a.bottom { border-bottom: 1px solid (@accent_colour * 0.75 + @black * 0.25); .border-radius-bottom-left(3px); .border-radius-bottom-right(3px); }
956
- }
957
- }
958
- }
959
- }
960
- }
961
-
962
- /* Search Results */
963
- #search_results {
964
- margin: 0 0 20px;
965
- }
966
- #search {
967
- div.content {
968
- padding: 20px;
969
- form {
970
- margin: 0; float: none;
971
- span.submit_and_options {
972
- display: block;
973
- }
974
- }
975
- p { margin: 0 0 15px; }
976
- h4 { font-weight: normal; margin: 0 0 5px; }
977
- }
978
- }
979
-
980
- /* Recommendations */
981
- #recommendations {
982
- div.browse {
983
- margin: 0; padding: 0; background: none;
984
- ul { min-height: 0; }
985
- }
986
- }
987
-
988
- /* Blank States */
989
- div.blank {
990
- padding: 20px; background: @accent_colour * 0.2 + @white * 0.8; position: relative;
991
- border: 1px solid (@accent_colour * 0.33 + @white * 0.66);
992
- h4 { font-size: 18px; margin: 0 0 10px; }
993
- h4:last-child { margin: 0; }
994
- p { font-size: 16px; margin: 0 0 10px; }
995
- p:last-child { margin: 0; }
996
- p.with_list_number.large {
997
- span { margin-left: 48px; display: block; color: @white; }
998
- }
999
- p.earn span { font-size: 22px; color: @white; line-height: 48px; font-weight: bold; }
1000
- a { white-space: nowrap; }
1001
- a.hide {
1002
- position: absolute; top: -5px; right: -5px; display: block; height: 16px; width: 16px; padding: 3px; background: @accent_colour * 0.2 + @white * 0.8; .border-radius(11px);
1003
- }
1004
- }
1005
- div.blank.small {
1006
- padding: 10px 20px;
1007
- h4 { font-weight: normal; font-size: 16px; }
1008
- p { margin: 0; }
1009
- }
1010
- div.blank.tiny {
1011
- padding: 10px 20px;
1012
- h4 { font-weight: normal; font-size: 14px; }
1013
- p { margin: 0; font-size: 12px; }
1014
- }
1015
- div.blank.rounded {
1016
- .border-radius(3px); margin: 0 0 20px;
1017
- }
1018
- div.blank.rounded.bottom {
1019
- .border-radius-top-left(0px); .border-radius-top-right(0px);
1020
- }
1021
- div.blank.with_border_bottom {
1022
- border-bottom: 1px solid (@accent_colour * 0.33 + @white * 0.66);
1023
- }
1024
- div.blank.no_border_top {
1025
- border-top: none;
1026
- }
1027
- div.blank.no_side_borders {
1028
- border-right: none; border-left: none;
1029
- }
1030
- div.panel {
1031
- div.blank {
1032
- padding: 10px 20px; overflow: hidden; margin: 0;
1033
- border-top: none;
1034
- h4 { font-weight: normal; font-size: 14px; }
1035
- p, ul { margin: 0 0 10px; font-size: 12px; }
1036
- }
1037
- }
1038
-
1039
- /* Sidebar Browse */
1040
- #sidebar {
1041
- div.panel {
1042
- div.content.browse.grid {
1043
- padding: 0; margin: 0;
1044
- > ul {
1045
- min-height: 0;
1046
- > li {
1047
- div.top {
1048
- a.thumbnail { padding: 5px; }
1049
- img.marker.media_type { top: 48px; left: 8px; }
1050
- }
1051
- div.footer {
1052
- a.title, a.name { font-size: 11px; font-weight: normal; }
1053
- }
1054
- }
1055
- }
1056
- }
1057
- div.content.browse.ads.grid > ul > li {
1058
- width: 93px;
1059
- > div.top a.thumbnail { width: 83px; height: 62px; }
1060
- }
1061
- div.content.browse.brands.grid > ul > li {
1062
- width: 52px;
1063
- > div.top {
1064
- padding: 0;
1065
- a.thumbnail { width: 42px; height: 42px; }
1066
- }
1067
- }
1068
- }
1069
- }
1070
-
1071
- /* Flash Notices and Errors */
1072
- .flash {
1073
- margin: 0 0 20px; .border-radius(3px); padding: 10px 10px 10px 31px; font-size: 14px; color: @white;
1074
- background-position: 10px 13px; background-repeat: no-repeat;
1075
- strong, a { white-space: nowrap; }
1076
- a { color: @white; }
1077
-
1078
- }
1079
- .flash.notice {
1080
- background-color: @colour_positive * 0.66 + @bg * 0.33; background-image: url('../../images/icons/tick-circle.png');
1081
- }
1082
- .flash.error {
1083
- background-color: @colour_negative * 0.66 + @bg * 0.33; background-image: url('../../images/icons/exclamation-red.png');
1084
- }
1085
- div.errorExplanation {
1086
- margin: 0 0 20px; .border-radius(3px); padding: 10px 10px 10px 31px; font-size: 14px; color: @white;
1087
- background-color: @colour_negative * 0.66 + @bg * 0.33; background-image: url('../../images/icons/exclamation-red.png');
1088
- background-position: 10px 13px; background-repeat: no-repeat;
1089
- h2 { font-size: 16px; margin: 0 0 10px; }
1090
- p { margin: 0 0 10px; }
1091
- ul {
1092
- margin: 0;
1093
- }
1094
- }
1095
-
1096
- /* Modal Window Content */
1097
- div.modal {
1098
- padding: 30px;
1099
- p {
1100
- font-size: 16px;
1101
- }
1102
- p.submit {
1103
- margin: 0; text-align: right; font-size: 14px;
1104
- a.button { margin-top: 5px; }
1105
- }
1106
- }
1107
-
1108
- /* Dialog-Styled Pages */
1109
- #pages_controller.logged_out,
1110
- #people_controller.new,
1111
- #sessions_controller {
1112
- background: @bg url('/images/body_bg_4.png') repeat-x left top;
1113
- #feedback { top: 53px; }
1114
- #top {
1115
- height: 320px;
1116
- #masthead {
1117
- background: none;
1118
- div.page_width {
1119
- h1 {
1120
- position: absolute; margin-top: 52px; margin-left: 9px;
1121
- a {
1122
- height: 152px; width: 370px; background: url('/images/logo_home_2.png');
1123
- }
1124
- span.beta_marker {
1125
- position: absolute; top: 55px; left: 366px;
1126
- }
1127
- }
1128
- }
1129
- }
1130
- #page_title {
1131
- padding: 160px 145px 20px;
1132
- width: 720px;
1133
- }
1134
- }
1135
- #content {
1136
- background: url('/images/content_bg_4.jpg') no-repeat center top; border-bottom: none;
1137
- min-height: 0;
1138
- div.page_width {
1139
- margin: -80px auto 80px; padding: 40px; .border-radius(3px); background: url('/images/transparent_backgrounds/black_50.png');
1140
- width: 640px; overflow: hidden;
1141
- p { font-size: 14px; }
1142
- form {
1143
- label { color: @light_grey; }
1144
- label.description a { white-space: nowrap; color: @accent_colour; }
1145
- }
1146
- #no_account {
1147
- .border-radius(3px); background: url('/images/transparent_backgrounds/white_05.png');
1148
- padding: 20px; width: 200px;
1149
- float: right;
1150
- h4 { margin: 0 0 10px; color: @white; }
1151
- p {
1152
- margin: 0; color: @light_grey * 0.33 + @white * 0.66;
1153
- a { white-space: nowrap; color: @accent_colour; }
1154
- }
1155
- }
1156
- ul.tabs {
1157
- overflow: hidden; margin: 0; padding: 0;
1158
- li {
1159
- display: block; float: left; width: 50%;
1160
- a {
1161
- display: block; padding: 10px; .border-radius-top-left(3px); .border-radius-top-right(5px); color: @black;
1162
- font-weight: bold; text-decoration: none; font-size: 16px;
1163
- }
1164
- a:hover { background-color: @light_grey * 0.2 + @white * 0.8; }
1165
- }
1166
- li.current {
1167
- a { background-color: @white; }
1168
- }
1169
- }
1170
- }
1171
- }
1172
- }
1173
-
1174
- /* List Numbers */
1175
- label.list_number {
1176
- float: left; background: url('/images/transparent_backgrounds/black_15.png'); padding: 2px; width: 24px; height: 24px; display: block;
1177
- .border-radius(14px);
1178
- b {
1179
- display: block; font-weight: bold; font-size: 14px; color: @white; background: @accent_colour; height: 20px; width: 20px; line-height: 20px;
1180
- text-align: center; .border-radius(12px); .text-shadow(1px, 1px, 0px, (@accent_colour * 0.75 + @black * 0.25));
1181
- border: 2px solid @light_grey;
1182
- }
1183
- }
1184
- label.list_number.large {
1185
- padding: 4px; width: 48px; height: 48px; .border-radius(28px); position: relative; left: -10px;
1186
- b {
1187
- font-size: 28px; height: 40px; width: 40px; .border-radius(24px); line-height: 40px;
1188
- .text-shadow(2px, 2px, 0px, (@accent_colour * 0.75 + @black * 0.25)); border-width: 4px;
1189
- }
1190
- }
1191
-
1192
- /* No Widget Warning */
1193
- #no_widget_warning {
1194
- margin: 0 0 20px;
1195
- img.sn_icons { float: left; width: 120px; }
1196
- h4, p { margin-left: 140px; }
1197
- }
1198
-
1199
- /* Dashboard */
1200
- #pages_controller.dashboard {
1201
- #sidebar {
1202
- #friends {
1203
- form {
1204
- p {
1205
- margin: 0 0 5px;
1206
- img.marker { float: right; margin: 5px 0 0 0; }
1207
- span.invitee {
1208
- line-height: 26px; padding: 3px 3px 0; font-size: 14px;
1209
- small { color: @grey; font-size: 12px; }
1210
- }
1211
- }
1212
- p.indent { margin-left: 36px; }
1213
- p.submit { margin-top: 10px; }
1214
- }
1215
- }
1216
- }
1217
- div.panel.full {
1218
- > div.content {
1219
- margin: 0; padding: 0; background: none;
1220
- ul {
1221
- li {
1222
- width: 148px;
1223
- div.top {
1224
- img.marker.media_type { top: 90px; }
1225
- a.thumbnail { width: 138px; height: 104px; }
1226
- }
1227
- }
1228
- }
1229
- }
1230
- }
1231
- }
1232
-
1233
- /* Remove Pages Titles when Browsing */
1234
- #pages_controller.dashboard, #ads_controller, #brands_controller {
1235
- #page_title { display: none; }
1236
- }
1237
-
1238
- /* Brands > Show */
1239
- #brands_controller.show {
1240
- #ads {
1241
- div.filters {
1242
- h3 { font-size: 16px; margin: 0; }
1243
- }
1244
- }
1245
- }
1246
-
1247
- /* Browse Mode */
1248
- body.browse_mode {
1249
- #quick_help {
1250
- margin-left: 160px;
1251
- ul {
1252
- li {
1253
- width: 33%; margin: 0;
1254
- h3, p { margin-right: 20px; }
1255
- }
1256
- }
1257
- }
1258
- #no_widget_warning {
1259
- margin-left: 160px;
1260
- }
1261
- }
1262
-
1263
- /* Rewards Page */
1264
- #pages_controller.rewards #quick_help { margin-left: 0; }