Lungo.theme.default.less 8.1 KB

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