You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.5 KiB

3 months ago
  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: break-word;
  23. overflow: hidden;
  24. z-index: 9999;
  25. &.right {
  26. right: 16px;
  27. }
  28. &.left {
  29. left: 16px;
  30. }
  31. @include e(group) {
  32. flex: 1;
  33. min-width: 0;
  34. margin-left: getCssVar('notification-group-margin-left');
  35. margin-right: getCssVar('notification-group-margin-right');
  36. }
  37. @include e(title) {
  38. font-weight: bold;
  39. font-size: getCssVar('notification-title-font-size');
  40. line-height: getCssVar('notification-icon-size');
  41. color: getCssVar('notification-title-color');
  42. margin: 0;
  43. }
  44. @include e(content) {
  45. font-size: getCssVar('notification-content-font-size');
  46. line-height: 24px;
  47. margin: 6px 0 0;
  48. color: getCssVar('notification-content-color');
  49. p {
  50. margin: 0;
  51. }
  52. }
  53. & .#{$namespace}-notification__icon {
  54. flex-shrink: 0;
  55. height: getCssVar('notification-icon-size');
  56. width: getCssVar('notification-icon-size');
  57. font-size: getCssVar('notification-icon-size');
  58. }
  59. & .#{$namespace}-notification__closeBtn {
  60. position: absolute;
  61. top: 18px;
  62. right: 15px;
  63. cursor: pointer;
  64. color: getCssVar('notification-close-color');
  65. font-size: getCssVar('notification-close-font-size');
  66. &:hover {
  67. color: getCssVar('notification-close-hover-color');
  68. }
  69. }
  70. @each $type in (success, info, warning, error) {
  71. & .#{$namespace}-notification--#{$type} {
  72. @include css-var-from-global(
  73. ('notification', 'icon-color'),
  74. ('color', $type)
  75. );
  76. color: getCssVar('notification-icon-color');
  77. }
  78. }
  79. }
  80. .#{$namespace}-notification-fade-enter-from {
  81. &.right {
  82. right: 0;
  83. transform: translateX(100%);
  84. }
  85. &.left {
  86. left: 0;
  87. transform: translateX(-100%);
  88. }
  89. }
  90. .#{$namespace}-notification-fade-leave-to {
  91. opacity: 0;
  92. }