Skouter mortgage estimates. Web application with view written in PHP and Vue, but controller and models in Go.
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.
 
 
 
 
 
 

282 lines
3.8 KiB

  1. :root {
  2. --primary-bg: white;
  3. --secondary-bg: #F7F9FA;
  4. --text: #4C555E;
  5. --text-light: #1D262E;
  6. --text-lighter: #28323B;
  7. --text-lightest: #A1A7AD;
  8. --outline: #DFE3E8;
  9. --brand: #0f6b4b;
  10. --shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
  11. }
  12. body {
  13. margin: 0;
  14. }
  15. h2 {
  16. color: var(--text);
  17. }
  18. label {
  19. font-size: 16px;
  20. }
  21. input, select {
  22. border: 2px solid var(--outline);
  23. border-radius: 3px;
  24. }
  25. input[type=checkbox] {
  26. margin-right: auto;
  27. /* height: 20px; */
  28. /* width: 20px; */
  29. }
  30. section.form label {
  31. display: flex;
  32. align-items: center;
  33. }
  34. .page section.form h3 {
  35. margin: 10px 0 10px 30px;
  36. }
  37. main .panel {
  38. height: 100%;
  39. width: 100%;
  40. position: absolute;
  41. display: flex;
  42. }
  43. menu.sidebar {
  44. height: calc(100% - 70px);
  45. position: relative;
  46. margin: 0;
  47. padding: 35px 0px;
  48. background: var(--secondary-bg);
  49. list-style: none;
  50. font-size: 18px;
  51. display: flex;
  52. flex-direction: column;
  53. gap: 20px;
  54. }
  55. menu.sidebar a {
  56. color: var(--text);
  57. display: flex;
  58. align-items: center;
  59. gap: 10px;
  60. text-decoration: none;
  61. padding: 10px 10px;
  62. }
  63. menu.sidebar a.active {
  64. background: var(--primary-bg);
  65. }
  66. /* The user avatar */
  67. menu.sidebar img {
  68. width: 50px;
  69. height: 50px;
  70. margin: 0 auto;
  71. border-radius: 50%;
  72. }
  73. menu.sidebar a:hover {
  74. color: var(--text-light);
  75. cursor: pointer;
  76. }
  77. menu.sidebar svg {
  78. height: 24px;
  79. width: 24px;
  80. }
  81. .spinner {
  82. animation: rotate 2s linear infinite;
  83. z-index: 2;
  84. top: 50%;
  85. left: 50%;
  86. margin: -25px 0 0 -25px;
  87. width: 50px;
  88. height: 50px;
  89. }
  90. .spinner .path {
  91. stroke: var(--text);
  92. stroke-linecap: round;
  93. animation: dash 1.5s ease-in-out infinite;
  94. }
  95. @keyframes rotate {
  96. 100% {
  97. transform: rotate(360deg);
  98. }
  99. }
  100. @keyframes dash {
  101. 0% {
  102. stroke-dasharray: 1, 150;
  103. stroke-dashoffset: 0;
  104. }
  105. 50% {
  106. stroke-dasharray: 90, 150;
  107. stroke-dashoffset: -35;
  108. }
  109. 100% {
  110. stroke-dasharray: 90, 150;
  111. stroke-dashoffset: -124;
  112. }
  113. }
  114. .page.loading {
  115. width: 100%;
  116. display: flex;
  117. justify-content: center;
  118. align-items: center;
  119. }
  120. .page {
  121. padding: 0 2%;
  122. width: 100%;
  123. overflow-y: scroll;
  124. scrollbar-width: none;
  125. }
  126. .page section {
  127. margin-top: 50px;
  128. margin: auto;
  129. margin-bottom: 40px;
  130. max-width: 700px;
  131. }
  132. #home.page section:first-of-type {
  133. margin-top: 100px;
  134. }
  135. #home .announce {
  136. min-height: 150px;
  137. border: 1px solid var(--outline);
  138. /* border-radius: 4px; */
  139. }
  140. .page section {
  141. color: var(--text);
  142. }
  143. .page section h3 {
  144. margin-left: 10px;
  145. color: var(--text-lighter);
  146. }
  147. section.loans-list {
  148. display: flex;
  149. flex-direction: column;
  150. width: fit-content;
  151. margin: 0 0 50px 0;
  152. justify-content: center;
  153. border-left: 1px solid var(--text-lightest);
  154. padding: 10px;
  155. margin-bottom: 50px;
  156. }
  157. .loans-list h3:not(.sel) {
  158. color: var(--text-lightest);
  159. }
  160. .loans-list h3 {
  161. cursor: pointer;
  162. width: fit-content;
  163. }
  164. .loans-list .add svg {
  165. width: 35px;
  166. height: 35px;
  167. margin: auto;
  168. display: block;
  169. }
  170. .loans-list .add svg:hover {
  171. color: black;
  172. }
  173. section.radios {
  174. display: grid;
  175. grid-template-columns: 50px 1fr;
  176. justify-content: center;
  177. row-gap: 20px;
  178. max-width: 250px;
  179. }
  180. section.inputs {
  181. display: flex;
  182. flex-flow: column;
  183. max-width: 250px;
  184. row-gap: 15px;
  185. position: relative;
  186. }
  187. section.radios h3 {
  188. grid-column: 1 / 3;
  189. }
  190. .form.radios input {
  191. height: 20px;
  192. }
  193. svg.close {
  194. position: absolute;
  195. right: 10px;
  196. top: 10px;
  197. height: 50px;
  198. width: 50px;
  199. cursor: pointer;
  200. color: var(--text);
  201. }
  202. div.close-button {
  203. width: 50px;
  204. height: 50px;
  205. }
  206. div.sidebar-toggle {
  207. width: 50px;
  208. }
  209. div.sidebar-toggle svg {
  210. width: 100%;
  211. height: 60px;
  212. color: var(--text);
  213. cursor: pointer;
  214. }
  215. div.hint {
  216. position: absolute;
  217. top: 10px;
  218. right: 15%;
  219. /* margin: auto; */
  220. }
  221. div.hint img {
  222. width: 25px;
  223. height: 25px;
  224. }
  225. div.hint .tooltip {
  226. position: absolute;
  227. width: 150px;
  228. right: -2em;
  229. background: white;
  230. color: grey;
  231. padding: 10px;
  232. border-radius: 3px;
  233. box-shadow: var(--shadow);
  234. visibility: hidden;
  235. }
  236. div.hint:hover .tooltip {
  237. visibility: visible;
  238. }