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.

547 lines
10 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 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. Curtains
  107. -------------------------------------------------------------------------- */
  108. /* removeIf(!curtain) */
  109. .curtain-div {
  110. text-align: center;
  111. }
  112. .curtain-roller {
  113. width: 300px;
  114. height: 200px;
  115. display: inline-block;
  116. }
  117. .curtain-button{
  118. margin-left: 10px;
  119. margin-right: 10px;
  120. text-align: center;
  121. }
  122. .reverse-range {
  123. direction: rtl;
  124. }
  125. /* endRemoveIf(!curtain) */
  126. /* -----------------------------------------------------------------------------
  127. Buttons
  128. -------------------------------------------------------------------------- */
  129. .pure-button {
  130. border-radius: 4px;
  131. color: white;
  132. letter-spacing: 0;
  133. margin-bottom: 10px;
  134. text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
  135. padding: 8px 8px;
  136. }
  137. .main-buttons {
  138. margin: 20px auto;
  139. text-align: center;
  140. }
  141. .main-buttons button {
  142. width: 100px;
  143. }
  144. .button-del-schedule {
  145. margin-top: 15px;
  146. }
  147. .button-reboot,
  148. .button-reconnect,
  149. .button-ha-del,
  150. .button-rfb-forget,
  151. .button-lightfox-clear,
  152. .button-del-network,
  153. .button-del-parent,
  154. .button-del-schedule,
  155. .button-dbg-clear,
  156. .button-upgrade,
  157. .button-clear-filters,
  158. .button-clear-messages,
  159. .button-clear-counts,
  160. .button-settings-factory {
  161. background: rgb(192, 0, 0); /* redish */
  162. }
  163. .button-update,
  164. .button-update-password,
  165. .button-add-network,
  166. .button-add-mapping,
  167. .button-add-rpnrule,
  168. .button-add-rpntopic,
  169. .button-upgrade-browse,
  170. .button-rfb-learn,
  171. .button-lightfox-learn,
  172. .button-ha-add,
  173. .button-ha-config,
  174. .button-settings-backup,
  175. .button-settings-restore,
  176. .button-garland-set-default,
  177. .button-dbgcmd,
  178. .button-apikey {
  179. background: rgb(0, 192, 0); /* green */
  180. }
  181. .button-add-switch-schedule,
  182. .button-add-light-schedule,
  183. .button-add-curtain-schedule {
  184. background: rgb(0, 192, 0); /* green */
  185. display: none;
  186. }
  187. .button-more-network,
  188. .button-more-schedule,
  189. .button-wifi-scan,
  190. .button-rfb-send {
  191. background: rgb(255, 128, 0); /* orange */
  192. }
  193. .button-curtain-open,
  194. .button-curtain-pause,
  195. .button-curtain-close,
  196. .button-generate-password {
  197. background: rgb(66, 184, 221); /* blue */
  198. }
  199. .button-upgrade-browse,
  200. .button-clear-filters,
  201. .button-clear-messages,
  202. .button-clear-counts,
  203. .button-dbgcmd,
  204. .button-ha-add,
  205. .button-apikey,
  206. .button-upgrade {
  207. margin-left: 5px;
  208. }
  209. .button-thermostat-reset-counters {
  210. background: rgb(204, 139, 41);
  211. }
  212. /* -----------------------------------------------------------------------------
  213. Sliders
  214. -------------------------------------------------------------------------- */
  215. input.slider {
  216. margin-top: 10px;
  217. }
  218. span.slider {
  219. font-size: 70%;
  220. letter-spacing: 0;
  221. margin-left: 10px;
  222. margin-top: 7px;
  223. }
  224. /* -----------------------------------------------------------------------------
  225. Checkboxes
  226. -------------------------------------------------------------------------- */
  227. .toggleWrapper {
  228. overflow: hidden;
  229. width: auto;
  230. height: 30px;
  231. margin: 0px 0px 10px 0px;
  232. padding: 0px;
  233. border-radius: 4px;
  234. box-shadow: inset 1px 1px #CCC;
  235. }
  236. .toggleWrapper input {
  237. position: absolute;
  238. left: -99em;
  239. }
  240. label[for].toggle {
  241. margin: 0px;
  242. padding: 0px;
  243. }
  244. .toggle {
  245. letter-spacing:normal;
  246. cursor: pointer;
  247. display: inline-block;
  248. position: relative;
  249. width: 130px;
  250. height: 100%;
  251. background: #e9e9e9;
  252. color: #a9a9a9;
  253. border-radius: 4px;
  254. -webkit-transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  255. transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  256. }
  257. .toggle:before,
  258. .toggle:after {
  259. position: absolute;
  260. line-height: 30px;
  261. font-size: .7em;
  262. z-index: 2;
  263. -webkit-transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  264. transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  265. }
  266. .toggle:before {
  267. content: "NO";
  268. left: 20px;
  269. }
  270. input[name="relay"] + .toggle:before {
  271. content: "OFF";
  272. }
  273. input[name="thermostatMode"] + .toggle:before {
  274. content: "Heater";
  275. }
  276. .toggle:after{
  277. content: "YES";
  278. right: 20px;
  279. }
  280. input[name="relay"] + .toggle:after {
  281. content: "ON";
  282. }
  283. input[name="thermostatMode"] + .toggle:after {
  284. content: "Cooler";
  285. }
  286. .toggle__handler {
  287. display: inline-block;
  288. position: relative;
  289. z-index: 1;
  290. background: #c00000;
  291. width: 50%;
  292. height: 100%;
  293. border-radius: 4px;
  294. border-top-right-radius: 0px;
  295. border-bottom-right-radius: 0px;
  296. top: 0px;
  297. left: 0px;
  298. -webkit-transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  299. transition: all 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95);
  300. -webkit-transform: translateX(0px);
  301. transform: translateX(0px);
  302. }
  303. input:checked + .toggle:after {
  304. color: #fff;
  305. }
  306. input:checked + .toggle:before {
  307. color: #a9a9a9;
  308. }
  309. input + .toggle:before {
  310. color: #fff;
  311. }
  312. input:checked + .toggle .toggle__handler {
  313. width: 50%;
  314. background: #00c000;
  315. -webkit-transform: translateX(65px);
  316. transform: translateX(65px);
  317. border-color: #000;
  318. border-top-left-radius: 0px;
  319. border-bottom-left-radius: 0px;
  320. border-top-right-radius: 4px;
  321. border-bottom-right-radius: 4px;
  322. }
  323. input[name="thermostatMode"]:checked + .toggle .toggle__handler {
  324. background: #00c0c0;
  325. }
  326. input[disabled] + .toggle .toggle__handler {
  327. background: #ccc;
  328. }
  329. /* -----------------------------------------------------------------------------
  330. Loading
  331. -------------------------------------------------------------------------- */
  332. .loading {
  333. background-image: url('images/loading.gif');
  334. display: none;
  335. height: 20px;
  336. margin: 8px 0 0 10px;
  337. width: 20px;
  338. }
  339. /* -----------------------------------------------------------------------------
  340. Menu
  341. -------------------------------------------------------------------------- */
  342. #menu .small {
  343. font-size: 60%;
  344. padding-left: 9px;
  345. }
  346. #menu div.footer {
  347. color: #999;
  348. font-size: 80%;
  349. padding: 10px;
  350. }
  351. #menu div.footer a {
  352. padding: 0;
  353. text-decoration: none;
  354. }
  355. /* -----------------------------------------------------------------------------
  356. RF Bridge panel
  357. -------------------------------------------------------------------------- */
  358. #panel-rfb fieldset {
  359. margin: 10px 2px;
  360. padding: 20px;
  361. }
  362. #panel-rfb input {
  363. margin-right: 5px;
  364. }
  365. #panel-rfb label {
  366. padding-top: 5px;
  367. }
  368. #panel-rfb input {
  369. text-align: center;
  370. }
  371. /* -----------------------------------------------------------------------------
  372. Admin panel
  373. -------------------------------------------------------------------------- */
  374. #upgrade-progress {
  375. display: none;
  376. height: 20px;
  377. margin-top: 10px;
  378. width: 100%;
  379. }
  380. #uploader,
  381. #downloader {
  382. display: none;
  383. }
  384. /* -----------------------------------------------------------------------------
  385. Wifi panel
  386. -------------------------------------------------------------------------- */
  387. #networks .pure-g,
  388. #schedules .pure-g {
  389. border-bottom: 1px solid #eee;
  390. margin-bottom: 10px;
  391. padding: 10px 0 10px 0;
  392. }
  393. #networks .more {
  394. display: none;
  395. }
  396. #haConfig,
  397. #scanResult {
  398. margin-top: 10px;
  399. display: none;
  400. padding: 10px;
  401. }
  402. /* -----------------------------------------------------------------------------
  403. Table
  404. -------------------------------------------------------------------------- */
  405. .right {
  406. text-align: right;
  407. }
  408. table.dataTable.display tbody td {
  409. text-align: center;
  410. }
  411. #packets_filter {
  412. display: none;
  413. }
  414. .filtered {
  415. color: rgb(202, 60, 60);
  416. }
  417. /* -----------------------------------------------------------------------------
  418. Logs
  419. -------------------------------------------------------------------------- */
  420. #weblog {
  421. height: 400px;
  422. margin-bottom: 10px;
  423. }
  424. /* -----------------------------------------------------------------------------
  425. Password input controls
  426. -------------------------------------------------------------------------- */
  427. .password-reveal {
  428. font-family: EmojiSymbols,Segoe UI Symbol;
  429. background: rgba(0,0,0,0);
  430. display: inline-block;
  431. float: right;
  432. z-index: 50;
  433. margin-top: 6px;
  434. margin-left: -30px;
  435. vertical-align: middle;
  436. font-size: 1.2em;
  437. height: 100%;
  438. }
  439. .password-reveal:after {
  440. content: "👁";
  441. }
  442. input[type="password"] + .password-reveal {
  443. color: rgba(205, 205, 205, 0.3);
  444. }
  445. input[type="text"] + .password-reveal {
  446. color: rgba(66, 184, 221, 0.8);
  447. }
  448. .no-select {
  449. -webkit-user-select: none;
  450. -moz-user-select: none;
  451. -ms-user-select: none;
  452. user-select: none;
  453. }
  454. input::-ms-clear,
  455. input::-ms-reveal {
  456. display: none;
  457. }
  458. /* css minifier must not combine these.
  459. * style will not apply otherwise */
  460. input::-ms-input-placeholder {
  461. color: #ccd;
  462. }
  463. input::placeholder {
  464. color: #ccc;
  465. }