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,394 @@
1
+ ////
2
+ ///
3
+ /// Zoom Animations Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// Provides SCSS mixins for creating zoom animations that scale elements in
7
+ /// and out. Includes standard zoom, speed variations, and combined zoom
8
+ /// effects with fade and rotation.
9
+ ///
10
+ /// @group Animations
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 "../../dev" as *;
24
+ @use "../../variables" as *;
25
+ @use "../keyframes" as *;
26
+ @use "base" as *;
27
+
28
+
29
+ // ============================================================================
30
+ // Mixins
31
+ // ============================================================================
32
+
33
+ ///
34
+ /// Zoom Animation
35
+ /// ---------------------------------------------------------------------------
36
+ /// Creates a zoom effect by scaling an element up and down.
37
+ ///
38
+ /// @name animate_zoom
39
+ /// @param {Number} $scale [$animate_scale_zoom] - Scale factor at animation peak
40
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
41
+ /// @param {String} $timing_function [ease-in-out] - Timing function
42
+ /// @param {Number|String} $iteration_count [$animate_base_iteration_count] - Iterations
43
+ ///
44
+ /// @example scss - Basic usage
45
+ /// .image {
46
+ /// @include animate_zoom;
47
+ /// }
48
+ ///
49
+ @mixin animate_zoom(
50
+ $scale: $animate_scale_zoom,
51
+ $duration: $animate_base_duration,
52
+ $timing_function: $animate_base_timing_function,
53
+ $iteration_count: $animate_base_iteration_count
54
+ ) {
55
+ @include animate_base(
56
+ animate_zoom,
57
+ $duration,
58
+ $timing_function,
59
+ $iteration_count
60
+ );
61
+ @include keyframes_zoom($scale);
62
+ }
63
+
64
+
65
+ ///
66
+ /// Gentle Zoom Animation
67
+ /// ---------------------------------------------------------------------------
68
+ /// A slower, more subtle zoom effect.
69
+ ///
70
+ /// @name animate_zoom_slow
71
+ /// @param {Number} $scale [$animate_scale_zoom_slow] - Scale factor at animation peak
72
+ /// @param {Time} $duration [$animate_base_duration_slow] - Animation duration
73
+ /// @param {String} $timing_function [ease-in-out] - Timing function
74
+ /// @param {Number|String} $iteration_count [$animate_base_iteration_count] - Iterations
75
+ ///
76
+ @mixin animate_zoom_slow(
77
+ $scale: $animate_scale_zoom_slow,
78
+ $duration: $animate_base_duration_slow,
79
+ $timing_function: $animate_base_timing_function,
80
+ $iteration_count: $animate_base_iteration_count
81
+ ) {
82
+ @include animate_base(
83
+ animate_zoom_slow,
84
+ $duration,
85
+ $timing_function,
86
+ $iteration_count
87
+ );
88
+ @include keyframes_zoom_slow($scale);
89
+ }
90
+
91
+
92
+ ///
93
+ /// Rapid Zoom Animation
94
+ /// ---------------------------------------------------------------------------
95
+ /// A faster, more intense zoom effect.
96
+ ///
97
+ /// @name animate_zoom_fast
98
+ /// @param {Number} $scale [$animate_scale_zoom_fast] - Scale factor at animation peak
99
+ /// @param {Time} $duration [$animate_base_duration_fast] - Animation duration
100
+ /// @param {String} $timing_function [ease-in-out] - Timing function
101
+ /// @param {Number|String} $iteration_count [$animate_base_iteration_count] - Iterations
102
+ ///
103
+ @mixin animate_zoom_fast(
104
+ $scale: $animate_scale_zoom_fast,
105
+ $duration: $animate_base_duration_fast,
106
+ $timing_function: $animate_base_timing_function,
107
+ $iteration_count: $animate_base_iteration_count
108
+ ) {
109
+ @include animate_base(
110
+ animate_zoom_fast,
111
+ $duration,
112
+ $timing_function,
113
+ $iteration_count
114
+ );
115
+ @include keyframes_zoom_fast($scale);
116
+ }
117
+
118
+
119
+ ///
120
+ /// Zoom with Fade Animation
121
+ /// ---------------------------------------------------------------------------
122
+ /// Combines zoom with a fade effect for a breathing appearance.
123
+ ///
124
+ /// @name animate_zoom_fade
125
+ /// @param {Number} $scale [1.5] - Scale factor at animation peak
126
+ /// @param {Number} $opacity_min [0.5] - Minimum opacity
127
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
128
+ /// @param {String} $timing_function [ease-in-out] - Timing function
129
+ /// @param {Number|String} $iteration_count [$animate_base_iteration_count] - Iterations
130
+ ///
131
+ @mixin animate_zoom_fade(
132
+ $scale: 1.5,
133
+ $opacity_min: 0.5,
134
+ $duration: $animate_base_duration,
135
+ $timing_function: $animate_base_timing_function,
136
+ $iteration_count: $animate_base_iteration_count
137
+ ) {
138
+ @include animate_base(
139
+ animate_zoom_fade,
140
+ $duration,
141
+ $timing_function,
142
+ $iteration_count
143
+ );
144
+ @include keyframes_zoom_fade($scale, $opacity_min);
145
+ }
146
+
147
+
148
+ ///
149
+ /// Zoom In Animation
150
+ /// ---------------------------------------------------------------------------
151
+ /// Creates an entrance animation that zooms an element in from scaled down.
152
+ ///
153
+ /// @name animate_zoom_in
154
+ /// @param {Number} $start_scale [0.5] - Starting scale
155
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
156
+ /// @param {String} $timing_function [ease-out] - Timing function
157
+ ///
158
+ @mixin animate_zoom_in(
159
+ $start_scale: 0.5,
160
+ $duration: $animate_base_duration,
161
+ $timing_function: ease-out
162
+ ) {
163
+ @include animate_base(
164
+ animate_zoom_in,
165
+ $duration,
166
+ $timing_function,
167
+ 1,
168
+ $fill_mode: both
169
+ );
170
+ @include keyframes_zoom_in($start_scale);
171
+ }
172
+
173
+
174
+ ///
175
+ /// Zoom Out Animation
176
+ /// ---------------------------------------------------------------------------
177
+ /// Creates an exit animation that zooms an element out.
178
+ ///
179
+ /// @name animate_zoom_out
180
+ /// @param {Number} $end_scale [0.5] - Ending scale
181
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
182
+ /// @param {String} $timing_function [ease-in] - Timing function
183
+ ///
184
+ @mixin animate_zoom_out(
185
+ $end_scale: 0.5,
186
+ $duration: $animate_base_duration,
187
+ $timing_function: ease-in
188
+ ) {
189
+ @include animate_base(
190
+ animate_zoom_out,
191
+ $duration,
192
+ $timing_function,
193
+ 1,
194
+ $fill_mode: both
195
+ );
196
+ @include keyframes_zoom_out($end_scale);
197
+ }
198
+
199
+
200
+ ///
201
+ /// Zoom with Rotate Animation
202
+ /// ---------------------------------------------------------------------------
203
+ /// Combines zoom with rotation for a dynamic effect.
204
+ ///
205
+ /// @name animate_zoom_rotate
206
+ /// @param {Number} $scale [1.5] - Scale factor at animation peak
207
+ /// @param {Angle} $rotation [15deg] - Rotation angle
208
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
209
+ /// @param {String} $timing_function [ease-in-out] - Timing function
210
+ /// @param {Number|String} $iteration_count [$animate_base_iteration_count] - Iterations
211
+ ///
212
+ @mixin animate_zoom_rotate(
213
+ $scale: 1.5,
214
+ $rotation: 15deg,
215
+ $duration: $animate_base_duration,
216
+ $timing_function: $animate_base_timing_function,
217
+ $iteration_count: $animate_base_iteration_count
218
+ ) {
219
+ @include animate_base(
220
+ animate_zoom_rotate,
221
+ $duration,
222
+ $timing_function,
223
+ $iteration_count
224
+ );
225
+ @include keyframes_zoom_rotate($scale, $rotation);
226
+ }
227
+
228
+
229
+ ///
230
+ /// Zoom In Up Animation
231
+ /// ---------------------------------------------------------------------------
232
+ /// Zooms in from below the element's position.
233
+ ///
234
+ /// @name animate_zoom_in_up
235
+ /// @param {Number} $start_scale [0.5] - Starting scale
236
+ /// @param {Length} $distance [20px] - Distance to travel
237
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
238
+ /// @param {String} $timing_function [ease-out] - Timing function
239
+ ///
240
+ @mixin animate_zoom_in_up(
241
+ $start_scale: 0.5,
242
+ $distance: 20px,
243
+ $duration: $animate_base_duration,
244
+ $timing_function: ease-out
245
+ ) {
246
+ @include animate_base(
247
+ animate_zoom_in_up,
248
+ $duration,
249
+ $timing_function,
250
+ 1,
251
+ $fill_mode: both
252
+ );
253
+ @include keyframes_zoom_in_up($start_scale, $distance);
254
+ }
255
+
256
+
257
+ ///
258
+ /// Zoom In Down Animation
259
+ /// ---------------------------------------------------------------------------
260
+ /// Zooms in from above the element's position.
261
+ ///
262
+ /// @name animate_zoom_in_down
263
+ /// @param {Number} $start_scale [0.5] - Starting scale
264
+ /// @param {Length} $distance [20px] - Distance to travel
265
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
266
+ /// @param {String} $timing_function [ease-out] - Timing function
267
+ ///
268
+ @mixin animate_zoom_in_down(
269
+ $start_scale: 0.5,
270
+ $distance: 20px,
271
+ $duration: $animate_base_duration,
272
+ $timing_function: ease-out
273
+ ) {
274
+ @include animate_base(
275
+ animate_zoom_in_down,
276
+ $duration,
277
+ $timing_function,
278
+ 1,
279
+ $fill_mode: both
280
+ );
281
+ @include keyframes_zoom_in_down($start_scale, $distance);
282
+ }
283
+
284
+
285
+ ///
286
+ /// Zoom In Left Animation
287
+ /// ---------------------------------------------------------------------------
288
+ /// Zooms in from the left of the element's position.
289
+ ///
290
+ /// @name animate_zoom_in_left
291
+ /// @param {Number} $start_scale [0.5] - Starting scale
292
+ /// @param {Length} $distance [20px] - Distance to travel
293
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
294
+ /// @param {String} $timing_function [ease-out] - Timing function
295
+ ///
296
+ @mixin animate_zoom_in_left(
297
+ $start_scale: 0.5,
298
+ $distance: 20px,
299
+ $duration: $animate_base_duration,
300
+ $timing_function: ease-out
301
+ ) {
302
+ @include animate_base(
303
+ animate_zoom_in_left,
304
+ $duration,
305
+ $timing_function,
306
+ 1,
307
+ $fill_mode: both
308
+ );
309
+ @include keyframes_zoom_in_left($start_scale, $distance);
310
+ }
311
+
312
+
313
+ ///
314
+ /// Zoom In Right Animation
315
+ /// ---------------------------------------------------------------------------
316
+ /// Zooms in from the right of the element's position.
317
+ ///
318
+ /// @name animate_zoom_in_right
319
+ /// @param {Number} $start_scale [0.5] - Starting scale
320
+ /// @param {Length} $distance [20px] - Distance to travel
321
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
322
+ /// @param {String} $timing_function [ease-out] - Timing function
323
+ ///
324
+ @mixin animate_zoom_in_right(
325
+ $start_scale: 0.5,
326
+ $distance: 20px,
327
+ $duration: $animate_base_duration,
328
+ $timing_function: ease-out
329
+ ) {
330
+ @include animate_base(
331
+ animate_zoom_in_right,
332
+ $duration,
333
+ $timing_function,
334
+ 1,
335
+ $fill_mode: both
336
+ );
337
+ @include keyframes_zoom_in_right($start_scale, $distance);
338
+ }
339
+
340
+
341
+ ///
342
+ /// Zoom Out Up Animation
343
+ /// ---------------------------------------------------------------------------
344
+ /// Zooms out while moving up.
345
+ ///
346
+ /// @name animate_zoom_out_up
347
+ /// @param {Number} $end_scale [0.5] - Ending scale
348
+ /// @param {Length} $distance [20px] - Distance to travel
349
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
350
+ /// @param {String} $timing_function [ease-in] - Timing function
351
+ ///
352
+ @mixin animate_zoom_out_up(
353
+ $end_scale: 0.5,
354
+ $distance: 20px,
355
+ $duration: $animate_base_duration,
356
+ $timing_function: ease-in
357
+ ) {
358
+ @include animate_base(
359
+ animate_zoom_out_up,
360
+ $duration,
361
+ $timing_function,
362
+ 1,
363
+ $fill_mode: forwards
364
+ );
365
+ @include keyframes_zoom_out_up($end_scale, $distance);
366
+ }
367
+
368
+
369
+ ///
370
+ /// Zoom Out Down Animation
371
+ /// ---------------------------------------------------------------------------
372
+ /// Zooms out while moving down.
373
+ ///
374
+ /// @name animate_zoom_out_down
375
+ /// @param {Number} $end_scale [0.5] - Ending scale
376
+ /// @param {Length} $distance [20px] - Distance to travel
377
+ /// @param {Time} $duration [$animate_base_duration] - Animation duration
378
+ /// @param {String} $timing_function [ease-in] - Timing function
379
+ ///
380
+ @mixin animate_zoom_out_down(
381
+ $end_scale: 0.5,
382
+ $distance: 20px,
383
+ $duration: $animate_base_duration,
384
+ $timing_function: ease-in
385
+ ) {
386
+ @include animate_base(
387
+ animate_zoom_out_down,
388
+ $duration,
389
+ $timing_function,
390
+ 1,
391
+ $fill_mode: forwards
392
+ );
393
+ @include keyframes_zoom_out_down($end_scale, $distance);
394
+ }
@@ -0,0 +1,203 @@
1
+ ////
2
+ ///
3
+ /// Cursor Controls Mixin Module
4
+ /// =========================================================================
5
+ ///
6
+ /// Provides a comprehensive set of mixins for managing cursor styles.
7
+ /// Includes utility mixins for common cursor types, custom cursors with
8
+ /// fallback options, animated cursors, and advanced use cases involving
9
+ /// state-based and responsive cursor handling.
10
+ ///
11
+ /// @group Controls
12
+ /// @author Scape Agency
13
+ /// @link https://move.gl
14
+ /// @since 0.1.0 initial release
15
+ /// @see https://developer.mozilla.org/en-US/docs/Web/CSS/cursor
16
+ /// @access public
17
+ ///
18
+ ////
19
+
20
+
21
+ // ============================================================================
22
+ // Use
23
+ // ============================================================================
24
+
25
+ @use "sass:map";
26
+ @use "../../variables" as *;
27
+ @use "../../maps" as *;
28
+
29
+
30
+ // ============================================================================
31
+ // Mixins
32
+ // ============================================================================
33
+
34
+
35
+ ///
36
+ /// Mixin for applying a cursor style using predefined cursor types from the map.
37
+ /// ---------------------------------------------------------------------------
38
+ ///
39
+ /// @name cursor_style
40
+ /// @param {String} $type ['default'] - The cursor style to apply.
41
+ /// @example scss - Usage
42
+ /// .element { @include cursor_style('pointer'); } // Applies pointer cursor
43
+ ///
44
+ @mixin cursor_style($type: "default") {
45
+ @if map.has-key($cursor_styles, $type) {
46
+ cursor: map.get($cursor_styles, $type);
47
+ } @else {
48
+ cursor: $type; // Fallback if type is not in map
49
+ }
50
+ }
51
+
52
+ ///
53
+ /// Mixin for custom cursor images with fallback options.
54
+ /// ---------------------------------------------------------------------------
55
+ ///
56
+ /// @name cursor_custom
57
+ /// @param {String} $url - URL of the custom cursor image.
58
+ /// @param {String} $fallback ['pointer'] - Fallback cursor style.
59
+ /// @example scss - Usage
60
+ /// .element { @include cursor_custom('path/to/cursor.png', 'pointer'); }
61
+ ///
62
+ @mixin cursor_custom($url, $fallback: pointer) {
63
+ cursor: url($url), $fallback;
64
+ // cursor: url(#{$url}), #{$fallback};
65
+ }
66
+
67
+
68
+
69
+
70
+
71
+
72
+ // ============================================================================
73
+ // Utility Mixins for Common Cursor Styles
74
+ // ============================================================================
75
+
76
+ @mixin cursor_default { @include cursor_style('default'); }
77
+ @mixin cursor_pointer { @include cursor_style('pointer'); }
78
+ @mixin cursor_text { @include cursor_style('text'); }
79
+ @mixin cursor_disabled { @include cursor_style('not-allowed'); }
80
+ @mixin cursor_not_allowed { @include cursor_style('not-allowed'); }
81
+ @mixin cursor_move { @include cursor_style('move'); }
82
+ @mixin cursor_grab { @include cursor_style('grab'); }
83
+ @mixin cursor_grabbing { @include cursor_style('grabbing'); }
84
+ @mixin cursor_help { @include cursor_style('help'); }
85
+ @mixin cursor_wait { @include cursor_style('wait'); }
86
+ @mixin cursor_crosshair { @include cursor_style('crosshair'); }
87
+ @mixin cursor_zoom_in { @include cursor_style('zoom-in'); }
88
+ @mixin cursor_zoom_out { @include cursor_style('zoom-out'); }
89
+
90
+
91
+ // ============================================================================
92
+ // Resize Cursor Mixins
93
+ // ============================================================================
94
+
95
+ @mixin cursor_n_resize { @include cursor_style('n-resize'); }
96
+ @mixin cursor_e_resize { @include cursor_style('e-resize'); }
97
+ @mixin cursor_s_resize { @include cursor_style('s-resize'); }
98
+ @mixin cursor_w_resize { @include cursor_style('w-resize'); }
99
+ @mixin cursor_ne_resize { @include cursor_style('ne-resize'); }
100
+ @mixin cursor_se_resize { @include cursor_style('se-resize'); }
101
+ @mixin cursor_sw_resize { @include cursor_style('sw-resize'); }
102
+ @mixin cursor_nw_resize { @include cursor_style('nw-resize'); }
103
+ @mixin cursor_ew_resize { @include cursor_style('ew-resize'); }
104
+ @mixin cursor_ns_resize { @include cursor_style('ns-resize'); }
105
+ @mixin cursor_col_resize { @include cursor_style('col-resize'); }
106
+ @mixin cursor_row_resize { @include cursor_style('row-resize'); }
107
+
108
+
109
+ // ============================================================================
110
+ // Advanced Mixins
111
+ // ============================================================================
112
+
113
+ ///
114
+ /// Mixin for hover and focus cursor effects.
115
+ /// ---------------------------------------------------------------------------
116
+ ///
117
+ /// @name hover_focus_cursor
118
+ /// @param {String} $hover ['pointer'] - Cursor style on hover.
119
+ /// @param {String} $focus ['pointer'] - Cursor style on focus.
120
+ ///
121
+ @mixin hover_focus_cursor($hover: pointer, $focus: pointer) {
122
+ &:hover { cursor: $hover; }
123
+ &:focus {
124
+ cursor: $focus;
125
+ outline: none; // Customize focus styles as needed
126
+ }
127
+ }
128
+
129
+ ///
130
+ /// Mixin for responsive cursor handling based on device capability.
131
+ /// ---------------------------------------------------------------------------
132
+ ///
133
+ /// @name cursor_responsive
134
+ /// @param {String} $desktop ['pointer'] - Cursor for desktop devices.
135
+ /// @param {String} $touch ['default'] - Cursor for touch devices.
136
+ ///
137
+ @mixin cursor_responsive(
138
+ $desktop: pointer,
139
+ $touch: default
140
+ ) {
141
+ @media (pointer: fine) { cursor: $desktop; }
142
+ @media (pointer: coarse) { cursor: $touch; }
143
+ }
144
+
145
+ ///
146
+ /// Mixin for animated cursors using a series of images.
147
+ /// ---------------------------------------------------------------------------
148
+ ///
149
+ /// @name cursor_animated
150
+ /// @param {List} $images - A list of image URLs for animation frames.
151
+ /// @param {Time} $interval ['0.5s'] - Interval between frames.
152
+ ///
153
+ @mixin cursor_animated($images, $interval: 0.5s) {
154
+ $animation-frames: ();
155
+ $index: 0;
156
+
157
+ @each $image in $images {
158
+ $index: $index + 1;
159
+ $percentage: percentage($index / length($images));
160
+ $animation-frames: append($animation-frames, ($percentage $image), comma);
161
+ }
162
+
163
+ @keyframes cursor-animation {
164
+ @each $frame in $animation-frames {
165
+ #{nth($frame, 1)} {
166
+ cursor: url(#{nth($frame, 2)}), auto;
167
+ }
168
+ }
169
+ }
170
+
171
+ animation: cursor-animation $interval infinite;
172
+ }
173
+
174
+ // ============================================================================
175
+ // Utility Class Generator for Common Cursors
176
+ // ============================================================================
177
+
178
+ @each $cursor in $cursors {
179
+ .cursor-#{$cursor} {
180
+ @include cursor_style($cursor);
181
+ }
182
+ }
183
+
184
+ // ============================================================================
185
+ // Examples of Using Advanced Mixins
186
+ // ============================================================================
187
+
188
+ // /// Example: Advanced hover and focus with cursor change and background effect
189
+ // .interactive-element {
190
+ // @include hover_focus_cursor(pointer, pointer);
191
+ // &:hover { background-color: lighten($primaryColor, 5%); }
192
+ // &:focus { background-color: lighten($primaryColor, 10%); }
193
+ // }
194
+
195
+ // /// Example: Responsive cursor handling for different devices
196
+ // .button {
197
+ // @include cursor_responsive(pointer, default);
198
+ // }
199
+
200
+ // /// Example: Using animated cursor with a series of images
201
+ // .cursor-animated-element {
202
+ // @include cursor_animated(('image1.png', 'image2.png', 'image3.png'));
203
+ // }