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.

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