styles.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import styled, { keyframes } from "styled-components";
  2. const appearAnimation = keyframes`
  3. from { transform: scale(0.6); opacity: 0; }
  4. to { transform: scale(1); opacity: 1; };
  5. `;
  6. export const ModalWrapper = styled.div<{ visible: boolean }>`
  7. position: fixed;
  8. top: 0;
  9. left: 0;
  10. height: 100vh;
  11. width: 100%;
  12. display: ${({ visible }) => (visible ? "flex" : "none")};
  13. justify-content: center;
  14. align-items: center;
  15. background: rgba(0, 0, 0, 0.85);
  16. z-index: 6;
  17. * {
  18. box-sizing: border-box;
  19. }
  20. `;
  21. export const ModalInnerWrapper = styled.div`
  22. min-width: 440px;
  23. width: fit-content;
  24. animation: ${appearAnimation} 220ms ease-in-out;
  25. `;
  26. export const Title = styled.h2`
  27. color: ${({ theme }) => theme.INTERACTIVE_ACTIVE};
  28. font-size: 20px !important;
  29. margin: 0;
  30. `;
  31. export const HeaderWrapper = styled.div`
  32. background: ${({ theme }) => theme.MODAL_BACKGROUND};
  33. padding: 16px;
  34. border-radius: 5px 5px 0 0;
  35. `;
  36. export const ContentWrapper = styled.div`
  37. color: ${({ theme }) => theme.TEXT_NORMAL};
  38. background: ${({ theme }) => theme.MODAL_BACKGROUND};
  39. padding: 16px;
  40. overflow: hidden scroll;
  41. `;
  42. export const ControlsWrapper = styled.div`
  43. display: flex;
  44. flex-direction: row-reverse;
  45. background: ${({ theme }) => theme.BACKGROUND_SECONDARY};
  46. padding: 16px;
  47. border-radius: 0 0 5px 5px;
  48. gap: 10px;
  49. `;