Fork of the espurna firmware for `mhsw` switches
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

513 lines
9.7 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
5 years ago
6 years ago
6 years ago
5 years ago
  1. /* -----------------------------------------------------------------------------
  2. General
  3. -------------------------------------------------------------------------- */
  4. #menu .pure-menu-heading {
  5. font-size: 100%;
  6. padding: .5em .5em;
  7. white-space: normal;
  8. text-transform: initial;
  9. }
  10. .pure-g {
  11. margin-bottom: 0;
  12. }
  13. .pure-form legend {
  14. font-weight: bold;
  15. letter-spacing: 0;
  16. margin: 10px 0 1em 0;
  17. }
  18. .pure-form .pure-g > label {
  19. margin: .4em 0 .2em;
  20. }
  21. .pure-form input {
  22. margin-bottom: 10px;
  23. }
  24. .pure-form input[type=text][disabled] {
  25. color: #777777;
  26. }
  27. @media screen and (max-width: 32em) {
  28. .header > h1 {
  29. line-height: 100%;
  30. font-size: 2em;
  31. }
  32. }
  33. h2 {
  34. font-size: 1em;
  35. }
  36. .panel {
  37. display: none;
  38. }
  39. .block {
  40. display: block;
  41. }
  42. .page {
  43. margin-top: 10px;
  44. }
  45. .hint {
  46. color: #ccc;
  47. font-size: 80%;
  48. margin: -10px 0 10px 0;
  49. }
  50. .hint a {
  51. color:inherit;
  52. }
  53. legend.module,
  54. .module {
  55. display: none;
  56. }
  57. .template {
  58. display: none;
  59. }
  60. input[name=upgrade] {
  61. display: none;
  62. }
  63. select {
  64. margin-bottom: 10px;
  65. width: 100%;
  66. }
  67. input.center {
  68. margin-bottom: 0;
  69. }
  70. div.center {
  71. margin: .5em 0 1em;
  72. }
  73. .webmode {
  74. display: none;
  75. }
  76. #password .content {
  77. margin: 0 auto;
  78. }
  79. #layout .content {
  80. margin: 0;
  81. }
  82. div.state {
  83. border-top: 1px solid #eee;
  84. margin-top: 20px;
  85. padding-top: 30px;
  86. }
  87. .state div {
  88. font-size: 80%;
  89. }
  90. .state span {
  91. font-size: 80%;
  92. font-weight: bold;
  93. }
  94. .right {
  95. text-align: right;
  96. }
  97. .pure-g span.terminal,
  98. .pure-g textarea.terminal {
  99. font-family: 'Courier New', monospace;
  100. font-size: 80%;
  101. line-height: 100%;
  102. background-color: #000;
  103. color: #0F0;
  104. }
  105. /* -----------------------------------------------------------------------------
  106. Buttons
  107. -------------------------------------------------------------------------- */
  108. .pure-button {
  109. border-radius: 4px;
  110. color: white;
  111. letter-spacing: 0;
  112. margin-bottom: 10px;
  113. text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
  114. padding: 8px 8px;
  115. }
  116. .main-buttons {
  117. margin: 20px auto;
  118. text-align: center;
  119. }
  120. .main-buttons button {
  121. width: 100px;
  122. }
  123. .button-del-schedule {
  124. margin-top: 15px;
  125. }
  126. .button-reboot,
  127. .button-reconnect,
  128. .button-ha-del,
  129. .button-rfb-forget,
  130. .button-lightfox-clear,
  131. .button-del-network,
  132. .button-del-parent,
  133. .button-del-schedule,
  134. .button-dbg-clear,
  135. .button-upgrade,
  136. .button-clear-filters,
  137. .button-clear-messages,
  138. .button-clear-counts,
  139. .button-settings-factory {
  140. background: rgb(192, 0, 0); /* redish */
  141. }
  142. .button-update,
  143. .button-update-password,
  144. .button-add-network,
  145. .button-add-mapping,
  146. .button-add-rpnrule,
  147. .button-add-rpntopic,
  148. .button-upgrade-browse,
  149. .button-rfb-learn,
  150. .button-lightfox-learn,
  151. .button-ha-add,
  152. .button-ha-config,
  153. .button-settings-backup,
  154. .button-settings-restore,
  155. .button-dbgcmd,
  156. .button-apikey {
  157. background: rgb(0, 192, 0); /* green */
  158. }
  159. .button-add-switch-schedule,
  160. .button-add-light-schedule {
  161. background: rgb(0, 192, 0); /* green */
  162. display: none;
  163. }
  164. .button-more-network,
  165. .button-more-schedule,
  166. .button-wifi-scan,
  167. .button-rfb-send {
  168. background: rgb(255, 128, 0); /* orange */
  169. }
  170. .button-generate-password {
  171. background: rgb(66, 184, 221); /* blue */
  172. }
  173. .button-upgrade-browse,
  174. .button-clear-filters,
  175. .button-clear-messages,
  176. .button-clear-counts,
  177. .button-dbgcmd,
  178. .button-ha-add,
  179. .button-apikey,
  180. .button-upgrade {
  181. margin-left: 5px;
  182. }
  183. .button-thermostat-reset-counters {
  184. background: rgb(204, 139, 41);
  185. }
  186. /* -----------------------------------------------------------------------------
  187. Sliders
  188. -------------------------------------------------------------------------- */
  189. input.slider {
  190. margin-top: 10px;
  191. }
  192. span.slider {
  193. font-size: 70%;
  194. letter-spacing: 0;
  195. margin-left: 10px;
  196. margin-top: 7px;
  197. }
  198. /* -----------------------------------------------------------------------------
  199. Checkboxes
  200. -------------------------------------------------------------------------- */
  201. .toggleWrapper {
  202. overflow: hidden;
  203. width: auto;
  204. height: 30px;
  205. margin: 0px 0px 10px 0px;
  206. padding: 0px;
  207. border-radius: 4px;
  208. box-shadow: inset 1px 1px #CCC;
  209. }
  210. .toggleWrapper input {
  211. position: absolute;
  212. left: -99em;
  213. }
  214. label[for].toggle {
  215. margin: 0px;
  216. padding: 0px;
  217. }
  218. .toggle {
  219. letter-spacing:normal;
  220. cursor: pointer;
  221. display: inline-block;
  222. position: relative;
  223. width: 130px;
  224. height: 100%;
  225. background: #e9e9e9;
  226. color: #a9a9a9;
  227. border-radius: 4px;
  228. -webkit-transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  229. transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  230. }
  231. .toggle:before,
  232. .toggle:after {
  233. position: absolute;
  234. line-height: 30px;
  235. font-size: .7em;
  236. z-index: 2;
  237. -webkit-transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  238. transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  239. }
  240. .toggle:before {
  241. content: "NO";
  242. left: 20px;
  243. }
  244. input[name="relay"] + .toggle:before {
  245. content: "OFF";
  246. }
  247. input[name="thermostatMode"] + .toggle:before {
  248. content: "Heater";
  249. }
  250. .toggle:after{
  251. content: "YES";
  252. right: 20px;
  253. }
  254. input[name="relay"] + .toggle:after {
  255. content: "ON";
  256. }
  257. input[name="thermostatMode"] + .toggle:after {
  258. content: "Cooler";
  259. }
  260. .toggle__handler {
  261. display: inline-block;
  262. position: relative;
  263. z-index: 1;
  264. background: #c00000;
  265. width: 50%;
  266. height: 100%;
  267. border-radius: 4px;
  268. border-top-right-radius: 0px;
  269. border-bottom-right-radius: 0px;
  270. top: 0px;
  271. left: 0px;
  272. -webkit-transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  273. transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  274. -webkit-transform: translateX(0px);
  275. transform: translateX(0px);
  276. }
  277. input:checked + .toggle:after {
  278. color: #fff;
  279. }
  280. input:checked + .toggle:before {
  281. color: #a9a9a9;
  282. }
  283. input + .toggle:before {
  284. color: #fff;
  285. }
  286. input:checked + .toggle .toggle__handler {
  287. width: 50%;
  288. background: #00c000;
  289. -webkit-transform: translateX(65px);
  290. transform: translateX(65px);
  291. border-color: #000;
  292. border-top-left-radius: 0px;
  293. border-bottom-left-radius: 0px;
  294. border-top-right-radius: 4px;
  295. border-bottom-right-radius: 4px;
  296. }
  297. input[name="thermostatMode"]:checked + .toggle .toggle__handler {
  298. background: #00c0c0;
  299. }
  300. input[disabled] + .toggle .toggle__handler {
  301. background: #ccc;
  302. }
  303. /* -----------------------------------------------------------------------------
  304. Loading
  305. -------------------------------------------------------------------------- */
  306. .loading {
  307. background-image: url('images/loading.gif');
  308. display: none;
  309. height: 20px;
  310. margin: 8px 0 0 10px;
  311. width: 20px;
  312. }
  313. /* -----------------------------------------------------------------------------
  314. Menu
  315. -------------------------------------------------------------------------- */
  316. #menu .small {
  317. font-size: 60%;
  318. padding-left: 9px;
  319. }
  320. #menu div.footer {
  321. color: #999;
  322. font-size: 80%;
  323. padding: 10px;
  324. }
  325. #menu div.footer a {
  326. padding: 0;
  327. text-decoration: none;
  328. }
  329. /* -----------------------------------------------------------------------------
  330. RF Bridge panel
  331. -------------------------------------------------------------------------- */
  332. #panel-rfb fieldset {
  333. margin: 10px 2px;
  334. padding: 20px;
  335. }
  336. #panel-rfb input {
  337. margin-right: 5px;
  338. }
  339. #panel-rfb label {
  340. padding-top: 5px;
  341. }
  342. #panel-rfb input {
  343. text-align: center;
  344. }
  345. /* -----------------------------------------------------------------------------
  346. Admin panel
  347. -------------------------------------------------------------------------- */
  348. #upgrade-progress {
  349. display: none;
  350. height: 20px;
  351. margin-top: 10px;
  352. width: 100%;
  353. }
  354. #uploader,
  355. #downloader {
  356. display: none;
  357. }
  358. /* -----------------------------------------------------------------------------
  359. Wifi panel
  360. -------------------------------------------------------------------------- */
  361. #networks .pure-g,
  362. #schedules .pure-g {
  363. border-bottom: 1px solid #eee;
  364. margin-bottom: 10px;
  365. padding: 10px 0 10px 0;
  366. }
  367. #networks .more {
  368. display: none;
  369. }
  370. #haConfig,
  371. #scanResult {
  372. margin-top: 10px;
  373. display: none;
  374. padding: 10px;
  375. }
  376. /* -----------------------------------------------------------------------------
  377. Table
  378. -------------------------------------------------------------------------- */
  379. .right {
  380. text-align: right;
  381. }
  382. table.dataTable.display tbody td {
  383. text-align: center;
  384. }
  385. #packets_filter {
  386. display: none;
  387. }
  388. .filtered {
  389. color: rgb(202, 60, 60);
  390. }
  391. /* -----------------------------------------------------------------------------
  392. Logs
  393. -------------------------------------------------------------------------- */
  394. #weblog {
  395. height: 400px;
  396. margin-bottom: 10px;
  397. }
  398. /* -----------------------------------------------------------------------------
  399. Password input controls
  400. -------------------------------------------------------------------------- */
  401. .password-reveal {
  402. font-family: EmojiSymbols,Segoe UI Symbol;
  403. background: rgba(0,0,0,0);
  404. display: inline-block;
  405. float: right;
  406. z-index: 50;
  407. margin-top: 6px;
  408. margin-left: -30px;
  409. vertical-align: middle;
  410. font-size: 1.2em;
  411. height: 100%;
  412. }
  413. .password-reveal:after {
  414. content: "👁";
  415. }
  416. input[type="password"] + .password-reveal {
  417. color: rgba(205, 205, 205, 0.3);
  418. }
  419. input[type="text"] + .password-reveal {
  420. color: rgba(66, 184, 221, 0.8);
  421. }
  422. .no-select {
  423. -webkit-user-select: none;
  424. -moz-user-select: none;
  425. -ms-user-select: none;
  426. user-select: none;
  427. }
  428. input::-ms-clear,
  429. input::-ms-reveal {
  430. display: none;
  431. }
  432. /* css minifier must not combine these.
  433. * style will not apply otherwise */
  434. input::-ms-input-placeholder {
  435. color: #ccd;
  436. }
  437. input::placeholder {
  438. color: #ccc;
  439. }