Lungo.theme.default.less 8.7 KB

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