temp.styl 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. // vue/app/temp.styl
  2. // Глобальные стили и анимации для всего проекта
  3. // Анимации для плавного появления элементов
  4. @keyframes fadeInUp
  5. 0%
  6. opacity: 0
  7. transform: translateY(40px)
  8. 100%
  9. opacity: 1
  10. transform: translateY(0)
  11. @keyframes fadeIn
  12. from
  13. opacity: 0
  14. to
  15. opacity: 1
  16. @keyframes slideIn
  17. from
  18. opacity: 0
  19. transform: translateX(-100px)
  20. to
  21. opacity: 1
  22. transform: translateX(0)
  23. @keyframes pulse
  24. 0%, 100%
  25. opacity: 1
  26. 50%
  27. opacity: 0.7
  28. // Глобальные классы анимаций
  29. .animate-fade-in-up
  30. animation: fadeInUp 0.6s ease-out forwards
  31. .animate-fade-in
  32. animation: fadeIn 0.5s ease-out forwards
  33. .animate-slide-in
  34. animation: slideIn 0.5s ease-out forwards
  35. .animate-pulse-slow
  36. animation: pulse 2s infinite
  37. // Задержки для анимаций
  38. .animation-delay-100
  39. animation-delay: 100ms
  40. .animation-delay-200
  41. animation-delay: 200ms
  42. .animation-delay-300
  43. animation-delay: 300ms
  44. .animation-delay-400
  45. animation-delay: 400ms
  46. // Кастомная полоса прокрутки
  47. ::-webkit-scrollbar
  48. width: 8px
  49. ::-webkit-scrollbar-track
  50. background: #f1f1f1
  51. .dark ::-webkit-scrollbar-track
  52. background: #374151
  53. ::-webkit-scrollbar-thumb
  54. background: #cbd5e0
  55. border-radius: 4px
  56. .dark ::-webkit-scrollbar-thumb
  57. background: #4b5563
  58. // Глобальные утилиты
  59. .card-hover
  60. transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1)
  61. &:hover
  62. transform: translateY(-8px)
  63. box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25)
  64. .line-clamp-2
  65. display: -webkit-box
  66. -webkit-line-clamp: 2
  67. -webkit-box-orient: vertical
  68. overflow: hidden
  69. .line-clamp-3
  70. display: -webkit-box
  71. -webkit-line-clamp: 3
  72. -webkit-box-orient: vertical
  73. overflow: hidden
  74. // Состояния загрузки
  75. .loading-skeleton
  76. background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%)
  77. background-size: 200% 100%
  78. animation: loading 1.5s infinite
  79. .dark .loading-skeleton
  80. background: linear-gradient(90deg, #374151 25%, #4b5563 50%, #374151 75%)
  81. background-size: 200% 100%
  82. @keyframes loading
  83. 0%
  84. background-position: 200% 0
  85. 100%
  86. background-position: -200% 0
  87. // Анимации для Vue переходов
  88. .modal-fade-enter-active,
  89. .modal-fade-leave-active
  90. transition: opacity 0.3s ease
  91. .modal-fade-enter-from,
  92. .modal-fade-leave-to
  93. opacity: 0
  94. .page-slide-enter-active
  95. transition: all 0.3s ease-out
  96. .page-slide-leave-active
  97. transition: all 0.3s ease-in
  98. .page-slide-enter-from
  99. opacity: 0
  100. transform: translateX(30px)
  101. .page-slide-leave-to
  102. opacity: 0
  103. transform: translateX(-30px)