index.styl 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. // Стили для уведомлений
  2. .notification-container
  3. position: fixed
  4. top: var(--spacing-xl)
  5. right: var(--spacing-xl)
  6. z-index: var(--z-notification)
  7. display: flex
  8. flex-direction: column
  9. gap: var(--spacing-sm)
  10. @media (max-width: 768px)
  11. top: var(--spacing-md)
  12. right: var(--spacing-md)
  13. left: var(--spacing-md)
  14. .notification
  15. position: relative
  16. padding: var(--spacing-md) var(--spacing-lg)
  17. border-radius: var(--border-radius)
  18. box-shadow: var(--shadow-lg)
  19. background: var(--color-white)
  20. color: var(--color-dark)
  21. border-left: 4px solid var(--color-primary)
  22. min-width: 300px
  23. max-width: 400px
  24. animation: notificationSlideIn 0.3s ease
  25. display: flex
  26. align-items: flex-start
  27. justify-content: space-between
  28. gap: var(--spacing-md)
  29. &.notification-leave-active
  30. animation: notificationSlideOut 0.3s ease
  31. // Типы уведомлений
  32. &.notification--info
  33. border-left-color: var(--color-primary)
  34. background: linear-gradient(135deg, var(--color-white) 0%, var(--color-primary-10) 100%)
  35. &.notification--success
  36. border-left-color: var(--color-success)
  37. background: linear-gradient(135deg, var(--color-white) 0%, rgba(40, 167, 69, 0.1) 100%)
  38. &.notification--error
  39. border-left-color: var(--color-danger)
  40. background: linear-gradient(135deg, var(--color-white) 0%, rgba(220, 53, 69, 0.1) 100%)
  41. &.notification--warning
  42. border-left-color: var(--color-warning)
  43. background: linear-gradient(135deg, var(--color-white) 0%, rgba(255, 193, 7, 0.1) 100%)
  44. // Контент уведомления
  45. .notification__content
  46. flex: 1
  47. display: flex
  48. flex-direction: column
  49. gap: var(--spacing-xs)
  50. .notification__message
  51. font-size: var(--font-size-base)
  52. line-height: var(--line-height-tight)
  53. margin: 0
  54. .notification__timestamp
  55. font-size: var(--font-size-xs)
  56. color: var(--color-secondary)
  57. opacity: 0.8
  58. .notification__close
  59. background: none
  60. border: none
  61. font-size: var(--font-size-lg)
  62. cursor: pointer
  63. color: var(--color-secondary)
  64. padding: var(--spacing-xs)
  65. border-radius: var(--border-radius-sm)
  66. transition: var(--transition-fast)
  67. flex-shrink: 0
  68. width: 24px
  69. height: 24px
  70. display: flex
  71. align-items: center
  72. justify-content: center
  73. &:hover
  74. background: var(--color-dark-10)
  75. color: var(--color-dark)
  76. // Темная тема
  77. .theme-dark
  78. .notification
  79. background: var(--color-dark)
  80. color: var(--color-light)
  81. border-left-color: var(--color-light-50)
  82. &.notification--info
  83. background: linear-gradient(135deg, var(--color-dark) 0%, var(--color-primary-20) 100%)
  84. &.notification--success
  85. background: linear-gradient(135deg, var(--color-dark) 0%, rgba(40, 167, 69, 0.2) 100%)
  86. &.notification--error
  87. background: linear-gradient(135deg, var(--color-dark) 0%, rgba(220, 53, 69, 0.2) 100%)
  88. &.notification--warning
  89. background: linear-gradient(135deg, var(--color-dark) 0%, rgba(255, 193, 7, 0.2) 100%)
  90. .notification__close
  91. color: var(--color-light-50)
  92. &:hover
  93. background: var(--color-light-10)
  94. color: var(--color-light)
  95. // Анимации
  96. @keyframes notificationSlideIn
  97. from
  98. transform: translateX(100%)
  99. opacity: 0
  100. to
  101. transform: translateX(0)
  102. opacity: 1
  103. @keyframes notificationSlideOut
  104. from
  105. transform: translateX(0)
  106. opacity: 1
  107. to
  108. transform: translateX(100%)
  109. opacity: 0
  110. // Адаптивность
  111. @media (max-width: 480px)
  112. .notification
  113. min-width: auto
  114. max-width: none
  115. width: 100%
  116. .notification-container
  117. right: var(--spacing-xs)
  118. left: var(--spacing-xs)