Lungo.theme.default.less 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. /**
  2. * Stylesheet
  3. *
  4. * @namespace Lungo.Theme
  5. * @class Default
  6. *
  7. * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  8. */
  9. @import "mixins.less";
  10. @theme: #2A95D3;
  11. @theme-light: #39ABE1;
  12. @theme-dark: #1984C2;
  13. // @theme: #2C8BCA;
  14. // @theme-light: #2C8BCA;
  15. // @theme-dark: #154F93;
  16. @footer: #292F34;
  17. @footer-dark: #23282C;
  18. @color: #484a49;
  19. @section-radius: 4px;
  20. .app {
  21. background: #000;
  22. font-family: "Roboto", Helvetica, Arial, sans-serif;
  23. }
  24. .theme, li.theme, a.theme {
  25. background: @theme;
  26. &:active { background: @theme-dark;}
  27. }
  28. /* @group <header> & <footer> & <article> */
  29. section > header {
  30. .linear-gradient(top, ~','@theme, ~','@theme-dark);
  31. .box-shadow(~"inset 0 1px 0 rgba(255,255,255,0.4), inset 0 -2px 0 rgba(255,255,255,0.1), inset 0 -1px 0 rgba(0,0,0,0.5)");
  32. .border-radius(@section-radius @section-radius 0px 0px);
  33. & .title {
  34. color: #fff;
  35. text-shadow: 0 1px 0 rgba(0,0,0,0.2);
  36. }
  37. & .subtitle {
  38. color: #fff;
  39. opacity: 0.7;
  40. }
  41. }
  42. section > footer {
  43. .linear-gradient(top, ~','@footer 0%, ~','@footer-dark 60%);
  44. .border-radius(0px 0px @section-radius @section-radius);
  45. .box-shadow(~"inset 0 1px 0 rgba(0,0,0,0.8), inset 0 2px 0 rgba(255,255,255,0.05)");
  46. }
  47. section > nav.groupbar {
  48. .linear-gradient(top, ~','@footer-dark 0%, ~','@footer 60%);
  49. }
  50. section > article { background: #f4f5f5; }
  51. /* @end */
  52. /* @group <nav> */
  53. header nav {
  54. & a {
  55. color: #fff;
  56. // &:active { text-shadow: 0 0 4px rgba(255,255,255,0.5); }
  57. }
  58. &.box {
  59. .box-shadow(~"1px 0 0 rgba(255,255,255,0.2), inset -1px 0 0 rgba(0,0,0,0.2)");
  60. &.accept { background: rgba(0, 255, 0, 0.4); }
  61. &.cancel { background: rgba(255, 0, 0, 0.4); }
  62. &:active {
  63. color: #fff;
  64. &.accept { background: rgba(0, 255, 0, 0.2); }
  65. &.cancel { background: rgba(255, 0, 0, 0.2); }
  66. &:not(.accept):not(.cancel) { background: rgba(0,0,0,0.1); }
  67. }
  68. &.right a {
  69. .box-shadow(~"-1px 0 0 rgba(255,255,255,0.2), inset 1px 0 0 rgba(0,0,0,0.2)");
  70. }
  71. }
  72. &.button a {
  73. border-radius: @section-radius;
  74. .linear-gradient(top, ~','rgba(0,0,0,0.0), ~','rgba(0,0,0,0.1));
  75. box-shadow: 0 1px 0 rgba(255,255,255,0.2), inset 0 0 3px rgba(0,0,0,0.3), inset 0 1px 1px rgba(0, 0, 0, .5);
  76. &:active { background: rgba(0,0,0,0.2); }
  77. }
  78. }
  79. footer nav a.current {
  80. background: #000;
  81. .box-shadow(~"-1px 0 0 rgba(255,255,255,0.05), 1px 1px 0 rgba(255,255,255,0.05)");
  82. }
  83. footer nav a, nav.groupbar a{
  84. color: rgba(0,0,0,0.7);
  85. .text-shadow(0 1px 0 rgba(255,255,255,0.1));
  86. &.current {
  87. color: #fff;
  88. text-shadow: 0 0 1px #fff;}
  89. }
  90. nav.groupbar a.current { .box-shadow(inset 0 -3px 0 @theme); }
  91. /* @end */
  92. /* @group <aside> */
  93. aside {
  94. color: #fff;
  95. background: @footer;
  96. & header, footer {
  97. .box-shadow(~"inset 0 1px 0 rgba(0,0,0,0.1), inset 0 -1px 0 rgba(255,255,255,0.1)");
  98. background: @footer-dark; }
  99. & article { background: none; }
  100. & nav {
  101. & .icon {color:white;}
  102. }
  103. }
  104. section.aside {
  105. .box-shadow(~"-4px 0 8px rgba(0,0,0,0.5)");
  106. &.right { .box-shadow(~"4px 0 8px rgba(0,0,0,0.5)"); }
  107. }
  108. /*
  109. @media handheld, only screen and (min-width: 768px) {
  110. section.current, section.show {
  111. .box-shadow(~"-4px 0 8px rgba(0,0,0,0.5)");
  112. &.right { .box-shadow(~"4px 0 8px rgba(0,0,0,0.5)"); }
  113. }
  114. }
  115. */
  116. /* @end */
  117. /* @group .list */
  118. @list-border: #ddd;
  119. @list-color: #2a2a2a;
  120. .list {
  121. & li {
  122. background: #fff;
  123. border-bottom: 1px inset @list-border;
  124. &:last-child { border-bottom: none; }
  125. &, & a { color: @list-color; }
  126. &.contrast {
  127. background: @footer;
  128. color: #fff;
  129. }
  130. &.highlight { background: @list-border; }
  131. &.anchor {
  132. background: @footer;
  133. border-bottom: none;
  134. &, & a { color: #fff !important; }
  135. }
  136. &.selectable:active {
  137. background: @theme-light;
  138. &, & a {
  139. color: #fff;
  140. text-shadow: none;
  141. }
  142. }
  143. & small, & .right:not(.bubble) { opacity: 0.8; }
  144. }
  145. }
  146. aside .list {
  147. & li {
  148. background: none;
  149. border-top: 1px solid rgba(255,255,255,0.05);
  150. border-bottom: 1px solid ;
  151. &.current {
  152. border-top-color: @theme;
  153. .linear-gradient(top, ~','@theme-light 25%, ~','@theme-dark 100%);}
  154. & strong {
  155. text-shadow: 0 1px 1px rgba(0,0,0,0.5);
  156. color: #fff; }
  157. & small { color: #fff; }
  158. }
  159. }
  160. /* @end */
  161. /* @group widgets */
  162. .splash {
  163. background: @footer;
  164. color: #fff;
  165. text-shadow: 0 1px 0px rgba(0,0,0,0.2);
  166. }
  167. &.indented {
  168. & ul {
  169. border: 1px solid @list-border;
  170. box-shadow: 0 0 4px rgba(0,0,0,0.1);
  171. }
  172. & li {
  173. &:first-child { .border-radius(2px 2px 0 0); }
  174. &:last-child {
  175. .border-radius(0 0 2px 2px);
  176. .box-shadow(0 1px 1px rgba(0,0,0,0.05));
  177. }
  178. }
  179. }
  180. /* @group .button */
  181. a.button {
  182. .border-radius(2px);
  183. .box-shadow(~"inset 1px 0 0 rgba(0,0,0,0.3), inset 0 1px 0 rgba(0,0,0,0.3), inset -1px 0 0 rgba(0,0,0,0.3), inset 0 -1px 0 rgba(0,0,0,0.3), inset 0 2px 0 rgba(255,255,255, 0.2)");
  184. font-weight: bold;
  185. text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
  186. &:active { .box-shadow(~"inset 0 10px 30px rgba(0,0,0,0.2), inset 0 -2px 4px rgba(0,0,0,0.3)"); }
  187. }
  188. /* @end */
  189. /* @group <form> */
  190. @box-shadow-form: ~'inset 0 1px 2px rgba(0,0,0,0.1)';
  191. @box-shadow-form-active: ~'inset 0 1px 1px rgba(0,0,0,0.1), 3px 0 #f0eeef, 0 3px #f0eeef, -3px 0 #f0eeef, 0 -3px #f0eeef';
  192. @border-radius-form: 2px;
  193. label { color: #999; }
  194. input, textarea, select {
  195. border: 1px solid #ccc;
  196. .border-radius(@border-radius-form);
  197. color: #858585;
  198. font-family: Helvetica, Arial, sans-serif;
  199. .box-shadow(@box-shadow-form);
  200. &:focus {
  201. color: #484a49;
  202. border-color: @theme;
  203. .box-shadow(0 0 6px @theme-light);
  204. }
  205. }
  206. .select:after {
  207. background: #ccc;
  208. color: white;
  209. border-top-right-radius: @border-radius-form;
  210. border-bottom-right-radius: @border-radius-form;
  211. }
  212. /* @group .range */
  213. input[type="checkbox"] + span, input[type="radio"] + span {
  214. color: #fff;
  215. background: #a0a0a0;
  216. .border-radius(@border-radius-form);
  217. }
  218. input[type="checkbox"] + span::before,
  219. input[type="radio"] + span::before {
  220. background: #c1c1c1;
  221. .border-radius(@border-radius-form);
  222. }
  223. input[type="checkbox"]:checked + span,
  224. input[type="radio"]:checked + span {
  225. .linear-gradient(top, ~','@theme 0%, ~','@theme-dark 100%);
  226. .border-radius(@border-radius-form);
  227. }
  228. /* @end */
  229. /* @group range */
  230. input[type="range"] {
  231. background-color: #c7c7c7;
  232. .border-radius(@border-radius-form);
  233. .box-shadow(@box-shadow-form);
  234. &:active { .box-shadow(none); }
  235. &::-webkit-slider-thumb {
  236. .border-radius(12px);
  237. background: #a0a0a0;
  238. }
  239. &:active::-webkit-slider-thumb {
  240. .box-shadow(0px 0px 4px @theme-light);
  241. .linear-gradient(top, ~','@theme 0%, ~','@theme-dark 100%);
  242. }
  243. }
  244. /* @end */
  245. /* @group .progress */
  246. .progress {
  247. .labels {
  248. font-size: 12px;
  249. font-weight: bold;
  250. line-height: 18px;
  251. color: #858585;
  252. }
  253. & .bar {
  254. background: #c7c7c7;
  255. .border-radius(@border-radius-form);
  256. & .value {
  257. .linear-gradient(top, ~','@theme-light 0%, ~','@theme-dark 100%);
  258. .border-radius(@border-radius-form);
  259. & .label {
  260. float: right;
  261. margin-right: 3px;
  262. font-weight: bold;
  263. color: rgba(0,0,0,0.6);
  264. text-shadow: 0 1px 0 rgba(255,255,255,0.2) !important;
  265. font-size: 12px;
  266. }
  267. }
  268. }
  269. }
  270. /* @end */
  271. /* @group .bubble */
  272. .bubble {
  273. color: #fff;
  274. .border-radius(2px);
  275. &.count { .linear-gradient(top, ~','@theme-light 0%, ~','@theme-dark 100%); }
  276. }
  277. footer .bubble {
  278. .box-shadow(~'inset 0 1px 1px rgba(255,255,255,0.3), 0 1px 2px rgba(0,0,0,0.5)'); }
  279. article .list .bubble {
  280. .box-shadow(~'inset 1px 0 0 rgba(0,0,0,0.3), inset 0 1px 0 rgba(0,0,0,0.3), inset -1px 0 0 rgba(0,0,0,0.3), inset 0 -1px 0 rgba(0,0,0,0.3)');
  281. }
  282. aside .list .bubble { background: rgba(0,0,0,0.25); }
  283. /* @end */