Skouter mortgage estimates. Web application with view written in PHP and Vue, but controller and models in Go.
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

main.css 5.8 KiB

hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
hace 1 año
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. :root {
  2. --primary-bg: white;
  3. --secondary-bg: #F7F9FA;
  4. --text: #4C555E;
  5. --text-dark: #394046;
  6. --text-light: #1D262E;
  7. --text-lighter: #28323B;
  8. --text-lightest: #A1A7AD;
  9. --text-important: #922724;
  10. --outline: #DFE3E8;
  11. --brand: #0f6b4b;
  12. --shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
  13. --shadow-md: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  14. }
  15. body {
  16. margin: 0;
  17. }
  18. h2 {
  19. color: var(--text);
  20. }
  21. label {
  22. font-size: 16px;
  23. }
  24. button {
  25. background: var(--text);
  26. color: white;
  27. border: none;
  28. padding: 7px;
  29. border-radius: 3px;
  30. font-weight: bold;
  31. }
  32. button:not(:disabled) {
  33. cursor: pointer;
  34. }
  35. button:disabled {
  36. background: grey;
  37. }
  38. input, select {
  39. border: 2px solid var(--outline);
  40. border-radius: 3px;
  41. }
  42. input[type=checkbox] {
  43. margin-right: auto;
  44. /* height: 20px; */
  45. /* width: 20px; */
  46. }
  47. section.form label {
  48. display: flex;
  49. align-items: center;
  50. }
  51. .page section.form h3 {
  52. margin: 10px 0 10px 30px;
  53. }
  54. #app {
  55. width: 100%;
  56. height: 100%;
  57. }
  58. .app-panel {
  59. width: 100%;
  60. position: relative;
  61. display: flex;
  62. justify-content: space-between;
  63. }
  64. menu.sidebar {
  65. position: relative;
  66. margin: 0;
  67. padding: 35px 0px;
  68. background: var(--secondary-bg);
  69. list-style: none;
  70. font-size: 18px;
  71. display: flex;
  72. flex-direction: column;
  73. gap: 20px;
  74. }
  75. ul.errors {
  76. color: var(--text-important);
  77. margin: 20px 0;
  78. min-height: 40px 0;
  79. }
  80. menu.sidebar a {
  81. color: var(--text);
  82. display: flex;
  83. align-items: center;
  84. gap: 10px;
  85. text-decoration: none;
  86. padding: 10px 10px;
  87. }
  88. menu.sidebar a.active {
  89. background: var(--primary-bg);
  90. }
  91. /* The user avatar */
  92. menu.sidebar img {
  93. width: 50px;
  94. height: 50px;
  95. margin: 0 auto;
  96. border-radius: 50%;
  97. }
  98. menu.sidebar a:hover {
  99. color: var(--text-light);
  100. cursor: pointer;
  101. }
  102. menu.sidebar svg {
  103. height: 24px;
  104. width: 24px;
  105. }
  106. .spinner {
  107. animation: rotate 2s linear infinite;
  108. z-index: 2;
  109. top: 50%;
  110. left: 50%;
  111. margin: -25px 0 0 -25px;
  112. width: 50px;
  113. height: 50px;
  114. }
  115. .spinner .path {
  116. stroke: var(--text);
  117. stroke-linecap: round;
  118. animation: dash 1.5s ease-in-out infinite;
  119. }
  120. @keyframes rotate {
  121. 100% {
  122. transform: rotate(360deg);
  123. }
  124. }
  125. @keyframes dash {
  126. 0% {
  127. stroke-dasharray: 1, 150;
  128. stroke-dashoffset: 0;
  129. }
  130. 50% {
  131. stroke-dasharray: 90, 150;
  132. stroke-dashoffset: -35;
  133. }
  134. 100% {
  135. stroke-dasharray: 90, 150;
  136. stroke-dashoffset: -124;
  137. }
  138. }
  139. .page.loading {
  140. width: 100%;
  141. display: flex;
  142. justify-content: center;
  143. align-items: center;
  144. }
  145. .page {
  146. padding: 0 2%;
  147. width: 100%;
  148. overflow-y: scroll;
  149. scrollbar-width: none;
  150. }
  151. .page section {
  152. margin-top: 50px;
  153. margin: auto;
  154. margin-bottom: 40px;
  155. max-width: 700px;
  156. }
  157. #home.page section:first-of-type {
  158. margin-top: 100px;
  159. }
  160. #home .announce {
  161. min-height: 150px;
  162. border: 1px solid var(--outline);
  163. /* border-radius: 4px; */
  164. }
  165. .page section {
  166. color: var(--text);
  167. }
  168. .page section h3 {
  169. margin-left: 10px;
  170. color: var(--text-lighter);
  171. }
  172. section.loans-list {
  173. display: flex;
  174. flex-direction: column;
  175. width: fit-content;
  176. margin: 0 0 50px 0;
  177. justify-content: center;
  178. border-left: 1px solid var(--text-lightest);
  179. padding: 10px;
  180. margin-bottom: 50px;
  181. }
  182. .loans-list h3:not(.sel) {
  183. color: var(--text-lightest);
  184. }
  185. .loans-list h3 {
  186. cursor: pointer;
  187. width: fit-content;
  188. min-height: 20px;
  189. min-width: 20px;
  190. }
  191. .loans-list .add svg {
  192. width: 35px;
  193. height: 35px;
  194. margin: auto;
  195. display: block;
  196. }
  197. .loans-list .add svg:hover {
  198. color: black;
  199. }
  200. section.radios {
  201. display: grid;
  202. grid-template-columns: 50px 1fr;
  203. justify-content: center;
  204. row-gap: 20px;
  205. max-width: 250px;
  206. }
  207. section.inputs {
  208. display: flex;
  209. flex-flow: column;
  210. max-width: 250px;
  211. row-gap: 15px;
  212. position: relative;
  213. }
  214. .settings.page section.letterhead {
  215. max-width: 400px;
  216. }
  217. .settings.page .letterhead canvas {
  218. max-width: 400px;
  219. width: 100%;
  220. }
  221. section.radios h3 {
  222. grid-column: 1 / 3;
  223. }
  224. .form button {
  225. }
  226. .form.radios input {
  227. height: 20px;
  228. }
  229. svg.close {
  230. position: absolute;
  231. right: 10px;
  232. top: 10px;
  233. height: 50px;
  234. width: 50px;
  235. cursor: pointer;
  236. color: var(--text);
  237. }
  238. .sidebar svg.close {
  239. width: 34px;
  240. height: 34px;
  241. }
  242. .close-btn {
  243. width: 30px;
  244. height: 30px;
  245. }
  246. div.sidebar-toggle {
  247. width: 50px;
  248. }
  249. div.sidebar-toggle svg {
  250. width: 100%;
  251. height: 60px;
  252. color: var(--text);
  253. cursor: pointer;
  254. }
  255. div.hint {
  256. position: absolute;
  257. top: 10px;
  258. right: 15%;
  259. /* margin: auto; */
  260. }
  261. div.hint img {
  262. width: 25px;
  263. height: 25px;
  264. }
  265. div.hint .tooltip {
  266. position: absolute;
  267. width: 150px;
  268. right: -2em;
  269. background: white;
  270. color: grey;
  271. padding: 10px;
  272. border-radius: 3px;
  273. box-shadow: var(--shadow);
  274. visibility: hidden;
  275. }
  276. div.hint:hover .tooltip {
  277. visibility: visible;
  278. }
  279. section.form .fee {
  280. display: flex;
  281. }
  282. section.form .fee.required {
  283. display: flex;
  284. background: #ddd;
  285. }
  286. section.form .fee img {
  287. margin-left: auto;
  288. }
  289. div.modal-prompt {
  290. position: fixed;
  291. z-index: 5;
  292. width: 100vw;
  293. height: 100vh;
  294. top: 0;
  295. left: 0;
  296. display: block;
  297. opacity: 1;
  298. padding: 10px;
  299. }
  300. div.modal-prompt .form {
  301. z-index: 5;
  302. margin: auto auto;
  303. margin-top: 10%;
  304. width: 100%;
  305. max-width: 400px;
  306. padding: 20px 10px;
  307. background: white;
  308. box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  309. border-radius: 3px;
  310. }
  311. div.modal-prompt .form img.close-btn {
  312. right: 10px;
  313. top: 10px;
  314. position: absolute;
  315. }
  316. section.dialog.form {
  317. padding-top: 30px;
  318. }
  319. section.centered {
  320. margin-top: 25%;
  321. }
  322. section.special {
  323. border: 2px solid var(--outline);
  324. border-radius: 3px;
  325. padding: 25px 10px;
  326. }
  327. section.mi .row {
  328. width: 100%;
  329. display: flex;
  330. gap: 10px;
  331. }
  332. section.mi .row input[type=checkbox] {
  333. margin-right: 0;
  334. }
  335. .loading span.error {
  336. top: 40px;
  337. position: absolute;
  338. }
  339. label.error {
  340. color: var(--text-important);
  341. }
  342. section.estimates .entry {
  343. padding: 10px 3px;
  344. border-bottom: 2px solid var(--outline);
  345. border-radius: 3px;
  346. }
  347. section.estimates .entry:hover {
  348. cursor: pointer;
  349. }
  350. section.estimates .details {
  351. display: flex;
  352. flex-flow: column;
  353. gap: 10px;
  354. }
  355. canvas.displayer {
  356. margin: auto;
  357. }