Ionic + React onboarding UI
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 

384 Zeilen
7.0 KiB

  1. .slidersNavBar {
  2. height: 60px;
  3. display: flex;
  4. align-items: center;
  5. justify-content: center;
  6. h4 {
  7. width: 60%;
  8. text-align: right;
  9. font-size: 24px;
  10. color: var(--charcoal);
  11. span {
  12. font-size: 18px;
  13. font-weight: 400;
  14. color: var(--ash);
  15. }
  16. }
  17. ion-button {
  18. --background: transparent;
  19. --color: var(--ash);
  20. --box-shadow: none;
  21. font-size: 14px;
  22. margin-left: auto;
  23. margin-right: 5%;
  24. ion-icon {
  25. font-size: 16px;
  26. margin-left: 5px;
  27. transform: translateY(2px);
  28. }
  29. }
  30. }
  31. .slides {
  32. width: 100%;
  33. margin-top: 20px;
  34. overflow: hidden;
  35. height: calc(100vh - 60px - 20px);
  36. ion-slide {
  37. text-align: left;
  38. display: block;
  39. }
  40. .questionContainer {
  41. height: 35%;
  42. position: relative;
  43. padding: 0 7%;
  44. .question {
  45. word-spacing: 1px;
  46. font-size: 28px;
  47. font-weight: 400;
  48. color: var(--charcoal);
  49. }
  50. .hint {
  51. position: absolute;
  52. bottom: 40px;
  53. left: 7%;
  54. font-size: 14px;
  55. color: var(--grey-rock);
  56. }
  57. }
  58. .choiceContainer {
  59. height: 65%;
  60. background-color: var(--dark-charcoal);
  61. padding: 40px 7%;
  62. border-top-left-radius: 35px;
  63. border-top-right-radius: 35px;
  64. .optionButtons button {
  65. width: 100%;
  66. text-align: left;
  67. outline: none;
  68. padding: 0 30px;
  69. display: block;
  70. background-color: var(--charcoal);
  71. box-shadow: 0px 0px 10px black;
  72. border-radius: 10px;
  73. height: 55px;
  74. font-size: 16px;
  75. color: var(--grey-rock);
  76. margin-bottom: 30px;
  77. transition: box-shadow 0.3s, color 0.3s;
  78. &.optionButton {
  79. color: var(--white);
  80. padding-right: 15px;
  81. }
  82. &.active {
  83. color: var(--white);
  84. box-shadow: 0px 0px 10px 1px var(--shamrock);
  85. ion-icon.checkmark {
  86. opacity: 1;
  87. }
  88. }
  89. ion-icon {
  90. font-size: 20px;
  91. vertical-align: middle;
  92. transition: opacity 0.3s;
  93. &.leftIcon {
  94. margin-right: 15px;
  95. }
  96. &.checkmark {
  97. opacity: 0;
  98. float: right;
  99. }
  100. &.option {
  101. float: right;
  102. }
  103. &.sectorIcon {
  104. margin-right: 10px;
  105. }
  106. }
  107. }
  108. ion-range {
  109. --bar-height: 5px;
  110. --bar-background: var(--black-rock);
  111. --bar-background-active: var(--shamrock);
  112. --knob-size: 20px;
  113. --bar-border-radius: 30px;
  114. }
  115. p {
  116. text-align: center;
  117. font-size: 30px;
  118. color: var(--ash);
  119. font-weight: 600;
  120. letter-spacing: 1px;
  121. }
  122. .modules {
  123. list-style: none;
  124. width: 100%;
  125. position: relative;
  126. text-align: center;
  127. position: relative;
  128. align-items: center;
  129. justify-content: center;
  130. display: grid;
  131. grid-row-gap: 20px;
  132. grid-column-gap: 10px;
  133. margin: 0;
  134. padding: 0;
  135. li:nth-of-type(1) {
  136. grid-column: 1;
  137. }
  138. li:nth-of-type(2) {
  139. grid-column: 2;
  140. }
  141. li:nth-of-type(3) {
  142. grid-column: 3;
  143. }
  144. li:nth-of-type(4) {
  145. grid-column: 4;
  146. }
  147. li:nth-of-type(5) {
  148. grid-column: 1 / span 2;
  149. grid-row: 2;
  150. }
  151. li:nth-of-type(6) {
  152. grid-column: 1 / span 5;
  153. grid-row: 2;
  154. }
  155. li:nth-of-type(7) {
  156. grid-column: 3 / span 3;
  157. grid-row: 2;
  158. }
  159. li:nth-of-type(8) {
  160. grid-column: 2;
  161. }
  162. li:nth-of-type(9) {
  163. grid-column: 3;
  164. }
  165. button {
  166. width: 18vw;
  167. height: 18vw;
  168. border-radius: 50%;
  169. font-size: 10px;
  170. display: inline-block;
  171. outline: none;
  172. background-color: var(--ash-dust);
  173. color: var(--black-rock);
  174. border: 2px solid var(--ash-dust);
  175. transition: border-color 0.3s;
  176. &.active {
  177. border-color: var(--shamrock);
  178. box-shadow: 0px 0px 10px 0px var(--shamrock);
  179. }
  180. }
  181. ion-icon {
  182. display: block;
  183. margin: 0 auto 5px;
  184. font-size: 24px;
  185. }
  186. }
  187. .profileImages {
  188. display: flex;
  189. width: 100vw;
  190. list-style: none;
  191. height: 100%;
  192. left: -7%;
  193. position: relative;
  194. overflow-y: hidden;
  195. overflow-x: auto;
  196. justify-content: flex-start;
  197. flex-direction: column;
  198. flex-wrap: wrap;
  199. padding: 20px 0;
  200. button {
  201. margin: 0 auto;
  202. display: block;
  203. width: 19vw;
  204. height: 19vw;
  205. border-radius: 50%;
  206. font-size: 10px;
  207. outline: none;
  208. background-color: var(--ash-dust);
  209. color: var(--black-rock);
  210. border: 0px solid var(--ash-dust);
  211. transition: border-color 0.3s, border-width 0.3s;
  212. margin: 10px;
  213. &.active {
  214. border-color: var(--shamrock);
  215. border-width: 2px;
  216. box-shadow: 0px 0px 10px 0px var(--shamrock);
  217. }
  218. &.upload {
  219. background-color: transparent;
  220. border-color: var(--shamrock);
  221. border-width: 2px;
  222. font-size: 12px;
  223. color: var(--shamrock);
  224. ion-icon {
  225. width: 30px;
  226. height: 30px;
  227. font-size: 20px;
  228. display: block;
  229. margin: 0 auto;
  230. }
  231. }
  232. }
  233. ion-icon {
  234. width: 100%;
  235. height: 100%;
  236. }
  237. }
  238. }
  239. }
  240. .nextButton {
  241. position: fixed;
  242. bottom: 5%;
  243. right: 7%;
  244. z-index: 1;
  245. width: 150px;
  246. height: 60px;
  247. --border-radius: 30px;
  248. --box-shadow: none;
  249. --background: var(--shamrock);
  250. --color: var(--white);
  251. font-size: 18px;
  252. filter: grayscale(0%);
  253. transition: filter 0.3s;
  254. transition: opacity 0.3;
  255. &.inactive {
  256. pointer-events: none;
  257. filter: grayscale(100%);
  258. }
  259. ion-icon {
  260. font-size: 18px;
  261. margin-left: 10px;
  262. }
  263. }
  264. .prevButton {
  265. position: fixed;
  266. bottom: 5%;
  267. left: 7%;
  268. z-index: 1;
  269. width: 60px;
  270. height: 60px;
  271. --border-color: var(--rock);
  272. --color: var(--rock);
  273. --background: var(--charcoal);
  274. --border-radius: 50%;
  275. --border-width: 2px;
  276. transition: opacity 0.3;
  277. &.inactive {
  278. pointer-events: none;
  279. opacity: 0;
  280. }
  281. ion-icon {
  282. opacity: 0.4;
  283. transform: rotateY(180deg);
  284. }
  285. }
  286. .picker {
  287. position: fixed;
  288. left: 0;
  289. top: 0;
  290. z-index: 1;
  291. width: 100%;
  292. height: 100vh;
  293. background-color: var(--dark-charcoal);
  294. display: flex;
  295. align-items: center;
  296. justify-content: center;
  297. .container {
  298. width: 100%;
  299. height: 90%;
  300. overflow: auto;
  301. padding: 10% 0;
  302. ul {
  303. list-style: none;
  304. padding: 0;
  305. margin: 0;
  306. color: var(--white);
  307. width: 100%;
  308. display: block;
  309. }
  310. li {
  311. height: 60px;
  312. display: flex;
  313. align-items: center;
  314. justify-content: flex-start;
  315. width: 100%;
  316. padding: 0 10%;
  317. font-size: 14px;
  318. opacity: 0.5;
  319. transition: box-shadow 0.3s, opacity 0.3s;
  320. &.active {
  321. box-shadow: 0px 0px 10px black;
  322. opacity: 1;
  323. }
  324. ion-icon {
  325. font-size: 20px;
  326. margin-right: 20px;
  327. }
  328. }
  329. }
  330. }