style.css 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. body {
  2. border: 0;
  3. margin: 0;
  4. margin-bottom:50px;
  5. }
  6. a {
  7. color: darkblue;
  8. transition: color .2s ease-out;
  9. text-decoration: none
  10. }
  11. a:hover {
  12. color: red;
  13. }
  14. input:focus,
  15. select:focus,
  16. textarea:focus,
  17. button:focus {
  18. outline: none;
  19. }
  20. .blur {
  21. -webkit-filter: blur(2px);
  22. -moz-filter: blur(2px);
  23. -ms-filter: blur(2px);
  24. -o-filter: blur(2px);
  25. filter: blur(2px);
  26. }
  27. .ape {
  28. margin-left: 20px;
  29. padding: 10px 0px 10px 10px;
  30. background-color: #444;
  31. }
  32. .ape:hover {
  33. cursor: pointer;
  34. }
  35. header {
  36. border-bottom: 1px solid #000;
  37. border-top: 1px solid #000;
  38. }
  39. section {
  40. border-bottom: 1px solid #000;
  41. border-top: 1px solid #000;
  42. }
  43. h1 {
  44. margin: 0;
  45. margin-top: 20px;
  46. padding: 10px;
  47. text-transform: uppercase;
  48. color: #888;
  49. font-size: 1.6em
  50. }
  51. h2 {
  52. margin: 0;
  53. margin-top: 20px;
  54. padding: 10px;
  55. text-transform: uppercase;
  56. color: #888;
  57. font-size: 1.0em
  58. }
  59. h3 {
  60. margin: 0;
  61. text-align: center;
  62. padding: 20px 0px 20px 0px;
  63. }
  64. .gr {
  65. color: green;
  66. }
  67. .rd {
  68. color: red;
  69. }
  70. #wifi-status {
  71. display: none;
  72. }
  73. #connect {
  74. display: none;
  75. }
  76. #connect_manual {
  77. display: none;
  78. }
  79. #manual_ssid {
  80. border: none;
  81. width: 80%;
  82. margin-left: 35px;
  83. padding: 10px 0px 10px 10px;
  84. display: block
  85. }
  86. #manual_pwd {
  87. border: none;
  88. width: 80%;
  89. margin-left: 35px;
  90. padding: 10px 0px 10px 10px;
  91. display: block
  92. }
  93. #pwd {
  94. border: none;
  95. width: 80%;
  96. margin-left: 35px;
  97. padding: 10px 0px 10px 10px;
  98. display: block
  99. }
  100. .buttons {
  101. padding: 15px;
  102. }
  103. #join {
  104. float: right;
  105. }
  106. #manual_join {
  107. float: right;
  108. }
  109. #yes-disconnect {
  110. display: inline-block;
  111. margin-left: 20px;
  112. }
  113. #no-disconnect {
  114. display: inline-block;
  115. }
  116. .tctr {
  117. text-align: center;
  118. }
  119. #connect-wait {
  120. display: none;
  121. }
  122. #connect-success {
  123. display: none;
  124. }
  125. #connect-fail {
  126. display: none;
  127. }
  128. #connect-details {
  129. display: none;
  130. }
  131. #diag-disconnect {
  132. display: none;
  133. }
  134. .fr {
  135. float: right;
  136. margin-right: 20px;
  137. }
  138. .w0 {
  139. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABzUlEQVRIS+WUTShEURTH3zyRhjQ+8hWxmCJMoSzEwsbCgi1LZRYW9pONptiwka9iI81CWFpYaEqNMkVKmpWN1IhYKN9ZDL/z3p3mxZh5g9X4168799xz/vPefedeLeuVC+3gdTgc07CsmCQ2DI2gg21Jci30wSpGt/CeghickTsHPVACDkgqp67rPgpO4E0ZZMIj7OHhxSvPtEyomcVDeFXJv+EZNvEsNa01rZfAuSUhThR2wU+ObJkbyhRNMMDaDIThBqy1MdZ3wAPawqfFC2Lj0Ab5kpBGxdAJs9TeW72ITUhCPZMjFYwwbwXpnkwlDzOIx50yXwP5c0MeggHGanNqSDqqBqQ7/Kxvg2zHAfMN8IE8uZhYO6eBnBXGKnOakLWfaQZ9jMRjSPXhZUuC5A9JjVFpKkeNSVVA0Tq8KJN0yFl4gilqbW2tm+SQKoybXIG8jcT34RSsh1Byt6iVg2ZLlRCg6JpROqEDpFheXZ5S9rcLFsl5YJwHad+MVA5y13w5lRY5oRsKjdm/Vz/7LR86zG+5wr+9NX+iOowjEO+aELEic+lv1ILppeUPosRst6QduTANgnE2mC+BnYswI1VwfYzCCL9dZij7pWkf6UeSTYAuE/QAAAAASUVORK5CYII=') no-repeat right top;
  140. height: 24px;
  141. margin-right: 20px;
  142. }
  143. .w1 {
  144. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHiSURBVEhL5dRPKINxHMfxPVskpA35F3FYEVasHBYHFwcHrhyVZ8vBfblIceEi/4qLtINwdHCQUpQVKcnJRYqIg/J3OYz399nv0YPNtuzEt149+31/v+/n4fGYLVHpup4Rnyregd+K27TIghe63+8fx7wySqsPdbAj3qzha0MOV6ETiwTd4u0HUZxydgrtKISGj0xreG4gEAgycIRXFZCOR2yTQZSebeaa4Q1s7iOiDv/GM1bJLDJv0EHjzHLAdIFNjHBGHpkbxUo9utmbQBg3sM5G2d+AR24w82XznN4QmpGjXrCExRkXfJhk9t6aRW9YDtSwOFDNE9ZNyFLzKRczOegh406FL8ElG8JDM8S1Qtaq7KhEO0Y0TVtHGHusVxCEDy5oMLNqyVrgWm5kqaYw3mdVdmqQsENE8JbAPbY43yszMqiyHOr66QayL5XH0DJeVEgyUTxhjNmPR/vtBpZyc3hHDZohV5DfRvq7OMYtrDdZY7YwFpG8yhBi6JrrMFogww7IT1mOVsxy5oHrNIqRVpWgDtnGKn7log35xurfVxfPW/7QYT57Ybz7mapqgk9gvjU79ApiW5mpRkIvLTe4oJfyK5lKOQndgvG/wXoOSb8I061Svj4G0M9nZ6z198tmeweYtIrMYP17VAAAAABJRU5ErkJggg==') no-repeat right top;
  145. height: 24px;
  146. margin-right: 20px;
  147. }
  148. .w2 {
  149. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHkSURBVEhL3dRLKERRGMDxuSPSkLzyilgo8iiUhVjYWFiwZancmSzsZSPFho28io1kISwtLKQURZGSrGykiFgo7yyG/zdzznRm5iK5Sk79uvd85/u++5hzx2Pb9q9yDLrJMWhIRB1sv98/ghlliFAXyuGFU21IbECSi9CKORrd4O0TQZyQO45mZMJCpKfZ3BcIBPooOMSravAdD9ikB63sJN1XN69kcQ8vKvknnrBMzyx9gRYCp0aCdo51DJIjr6wU2UoF2lkbxS6uYdYGWV9DtVxgMmbxjFg/apEM/ZQfyUADxqi9M3sRG5CEEib7KnjMvAaye2IbfUVupoMet6r5PDL0YjXBBY4Fai5kRxVCdscg66uQ17HDfAl9kDuXJzB3Thk5sxzzZa6DumHknN3QS+IBPvvh5ZVskN8ZU5+gz3XAlELRIp5Vk6/It/CIYWrjXm3URCkleUsV6iaXkKeR+DaOYH6EkrtCrXxoUf2iJoY8LFB0xXEA9ZBieXS5S3m/jZgi557jBGT7xvWKCxhyIP81ka/SgQ9NSDViURyDbvpTo82yrAPscl4HKxR1aRTT+BhvyhaxtPCSO6OKphfGBc6JZYaX3BnpNN1AUC7AfBrJoRUXR67X6+1BN+fp4dD/Hx7PO4o9VGuAapKIAAAAAElFTkSuQmCC') no-repeat right top;
  150. height: 24px;
  151. margin-right: 20px;
  152. }
  153. .w3 {
  154. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAACAElEQVRIS7XUP0gbYRjH8VSpiBZJWvEflXYQKtqACg6ig4uDg651LPQSHLpLlyDoUhdpVdBFxEG0YwcHCQgRFJSCFKcuUohY6iC0VYtD9PuE9w3vXZ74h16HD3fv733e53KX9y7ied5/pYZhUkPHQ3TBSyQS7zFvTBC9RivKoK3NCwZS3IxBLNLoBFc3yOEbtR/Qj8d4gEJPt3lVMpkcY8E+Lk2D+/iDTXrQyquwfW3zdiZ38dcU/4tzrNHzib3AAMGhU2BlsYFxauSRtaDWaMMwc1PYwU+4a3PMryMuF5gJTH4ne4dOVMLeZSkx9GCatb/cXmQpKXjOYM+EB4w7ILsn2Og28mNe0ePUNF9CzE7GCZc5NpmxkB31FLI7xpn/DHkc24xXMQb55XIH7s55Qc0Cx0YZ29A2LJyzG95S+AU3/fHySNLUjwTWl9tzG7iqWbSCC9PkNvIunGGStUWP1jcwWijOmIW2yTHkbiTfwle4L6HUfmKtvGi+fr6BowHLLPrBMYVuyGK5dfmV8nx7MUvNb44fIdu3qFdR4KiDfGsKb6WiCn145GQ+ahgmNQyTGpYwxPOWP3qHc/mE+76apaih4hmND2B3TYasJlCjUkPFS5oeORfIkhVtSY0aKqI0TSP/bjCew10+hPf6D+r5fIziDefRwFxJahgmNQyPF7kGEsc1es+A2E4AAAAASUVORK5CYII=') no-repeat right top;
  155. height: 24px;
  156. margin-right: 20px;
  157. }
  158. .pw {
  159. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABIUlEQVRIS+3VsU7CUBTGcYhBJCwqwcmEJ2DkCQgzb8ADmLgYWXTzMVjcGNjYGEAXgoSRhTg5OroYIyFY/h+hWGwvtzQ0LpzkF8i5l/uRQ2kTjuPEKrC5T79vzHWJO4wxwzeGuMY5AitsQBFvmEObvNQboQBfhQk4gQ5wD+zgBrcYrHrSwzE2KkxAHVrQWB6QgiqJLB7xA+2pYaNsAWm8QAsa0Sn+1gU+oT1NHGFdtoAcJtBCSw1DuaPqQiNdly0gj1doQaMwleavPc+IJUDffKeADO7Rxxe08A4dEOQD2qPXJ1xh+VuYAirQVaNGFFPov2MM0OXm/UAUZRwCtjoEWP1vQBXuLTgKPYRKMAacoY0oIboDNLB8+PgC4hLY3B8nsQCQEf56jLJoQAAAAABJRU5ErkJggg==') no-repeat right top;
  160. height: 24px;
  161. margin-right: 20px;
  162. height: 24px;
  163. margin-right: 30px;
  164. }
  165. /* SpinKit is licensed under the MIT License. Copyright (c) 2015 Tobias Ahlin */
  166. .spinner {
  167. width: 40px;
  168. height: 40px;
  169. position: relative;
  170. margin: 100px auto;
  171. }
  172. .double-bounce1,
  173. .double-bounce2 {
  174. width: 100%;
  175. height: 100%;
  176. border-radius: 50%;
  177. background-color: #333;
  178. opacity: 0.6;
  179. position: absolute;
  180. top: 0;
  181. left: 0;
  182. -webkit-animation: sk-bounce 2.0s infinite ease-in-out;
  183. animation: sk-bounce 2.0s infinite ease-in-out;
  184. }
  185. .double-bounce2 {
  186. -webkit-animation-delay: -1.0s;
  187. animation-delay: -1.0s;
  188. }
  189. @-webkit-keyframes sk-bounce {
  190. 0%, 100% {
  191. -webkit-transform: scale(0.0)
  192. }
  193. 50% {
  194. -webkit-transform: scale(1.0)
  195. }
  196. }
  197. @keyframes sk-bounce {
  198. 0%, 100% {
  199. transform: scale(0.0);
  200. -webkit-transform: scale(0.0);
  201. }
  202. 50% {
  203. transform: scale(1.0);
  204. -webkit-transform: scale(1.0);
  205. }
  206. }
  207. /* end of SpinKit */
  208. /* daduke stuff */
  209. input[type='text'], input[type='password'], textarea {
  210. background: #999;
  211. border: 0;
  212. padding: 4px;
  213. }
  214. input.gpio {
  215. width: 2em;
  216. color: #000;
  217. height: 1.8em;
  218. }
  219. .custom-switch, .custom-radio {
  220. padding-left: 2.25rem;
  221. margin-left: 12px;
  222. padding-bottom: 1rem;
  223. }
  224. .custom-checkbox > .custom-control-label {
  225. padding-top: 0.5rem;
  226. padding-left: 2rem;
  227. padding-bottom: 0.1rem;
  228. }
  229. .custom-switch .custom-control-label::before {
  230. left: -2.25rem;
  231. height: 2rem;
  232. width: 3.5rem;
  233. pointer-events: all;
  234. border-radius: 1rem;
  235. background-color: #f00;
  236. }
  237. .custom-switch .custom-control-label::after {
  238. top: calc(0.25rem + 2px);
  239. left: calc(-2.25rem + 2px);
  240. width: calc(2rem - 4px);
  241. height: calc(2rem - 4px);
  242. background-color: #adb5bd;
  243. border-radius: 2rem;
  244. transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
  245. transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  246. transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
  247. }
  248. @media (prefers-reduced-motion: reduce) {
  249. .custom-switch .custom-control-label::after {
  250. transition: none;
  251. }
  252. }
  253. .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  254. background-color: #0f0;
  255. }
  256. .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  257. background-color: #fff;
  258. -webkit-transform: translateX(1.5rem); //translateX(0.75rem);
  259. transform: translateX(1.5rem); //translateX(0.75rem);
  260. }
  261. textarea#autoexec1, textarea#fwurl {
  262. width: 80%;
  263. }
  264. input, textarea {
  265. margin-left: 10px;
  266. border-radius: 3px;
  267. border: 1px solid transparent;
  268. border-top: none;
  269. border-bottom: 1px solid #DDD;
  270. box-shadow: inset 0 1px 2px rgba(0,0,0,.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;
  271. }
  272. .form-group {
  273. margin-left: 10px;
  274. }
  275. #otadiv {
  276. display: none;
  277. }
  278. #btsinkdiv {
  279. display: none;
  280. }
  281. .tooltip-inner {
  282. font-family: monospace, monospace;
  283. font-size: 70%;
  284. }
  285. #progress {
  286. margin-left: 13px;
  287. width: 60%;
  288. }
  289. #mode {
  290. float: right;
  291. }
  292. .footer {
  293. position: fixed;
  294. left: 0;
  295. bottom: 0;
  296. width: 100%;
  297. background-color: #555;
  298. color: white;
  299. text-align: center;
  300. }