Angular LMS app
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.
Dieses Repo ist archiviert. Du kannst Dateien sehen und es klonen, kannst aber nicht pushen oder Issues/Pull-Requests öffnen.
 
 
 
 

915 Zeilen
19 KiB

  1. .page {
  2. background-color: var(--black);
  3. height: 100vh;
  4. overflow: auto;
  5. }
  6. .nav-header {
  7. background-color: var(--ash-black);
  8. display: flex;
  9. align-items: center;
  10. padding: 0 5%;
  11. height: 60px;
  12. position: sticky;
  13. position: -webkit-sticky;
  14. top: 0;
  15. z-index: 1;
  16. box-shadow: 0px 0px 5px var(--black);
  17. button {
  18. border: 0px;
  19. background-color: transparent;
  20. .icon {
  21. width: 16px;
  22. height: 16px;
  23. fill: var(--light-grey);
  24. }
  25. &.list-button {
  26. margin-left: auto;
  27. .icon {
  28. width: 20px;
  29. height: 20px;
  30. fill: white;
  31. }
  32. }
  33. }
  34. h5 {
  35. font-size: 16px;
  36. color: white;
  37. font-weight: 400;
  38. margin-left: 20px;
  39. letter-spacing: 1px;
  40. .icon {
  41. width: 15px;
  42. height: 15px;
  43. fill: white;
  44. margin-right: 3px;
  45. vertical-align: middle;
  46. position: relative;
  47. top: -1px;
  48. }
  49. }
  50. }
  51. .question-status {
  52. background-color: var(--ash-black);
  53. padding: 10px 0;
  54. display: block;
  55. width: 100%;
  56. overflow: auto;
  57. position: relative;
  58. .container {
  59. width: 100%;
  60. padding: 0 5%;
  61. white-space: nowrap;
  62. display: flex;
  63. flex-wrap: wrap;
  64. align-items: center;
  65. overflow: auto;
  66. }
  67. &::before {
  68. content: '';
  69. position: absolute;
  70. left: 0;
  71. top: 0;
  72. width: 10px;
  73. height: 100%;
  74. box-shadow: 10px 0px 10px 10px var(--ash-black);
  75. opacity: 0.8;
  76. background-color: var(--ash-black);
  77. }
  78. &::after {
  79. content: '';
  80. position: absolute;
  81. right: 0;
  82. top: 0;
  83. width: 10px;
  84. height: 100%;
  85. box-shadow: -10px 0px 10px 10px var(--ash-black);
  86. opacity: 0.8;
  87. background-color: var(--ash-black);
  88. }
  89. .question-number {
  90. width: 17px;
  91. height: 17px;
  92. background-color: var(--dark-grey);
  93. color: white;
  94. margin-right: 7px;
  95. border-radius: 50%;
  96. overflow: hidden;
  97. border: 1px solid var(--dark-grey);
  98. box-sizing: content-box;
  99. span {
  100. display: flex;
  101. width: 100%;
  102. height: 100%;
  103. align-items: center;
  104. justify-content: center;
  105. }
  106. label {
  107. font-size: 10px;
  108. }
  109. .icon {
  110. width: 100%;
  111. height: 100%;
  112. fill: white;
  113. display: none;
  114. }
  115. &.current {
  116. border-color: var(--light-grey);
  117. background-color: var(--black);
  118. &.correct {
  119. background-color: var(--green);
  120. .correct-icon {
  121. fill: var(--black);
  122. }
  123. }
  124. &.wrong {
  125. background-color: var(--danger-dark);
  126. .wrong-icon {
  127. fill: var(--black);
  128. }
  129. }
  130. .icon {
  131. fill: white;
  132. }
  133. }
  134. &.correct {
  135. border-color: var(--green);
  136. background-color: white;
  137. label {
  138. display: none;
  139. }
  140. .correct-icon {
  141. fill: var(--green);
  142. display: block;
  143. }
  144. }
  145. &.wrong {
  146. border-color: var(--danger-dark);
  147. background-color: white;
  148. label {
  149. display: none;
  150. }
  151. .wrong-icon {
  152. fill: var(--danger-dark);
  153. display: block;
  154. }
  155. }
  156. }
  157. }
  158. ngx-siema-slide {
  159. display: block;
  160. padding-bottom: 60px;
  161. .question {
  162. line-height: 1.5;
  163. color: white;
  164. font-size: 13px;
  165. background-color: var(--ash-black);
  166. padding: 0 5% 15px 5%;
  167. }
  168. .timer-holder {
  169. background-color: var(--black);
  170. height: 70px;
  171. display: flex;
  172. align-items: flex-end;
  173. justify-content: center;
  174. overflow: hidden;
  175. position: relative;
  176. &::before {
  177. content: '';
  178. width: 200vw;
  179. height: 100vw;
  180. border-radius: 50%;
  181. position: absolute;
  182. bottom: 25px;
  183. background-color: var(--ash-black);
  184. }
  185. .timer {
  186. width: 60px;
  187. height: 60px;
  188. border-radius: 50%;
  189. background-color: white;
  190. display: flex;
  191. align-items: center;
  192. justify-content: center;
  193. font-size: 12px;
  194. font-weight: 600;
  195. position: relative;
  196. color: var(--ash-black);
  197. svg {
  198. position: absolute;
  199. left: 0;
  200. top: 0;
  201. width: 100%;
  202. height: 100%;
  203. transform: rotate(-90deg);
  204. #progress {
  205. stroke: var(--green);
  206. }
  207. }
  208. }
  209. }
  210. }
  211. .option-list {
  212. width: 90%;
  213. margin: 20px auto;
  214. list-style: none;
  215. li {
  216. display: flex;
  217. width: 100%;
  218. border: 1px solid var(--light-grey);
  219. color: white;
  220. border-radius: 15px;
  221. align-items: center;
  222. min-height: 50px;
  223. margin: 20px auto;
  224. justify-content: space-between;
  225. padding: 0 15px;
  226. label {
  227. font-size: 14px;
  228. }
  229. .icon-holder {
  230. width: 23px;
  231. height: 23px;
  232. border: 1px solid var(--light-grey);
  233. border-radius: 50%;
  234. overflow: hidden;
  235. display: flex;
  236. align-items: center;
  237. justify-content: center;
  238. .icon {
  239. width: 100%;
  240. height: 100%;
  241. fill: white;
  242. display: none;
  243. }
  244. }
  245. &.correct, &.show-correct {
  246. box-shadow: 0px 0px 5px var(--green);
  247. border-color: var(--green);
  248. label {
  249. color: var(--green);
  250. }
  251. .icon-holder {
  252. border-color: var(--green);
  253. background-color: white;
  254. .correct-icon {
  255. fill: var(--green);
  256. display: block;
  257. }
  258. }
  259. }
  260. &.wrong {
  261. box-shadow: 0px 0px 5px var(--danger-dark);
  262. border-color: var(--danger-dark);
  263. label {
  264. color: var(--danger-dark);
  265. }
  266. .icon-holder {
  267. border-color: var(--danger-dark);
  268. background-color: white;
  269. .wrong-icon {
  270. fill: var(--danger-dark);
  271. display: block;
  272. }
  273. }
  274. }
  275. }
  276. }
  277. .action-buttons {
  278. display: flex;
  279. width: 100%;
  280. position: fixed;
  281. align-items: stretch;
  282. bottom: 0;
  283. z-index: 1;
  284. background-color: var(--ash-black);
  285. padding: 10px;
  286. border-top-left-radius: 7px;
  287. border-top-right-radius: 7px;
  288. overflow: hidden;
  289. button {
  290. width: 48%;
  291. display: block;
  292. border-radius: 7px;
  293. border: 0px;
  294. height: 40px;
  295. background-color: transparent;
  296. text-transform: uppercase;
  297. letter-spacing: 1px;
  298. font-weight: 500;
  299. font-size: 14px;
  300. &.next-button {
  301. background-color: var(--teal);
  302. color: white;
  303. margin-left: auto;
  304. &.skip {
  305. background-color: var(--dark-grey);
  306. }
  307. }
  308. &.prev-button {
  309. border: 2px solid var(--teal);
  310. color: var(--teal);
  311. }
  312. }
  313. }
  314. .upfold {
  315. overflow: hidden;
  316. padding: 0px 5% 20px;
  317. height: 50vh;
  318. display: flex;
  319. align-items: flex-end;
  320. justify-content: center;
  321. background-color: var(--ash-black);
  322. .upfold-container {
  323. width: 100%;
  324. }
  325. figure {
  326. display: block;
  327. width: 100%;
  328. img {
  329. width: 150px;
  330. height: 150px;
  331. display: block;
  332. margin-left: auto;
  333. }
  334. }
  335. header {
  336. color: white;
  337. margin-top: -60px;
  338. img {
  339. display: block;
  340. width: 50px;
  341. height: 50px;
  342. margin: 0 0 10px;
  343. }
  344. }
  345. h3 {
  346. font-size: 22px;
  347. font-weight: 500;
  348. margin: 5px auto;
  349. }
  350. h2 {
  351. font-size: 30px;
  352. font-weight: 500;
  353. margin: 5px auto;
  354. }
  355. p {
  356. font-size: 16px;
  357. color: var(--light-grey);
  358. }
  359. }
  360. .quiz-details-holder {
  361. background-color: var(--ash-black);
  362. height: calc(50vh - 60px);
  363. }
  364. .quiz-details {
  365. height: 100%;
  366. width: 100%;
  367. padding: 25px 5% 80px 5%;
  368. background-color: white;
  369. border-top-right-radius: 30px;
  370. border-top-left-radius: 30px;
  371. position: relative;
  372. header {
  373. margin-bottom: 10px;
  374. p {
  375. font-size: 14px;
  376. margin: 0;
  377. color: var(--dark-grey);
  378. font-weight: 400;
  379. }
  380. h3 {
  381. font-size: 22px;
  382. font-weight: 500;
  383. margin: 5px auto;
  384. color: var(--teal-green);
  385. line-height: 1.1;
  386. }
  387. }
  388. .people-count {
  389. font-size: 14px;
  390. color: var(--danger-dark);
  391. }
  392. .play-button {
  393. display: block;
  394. position: absolute;
  395. bottom: 10px;
  396. left: 5%;
  397. width: 90%;
  398. border-radius: 30px;
  399. height: 45px;
  400. color: white;
  401. background: linear-gradient(180deg, var(--teal), var(--teal-green));
  402. border: 0px;
  403. font-size: 14px;
  404. letter-spacing: 1px;
  405. font-weight: 500;
  406. margin: 15px auto;
  407. }
  408. }
  409. .quiz-list-slideup {
  410. width: 100%;
  411. background-color: white;
  412. overflow: hidden;
  413. border-top-left-radius: 30px;
  414. border-top-right-radius: 30px;
  415. position: fixed;
  416. z-index: 1;
  417. bottom: 0;
  418. left: 0;
  419. transform: translateY(100vh);
  420. transition: transform 0.5s;
  421. &.active {
  422. transform: translateY(0vh);
  423. }
  424. &::before {
  425. content: '';
  426. position: absolute;
  427. width: 60px;
  428. height: 4px;
  429. border-radius: 30px;
  430. background-color: var(--light-grey);
  431. left: calc(50% - 30px);
  432. top: 20px;
  433. }
  434. header {
  435. color: var(--dark-grey);
  436. font-size: 16px;
  437. font-weight: 700;
  438. margin: 40px auto 10px;
  439. padding: 0 5%;
  440. display: flex;
  441. align-items: center;
  442. justify-content: space-between;
  443. button {
  444. border: 0px;
  445. background-color: var(--light-grey);
  446. border-radius: 5px;
  447. width: 30px;
  448. height: 30px;
  449. .icon {
  450. width: 10px;
  451. height: 10px;
  452. fill: white;
  453. }
  454. }
  455. }
  456. ul {
  457. list-style: none;
  458. max-height: 60vh;
  459. overflow: auto;
  460. padding-bottom: 40px;
  461. }
  462. li {
  463. display: flex;
  464. width: 90%;
  465. align-items: center;
  466. justify-content: space-between;
  467. margin: 0px auto;
  468. padding: 10px 0;
  469. position: relative;
  470. overflow: visible;
  471. .icon {
  472. z-index: 1;
  473. position: relative;
  474. width: 20px;
  475. height: 20px;
  476. fill: var(--light-grey);
  477. background-color: white;
  478. border-radius: 50%;
  479. display: none;
  480. }
  481. &.correct {
  482. .icon.correct-icon {
  483. fill: var(--green);
  484. display: block;
  485. }
  486. &::before {
  487. border-color: var(--green);
  488. }
  489. }
  490. &.wrong {
  491. .icon.wrong-icon {
  492. fill: var(--danger);
  493. display: block;
  494. }
  495. &::before {
  496. border-color: var(--danger);
  497. }
  498. }
  499. &.none {
  500. .icon.progress-icon {
  501. fill: var(--light-grey);
  502. display: block;
  503. }
  504. &::before {
  505. border-color: var(--light-grey);
  506. }
  507. }
  508. &.current {
  509. .icon.progress-icon {
  510. fill: var(--teal);
  511. animation: ripple 1.5s infinite;
  512. display: block;
  513. }
  514. &::before {
  515. border-color: var(--teal);
  516. }
  517. }
  518. &:last-child::before {
  519. display: none;
  520. }
  521. @keyframes ripple {
  522. 50% {
  523. box-shadow: 0px 0px 1px 10px transparent;
  524. }
  525. 0% {
  526. box-shadow: 0px 0px 1px 0px var(--teal);
  527. }
  528. }
  529. &::before {
  530. content: '';
  531. position: absolute;
  532. left: 8px;
  533. top: 50%;
  534. height: 100%;
  535. width: 1px;
  536. border-right: 1px dashed var(--light-grey);
  537. }
  538. .content-holder {
  539. width: calc(100% - 40px);
  540. display: flex;
  541. padding: 15px 15px;
  542. align-items: center;
  543. box-shadow: 1px 1px 5px var(--light-grey);
  544. border-radius: 7px;
  545. margin-left: auto;
  546. overflow: hidden;
  547. .content {
  548. flex-grow: 1;
  549. max-width: 100%;
  550. }
  551. .status {
  552. font-size: 14px;
  553. text-align: right;
  554. margin-left: auto;
  555. }
  556. }
  557. label {
  558. display: block;
  559. font-size: 14px;
  560. color: var(--dark-grey);
  561. overflow: hidden;
  562. white-space: nowrap;
  563. text-overflow: ellipsis;
  564. max-width: 100%;
  565. }
  566. p {
  567. font-size: 12px;
  568. color: var(--light-grey);
  569. white-space: nowrap;
  570. overflow: hidden;
  571. text-overflow: ellipsis;
  572. }
  573. }
  574. }
  575. .end-upfold {
  576. background-image: url('https://mini.webtrigon.com/static-v1.1.0/home/images/png/pattern.png');
  577. background-size: cover;
  578. background-position: center;
  579. background-color: var(--ash-black);
  580. height: 50vh;
  581. display: flex;
  582. align-items: center;
  583. justify-content: center;
  584. }
  585. .end-upfold-container {
  586. width: 100%;
  587. .subject {
  588. color: var(--teal-green);
  589. letter-spacing: 1px;
  590. width: 90%;
  591. overflow: hidden;
  592. white-space: nowrap;
  593. overflow: hidden;
  594. text-overflow: ellipsis;
  595. text-align: center;
  596. padding: 10px 20px;
  597. border-radius: 40px;
  598. position: relative;
  599. z-index: 0;
  600. margin: 0 auto 20px;
  601. font-size: 14px;
  602. font-weight: 400;
  603. &::before {
  604. content: '';
  605. position: absolute;
  606. left: 0;
  607. top: 0;
  608. width: 100%;
  609. height: 100%;
  610. background-color: var(--black);
  611. opacity: 0.6;
  612. }
  613. span {
  614. z-index: 1;
  615. position: relative;
  616. }
  617. }
  618. .rank-holder {
  619. width: 130px;
  620. height: 130px;
  621. margin: 25px auto 20px;
  622. border-radius: 50%;
  623. position: relative;
  624. display: flex;
  625. align-items: center;
  626. justify-content: center;
  627. &::before {
  628. content: '';
  629. position: absolute;
  630. left: 10%;
  631. top: 10%;
  632. width: 80%;
  633. height: 80%;
  634. background-color: var(--dark-grey);
  635. opacity: 0.5;
  636. z-index: 1;
  637. border-radius: 50%;
  638. }
  639. &::after {
  640. content: '';
  641. position: absolute;
  642. left: 0;
  643. top: 0;
  644. width: 100%;
  645. height: 100%;
  646. background-color: var(--black);
  647. opacity: 0.7;
  648. z-index: 0;
  649. border-radius: 50%;
  650. }
  651. label, span {
  652. z-index: 2;
  653. }
  654. label {
  655. color: white;
  656. position: absolute;
  657. top: -5px;
  658. left: calc(50% - 50px);
  659. width: 100px;
  660. height: 30px;
  661. display: flex;
  662. align-items: center;
  663. justify-content: center;
  664. border-radius: 30px;
  665. font-size: 14px;
  666. text-align: center;
  667. background-color: var(--teal-green);
  668. }
  669. span {
  670. font-weight: 500;
  671. color: white;
  672. font-size: 60px;
  673. }
  674. }
  675. p {
  676. font-size: 16px;
  677. color: white;
  678. margin-bottom: 20px;
  679. text-align: center;
  680. }
  681. .calculated-progress {
  682. height: 15px;
  683. width: 70%;
  684. margin: 0 auto;
  685. border-radius: 30px;
  686. overflow: hidden;
  687. position: relative;
  688. display: flex;
  689. align-items: stretch;
  690. justify-content: flex-start;
  691. background-color: white;
  692. .correct {
  693. background-color: var(--green);
  694. }
  695. .wrong {
  696. background-color: var(--danger-dark);
  697. }
  698. .none {
  699. background-color: rgba(orange, 0.8);
  700. }
  701. }
  702. }
  703. .answers-report-container {
  704. background-color: var(--ash-black);
  705. height: 50vh;
  706. }
  707. .answers-report {
  708. background-color: white;
  709. border-top-right-radius: 30px;
  710. border-top-left-radius: 30px;
  711. height: 100%;
  712. padding: 10px 0 20px;
  713. position: relative;
  714. ul {
  715. list-style: none;
  716. width: 100%;
  717. padding: 0 5%;
  718. margin: 0 auto;
  719. }
  720. li {
  721. border: 1px solid #cecece;
  722. border-radius: 5px;
  723. margin: 15px auto;
  724. &.correct {
  725. .count {
  726. color: var(--green);
  727. }
  728. }
  729. &.wrong {
  730. .count {
  731. color: var(--danger-dark);
  732. }
  733. }
  734. &.skipped {
  735. .count {
  736. color: rgba(orange, 0.8);
  737. }
  738. }
  739. }
  740. .content {
  741. display: flex;
  742. width: 100%;
  743. height: 40px;
  744. align-items: center;
  745. padding: 0 5%;
  746. justify-content: space-between;
  747. }
  748. label {
  749. font-size: 14px;
  750. color: var(--dark-grey);
  751. font-weight: 500;
  752. }
  753. .count {
  754. font-weight: 600;
  755. font-size: 16px;
  756. margin-left: auto;
  757. span {
  758. font-size: 13px;
  759. }
  760. }
  761. .icon {
  762. width: 12px;
  763. height: 12px;
  764. fill: var(--light-grey);
  765. transform: rotate(-45deg);
  766. }
  767. .answer-action-buttons {
  768. position: absolute;
  769. width: 100%;
  770. bottom: 20px;
  771. left: 0;
  772. padding: 0 5%;
  773. display: flex;
  774. align-items: stretch;
  775. justify-content: space-between;
  776. button {
  777. width: 48%;
  778. border: 0px;
  779. background-color: var(--light-grey);
  780. color: white;
  781. font-size: 14px;
  782. height: 40px;
  783. border-radius: 5px;
  784. &:last-child {
  785. background-color: var(--teal-green);
  786. }
  787. }
  788. }
  789. }