Skouter mortgage estimates. Web application with view written in PHP and Vue, but controller and models in Go.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

372 lines
5.1 KiB

  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. /* button:not(:disabled):hover { */
  39. /* background: var(--text-dark); */
  40. /* } */
  41. input, select {
  42. border: 2px solid var(--outline);
  43. border-radius: 3px;
  44. }
  45. input[type=checkbox] {
  46. margin-right: auto;
  47. /* height: 20px; */
  48. /* width: 20px; */
  49. }
  50. section.form label {
  51. display: flex;
  52. align-items: center;
  53. }
  54. .page section.form h3 {
  55. margin: 10px 0 10px 30px;
  56. }
  57. main .panel {
  58. height: 100%;
  59. width: 100%;
  60. position: absolute;
  61. display: flex;
  62. }
  63. menu.sidebar {
  64. height: calc(100% - 70px);
  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. section.radios h3 {
  215. grid-column: 1 / 3;
  216. }
  217. .form button {
  218. }
  219. .form.radios input {
  220. height: 20px;
  221. }
  222. svg.close {
  223. position: absolute;
  224. right: 10px;
  225. top: 10px;
  226. height: 50px;
  227. width: 50px;
  228. cursor: pointer;
  229. color: var(--text);
  230. }
  231. .close-btn {
  232. width: 30px;
  233. height: 30px;
  234. }
  235. div.sidebar-toggle {
  236. width: 50px;
  237. }
  238. div.sidebar-toggle svg {
  239. width: 100%;
  240. height: 60px;
  241. color: var(--text);
  242. cursor: pointer;
  243. }
  244. div.hint {
  245. position: absolute;
  246. top: 10px;
  247. right: 15%;
  248. /* margin: auto; */
  249. }
  250. div.hint img {
  251. width: 25px;
  252. height: 25px;
  253. }
  254. div.hint .tooltip {
  255. position: absolute;
  256. width: 150px;
  257. right: -2em;
  258. background: white;
  259. color: grey;
  260. padding: 10px;
  261. border-radius: 3px;
  262. box-shadow: var(--shadow);
  263. visibility: hidden;
  264. }
  265. div.hint:hover .tooltip {
  266. visibility: visible;
  267. }
  268. section.form .fee {
  269. display: flex;
  270. }
  271. section.form .fee img {
  272. margin-left: auto;
  273. }
  274. div.modal {
  275. position: fixed;
  276. z-index: 5;
  277. width: 100vw;
  278. width: 100vw;
  279. height: 100vh;
  280. top: 0;
  281. left: 0;
  282. }
  283. div.modal .form {
  284. z-index: 5;
  285. margin: auto auto;
  286. margin-top: 10%;
  287. width: 100%;
  288. max-width: 300px;
  289. padding: 20px 10px;
  290. background: white;
  291. box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  292. border-radius: 3px;
  293. }
  294. div.modal .form img.close-btn {
  295. right: 10px;
  296. top: 10px;
  297. position: absolute;
  298. }
  299. section.dialog.form {
  300. padding-top: 30px;
  301. }
  302. section.centered {
  303. margin-top: 25%;
  304. }
  305. section.special {
  306. border: 2px solid var(--outline);
  307. border-radius: 3px;
  308. padding: 25px 10px;
  309. }
  310. .loading span.error {
  311. top: 40px;
  312. position: absolute;
  313. }