move.gl 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/README.md +185 -11
  2. package/dist/LICENSE +21 -0
  3. package/dist/README.md +212 -0
  4. package/dist/css/move.gl.css +43859 -0
  5. package/dist/css/move.gl.min.css +19 -0
  6. package/dist/js/index.cjs +1171 -0
  7. package/dist/js/index.cjs.map +1 -0
  8. package/dist/js/index.d.cts +184 -0
  9. package/dist/js/index.d.ts +184 -0
  10. package/dist/js/index.mjs +1135 -0
  11. package/dist/js/index.mjs.map +1 -0
  12. package/dist/package.json +68 -0
  13. package/{scss → dist/scss}/classes/_animations.scss +33 -14
  14. package/dist/scss/classes/_controls.scss +314 -0
  15. package/dist/scss/classes/_effects.scss +283 -0
  16. package/dist/scss/classes/_index.scss +28 -0
  17. package/dist/scss/classes/_loaders.scss +779 -0
  18. package/dist/scss/classes/_transforms.scss +138 -0
  19. package/dist/scss/classes/_transitions.scss +264 -0
  20. package/{scss → dist/scss}/dev/_deprecation.scss +6 -3
  21. package/{scss → dist/scss}/dev/_modules.scss +5 -6
  22. package/dist/scss/docs.scss +2344 -0
  23. package/dist/scss/docs.scss.bak +3133 -0
  24. package/dist/scss/functions/_index.scss +22 -0
  25. package/dist/scss/functions/scenes/_bubble.scss +32 -0
  26. package/dist/scss/functions/scenes/_index.scss +21 -0
  27. package/dist/scss/index.scss +17 -0
  28. package/dist/scss/maps/_controls.scss +85 -0
  29. package/dist/scss/maps/_index.scss +22 -0
  30. package/{scss → dist/scss}/mixins/_accessibility.scss +24 -3
  31. package/{scss → dist/scss}/mixins/_boot.scss +4 -4
  32. package/dist/scss/mixins/_index.scss +41 -0
  33. package/dist/scss/mixins/_screensaver.scss +228 -0
  34. package/dist/scss/mixins/_shape.scss +315 -0
  35. package/dist/scss/mixins/animations/_base.scss +403 -0
  36. package/dist/scss/mixins/animations/_beat.scss +137 -0
  37. package/{scss → dist/scss}/mixins/animations/_blink.scss +60 -52
  38. package/dist/scss/mixins/animations/_bounce.scss +306 -0
  39. package/{scss → dist/scss}/mixins/animations/_elastic.scss +26 -22
  40. package/dist/scss/mixins/animations/_fade.scss +393 -0
  41. package/{scss → dist/scss}/mixins/animations/_flash.scss +53 -61
  42. package/dist/scss/mixins/animations/_flip.scss +251 -0
  43. package/{scss → dist/scss}/mixins/animations/_float.scss +47 -32
  44. package/{scss → dist/scss}/mixins/animations/_glow.scss +69 -58
  45. package/dist/scss/mixins/animations/_heartbeat.scss +195 -0
  46. package/dist/scss/mixins/animations/_hinge.scss +118 -0
  47. package/dist/scss/mixins/animations/_index.scss +97 -0
  48. package/dist/scss/mixins/animations/_jello.scss +123 -0
  49. package/dist/scss/mixins/animations/_jiggle.scss +162 -0
  50. package/dist/scss/mixins/animations/_lightspeed.scss +135 -0
  51. package/{scss → dist/scss}/mixins/animations/_nod.scss +57 -65
  52. package/dist/scss/mixins/animations/_pop.scss +153 -0
  53. package/dist/scss/mixins/animations/_pulse.scss +275 -0
  54. package/{scss → dist/scss}/mixins/animations/_ripple.scss +47 -55
  55. package/dist/scss/mixins/animations/_roll.scss +217 -0
  56. package/dist/scss/mixins/animations/_rotate.scss +728 -0
  57. package/dist/scss/mixins/animations/_rubber.scss +115 -0
  58. package/dist/scss/mixins/animations/_scale.scss +382 -0
  59. package/dist/scss/mixins/animations/_shake.scss +233 -0
  60. package/dist/scss/mixins/animations/_slide.scss +501 -0
  61. package/dist/scss/mixins/animations/_spin.scss +322 -0
  62. package/{scss → dist/scss}/mixins/animations/_sway.scss +32 -49
  63. package/{scss → dist/scss}/mixins/animations/_swing.scss +47 -49
  64. package/{scss → dist/scss}/mixins/animations/_tada.scss +44 -42
  65. package/{scss → dist/scss}/mixins/animations/_twist.scss +40 -55
  66. package/{scss → dist/scss}/mixins/animations/_wave.scss +36 -53
  67. package/dist/scss/mixins/animations/_wobble.scss +283 -0
  68. package/dist/scss/mixins/animations/_zoom.scss +394 -0
  69. package/{scss/mixins/mouse → dist/scss/mixins/controls}/_cursor.scss +60 -39
  70. package/dist/scss/mixins/controls/_hover.scss +625 -0
  71. package/dist/scss/mixins/controls/_index.scss +30 -0
  72. package/dist/scss/mixins/controls/_keyboard.scss +300 -0
  73. package/{scss/mixins/mouse → dist/scss/mixins/controls}/_pointer.scss +81 -72
  74. package/dist/scss/mixins/controls/_scroll.scss +460 -0
  75. package/{scss/mixins/scroll → dist/scss/mixins/controls}/_scrollbar.scss +50 -16
  76. package/dist/scss/mixins/controls/_selection.scss +208 -0
  77. package/dist/scss/mixins/controls/_touch.scss +401 -0
  78. package/dist/scss/mixins/effects/_blend.scss +128 -0
  79. package/dist/scss/mixins/effects/_filter.scss +470 -0
  80. package/dist/scss/mixins/effects/_focus.scss +83 -0
  81. package/dist/scss/mixins/effects/_gradient.scss +130 -0
  82. package/dist/scss/mixins/effects/_index.scss +28 -0
  83. package/dist/scss/mixins/effects/_mask.scss +76 -0
  84. package/dist/scss/mixins/effects/_opacity.scss +376 -0
  85. package/dist/scss/mixins/effects/_shadow.scss +429 -0
  86. package/dist/scss/mixins/keyframes/_base.scss +199 -0
  87. package/dist/scss/mixins/keyframes/_index.scss +24 -0
  88. package/dist/scss/mixins/keyframes/animations/_beat.scss +280 -0
  89. package/dist/scss/mixins/keyframes/animations/_blink.scss +82 -0
  90. package/dist/scss/mixins/keyframes/animations/_bounce.scss +292 -0
  91. package/dist/scss/mixins/keyframes/animations/_fade.scss +311 -0
  92. package/dist/scss/mixins/keyframes/animations/_flash.scss +165 -0
  93. package/dist/scss/mixins/keyframes/animations/_flip.scss +266 -0
  94. package/{scss/mixins → dist/scss/mixins/keyframes}/animations/_index.scss +19 -10
  95. package/dist/scss/mixins/keyframes/animations/_jiggle.scss +85 -0
  96. package/dist/scss/mixins/keyframes/animations/_lightspeed.scss +73 -0
  97. package/dist/scss/mixins/keyframes/animations/_nod.scss +79 -0
  98. package/dist/scss/mixins/keyframes/animations/_pop.scss +78 -0
  99. package/dist/scss/mixins/keyframes/animations/_pulse.scss +225 -0
  100. package/dist/scss/mixins/keyframes/animations/_ripple.scss +94 -0
  101. package/dist/scss/mixins/keyframes/animations/_roll.scss +124 -0
  102. package/dist/scss/mixins/keyframes/animations/_rotate.scss +360 -0
  103. package/dist/scss/mixins/keyframes/animations/_rubber.scss +81 -0
  104. package/dist/scss/mixins/keyframes/animations/_scale.scss +308 -0
  105. package/dist/scss/mixins/keyframes/animations/_shake.scss +270 -0
  106. package/dist/scss/mixins/keyframes/animations/_slide.scss +345 -0
  107. package/dist/scss/mixins/keyframes/animations/_spin.scss +270 -0
  108. package/dist/scss/mixins/keyframes/animations/_sway.scss +83 -0
  109. package/dist/scss/mixins/keyframes/animations/_twist.scss +89 -0
  110. package/dist/scss/mixins/keyframes/animations/_wave.scss +90 -0
  111. package/dist/scss/mixins/keyframes/animations/_wobble.scss +293 -0
  112. package/dist/scss/mixins/keyframes/animations/_zoom.scss +345 -0
  113. package/dist/scss/mixins/loaders/_bars.scss +128 -0
  114. package/dist/scss/mixins/loaders/_base.scss +39 -0
  115. package/dist/scss/mixins/loaders/_bubble.scss +395 -0
  116. package/dist/scss/mixins/loaders/_circle.scss +456 -0
  117. package/dist/scss/mixins/loaders/_dots.scss +248 -0
  118. package/dist/scss/mixins/loaders/_graph.scss +542 -0
  119. package/dist/scss/mixins/loaders/_index.scss +77 -0
  120. package/dist/scss/mixins/loaders/_line.scss +471 -0
  121. package/dist/scss/mixins/loaders/_objects.scss +563 -0
  122. package/dist/scss/mixins/loaders/_progress.scss +477 -0
  123. package/dist/scss/mixins/loaders/_rect.scss +480 -0
  124. package/dist/scss/mixins/loaders/_rings.scss +377 -0
  125. package/dist/scss/mixins/loaders/_skeleton.scss +461 -0
  126. package/dist/scss/mixins/loaders/_special.scss +611 -0
  127. package/dist/scss/mixins/loaders/_spinner.scss +175 -0
  128. package/dist/scss/mixins/loaders/_text.scss +446 -0
  129. package/{scss → dist/scss}/mixins/transforms/_flip.scss +16 -18
  130. package/dist/scss/mixins/transforms/_index.scss +28 -0
  131. package/dist/scss/mixins/transforms/_matrix.scss +18 -0
  132. package/{scss → dist/scss}/mixins/transforms/_perspective.scss +18 -1
  133. package/{scss → dist/scss}/mixins/transforms/_rotate.scss +9 -14
  134. package/{scss → dist/scss}/mixins/transforms/_scale.scss +16 -1
  135. package/{scss → dist/scss}/mixins/transforms/_skew.scss +16 -2
  136. package/{scss → dist/scss}/mixins/transforms/_translate.scss +16 -2
  137. package/dist/scss/mixins/transitions/_index.scss +22 -0
  138. package/dist/scss/mixins/transitions/_transition.scss +43 -0
  139. package/dist/scss/variables/_animations.scss +300 -0
  140. package/dist/scss/variables/_controls.scss +178 -0
  141. package/dist/scss/variables/_effects.scss +87 -0
  142. package/dist/scss/variables/_index.scss +27 -0
  143. package/dist/scss/variables/_keyframes.scss +28 -0
  144. package/dist/scss/variables/_loaders.scss +75 -0
  145. package/dist/scss/variables/_transforms.scss +85 -0
  146. package/dist/scss/variables/_transitions.scss +80 -0
  147. package/dist/ts/Draggable.ts +143 -0
  148. package/dist/ts/Gesture.ts +226 -0
  149. package/dist/ts/Keyboard.ts +195 -0
  150. package/dist/ts/LoaderManager.ts +662 -0
  151. package/dist/ts/Screensaver.ts +192 -0
  152. package/dist/ts/VideoOverlay.ts +205 -0
  153. package/dist/ts/demo.ts +1108 -0
  154. package/dist/ts/index.ts +58 -0
  155. package/package.json +90 -53
  156. package/src/html/_base.html +138 -0
  157. package/src/html/base.html +147 -0
  158. package/src/html/core-concepts.html +282 -0
  159. package/src/html/demo_base.html +171 -0
  160. package/src/html/demo_draggable.html +250 -0
  161. package/src/html/demo_gesture.html +264 -0
  162. package/src/html/demo_keyboard.html +224 -0
  163. package/src/html/demo_screensaver.html +258 -0
  164. package/src/html/demo_video_overlay.html +291 -0
  165. package/src/html/getting-started.html +242 -0
  166. package/src/html/index.html +400 -0
  167. package/src/html/keyboard.html +14 -0
  168. package/src/html/partials/_demo_links.html +21 -0
  169. package/src/html/partials/_footer.html +18 -0
  170. package/src/html/partials/_head.html +21 -0
  171. package/src/html/partials/_nav.html +84 -0
  172. package/src/html/partials/_theme_toggle.html +11 -0
  173. package/src/html/screensaver.html +20 -0
  174. package/src/html/test_animations.html +813 -0
  175. package/src/html/test_attention.html +281 -0
  176. package/src/html/test_bounce.html +201 -0
  177. package/src/html/test_effects.html +1348 -0
  178. package/src/html/test_fade.html +213 -0
  179. package/src/html/test_flip.html +208 -0
  180. package/src/html/test_keyframes.html +415 -0
  181. package/src/html/test_loaders.html +1489 -0
  182. package/src/html/test_mouse.html +516 -0
  183. package/src/html/test_overview.html +1444 -0
  184. package/src/html/test_pulse.html +212 -0
  185. package/src/html/test_scale.html +204 -0
  186. package/src/html/test_shake.html +232 -0
  187. package/src/html/test_slide.html +212 -0
  188. package/src/html/test_special.html +257 -0
  189. package/src/html/test_spin.html +216 -0
  190. package/src/html/test_transforms.html +332 -0
  191. package/src/html/test_transitions.html +245 -0
  192. package/src/html/test_zoom.html +188 -0
  193. package/src/html/video_overlay.html +27 -0
  194. package/src/jinja/_base.html.jinja +50 -0
  195. package/src/jinja/base.html.jinja +48 -0
  196. package/src/jinja/core-concepts.html.jinja +148 -0
  197. package/src/jinja/demo_draggable.html.jinja +114 -0
  198. package/src/jinja/demo_gesture.html.jinja +128 -0
  199. package/src/jinja/demo_keyboard.html.jinja +88 -0
  200. package/src/jinja/demo_screensaver.html.jinja +122 -0
  201. package/src/jinja/demo_video_overlay.html.jinja +155 -0
  202. package/src/jinja/getting-started.html.jinja +108 -0
  203. package/src/jinja/index.html.jinja +268 -0
  204. package/src/jinja/index.json +5 -0
  205. package/src/jinja/move.gl.css +7741 -0
  206. package/src/jinja/partials/_code_block.html.jinja +17 -0
  207. package/src/jinja/partials/_demo_links.html.jinja +41 -0
  208. package/src/jinja/partials/_feature_card.html.jinja +20 -0
  209. package/src/jinja/partials/_footer.html.jinja +22 -0
  210. package/src/jinja/partials/_head.html.jinja +27 -0
  211. package/src/jinja/partials/_nav.html.jinja +79 -0
  212. package/src/jinja/partials/_theme_toggle.html.jinja +15 -0
  213. package/src/jinja/test_animations.html.jinja +679 -0
  214. package/src/jinja/test_attention.html.jinja +147 -0
  215. package/src/jinja/test_bounce.html.jinja +67 -0
  216. package/src/jinja/test_effects.html.jinja +1218 -0
  217. package/src/jinja/test_fade.html.jinja +79 -0
  218. package/src/jinja/test_flip.html.jinja +74 -0
  219. package/src/jinja/test_keyframes.html.jinja +281 -0
  220. package/src/jinja/test_loaders.html.jinja +1358 -0
  221. package/src/jinja/test_mouse.html.jinja +382 -0
  222. package/src/jinja/test_overview.html.jinja +1313 -0
  223. package/src/jinja/test_pulse.html.jinja +78 -0
  224. package/src/jinja/test_scale.html.jinja +70 -0
  225. package/src/jinja/test_shake.html.jinja +98 -0
  226. package/src/jinja/test_slide.html.jinja +78 -0
  227. package/src/jinja/test_special.html.jinja +123 -0
  228. package/src/jinja/test_spin.html.jinja +82 -0
  229. package/src/jinja/test_transforms.html.jinja +198 -0
  230. package/src/jinja/test_transitions.html.jinja +111 -0
  231. package/src/jinja/test_zoom.html.jinja +54 -0
  232. package/src/scss/classes/_animations.scss +595 -0
  233. package/src/scss/classes/_controls.scss +314 -0
  234. package/src/scss/classes/_effects.scss +283 -0
  235. package/src/scss/classes/_index.scss +28 -0
  236. package/src/scss/classes/_loaders.scss +779 -0
  237. package/src/scss/classes/_transforms.scss +138 -0
  238. package/src/scss/classes/_transitions.scss +264 -0
  239. package/src/scss/dev/_banner.scss +36 -0
  240. package/src/scss/dev/_debug.scss +18 -0
  241. package/src/scss/dev/_deprecation.scss +13 -0
  242. package/src/scss/dev/_index.scss +8 -0
  243. package/src/scss/dev/_modules.scss +23 -0
  244. package/src/scss/docs.scss +2344 -0
  245. package/src/scss/docs.scss.bak +3133 -0
  246. package/src/scss/functions/_index.scss +22 -0
  247. package/src/scss/functions/scenes/_bubble.scss +32 -0
  248. package/src/scss/functions/scenes/_index.scss +21 -0
  249. package/src/scss/index.scss +17 -0
  250. package/src/scss/maps/_controls.scss +85 -0
  251. package/src/scss/maps/_index.scss +22 -0
  252. package/src/scss/mixins/_accessibility.scss +91 -0
  253. package/src/scss/mixins/_boot.scss +51 -0
  254. package/src/scss/mixins/_index.scss +41 -0
  255. package/src/scss/mixins/_screensaver.scss +228 -0
  256. package/src/scss/mixins/_shape.scss +315 -0
  257. package/src/scss/mixins/animations/_base.scss +403 -0
  258. package/src/scss/mixins/animations/_beat.scss +137 -0
  259. package/src/scss/mixins/animations/_blink.scss +159 -0
  260. package/src/scss/mixins/animations/_bounce.scss +306 -0
  261. package/src/scss/mixins/animations/_elastic.scss +69 -0
  262. package/src/scss/mixins/animations/_fade.scss +393 -0
  263. package/src/scss/mixins/animations/_flash.scss +169 -0
  264. package/src/scss/mixins/animations/_flip.scss +251 -0
  265. package/src/scss/mixins/animations/_float.scss +141 -0
  266. package/src/scss/mixins/animations/_glow.scss +190 -0
  267. package/src/scss/mixins/animations/_heartbeat.scss +195 -0
  268. package/src/scss/mixins/animations/_hinge.scss +118 -0
  269. package/src/scss/mixins/animations/_index.scss +97 -0
  270. package/src/scss/mixins/animations/_jello.scss +123 -0
  271. package/src/scss/mixins/animations/_jiggle.scss +162 -0
  272. package/src/scss/mixins/animations/_lightspeed.scss +135 -0
  273. package/src/scss/mixins/animations/_nod.scss +153 -0
  274. package/src/scss/mixins/animations/_pop.scss +153 -0
  275. package/src/scss/mixins/animations/_pulse.scss +275 -0
  276. package/src/scss/mixins/animations/_ripple.scss +161 -0
  277. package/src/scss/mixins/animations/_roll.scss +217 -0
  278. package/src/scss/mixins/animations/_rotate.scss +728 -0
  279. package/src/scss/mixins/animations/_rubber.scss +115 -0
  280. package/src/scss/mixins/animations/_scale.scss +382 -0
  281. package/src/scss/mixins/animations/_shake.scss +233 -0
  282. package/src/scss/mixins/animations/_slide.scss +501 -0
  283. package/src/scss/mixins/animations/_spin.scss +322 -0
  284. package/src/scss/mixins/animations/_sway.scss +150 -0
  285. package/src/scss/mixins/animations/_swing.scss +245 -0
  286. package/src/scss/mixins/animations/_tada.scss +235 -0
  287. package/src/scss/mixins/animations/_twist.scss +162 -0
  288. package/src/scss/mixins/animations/_wave.scss +149 -0
  289. package/src/scss/mixins/animations/_wobble.scss +283 -0
  290. package/src/scss/mixins/animations/_zoom.scss +394 -0
  291. package/src/scss/mixins/controls/_cursor.scss +203 -0
  292. package/src/scss/mixins/controls/_hover.scss +625 -0
  293. package/src/scss/mixins/controls/_index.scss +30 -0
  294. package/src/scss/mixins/controls/_keyboard.scss +300 -0
  295. package/src/scss/mixins/controls/_pointer.scss +267 -0
  296. package/src/scss/mixins/controls/_scroll.scss +460 -0
  297. package/src/scss/mixins/controls/_scrollbar.scss +283 -0
  298. package/src/scss/mixins/controls/_selection.scss +208 -0
  299. package/src/scss/mixins/controls/_touch.scss +401 -0
  300. package/src/scss/mixins/effects/_blend.scss +128 -0
  301. package/src/scss/mixins/effects/_filter.scss +470 -0
  302. package/src/scss/mixins/effects/_focus.scss +83 -0
  303. package/src/scss/mixins/effects/_gradient.scss +130 -0
  304. package/src/scss/mixins/effects/_index.scss +28 -0
  305. package/src/scss/mixins/effects/_mask.scss +76 -0
  306. package/src/scss/mixins/effects/_opacity.scss +376 -0
  307. package/src/scss/mixins/effects/_shadow.scss +429 -0
  308. package/src/scss/mixins/keyframes/_base.scss +199 -0
  309. package/src/scss/mixins/keyframes/_index.scss +24 -0
  310. package/src/scss/mixins/keyframes/animations/_beat.scss +280 -0
  311. package/src/scss/mixins/keyframes/animations/_blink.scss +82 -0
  312. package/src/scss/mixins/keyframes/animations/_bounce.scss +292 -0
  313. package/src/scss/mixins/keyframes/animations/_fade.scss +311 -0
  314. package/src/scss/mixins/keyframes/animations/_flash.scss +165 -0
  315. package/src/scss/mixins/keyframes/animations/_flip.scss +266 -0
  316. package/src/scss/mixins/keyframes/animations/_index.scss +46 -0
  317. package/src/scss/mixins/keyframes/animations/_jiggle.scss +85 -0
  318. package/src/scss/mixins/keyframes/animations/_lightspeed.scss +73 -0
  319. package/src/scss/mixins/keyframes/animations/_nod.scss +79 -0
  320. package/src/scss/mixins/keyframes/animations/_pop.scss +78 -0
  321. package/src/scss/mixins/keyframes/animations/_pulse.scss +225 -0
  322. package/src/scss/mixins/keyframes/animations/_ripple.scss +94 -0
  323. package/src/scss/mixins/keyframes/animations/_roll.scss +124 -0
  324. package/src/scss/mixins/keyframes/animations/_rotate.scss +360 -0
  325. package/src/scss/mixins/keyframes/animations/_rubber.scss +81 -0
  326. package/src/scss/mixins/keyframes/animations/_scale.scss +308 -0
  327. package/src/scss/mixins/keyframes/animations/_shake.scss +270 -0
  328. package/src/scss/mixins/keyframes/animations/_slide.scss +345 -0
  329. package/src/scss/mixins/keyframes/animations/_spin.scss +270 -0
  330. package/src/scss/mixins/keyframes/animations/_sway.scss +83 -0
  331. package/src/scss/mixins/keyframes/animations/_twist.scss +89 -0
  332. package/src/scss/mixins/keyframes/animations/_wave.scss +90 -0
  333. package/src/scss/mixins/keyframes/animations/_wobble.scss +293 -0
  334. package/src/scss/mixins/keyframes/animations/_zoom.scss +345 -0
  335. package/src/scss/mixins/loaders/_bars.scss +128 -0
  336. package/src/scss/mixins/loaders/_base.scss +39 -0
  337. package/src/scss/mixins/loaders/_bubble.scss +395 -0
  338. package/src/scss/mixins/loaders/_circle.scss +456 -0
  339. package/src/scss/mixins/loaders/_dots.scss +248 -0
  340. package/src/scss/mixins/loaders/_graph.scss +542 -0
  341. package/src/scss/mixins/loaders/_index.scss +77 -0
  342. package/src/scss/mixins/loaders/_line.scss +471 -0
  343. package/src/scss/mixins/loaders/_objects.scss +563 -0
  344. package/src/scss/mixins/loaders/_progress.scss +477 -0
  345. package/src/scss/mixins/loaders/_rect.scss +480 -0
  346. package/src/scss/mixins/loaders/_rings.scss +377 -0
  347. package/src/scss/mixins/loaders/_skeleton.scss +461 -0
  348. package/src/scss/mixins/loaders/_special.scss +611 -0
  349. package/src/scss/mixins/loaders/_spinner.scss +175 -0
  350. package/src/scss/mixins/loaders/_text.scss +446 -0
  351. package/src/scss/mixins/transforms/_flip.scss +74 -0
  352. package/src/scss/mixins/transforms/_index.scss +28 -0
  353. package/src/scss/mixins/transforms/_matrix.scss +18 -0
  354. package/src/scss/mixins/transforms/_perspective.scss +28 -0
  355. package/src/scss/mixins/transforms/_rotate.scss +96 -0
  356. package/src/scss/mixins/transforms/_scale.scss +26 -0
  357. package/src/scss/mixins/transforms/_skew.scss +27 -0
  358. package/src/scss/mixins/transforms/_translate.scss +27 -0
  359. package/src/scss/mixins/transitions/_index.scss +22 -0
  360. package/src/scss/mixins/transitions/_transition.scss +43 -0
  361. package/src/scss/variables/_animations.scss +300 -0
  362. package/src/scss/variables/_controls.scss +178 -0
  363. package/src/scss/variables/_effects.scss +87 -0
  364. package/src/scss/variables/_index.scss +27 -0
  365. package/src/scss/variables/_keyframes.scss +28 -0
  366. package/src/scss/variables/_loaders.scss +75 -0
  367. package/src/scss/variables/_transforms.scss +85 -0
  368. package/src/scss/variables/_transitions.scss +80 -0
  369. package/src/ts/Draggable.ts +143 -0
  370. package/src/ts/Gesture.ts +226 -0
  371. package/src/ts/Keyboard.ts +195 -0
  372. package/src/ts/LoaderManager.ts +662 -0
  373. package/src/ts/Screensaver.ts +192 -0
  374. package/src/ts/VideoOverlay.ts +205 -0
  375. package/src/ts/demo.ts +1108 -0
  376. package/src/ts/index.ts +58 -0
  377. package/css/move.gl.css +0 -2
  378. package/css/move.gl.min.css +0 -2
  379. package/scss/classes/_transforms.scss +0 -124
  380. package/scss/classes/keyboard.scss +0 -18
  381. package/scss/classes/screensaver.scss +0 -15
  382. package/scss/effects/_filter.scss +0 -176
  383. package/scss/effects/_index.scss +0 -23
  384. package/scss/effects/_opacity.scss +0 -62
  385. package/scss/effects/_shadow.scss +0 -175
  386. package/scss/functions/scenes/_bubble.scss +0 -19
  387. package/scss/functions/scenes/_index.scss +0 -20
  388. package/scss/index.scss +0 -0
  389. package/scss/keyframes/_beat.scss +0 -26
  390. package/scss/keyframes/_index.scss +0 -0
  391. package/scss/maps/_index.scss +0 -0
  392. package/scss/maps/_mouse.scss +0 -96
  393. package/scss/mixins/_hover.scss +0 -51
  394. package/scss/mixins/_index.scss +0 -0
  395. package/scss/mixins/_selection.scss +0 -321
  396. package/scss/mixins/_shape.scss +0 -44
  397. package/scss/mixins/_touch.scss +0 -95
  398. package/scss/mixins/animations/--hover.scss +0 -107
  399. package/scss/mixins/animations/_base.scss +0 -337
  400. package/scss/mixins/animations/_beat.scss +0 -119
  401. package/scss/mixins/animations/_bounce.scss +0 -192
  402. package/scss/mixins/animations/_fade.scss +0 -154
  403. package/scss/mixins/animations/_flip.scss +0 -72
  404. package/scss/mixins/animations/_heartbeat.scss +0 -175
  405. package/scss/mixins/animations/_hinge.scss +0 -119
  406. package/scss/mixins/animations/_jello.scss +0 -129
  407. package/scss/mixins/animations/_jiggle.scss +0 -163
  408. package/scss/mixins/animations/_lightspeed.scss +0 -130
  409. package/scss/mixins/animations/_pop.scss +0 -150
  410. package/scss/mixins/animations/_pulse.scss +0 -213
  411. package/scss/mixins/animations/_roll.scss +0 -261
  412. package/scss/mixins/animations/_rotate.scss +0 -428
  413. package/scss/mixins/animations/_rubber.scss +0 -116
  414. package/scss/mixins/animations/_scale.scss +0 -113
  415. package/scss/mixins/animations/_shake.scss +0 -182
  416. package/scss/mixins/animations/_slide.scss +0 -294
  417. package/scss/mixins/animations/_spin.scss +0 -219
  418. package/scss/mixins/animations/_wobble.scss +0 -254
  419. package/scss/mixins/animations/_zoom.scss +0 -166
  420. package/scss/mixins/effects/_filter.scss +0 -148
  421. package/scss/mixins/effects/_index.scss +0 -0
  422. package/scss/mixins/effects/_shadow.scss +0 -21
  423. package/scss/mixins/loaders/_index.scss +0 -0
  424. package/scss/mixins/loaders/_progress.scss +0 -174
  425. package/scss/mixins/loaders/_spinner.scss +0 -101
  426. package/scss/mixins/loaders/circle_01.scss +0 -22
  427. package/scss/mixins/loaders/circle_02.scss +0 -19
  428. package/scss/mixins/loaders/circle_03.scss +0 -29
  429. package/scss/mixins/loaders/circle_inner_01.scss +0 -33
  430. package/scss/mixins/loaders/circle_inner_02.scss +0 -33
  431. package/scss/mixins/loaders/circle_inner_03.scss +0 -34
  432. package/scss/mixins/mouse/_index.scss +0 -0
  433. package/scss/mixins/scroll/_index.scss +0 -0
  434. package/scss/mixins/scroll/_scroll.scss +0 -104
  435. package/scss/mixins/transforms/_index.scss +0 -23
  436. package/scss/mixins/transforms/_matrix.scss +0 -1
  437. package/scss/mixins/transitions/_index.scss +0 -0
  438. package/scss/mixins/transitions/_transition.scss +0 -13
  439. package/scss/variables/_animation.scss +0 -91
  440. package/scss/variables/_index.scss +0 -0
  441. package/ts/ARContent.ts +0 -27
  442. package/ts/ARInteraction.ts +0 -34
  443. package/ts/AdaptiveUI.ts +0 -25
  444. package/ts/ContentStreaming.ts +0 -20
  445. package/ts/Draggable.ts +0 -71
  446. package/ts/DynamicEnvironment.ts +0 -60
  447. package/ts/Gesture.ts +0 -168
  448. package/ts/ImmersiveAudio.ts +0 -40
  449. package/ts/InteractiveCanvas.ts +0 -177
  450. package/ts/InteractiveVideo.ts +0 -29
  451. package/ts/Keyboard.ts +0 -162
  452. package/ts/RealTimeCollaboration.ts +0 -25
  453. package/ts/Screensaver.ts +0 -140
  454. package/ts/SpatialNavigation.ts +0 -38
  455. package/ts/UserProfile.ts +0 -27
  456. package/ts/VRExperience.ts +0 -58
  457. package/ts/VideoOverlay.ts +0 -116
  458. package/ts/index.ts +0 -0
  459. /package/{scss → dist/scss}/dev/_banner.scss +0 -0
  460. /package/{scss → dist/scss}/dev/_debug.scss +0 -0
  461. /package/{scss → dist/scss}/dev/_index.scss +0 -0
  462. /package/{scss/classes/_index.scss → src/html/partials/_code_block.html} +0 -0
  463. /package/{scss/functions/_index.scss → src/html/partials/_feature_card.html} +0 -0
@@ -0,0 +1,280 @@
1
+ ////
2
+ ///
3
+ /// Beat Keyframes Mixins Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// Defines keyframes for beat animations including basic beat, beat with fade,
7
+ /// double beat, heartbeat, pulse beat, and rhythmic patterns. These keyframes
8
+ /// create pulsing or rhythmic effects in UI elements.
9
+ ///
10
+ /// @group Keyframes
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @access public
15
+ ///
16
+ ////
17
+
18
+
19
+ // ============================================================================
20
+ // Use
21
+ // ============================================================================
22
+
23
+ @use "../../../variables" as *;
24
+ @use "../_base" as *;
25
+
26
+
27
+ // ============================================================================
28
+ // Basic Beat Keyframes
29
+ // ============================================================================
30
+
31
+ ///
32
+ /// Standard beat animation - single pulse.
33
+ ///
34
+ @mixin keyframes_beat {
35
+ @include keyframes(beat) {
36
+ 0%, 90% {
37
+ transform: scale(
38
+ var(
39
+ --animate-scale-base,
40
+ #{$animate_scale_base}
41
+ )
42
+ );
43
+ }
44
+ 45% {
45
+ transform: scale(var(--animate-scale-beat, #{$animate_scale_beat}));
46
+ }
47
+ }
48
+ }
49
+
50
+ ///
51
+ /// Beat with fade effect.
52
+ ///
53
+ @mixin keyframes_beat_fade {
54
+ @include keyframes(beat-fade) {
55
+ 0%, 100% {
56
+ opacity: var(--animate-opacity-fade, #{$animate_opacity_fade});
57
+ transform: scale(var(--animate-scale-base, #{$animate_scale_base}));
58
+ }
59
+ 50% {
60
+ opacity: 1;
61
+ transform: scale(var(--animate-scale-beat-fade, #{$animate_scale_beat_fade}));
62
+ }
63
+ }
64
+ }
65
+
66
+ ///
67
+ /// Double beat animation - two quick pulses.
68
+ ///
69
+ @mixin keyframes_beat_double {
70
+ @include keyframes(beat-double) {
71
+ 0%, 100% {
72
+ transform: scale(var(--animate-scale-base, #{$animate_scale_base}));
73
+ }
74
+ 25% {
75
+ transform: scale(var(--animate-scale-beat-double-small, #{$animate_scale_beat_double_small}));
76
+ }
77
+ 50% {
78
+ transform: scale(var(--animate-scale-beat-double-large, #{$animate_scale_beat_double_large}));
79
+ }
80
+ 75% {
81
+ transform: scale(var(--animate-scale-beat-double-small, #{$animate_scale_beat_double_small}));
82
+ }
83
+ }
84
+ }
85
+
86
+
87
+ // ============================================================================
88
+ // Heartbeat Keyframes
89
+ // ============================================================================
90
+
91
+ ///
92
+ /// Realistic heartbeat animation.
93
+ ///
94
+ @mixin keyframes_heartbeat {
95
+ @include keyframes(heartbeat) {
96
+ 0% { transform: scale(1); }
97
+ 14% { transform: scale($animate_heartbeat_scale_small); }
98
+ 28% { transform: scale(1); }
99
+ 42% { transform: scale($animate_heartbeat_scale_small); }
100
+ 70% { transform: scale(1); }
101
+ 100% { transform: scale(1); }
102
+ }
103
+ }
104
+
105
+ ///
106
+ /// Fast heartbeat - excited/urgent state.
107
+ ///
108
+ @mixin keyframes_heartbeat_fast {
109
+ @include keyframes(heartbeat-fast) {
110
+ 0% { transform: scale(1); }
111
+ 10% { transform: scale($animate_scale_beat_double_large * 0.76667); }
112
+ 20% { transform: scale(1); }
113
+ 30% { transform: scale($animate_scale_beat_double_large * 0.76667); }
114
+ 50% { transform: scale(1); }
115
+ 100% { transform: scale(1); }
116
+ }
117
+ }
118
+
119
+ ///
120
+ /// Slow heartbeat - calm/relaxed state.
121
+ ///
122
+ @mixin keyframes_heartbeat_slow {
123
+ @include keyframes(heartbeat-slow) {
124
+ 0% { transform: scale(1); }
125
+ 20% { transform: scale(1.08); }
126
+ 40% { transform: scale(1); }
127
+ 60% { transform: scale(1.08); }
128
+ 100% { transform: scale(1); }
129
+ }
130
+ }
131
+
132
+
133
+ // ============================================================================
134
+ // Pulse Beat Keyframes
135
+ // ============================================================================
136
+
137
+ ///
138
+ /// Pulse beat with opacity change.
139
+ ///
140
+ @mixin keyframes_pulse_beat {
141
+ @include keyframes(pulse-beat) {
142
+ 0%, 100% {
143
+ transform: scale(1);
144
+ opacity: 1;
145
+ }
146
+ 50% {
147
+ transform: scale($animate_heartbeat_scale_small);
148
+ opacity: $animate_scale_shrink_min;
149
+ }
150
+ }
151
+ }
152
+
153
+ ///
154
+ /// Pulse beat with glow effect.
155
+ ///
156
+ /// @param {Color} $color [currentColor] - Glow color.
157
+ ///
158
+ @mixin keyframes_pulse_beat_glow($color: currentColor) {
159
+ @include keyframes(pulse-beat-glow) {
160
+ 0%, 100% {
161
+ transform: scale(1);
162
+ box-shadow: 0 0 0 0 rgba($color, 0.4);
163
+ }
164
+ 50% {
165
+ transform: scale($animate_scale_pulse);
166
+ box-shadow: 0 0 0 $animate_translate_shake rgba($color, 0);
167
+ }
168
+ }
169
+ }
170
+
171
+ ///
172
+ /// Expanding ring pulse for beat effects.
173
+ ///
174
+ /// @param {Color} $color [currentColor] - Ring color.
175
+ ///
176
+ @mixin keyframes_beat_ring($color: currentColor) {
177
+ @include keyframes(beat-ring) {
178
+ 0% {
179
+ box-shadow: 0 0 0 0 rgba($color, 0.6);
180
+ }
181
+ 100% {
182
+ box-shadow: 0 0 0 $animate_pulse_ring_size rgba($color, 0);
183
+ }
184
+ }
185
+ }
186
+
187
+
188
+ // ============================================================================
189
+ // Rhythmic Beat Keyframes
190
+ // ============================================================================
191
+
192
+ ///
193
+ /// Triple beat pattern.
194
+ ///
195
+ @mixin keyframes_beat_triple {
196
+ @include keyframes(beat-triple) {
197
+ 0%, 100% { transform: scale(1); }
198
+ 15% { transform: scale($animate_heartbeat_scale_small); }
199
+ 30% { transform: scale(1); }
200
+ 45% { transform: scale($animate_heartbeat_scale_small); }
201
+ 60% { transform: scale(1); }
202
+ 75% { transform: scale($animate_heartbeat_scale_small); }
203
+ 90% { transform: scale(1); }
204
+ }
205
+ }
206
+
207
+ ///
208
+ /// Syncopated beat pattern.
209
+ ///
210
+ @mixin keyframes_beat_syncopated {
211
+ @include keyframes(beat-syncopated) {
212
+ 0%, 100% { transform: scale(1); }
213
+ 10% { transform: scale($animate_scale_beat_double_large * 0.76667); }
214
+ 20% { transform: scale(1); }
215
+ 50% { transform: scale($animate_heartbeat_scale_small); }
216
+ 60% { transform: scale(1); }
217
+ 80% { transform: scale($animate_scale_pulse); }
218
+ 90% { transform: scale(1); }
219
+ }
220
+ }
221
+
222
+
223
+ // ============================================================================
224
+ // Parameterized Keyframes (for animations module)
225
+ // ============================================================================
226
+
227
+ ///
228
+ /// Parameterized beat animation keyframes.
229
+ /// @param {Number} $scale - The scale factor for the beat effect.
230
+ ///
231
+ @mixin keyframes_animate_beat($scale: $animate_scale_beat) {
232
+ @keyframes animate_beat {
233
+ 0%, 90% {
234
+ transform: scale(1);
235
+ }
236
+ 45% {
237
+ transform: scale($scale);
238
+ }
239
+ }
240
+ }
241
+
242
+ ///
243
+ /// Parameterized beat fade animation keyframes.
244
+ /// @param {Number} $opacity - The opacity at start/end.
245
+ /// @param {Number} $scale - The scale factor.
246
+ ///
247
+ @mixin keyframes_animate_beat_fade($opacity: $animate_opacity_fade, $scale: $animate_scale_beat_fade) {
248
+ @keyframes animate_beat_fade {
249
+ 0%, 100% {
250
+ opacity: $opacity;
251
+ transform: scale(1);
252
+ }
253
+ 50% {
254
+ opacity: 1;
255
+ transform: scale($scale);
256
+ }
257
+ }
258
+ }
259
+
260
+ ///
261
+ /// Parameterized double beat animation keyframes.
262
+ /// @param {Number} $scale_small - The smaller scale factor.
263
+ /// @param {Number} $scale_large - The larger scale factor.
264
+ ///
265
+ @mixin keyframes_animate_beat_double($scale_small: $animate_scale_beat_double_small, $scale_large: $animate_scale_beat_double_large) {
266
+ @keyframes animate_beat_double {
267
+ 0%, 100% {
268
+ transform: scale(1);
269
+ }
270
+ 25% {
271
+ transform: scale($scale_small);
272
+ }
273
+ 50% {
274
+ transform: scale($scale_large);
275
+ }
276
+ 75% {
277
+ transform: scale($scale_small);
278
+ }
279
+ }
280
+ }
@@ -0,0 +1,82 @@
1
+ // ============================================================================
2
+ // move.gl | Blink Keyframes
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Blink Keyframes Module
10
+ /// ===========================================================================
11
+ ///
12
+ /// Provides parameterized keyframe mixins for blink animations.
13
+ /// Cursor effects, status indicators, and attention elements.
14
+ ///
15
+ /// @group Keyframes
16
+ /// @author Scape Agency
17
+ /// @link https://move.gl
18
+ /// @since 0.1.0 initial release
19
+ /// @access public
20
+ ////
21
+
22
+
23
+ // ============================================================================
24
+ // Use
25
+ // ============================================================================
26
+
27
+ @use "../../../variables" as *;
28
+
29
+
30
+ // ============================================================================
31
+ // Keyframes
32
+ // ============================================================================
33
+
34
+
35
+ ///
36
+ /// Blink Keyframes
37
+ /// @name keyframes_animate_blink
38
+ /// @param {Number} $start_opacity [1] - The opacity at start and end.
39
+ /// @param {Number} $blink_opacity [0] - The opacity during the blink.
40
+ ///
41
+ @mixin keyframes_animate_blink($start_opacity: 1, $blink_opacity: 0) {
42
+ @keyframes animate_blink {
43
+ 0%, 100% { opacity: $start_opacity; }
44
+ 50% { opacity: $blink_opacity; }
45
+ }
46
+ }
47
+
48
+
49
+ ///
50
+ /// Blink Rapid Keyframes
51
+ /// @name keyframes_animate_blink_rapid
52
+ ///
53
+ @mixin keyframes_animate_blink_rapid() {
54
+ @keyframes animate_blink_rapid {
55
+ 0%, 100% { opacity: 1; }
56
+ 50% { opacity: 0; }
57
+ }
58
+ }
59
+
60
+
61
+ ///
62
+ /// Blink Soft Keyframes
63
+ /// @name keyframes_animate_blink_soft
64
+ ///
65
+ @mixin keyframes_animate_blink_soft() {
66
+ @keyframes animate_blink_soft {
67
+ 0%, 100% { opacity: 1; }
68
+ 50% { opacity: $animate_opacity_blink_soft; }
69
+ }
70
+ }
71
+
72
+
73
+ ///
74
+ /// Blink Alternate Keyframes
75
+ /// @name keyframes_animate_blink_alternate
76
+ ///
77
+ @mixin keyframes_animate_blink_alternate() {
78
+ @keyframes animate_blink_alternate {
79
+ 0%, 100% { opacity: 1; }
80
+ 25%, 75% { opacity: 0; }
81
+ }
82
+ }
@@ -0,0 +1,292 @@
1
+ ////
2
+ ///
3
+ /// Bounce Keyframes Mixins Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// Defines keyframes for bounce animations including simple bounce, extended
7
+ /// bounce with squash/stretch, rotating bounce, and multi-directional bounce.
8
+ /// These keyframes create playful jumping effects for UI elements.
9
+ ///
10
+ /// @group Keyframes
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @access public
15
+ ///
16
+ ////
17
+
18
+
19
+ // ============================================================================
20
+ // Use
21
+ // ============================================================================
22
+
23
+ @use "../../../variables" as *;
24
+ @use "../_base" as *;
25
+
26
+
27
+ // ============================================================================
28
+ // Basic Bounce Keyframes
29
+ // ============================================================================
30
+
31
+ ///
32
+ /// Standard bounce animation keyframes.
33
+ ///
34
+ /// @param {Length} $bounce_height [$animate_bounce_height] - Height of the bounce
35
+ ///
36
+ @mixin keyframes_bounce($bounce_height: $animate_bounce_height) {
37
+ @include keyframes(animate_bounce) {
38
+ 0%, 100% {
39
+ transform: translateY(0);
40
+ }
41
+ 50% {
42
+ transform: translateY($bounce_height);
43
+ }
44
+ }
45
+ }
46
+
47
+ ///
48
+ /// Bounce animation with CSS custom property support.
49
+ ///
50
+ @mixin keyframes_animate_bounce($bounce_height: $animate_translate_bounce) {
51
+ @include keyframes(animate_bounce) {
52
+ 0%, 100% {
53
+ transform: translateY(0);
54
+ }
55
+ 50% {
56
+ transform: translateY(var(--animate-bounce-height, #{$bounce_height}));
57
+ }
58
+ }
59
+ }
60
+
61
+
62
+ // ============================================================================
63
+ // Extended Bounce Keyframes
64
+ // ============================================================================
65
+
66
+ ///
67
+ /// Extended bounce with squash and stretch effects.
68
+ ///
69
+ /// @param {Number} $start_scale_x [$animate_bounce_start_scale_x] - Initial squash scale X
70
+ /// @param {Number} $start_scale_y [$animate_bounce_start_scale_y] - Initial squash scale Y
71
+ /// @param {Number} $jump_scale_x [$animate_bounce_jump_scale_x] - Jump stretch scale X
72
+ /// @param {Number} $jump_scale_y [$animate_bounce_jump_scale_y] - Jump stretch scale Y
73
+ /// @param {Length} $bounce_height [$animate_bounce_height_extended] - Main bounce height
74
+ /// @param {Number} $land_scale_x [$animate_bounce_land_scale_x] - Landing squash scale X
75
+ /// @param {Number} $land_scale_y [$animate_bounce_land_scale_y] - Landing squash scale Y
76
+ /// @param {Length} $rebound_height [$animate_bounce_rebound] - Secondary bounce height
77
+ ///
78
+ @mixin keyframes_bounce_extended(
79
+ $start_scale_x: $animate_bounce_start_scale_x,
80
+ $start_scale_y: $animate_bounce_start_scale_y,
81
+ $jump_scale_x: $animate_bounce_jump_scale_x,
82
+ $jump_scale_y: $animate_bounce_jump_scale_y,
83
+ $bounce_height: $animate_bounce_height_extended,
84
+ $land_scale_x: $animate_bounce_land_scale_x,
85
+ $land_scale_y: $animate_bounce_land_scale_y,
86
+ $rebound_height: $animate_bounce_rebound
87
+ ) {
88
+ @include keyframes(animate_bounce_extended) {
89
+ 0% {
90
+ transform: scale(1, 1) translateY(0);
91
+ }
92
+ 10% {
93
+ transform: scale($start_scale_x, $start_scale_y) translateY(0);
94
+ }
95
+ 30% {
96
+ transform: scale($jump_scale_x, $jump_scale_y) translateY($bounce_height);
97
+ }
98
+ 50% {
99
+ transform: scale($land_scale_x, $land_scale_y) translateY(0);
100
+ }
101
+ 57% {
102
+ transform: scale(1, 1) translateY($rebound_height);
103
+ }
104
+ 64% {
105
+ transform: scale(1, 1) translateY(0);
106
+ }
107
+ 100% {
108
+ transform: scale(1, 1) translateY(0);
109
+ }
110
+ }
111
+ }
112
+
113
+
114
+ // ============================================================================
115
+ // Bounce with Rotation Keyframes
116
+ // ============================================================================
117
+
118
+ ///
119
+ /// Bounce animation combined with rotation.
120
+ ///
121
+ /// @param {Angle} $rotation_angle [360deg] - Rotation angle during bounce
122
+ /// @param {Length} $bounce_height [-20%] - Height of the bounce
123
+ ///
124
+ @mixin keyframes_bounce_rotate($rotation_angle: $animate_angle_full, $bounce_height: $animate_bounce_height) {
125
+ @include keyframes(animate_bounce_rotate) {
126
+ 0%, 100% {
127
+ transform: translateY(0) rotate(0);
128
+ }
129
+ 50% {
130
+ transform: translateY($bounce_height) rotate($rotation_angle);
131
+ }
132
+ }
133
+ }
134
+
135
+
136
+ // ============================================================================
137
+ // Multi-Directional Bounce Keyframes
138
+ // ============================================================================
139
+
140
+ ///
141
+ /// Bounce in both X and Y directions.
142
+ ///
143
+ /// @param {Length} $bounce_x [-10%] - Horizontal bounce distance
144
+ /// @param {Length} $bounce_y [-20%] - Vertical bounce distance
145
+ ///
146
+ @mixin keyframes_bounce_multi($bounce_x: $animate_bounce_multi_x, $bounce_y: $animate_bounce_multi_y) {
147
+ @include keyframes(animate_bounce_multi) {
148
+ 0%, 100% {
149
+ transform: translate(0, 0);
150
+ }
151
+ 25% {
152
+ transform: translate($bounce_x, 0);
153
+ }
154
+ 50% {
155
+ transform: translate(0, $bounce_y);
156
+ }
157
+ 75% {
158
+ transform: translate($bounce_x, 0);
159
+ }
160
+ }
161
+ }
162
+
163
+
164
+ // ============================================================================
165
+ // Elastic Bounce Keyframes
166
+ // ============================================================================
167
+
168
+ ///
169
+ /// Elastic bounce with overshoot effect.
170
+ ///
171
+ /// @param {Length} $bounce_height [-30%] - Main bounce height
172
+ ///
173
+ @mixin keyframes_bounce_elastic($bounce_height: $animate_bounce_elastic_height) {
174
+ @include keyframes(animate_bounce_elastic) {
175
+ 0%, 100% {
176
+ transform: translateY(0);
177
+ }
178
+ 40% {
179
+ transform: translateY($bounce_height);
180
+ }
181
+ 50% {
182
+ transform: translateY($bounce_height * 0.3);
183
+ }
184
+ 60% {
185
+ transform: translateY($bounce_height * 0.7);
186
+ }
187
+ 80% {
188
+ transform: translateY($bounce_height * 0.15);
189
+ }
190
+ }
191
+ }
192
+
193
+
194
+ // ============================================================================
195
+ // Entrance/Exit Bounce Keyframes
196
+ // ============================================================================
197
+
198
+ ///
199
+ /// Bounce in from bottom.
200
+ ///
201
+ /// @param {Length} $distance [100%] - Starting distance
202
+ ///
203
+ @mixin keyframes_bounce_in_up($distance: 100%) {
204
+ @include keyframes(animate_bounce_in_up) {
205
+ 0% {
206
+ opacity: 0;
207
+ transform: translateY($distance);
208
+ }
209
+ 60% {
210
+ opacity: 1;
211
+ transform: translateY(-20px);
212
+ }
213
+ 80% {
214
+ transform: translateY(10px);
215
+ }
216
+ 100% {
217
+ transform: translateY(0);
218
+ }
219
+ }
220
+ }
221
+
222
+ ///
223
+ /// Bounce in from top.
224
+ ///
225
+ /// @param {Length} $distance [-100%] - Starting distance
226
+ ///
227
+ @mixin keyframes_bounce_in_down($distance: -100%) {
228
+ @include keyframes(animate_bounce_in_down) {
229
+ 0% {
230
+ opacity: 0;
231
+ transform: translateY($distance);
232
+ }
233
+ 60% {
234
+ opacity: 1;
235
+ transform: translateY(20px);
236
+ }
237
+ 80% {
238
+ transform: translateY(-10px);
239
+ }
240
+ 100% {
241
+ transform: translateY(0);
242
+ }
243
+ }
244
+ }
245
+
246
+ ///
247
+ /// Bounce in from left.
248
+ ///
249
+ /// @param {Length} $distance [-100%] - Starting distance
250
+ ///
251
+ @mixin keyframes_bounce_in_left($distance: -100%) {
252
+ @include keyframes(animate_bounce_in_left) {
253
+ 0% {
254
+ opacity: 0;
255
+ transform: translateX($distance);
256
+ }
257
+ 60% {
258
+ opacity: 1;
259
+ transform: translateX(20px);
260
+ }
261
+ 80% {
262
+ transform: translateX(-10px);
263
+ }
264
+ 100% {
265
+ transform: translateX(0);
266
+ }
267
+ }
268
+ }
269
+
270
+ ///
271
+ /// Bounce in from right.
272
+ ///
273
+ /// @param {Length} $distance [100%] - Starting distance
274
+ ///
275
+ @mixin keyframes_bounce_in_right($distance: 100%) {
276
+ @include keyframes(animate_bounce_in_right) {
277
+ 0% {
278
+ opacity: 0;
279
+ transform: translateX($distance);
280
+ }
281
+ 60% {
282
+ opacity: 1;
283
+ transform: translateX(-20px);
284
+ }
285
+ 80% {
286
+ transform: translateX(10px);
287
+ }
288
+ 100% {
289
+ transform: translateX(0);
290
+ }
291
+ }
292
+ }