notification.scss 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. @use 'mixins/mixins' as *;
  2. @use 'mixins/var' as *;
  3. @use 'common/var' as *;
  4. @include b(notification) {
  5. @include set-component-css-var('notification', $notification);
  6. }
  7. @include b(notification) {
  8. display: flex;
  9. width: getCssVar('notification-width');
  10. padding: getCssVar('notification-padding');
  11. border-radius: getCssVar('notification-radius');
  12. box-sizing: border-box;
  13. border: 1px solid getCssVar('notification-border-color');
  14. position: fixed;
  15. background-color: getCssVar('bg-color', 'overlay');
  16. box-shadow: getCssVar('notification-shadow');
  17. transition: opacity getCssVar('transition-duration'),
  18. transform getCssVar('transition-duration'),
  19. left getCssVar('transition-duration'),
  20. right getCssVar('transition-duration'), top 0.4s,
  21. bottom getCssVar('transition-duration');
  22. overflow-wrap: anywhere;
  23. overflow: hidden;
  24. z-index: 9999;
  25. &.right {
  26. right: 16px;
  27. }
  28. &.left {
  29. left: 16px;
  30. }
  31. @include e(group) {
  32. margin-left: getCssVar('notification-group-margin-left');
  33. margin-right: getCssVar('notification-group-margin-right');
  34. }
  35. @include e(title) {
  36. font-weight: bold;
  37. font-size: getCssVar('notification-title-font-size');
  38. line-height: getCssVar('notification-icon-size');
  39. color: getCssVar('notification-title-color');
  40. margin: 0;
  41. }
  42. @include e(content) {
  43. font-size: getCssVar('notification-content-font-size');
  44. line-height: 24px;
  45. margin: 6px 0 0;
  46. color: getCssVar('notification-content-color');
  47. text-align: justify;
  48. p {
  49. margin: 0;
  50. }
  51. }
  52. & .#{$namespace}-notification__icon {
  53. height: getCssVar('notification-icon-size');
  54. width: getCssVar('notification-icon-size');
  55. font-size: getCssVar('notification-icon-size');
  56. }
  57. & .#{$namespace}-notification__closeBtn {
  58. position: absolute;
  59. top: 18px;
  60. right: 15px;
  61. cursor: pointer;
  62. color: getCssVar('notification-close-color');
  63. font-size: getCssVar('notification-close-font-size');
  64. &:hover {
  65. color: getCssVar('notification-close-hover-color');
  66. }
  67. }
  68. @each $type in (success, info, warning, error) {
  69. & .#{$namespace}-notification--#{$type} {
  70. @include css-var-from-global(
  71. ('notification', 'icon-color'),
  72. ('color', $type)
  73. );
  74. color: getCssVar('notification-icon-color');
  75. }
  76. }
  77. }
  78. .#{$namespace}-notification-fade-enter-from {
  79. &.right {
  80. right: 0;
  81. transform: translateX(100%);
  82. }
  83. &.left {
  84. left: 0;
  85. transform: translateX(-100%);
  86. }
  87. }
  88. .#{$namespace}-notification-fade-leave-to {
  89. opacity: 0;
  90. }