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,429 @@
1
+ ////
2
+ ///
3
+ /// Shadow Effects Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides a comprehensive set of box-shadow and text-shadow
7
+ /// mixins for creating depth, elevation, and visual hierarchy in UI elements.
8
+ /// Includes Material Design elevations, directional shadows, and presets.
9
+ ///
10
+ /// @group Effects
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @todo None
15
+ /// @access public
16
+ ///
17
+ ////
18
+
19
+
20
+ // ============================================================================
21
+ // Use
22
+ // ============================================================================
23
+
24
+ @use "sass:map";
25
+ @use "sass:math";
26
+ @use "sass:color";
27
+ @use "../../variables" as *;
28
+
29
+
30
+ // ============================================================================
31
+ // Base Shadow Mixins
32
+ // ============================================================================
33
+
34
+ ///
35
+ /// Base box-shadow mixin with full control.
36
+ ///
37
+ /// @param {Length} $offset-x [0] - Horizontal offset.
38
+ /// @param {Length} $offset-y [4px] - Vertical offset.
39
+ /// @param {Length} $blur [8px] - Blur radius.
40
+ /// @param {Length} $spread [0] - Spread radius.
41
+ /// @param {Color} $color [$shadow-color-default] - Shadow color.
42
+ /// @param {Boolean} $inset [false] - Whether shadow is inset.
43
+ ///
44
+ @mixin box_shadow(
45
+ $offset-x: 0,
46
+ $offset-y: 4px,
47
+ $blur: 8px,
48
+ $spread: 0,
49
+ $color: $shadow-color-default,
50
+ $inset: false
51
+ ) {
52
+ @if $inset {
53
+ box-shadow: inset $offset-x $offset-y $blur $spread $color;
54
+ } @else {
55
+ box-shadow: $offset-x $offset-y $blur $spread $color;
56
+ }
57
+ }
58
+
59
+ ///
60
+ /// Multiple box shadows combined.
61
+ ///
62
+ /// @param {List} $shadows... - List of shadow definitions.
63
+ ///
64
+ @mixin box_shadow_multi($shadows...) {
65
+ box-shadow: $shadows;
66
+ }
67
+
68
+ ///
69
+ /// Text shadow mixin.
70
+ ///
71
+ /// @param {Length} $offset-x [1px] - Horizontal offset.
72
+ /// @param {Length} $offset-y [1px] - Vertical offset.
73
+ /// @param {Length} $blur [2px] - Blur radius.
74
+ /// @param {Color} $color [rgba(0,0,0,0.3)] - Shadow color.
75
+ ///
76
+ @mixin text_shadow($offset-x: 1px, $offset-y: 1px, $blur: 2px, $color: rgba(0, 0, 0, 0.3)) {
77
+ text-shadow: $offset-x $offset-y $blur $color;
78
+ }
79
+
80
+
81
+ // ============================================================================
82
+ // Material Design Elevation System
83
+ // ============================================================================
84
+
85
+ ///
86
+ /// Applies a material design-inspired elevation (shadow) to an element.
87
+ ///
88
+ /// @param {Number} $level - The elevation level (0-24).
89
+ /// @example scss - Usage
90
+ /// @include elevation(4);
91
+ ///
92
+ @mixin elevation($level) {
93
+ @if map.has-key($elevations, $level) {
94
+ box-shadow: map.get($elevations, $level);
95
+ } @else {
96
+ @warn "Invalid elevation level: #{$level}. Valid levels are: 0, 1, 2, 3, 4, 5, 6, 8, 12, 16, 24.";
97
+ }
98
+ }
99
+
100
+ ///
101
+ /// Elevation with hover transition.
102
+ ///
103
+ /// @param {Number} $default [1] - Default elevation level.
104
+ /// @param {Number} $hover [4] - Hover elevation level.
105
+ /// @param {Time} $duration [0.3s] - Transition duration.
106
+ ///
107
+ @mixin elevation_interactive($default: 1, $hover: 4, $duration: 0.3s) {
108
+ @include elevation($default);
109
+ transition: box-shadow $duration ease;
110
+
111
+ &:hover {
112
+ @include elevation($hover);
113
+ }
114
+ }
115
+
116
+
117
+ // ============================================================================
118
+ // Directional Shadow Mixins
119
+ // ============================================================================
120
+
121
+ ///
122
+ /// Shadow pointing upward (light source from below).
123
+ ///
124
+ /// @param {Length} $distance [4px] - Shadow distance.
125
+ /// @param {Length} $blur [8px] - Blur radius.
126
+ /// @param {Color} $color [$shadow-color-default] - Shadow color.
127
+ ///
128
+ @mixin shadow_top($distance: 4px, $blur: 8px, $color: $shadow-color-default) {
129
+ box-shadow: 0 (-$distance) $blur (-$distance * 0.5) $color;
130
+ }
131
+
132
+ ///
133
+ /// Shadow pointing rightward.
134
+ ///
135
+ @mixin shadow_right($distance: 4px, $blur: 8px, $color: $shadow-color-default) {
136
+ box-shadow: $distance 0 $blur (-$distance * 0.5) $color;
137
+ }
138
+
139
+ ///
140
+ /// Shadow pointing downward (most common).
141
+ ///
142
+ @mixin shadow_bottom($distance: 4px, $blur: 8px, $color: $shadow-color-default) {
143
+ box-shadow: 0 $distance $blur (-$distance * 0.5) $color;
144
+ }
145
+
146
+ ///
147
+ /// Shadow pointing leftward.
148
+ ///
149
+ @mixin shadow_left($distance: 4px, $blur: 8px, $color: $shadow-color-default) {
150
+ box-shadow: (-$distance) 0 $blur (-$distance * 0.5) $color;
151
+ }
152
+
153
+
154
+ // ============================================================================
155
+ // Shadow Presets
156
+ // ============================================================================
157
+
158
+ /// No shadow
159
+ @mixin shadow_none {
160
+ box-shadow: none;
161
+ }
162
+
163
+ /// Extra small/subtle shadow
164
+ @mixin shadow_xs {
165
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
166
+ }
167
+
168
+ /// Small shadow
169
+ @mixin shadow_sm {
170
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
171
+ }
172
+
173
+ /// Medium/default shadow
174
+ @mixin shadow_md {
175
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
176
+ }
177
+
178
+ /// Large shadow
179
+ @mixin shadow_lg {
180
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
181
+ }
182
+
183
+ /// Extra large shadow
184
+ @mixin shadow_xl {
185
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
186
+ }
187
+
188
+ /// 2XL shadow
189
+ @mixin shadow_2xl {
190
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
191
+ }
192
+
193
+ /// Inner/inset shadow
194
+ @mixin shadow_inner {
195
+ box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);
196
+ }
197
+
198
+ /// Inner shadow (deeper)
199
+ @mixin shadow_inner_deep {
200
+ box-shadow: inset 0 4px 8px 0 rgba(0, 0, 0, 0.15);
201
+ }
202
+
203
+
204
+ // ============================================================================
205
+ // Special Effect Shadows
206
+ // ============================================================================
207
+
208
+ ///
209
+ /// Colored shadow based on element's background.
210
+ ///
211
+ /// @param {Color} $color - The base color for the shadow.
212
+ /// @param {Number} $opacity [0.4] - Shadow opacity.
213
+ /// @param {Length} $blur [20px] - Blur radius.
214
+ ///
215
+ @mixin shadow_colored($color, $opacity: 0.4, $blur: 20px) {
216
+ box-shadow: 0 10px $blur rgba($color, $opacity);
217
+ }
218
+
219
+ ///
220
+ /// Glow effect shadow.
221
+ ///
222
+ /// @param {Color} $color [#3b82f6] - Glow color.
223
+ /// @param {Number} $intensity [0.5] - Glow intensity.
224
+ /// @param {Length} $spread [15px] - Spread radius.
225
+ ///
226
+ @mixin shadow_glow($color: #3b82f6, $intensity: 0.5, $spread: 15px) {
227
+ box-shadow: 0 0 $spread rgba($color, $intensity);
228
+ }
229
+
230
+ ///
231
+ /// Neon glow effect.
232
+ ///
233
+ /// @param {Color} $color [#00ff00] - Neon color.
234
+ ///
235
+ @mixin shadow_neon($color: #00ff00) {
236
+ box-shadow:
237
+ 0 0 5px $color,
238
+ 0 0 10px $color,
239
+ 0 0 20px $color,
240
+ 0 0 40px $color;
241
+ }
242
+
243
+ ///
244
+ /// Soft diffused shadow for cards.
245
+ ///
246
+ @mixin shadow_soft {
247
+ box-shadow:
248
+ 0 2px 4px rgba(0, 0, 0, 0.04),
249
+ 0 4px 8px rgba(0, 0, 0, 0.04),
250
+ 0 8px 16px rgba(0, 0, 0, 0.04),
251
+ 0 16px 32px rgba(0, 0, 0, 0.04);
252
+ }
253
+
254
+ ///
255
+ /// Floating/lifted element shadow.
256
+ ///
257
+ @mixin shadow_floating {
258
+ box-shadow:
259
+ 0 12px 28px rgba(0, 0, 0, 0.1),
260
+ 0 8px 12px rgba(0, 0, 0, 0.05);
261
+ }
262
+
263
+ ///
264
+ /// Border-like shadow (creates a shadow that looks like a border).
265
+ ///
266
+ /// @param {Length} $width [1px] - Border width.
267
+ /// @param {Color} $color [rgba(0,0,0,0.1)] - Border color.
268
+ ///
269
+ @mixin shadow_border($width: 1px, $color: rgba(0, 0, 0, 0.1)) {
270
+ box-shadow: 0 0 0 $width $color;
271
+ }
272
+
273
+ ///
274
+ /// Focus ring shadow for accessibility.
275
+ ///
276
+ /// @param {Color} $color [#3b82f6] - Ring color.
277
+ /// @param {Length} $width [3px] - Ring width.
278
+ /// @param {Length} $offset [2px] - Ring offset.
279
+ ///
280
+ @mixin shadow_focus_ring($color: #3b82f6, $width: 3px, $offset: 2px) {
281
+ box-shadow: 0 0 0 $offset #fff, 0 0 0 ($offset + $width) $color;
282
+ }
283
+
284
+
285
+ // ============================================================================
286
+ // Embossed & Debossed Effects
287
+ // ============================================================================
288
+
289
+ ///
290
+ /// Embossed (raised) effect.
291
+ ///
292
+ @mixin shadow_embossed {
293
+ box-shadow:
294
+ inset 0 1px 0 rgba(255, 255, 255, 0.5),
295
+ inset 0 -1px 0 rgba(0, 0, 0, 0.1),
296
+ 0 1px 2px rgba(0, 0, 0, 0.1);
297
+ }
298
+
299
+ ///
300
+ /// Debossed (pressed) effect.
301
+ ///
302
+ @mixin shadow_debossed {
303
+ box-shadow:
304
+ inset 0 2px 4px rgba(0, 0, 0, 0.15),
305
+ inset 0 1px 2px rgba(0, 0, 0, 0.1);
306
+ }
307
+
308
+ ///
309
+ /// Neumorphism raised effect.
310
+ ///
311
+ /// @param {Color} $bg-color [#e0e0e0] - Background color for calculating light/dark.
312
+ ///
313
+ @mixin shadow_neumorphic_raised($bg-color: #e0e0e0) {
314
+ $light: color.scale($bg-color, $lightness: 15%);
315
+ $dark: color.scale($bg-color, $lightness: -15%);
316
+
317
+ box-shadow:
318
+ -8px -8px 16px $light,
319
+ 8px 8px 16px $dark;
320
+ }
321
+
322
+ ///
323
+ /// Neumorphism pressed effect.
324
+ ///
325
+ /// @param {Color} $bg-color [#e0e0e0] - Background color.
326
+ ///
327
+ @mixin shadow_neumorphic_pressed($bg-color: #e0e0e0) {
328
+ $light: color.scale($bg-color, $lightness: 15%);
329
+ $dark: color.scale($bg-color, $lightness: -15%);
330
+
331
+ box-shadow:
332
+ inset -4px -4px 8px $light,
333
+ inset 4px 4px 8px $dark;
334
+ }
335
+
336
+
337
+ // ============================================================================
338
+ // Shadow Transition Mixins
339
+ // ============================================================================
340
+
341
+ ///
342
+ /// Smooth shadow transition.
343
+ ///
344
+ /// @param {Time} $duration [0.3s] - Transition duration.
345
+ /// @param {String} $timing [ease] - Timing function.
346
+ ///
347
+ @mixin shadow_transition($duration: 0.3s, $timing: ease) {
348
+ transition: box-shadow $duration $timing;
349
+ }
350
+
351
+ ///
352
+ /// Shadow hover effect.
353
+ ///
354
+ /// @param {String} $default - Default shadow (use mixin name or custom).
355
+ /// @param {String} $hover - Hover shadow.
356
+ /// @param {Time} $duration [0.3s] - Transition duration.
357
+ ///
358
+ @mixin shadow_hover($duration: 0.3s) {
359
+ transition: box-shadow $duration ease, transform $duration ease;
360
+
361
+ &:hover {
362
+ @content;
363
+ }
364
+ }
365
+
366
+
367
+ // ============================================================================
368
+ // Text Shadow Presets
369
+ // ============================================================================
370
+
371
+ /// Subtle text shadow
372
+ @mixin text_shadow_subtle {
373
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
374
+ }
375
+
376
+ /// Medium text shadow
377
+ @mixin text_shadow_md {
378
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
379
+ }
380
+
381
+ /// Hard text shadow (no blur)
382
+ @mixin text_shadow_hard {
383
+ text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3);
384
+ }
385
+
386
+ /// Text outline using shadow
387
+ @mixin text_shadow_outline($color: #000) {
388
+ text-shadow:
389
+ -1px -1px 0 $color,
390
+ 1px -1px 0 $color,
391
+ -1px 1px 0 $color,
392
+ 1px 1px 0 $color;
393
+ }
394
+
395
+ /// Long shadow effect for text
396
+ @mixin text_shadow_long($color: rgba(0, 0, 0, 0.2), $length: 10) {
397
+ $shadows: ();
398
+ @for $i from 1 through $length {
399
+ $shadows: append($shadows, #{$i}px #{$i}px 0 $color, comma);
400
+ }
401
+ text-shadow: $shadows;
402
+ }
403
+
404
+
405
+ // ============================================================================
406
+ // Utility Classes Generator
407
+ // ============================================================================
408
+
409
+ ///
410
+ /// Generates utility classes for shadows.
411
+ ///
412
+ @mixin generate_shadow_utilities {
413
+ .shadow-none { @include shadow_none; }
414
+ .shadow-xs { @include shadow_xs; }
415
+ .shadow-sm { @include shadow_sm; }
416
+ .shadow { @include shadow_md; }
417
+ .shadow-md { @include shadow_md; }
418
+ .shadow-lg { @include shadow_lg; }
419
+ .shadow-xl { @include shadow_xl; }
420
+ .shadow-2xl { @include shadow_2xl; }
421
+ .shadow-inner { @include shadow_inner; }
422
+
423
+ // Elevation utilities
424
+ @each $level, $value in $elevations {
425
+ .elevation-#{$level} {
426
+ box-shadow: $value;
427
+ }
428
+ }
429
+ }
@@ -0,0 +1,199 @@
1
+ ////
2
+ ///
3
+ /// Keyframes Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides a comprehensive set of keyframe animation mixins
7
+ /// including the base keyframes generator and common animation patterns.
8
+ /// Supports vendor prefixes and CSS custom properties for flexibility.
9
+ ///
10
+ /// @group Keyframes
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @todo None
15
+ /// @access public
16
+ ///
17
+ ////
18
+
19
+
20
+ // ============================================================================
21
+ // Use
22
+ // ============================================================================
23
+
24
+ @use "sass:math";
25
+ @use "../../variables" as *;
26
+
27
+
28
+ // ============================================================================
29
+ // Base Keyframes Mixin
30
+ // ============================================================================
31
+
32
+ ///
33
+ /// Keyframes Mixin
34
+ /// ---------------------------------------------------------------------------
35
+ ///
36
+ /// A versatile mixin for defining CSS keyframes with vendor prefixes.
37
+ /// This mixin allows embedding keyframe content with the ability to specify
38
+ /// prefixes or additional settings easily.
39
+ ///
40
+ /// @name keyframes
41
+ /// @param {String} $name - The name of the keyframe animation.
42
+ /// @content - The keyframe rules defined within the mixin block.
43
+ /// @example scss - Usage
44
+ /// @include keyframes(animate_bounce) {
45
+ /// 0% { transform: translateY(0); }
46
+ /// 50% { transform: translateY(-30px); }
47
+ /// 100% { transform: translateY(0); }
48
+ /// }
49
+ ///
50
+ @mixin keyframes($name) {
51
+ @keyframes #{$name} {
52
+ @content;
53
+ }
54
+
55
+ @-webkit-keyframes #{$name} {
56
+ @content;
57
+ }
58
+ }
59
+
60
+
61
+ // ============================================================================
62
+ // Animation Application Mixin
63
+ // ============================================================================
64
+
65
+ ///
66
+ /// Apply animation with full control.
67
+ ///
68
+ /// @param {String} $name - Animation name.
69
+ /// @param {Time} $duration [$keyframe-duration-default] - Duration.
70
+ /// @param {String} $timing [$keyframe-timing-default] - Timing function.
71
+ /// @param {Time} $delay [0s] - Delay before animation.
72
+ /// @param {Number|String} $iteration [$keyframe-iteration-default] - Iteration count.
73
+ /// @param {String} $direction [normal] - Direction.
74
+ /// @param {String} $fill-mode [forwards] - Fill mode.
75
+ /// @param {String} $play-state [running] - Play state.
76
+ ///
77
+ @mixin animate(
78
+ $name,
79
+ $duration: $keyframe-duration-default,
80
+ $timing: $keyframe-timing-default,
81
+ $delay: 0s,
82
+ $iteration: $keyframe-iteration-default,
83
+ $direction: normal,
84
+ $fill-mode: forwards,
85
+ $play-state: running
86
+ ) {
87
+ animation-name: $name;
88
+ animation-duration: $duration;
89
+ animation-timing-function: $timing;
90
+ animation-delay: $delay;
91
+ animation-iteration-count: $iteration;
92
+ animation-direction: $direction;
93
+ animation-fill-mode: $fill-mode;
94
+ animation-play-state: $play-state;
95
+ }
96
+
97
+ ///
98
+ /// Shorthand animation mixin.
99
+ ///
100
+ /// @param {String} $animation - Full animation shorthand value.
101
+ ///
102
+ @mixin animation($animation) {
103
+ animation: $animation;
104
+ }
105
+
106
+ ///
107
+ /// Infinite looping animation.
108
+ ///
109
+ /// @param {String} $name - Animation name.
110
+ /// @param {Time} $duration [1s] - Duration per cycle.
111
+ /// @param {String} $timing [linear] - Timing function.
112
+ ///
113
+ @mixin animate_infinite($name, $duration: 1s, $timing: linear) {
114
+ animation: $name $duration $timing infinite;
115
+ }
116
+
117
+
118
+ // ============================================================================
119
+ // Loading Animation Keyframes
120
+ // ============================================================================
121
+
122
+ ///
123
+ /// Spinner rotation.
124
+ ///
125
+ @mixin keyframes_spinner {
126
+ @include keyframes(spinner) {
127
+ from { transform: rotate(0deg); }
128
+ to { transform: rotate(360deg); }
129
+ }
130
+ }
131
+
132
+ ///
133
+ /// Dots loading animation.
134
+ ///
135
+ @mixin keyframes_dots {
136
+ @include keyframes(dots) {
137
+ 0%, 80%, 100% {
138
+ transform: scale(0);
139
+ opacity: 0.5;
140
+ }
141
+ 40% {
142
+ transform: scale(1);
143
+ opacity: 1;
144
+ }
145
+ }
146
+ }
147
+
148
+ ///
149
+ /// Progress bar animation.
150
+ ///
151
+ @mixin keyframes_progress {
152
+ @include keyframes(progress) {
153
+ from { width: 0%; }
154
+ to { width: 100%; }
155
+ }
156
+ }
157
+
158
+ ///
159
+ /// Skeleton loading shimmer.
160
+ ///
161
+ @mixin keyframes_shimmer {
162
+ @include keyframes(shimmer) {
163
+ from {
164
+ background-position: -200% 0;
165
+ }
166
+ to {
167
+ background-position: 200% 0;
168
+ }
169
+ }
170
+ }
171
+
172
+
173
+ // ============================================================================
174
+ // Animation Control Mixins
175
+ // ============================================================================
176
+
177
+ ///
178
+ /// Pause animation.
179
+ ///
180
+ @mixin animation_pause {
181
+ animation-play-state: paused;
182
+ }
183
+
184
+ ///
185
+ /// Resume animation.
186
+ ///
187
+ @mixin animation_play {
188
+ animation-play-state: running;
189
+ }
190
+
191
+ ///
192
+ /// Reduce motion for accessibility.
193
+ ///
194
+ @mixin animation_reduce_motion {
195
+ @media (prefers-reduced-motion: reduce) {
196
+ animation: none !important;
197
+ transition: none !important;
198
+ }
199
+ }
@@ -0,0 +1,24 @@
1
+ ////
2
+ ///
3
+ /// Keyframes Mixin Module
4
+ /// =========================================================================
5
+ ///
6
+ /// CSS @keyframes definitions organized by category. The animations
7
+ /// subfolder contains all animation-related keyframes (bounce, fade,
8
+ /// spin, shake, etc.).
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
+ // Forward Modules
21
+ // ============================================================================
22
+
23
+ @forward "base";
24
+ @forward "animations";