modal.css 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. .modal {
  2. position: fixed;
  3. border-radius: 1.5rem;
  4. margin-block-start: auto;
  5. z-index: 999;
  6. padding: 0;
  7. border: solid 3px hsl(var(--shadow-color));
  8. max-width: calc(100% - 1rem);
  9. box-shadow: var(--shadow-6);
  10. /* https://github.com/argyleink/open-props/blob/main/src/props.shadows.css */
  11. --shadow-color: 200 3% 15%;
  12. --shadow-strength: 5%;
  13. --shadow-6:
  14. 0 -1px 2px 0 hsl(var(--shadow-color) / calc(var(--shadow-strength) + 2%)),
  15. 0 3px 2px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 3%)),
  16. 0 7px 5px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 3%)),
  17. 0 12px 10px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 4%)),
  18. 0 22px 18px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 5%)),
  19. 0 41px 33px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 6%)),
  20. 0 100px 80px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 7%));
  21. }
  22. .modal::backdrop {
  23. background-image: linear-gradient(132deg,
  24. hsl(190deg 14% 14% / 60%),
  25. hsl(210deg 15% 16% / 60%));
  26. cursor: pointer;
  27. -webkit-backdrop-filter: blur(4px);
  28. backdrop-filter: blur(4px);
  29. }
  30. .close-button {
  31. border-radius: 50%;
  32. height: 32px;
  33. max-width: 32px;
  34. margin: 1rem 0 0 0;
  35. padding: 0;
  36. position: relative;
  37. vertical-align: top;
  38. width: 32px;
  39. &:active {
  40. background-color: #000;
  41. transition: none;
  42. }
  43. /* letter X made out of 2 pseudo-elements */
  44. &::before { height: 2px; width: 50%; }
  45. &::after { height: 50%; width: 2px; }
  46. &::before,
  47. &::after {
  48. background-color: currentColor;
  49. content: "";
  50. display: block;
  51. left: 50%;
  52. position: absolute;
  53. top: 50%;
  54. transform: translateX(-50%) translateY(-50%) rotate(45deg);
  55. transform-origin: center center;
  56. }
  57. }
  58. /* */
  59. .qr-code-container {
  60. display: grid;
  61. justify-items: end;
  62. gap: 1rem;
  63. margin-block-end: 3.5rem;
  64. margin-inline: 1rem;
  65. }
  66. #qr-code,
  67. #generator-qr-code {
  68. width: min(500px, 90vw);
  69. max-width: 90%;
  70. margin: auto;
  71. display: block;
  72. image-rendering: pixelated;
  73. }