animations.css 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. /*
  2. * Tailwind v4 animation tokens + the @keyframes they reference.
  3. *
  4. * Each --animate-* token in @theme generates an `animate-{name}` utility.
  5. * Keyframes live outside @theme since they're @-rules, not design tokens.
  6. *
  7. * Migrated from packages/config/ui.config.js (theme.extend.keyframes /
  8. * theme.extend.animation) and packages/config/tailwind.config.js
  9. * (theme.extend.keyframes / theme.extend.animation).
  10. */
  11. @theme {
  12. --animate-fade-in: fadeIn 300ms both;
  13. --animate-fade-out: fadeOut 300ms both;
  14. /* may be unused — verify before pruning */
  15. --animate-dropdown-content-show: overlayContentShow 100ms cubic-bezier(0.16, 1, 0.3, 1);
  16. /* may be unused — verify before pruning */
  17. --animate-dropdown-content-hide: overlayContentHide 100ms cubic-bezier(0.16, 1, 0.3, 1);
  18. --animate-overlay-show: overlayContentShow 300ms cubic-bezier(0.16, 1, 0.3, 1);
  19. --animate-overlay-hide: overlayContentHide 300ms cubic-bezier(0.16, 1, 0.3, 1);
  20. /* may be unused — verify before pruning */
  21. --animate-fade-in-overlay-bg: fadeInOverlayBg 300ms;
  22. /* may be unused — verify before pruning */
  23. --animate-fade-out-overlay-bg: fadeOutOverlayBg 300ms;
  24. --animate-slide-down: slideDown 300ms cubic-bezier(0.87, 0, 0.13, 1);
  25. --animate-slide-up: slideUp 300ms cubic-bezier(0.87, 0, 0.13, 1);
  26. --animate-slide-down-normal: slideDownNormal 300ms cubic-bezier(0.87, 0, 0.13, 1);
  27. --animate-slide-up-normal: slideUpNormal 300ms cubic-bezier(0.87, 0, 0.13, 1);
  28. /* may be unused — verify before pruning */
  29. --animate-panel-slide-left-out: panelSlideLeftOut 200ms cubic-bezier(0.87, 0, 0.13, 1);
  30. /* may be unused — verify before pruning */
  31. --animate-panel-slide-left-in: panelSlideLeftIn 250ms cubic-bezier(0.87, 0, 0.13, 1);
  32. /* may be unused — verify before pruning */
  33. --animate-panel-slide-right-out: panelSlideRightOut 200ms cubic-bezier(0.87, 0, 0.13, 1);
  34. /* may be unused — verify before pruning */
  35. --animate-panel-slide-right-in: panelSlideRightIn 250ms cubic-bezier(0.87, 0, 0.13, 1);
  36. --animate-line-loading: lineLoading 1.8s infinite;
  37. --animate-line-loading-slower: lineLoading 2.3s infinite;
  38. /* may be unused — verify before pruning */
  39. --animate-dropdownFadeIn: dropdownFadeIn 0.1s ease-out;
  40. /* may be unused — verify before pruning */
  41. --animate-dropdownFadeOut: dropdownFadeOut 0.1s ease-out;
  42. --animate-flash-code: flash-code 1s forwards;
  43. --animate-flash-code-slow: flash-code 2s forwards;
  44. --animate-accordion-down: accordion-down 0.15s ease-out;
  45. --animate-accordion-up: accordion-up 0.15s ease-out;
  46. --animate-collapsible-down: collapsible-down 0.1s ease-out;
  47. --animate-collapsible-up: collapsible-up 0.1s ease-out;
  48. }
  49. @keyframes fadeIn {
  50. 0% {
  51. transform: scale(0.95);
  52. opacity: 0;
  53. }
  54. 100% {
  55. transform: scale(1);
  56. opacity: 1;
  57. }
  58. }
  59. @keyframes fadeOut {
  60. 0% {
  61. transform: scale(1);
  62. opacity: 1;
  63. }
  64. 100% {
  65. transform: scale(0.95);
  66. opacity: 0;
  67. }
  68. }
  69. @keyframes overlayContentShow {
  70. 0% {
  71. opacity: 0;
  72. transform: translate(0%, -2%) scale(1);
  73. }
  74. 100% {
  75. opacity: 1;
  76. transform: translate(0%, 0%) scale(1);
  77. }
  78. }
  79. @keyframes overlayContentHide {
  80. 0% {
  81. opacity: 1;
  82. transform: translate(0%, 0%) scale(1);
  83. }
  84. 100% {
  85. opacity: 0;
  86. transform: translate(0%, -2%) scale(1);
  87. }
  88. }
  89. @keyframes dropdownFadeIn {
  90. 0% {
  91. transform: scale(0.95);
  92. opacity: 0;
  93. }
  94. 100% {
  95. transform: scale(1);
  96. opacity: 1;
  97. }
  98. }
  99. @keyframes dropdownFadeOut {
  100. 0% {
  101. transform: scale(1);
  102. opacity: 1;
  103. }
  104. 100% {
  105. transform: scale(0.95);
  106. opacity: 0;
  107. }
  108. }
  109. @keyframes fadeInOverlayBg {
  110. 0% {
  111. opacity: 0;
  112. }
  113. 100% {
  114. opacity: 0.75;
  115. }
  116. }
  117. @keyframes fadeOutOverlayBg {
  118. 0% {
  119. opacity: 0.75;
  120. }
  121. 100% {
  122. opacity: 0;
  123. }
  124. }
  125. @keyframes slideDown {
  126. 0% {
  127. height: 0;
  128. opacity: 0;
  129. }
  130. 100% {
  131. height: var(--radix-accordion-content-height);
  132. opacity: 1;
  133. }
  134. }
  135. @keyframes slideUp {
  136. 0% {
  137. height: var(--radix-accordion-content-height);
  138. opacity: 1;
  139. }
  140. 100% {
  141. height: 0;
  142. opacity: 0;
  143. }
  144. }
  145. @keyframes slideDownNormal {
  146. 0% {
  147. height: 0;
  148. opacity: 0;
  149. }
  150. 100% {
  151. height: inherit;
  152. opacity: 1;
  153. }
  154. }
  155. @keyframes slideUpNormal {
  156. 0% {
  157. height: inherit;
  158. opacity: 1;
  159. }
  160. 100% {
  161. height: 0;
  162. opacity: 0;
  163. }
  164. }
  165. @keyframes panelSlideLeftOut {
  166. 0% {
  167. transform: translateX(-100%);
  168. opacity: 0;
  169. }
  170. 100% {
  171. transform: translateX(0);
  172. opacity: 1;
  173. }
  174. }
  175. @keyframes panelSlideLeftIn {
  176. 0% {
  177. transform: translateX(0);
  178. opacity: 1;
  179. }
  180. 100% {
  181. transform: translateX(-100%);
  182. opacity: 0;
  183. }
  184. }
  185. @keyframes panelSlideRightOut {
  186. 0% {
  187. transform: translateX(100%);
  188. opacity: 0;
  189. }
  190. 100% {
  191. transform: translateX(0);
  192. opacity: 1;
  193. }
  194. }
  195. @keyframes panelSlideRightIn {
  196. 0% {
  197. transform: translateX(0);
  198. opacity: 1;
  199. }
  200. 100% {
  201. transform: translateX(100%);
  202. opacity: 0;
  203. }
  204. }
  205. @keyframes lineLoading {
  206. 0% {
  207. margin-left: -10%;
  208. width: 80px;
  209. }
  210. 25% {
  211. width: 240px;
  212. }
  213. 50% {
  214. margin-left: 100%;
  215. width: 80px;
  216. }
  217. 75% {
  218. width: 240px;
  219. }
  220. 100% {
  221. margin-left: -10%;
  222. width: 80px;
  223. }
  224. }
  225. @keyframes flash-code {
  226. 0% {
  227. background-color: rgba(63, 207, 142, 0.1);
  228. }
  229. 100% {
  230. background-color: transparent;
  231. }
  232. }
  233. @keyframes accordion-down {
  234. from {
  235. height: 0;
  236. }
  237. to {
  238. height: var(--radix-accordion-content-height);
  239. }
  240. }
  241. @keyframes accordion-up {
  242. from {
  243. height: var(--radix-accordion-content-height);
  244. }
  245. to {
  246. height: 0;
  247. }
  248. }
  249. @keyframes collapsible-down {
  250. from {
  251. height: 0;
  252. }
  253. to {
  254. height: var(--radix-collapsible-content-height);
  255. }
  256. }
  257. @keyframes collapsible-up {
  258. from {
  259. height: var(--radix-collapsible-content-height);
  260. }
  261. to {
  262. height: 0;
  263. }
  264. }