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,175 @@
1
+ // ============================================================================
2
+ // move.gl | Spinner Loader Mixins
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Spinner Loader Mixins
10
+ /// ===========================================================================
11
+ ///
12
+ /// This module provides spinner animation mixins for creating rotating
13
+ /// border and growing circle loading indicators.
14
+ ///
15
+ /// @group Loaders
16
+ /// @author Scape Agency
17
+ /// @link https://move.gl
18
+ /// @since 0.1.0 initial release
19
+ /// @access public
20
+ ////
21
+
22
+
23
+ // ============================================================================
24
+ // Use
25
+ // ============================================================================
26
+
27
+ @use "../../variables" as *;
28
+
29
+
30
+ // ============================================================================
31
+ // Keyframes
32
+ // ============================================================================
33
+
34
+ /// Spinner border rotation keyframes
35
+ @mixin keyframes_spinner_border {
36
+ @keyframes spinner-border {
37
+ to { transform: rotate(360deg); }
38
+ }
39
+ }
40
+
41
+ /// Spinner grow keyframes
42
+ @mixin keyframes_spinner_grow {
43
+ @keyframes spinner-grow {
44
+ 0% {
45
+ transform: scale(0);
46
+ }
47
+ 50% {
48
+ opacity: 1;
49
+ transform: none;
50
+ }
51
+ }
52
+ }
53
+
54
+
55
+ // ============================================================================
56
+ // Mixins
57
+ // ============================================================================
58
+
59
+ /// Base spinner mixin
60
+ /// @param {Number} $width [$spinner-width] - Width of the spinner
61
+ /// @param {Number} $height [$spinner-height] - Height of the spinner
62
+ /// @param {Number} $speed [$spinner-animation-speed] - Animation duration
63
+ @mixin spinner_base(
64
+ $width: $spinner-width,
65
+ $height: $spinner-height,
66
+ $speed: $spinner-animation-speed
67
+ ) {
68
+ display: inline-block;
69
+ width: $width;
70
+ height: $height;
71
+ vertical-align: $spinner-vertical-align;
72
+ border-radius: 50%;
73
+ }
74
+
75
+ /// Spinner border mixin - creates a rotating border spinner
76
+ /// @param {Number} $width [$spinner-width] - Width of the spinner
77
+ /// @param {Number} $height [$spinner-height] - Height of the spinner
78
+ /// @param {Number} $border-width [$spinner-border-width] - Border thickness
79
+ /// @param {Number} $speed [$spinner-animation-speed] - Animation duration
80
+ /// @param {Color} $color [currentcolor] - Spinner color
81
+ @mixin spinner_border(
82
+ $width: $spinner-width,
83
+ $height: $spinner-height,
84
+ $border-width: $spinner-border-width,
85
+ $speed: $spinner-animation-speed,
86
+ $color: currentcolor
87
+ ) {
88
+ @include spinner_base($width, $height, $speed);
89
+ border: $border-width solid $color;
90
+ border-right-color: transparent;
91
+ animation: spinner-border $speed linear infinite;
92
+ }
93
+
94
+ /// Spinner border small variant
95
+ /// @param {Number} $width [$spinner-width-sm] - Width of small spinner
96
+ /// @param {Number} $height [$spinner-height-sm] - Height of small spinner
97
+ /// @param {Number} $border-width [$spinner-border-width-sm] - Border thickness
98
+ /// @param {Number} $speed [$spinner-animation-speed] - Animation duration
99
+ /// @param {Color} $color [currentcolor] - Spinner color
100
+ @mixin spinner_border_sm(
101
+ $width: $spinner-width-sm,
102
+ $height: $spinner-height-sm,
103
+ $border-width: $spinner-border-width-sm,
104
+ $speed: $spinner-animation-speed,
105
+ $color: currentcolor
106
+ ) {
107
+ @include spinner_border($width, $height, $border-width, $speed, $color);
108
+ }
109
+
110
+ /// Spinner grow mixin - creates a pulsing/growing spinner
111
+ /// @param {Number} $width [$spinner-width] - Width of the spinner
112
+ /// @param {Number} $height [$spinner-height] - Height of the spinner
113
+ /// @param {Number} $speed [$spinner-animation-speed] - Animation duration
114
+ /// @param {Color} $color [currentcolor] - Spinner color
115
+ @mixin spinner_grow(
116
+ $width: $spinner-width,
117
+ $height: $spinner-height,
118
+ $speed: $spinner-animation-speed,
119
+ $color: currentcolor
120
+ ) {
121
+ @include spinner_base($width, $height, $speed);
122
+ background-color: $color;
123
+ opacity: 0;
124
+ animation: spinner-grow $speed linear infinite;
125
+ }
126
+
127
+ /// Spinner grow small variant
128
+ /// @param {Number} $width [$spinner-width-sm] - Width of small spinner
129
+ /// @param {Number} $height [$spinner-height-sm] - Height of small spinner
130
+ /// @param {Number} $speed [$spinner-animation-speed] - Animation duration
131
+ /// @param {Color} $color [currentcolor] - Spinner color
132
+ @mixin spinner_grow_sm(
133
+ $width: $spinner-width-sm,
134
+ $height: $spinner-height-sm,
135
+ $speed: $spinner-animation-speed,
136
+ $color: currentcolor
137
+ ) {
138
+ @include spinner_grow($width, $height, $speed, $color);
139
+ }
140
+
141
+
142
+ // ============================================================================
143
+ // Utility Generator
144
+ // ============================================================================
145
+
146
+ /// Generate spinner utility classes
147
+ @mixin generate_spinner_utilities {
148
+ // Include keyframes
149
+ @include keyframes_spinner_border;
150
+ @include keyframes_spinner_grow;
151
+
152
+ .spinner-border {
153
+ @include spinner_border;
154
+ }
155
+
156
+ .spinner-border-sm {
157
+ @include spinner_border_sm;
158
+ }
159
+
160
+ .spinner-grow {
161
+ @include spinner_grow;
162
+ }
163
+
164
+ .spinner-grow-sm {
165
+ @include spinner_grow_sm;
166
+ }
167
+
168
+ // Reduced motion support
169
+ @media (prefers-reduced-motion: reduce) {
170
+ .spinner-border,
171
+ .spinner-grow {
172
+ animation-duration: $spinner-animation-speed * 2;
173
+ }
174
+ }
175
+ }
@@ -0,0 +1,446 @@
1
+ // ============================================================================
2
+ // move.gl | Text Loader Mixins
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Text Loader Mixins
10
+ /// ===========================================================================
11
+ ///
12
+ /// This module provides mixins for text-based loading animations.
13
+ ///
14
+ /// @group Loaders
15
+ /// @author Scape Agency
16
+ /// @link https://move.gl
17
+ /// @since 0.1.0
18
+ /// @access public
19
+ ////
20
+
21
+ @use "../../variables" as *;
22
+
23
+
24
+ // ============================================================================
25
+ // Keyframes
26
+ // ============================================================================
27
+
28
+ ///
29
+ /// Text clip fill animation keyframes.
30
+ ///
31
+ @mixin keyframes_text_fill {
32
+ @keyframes text-fill {
33
+ 0% { clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); }
34
+ 100% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
35
+ }
36
+ }
37
+
38
+ ///
39
+ /// Text bounce animation keyframes.
40
+ ///
41
+ @mixin keyframes_text_bounce {
42
+ @keyframes text-bounce {
43
+ 0%, 80%, 100% { transform: translateY(0); }
44
+ 40% { transform: translateY(-10px); }
45
+ }
46
+ }
47
+
48
+ ///
49
+ /// Text dot flash animation keyframes.
50
+ ///
51
+ @mixin keyframes_text_dots {
52
+ @keyframes text-dots {
53
+ 0% { content: ''; }
54
+ 25% { content: '.'; }
55
+ 50% { content: '..'; }
56
+ 75% { content: '...'; }
57
+ }
58
+ }
59
+
60
+ ///
61
+ /// Text letter fade animation keyframes.
62
+ ///
63
+ @mixin keyframes_text_letter_fade {
64
+ @keyframes text-letter-fade {
65
+ 0%, 100% { opacity: 0.3; }
66
+ 50% { opacity: 1; }
67
+ }
68
+ }
69
+
70
+ ///
71
+ /// Text scale pulse animation keyframes.
72
+ ///
73
+ @mixin keyframes_text_pulse {
74
+ @keyframes text-pulse {
75
+ 0%, 100% { transform: scale(1); opacity: 1; }
76
+ 50% { transform: scale(1.1); opacity: 0.7; }
77
+ }
78
+ }
79
+
80
+ ///
81
+ /// Text spotlight effect keyframes.
82
+ ///
83
+ @mixin keyframes_text_spotlight {
84
+ @keyframes text-spotlight {
85
+ 0% { background-position: -200% center; }
86
+ 100% { background-position: 200% center; }
87
+ }
88
+ }
89
+
90
+ ///
91
+ /// Text typing cursor blink keyframes.
92
+ ///
93
+ @mixin keyframes_text_cursor {
94
+ @keyframes text-cursor {
95
+ 0%, 100% { opacity: 0; }
96
+ 50% { opacity: 1; }
97
+ }
98
+ }
99
+
100
+ ///
101
+ /// Text wave animation keyframes.
102
+ ///
103
+ @mixin keyframes_text_wave {
104
+ @keyframes text-wave {
105
+ 0%, 100% { transform: translateY(0); }
106
+ 50% { transform: translateY(-20%); }
107
+ }
108
+ }
109
+
110
+ ///
111
+ /// Text shake animation keyframes.
112
+ ///
113
+ @mixin keyframes_text_shake {
114
+ @keyframes text-shake {
115
+ 0%, 100% { transform: translateX(0); }
116
+ 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }
117
+ 20%, 40%, 60%, 80% { transform: translateX(2px); }
118
+ }
119
+ }
120
+
121
+
122
+ // ============================================================================
123
+ // Text Loader Mixins
124
+ // ============================================================================
125
+
126
+ ///
127
+ /// Text fill loader with clip-path animation.
128
+ ///
129
+ /// @param {String} $text ['Loading'] - Text content.
130
+ /// @param {Color} $color [#FFF] - Text color.
131
+ /// @param {Color} $fill-color [#FF3D00] - Fill color.
132
+ /// @param {Length} $size [2rem] - Font size.
133
+ /// @param {Time} $duration [2s] - Animation duration.
134
+ ///
135
+ @mixin loader_text_fill(
136
+ $text: 'Loading',
137
+ $color: rgba(255, 255, 255, 0.3),
138
+ $fill-color: $loader-color,
139
+ $size: 2rem,
140
+ $duration: 2s
141
+ ) {
142
+ position: relative;
143
+ font-size: $size;
144
+ font-weight: 700;
145
+ color: var(--loader-bg, $color);
146
+
147
+ &::after {
148
+ content: attr(data-text);
149
+ position: absolute;
150
+ left: 0;
151
+ top: 0;
152
+ color: var(--loader-color, $fill-color);
153
+ clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
154
+ animation: text-fill $duration ease-in-out infinite;
155
+ }
156
+ }
157
+
158
+ ///
159
+ /// Text with animated dots loader.
160
+ ///
161
+ /// @param {String} $text ['Loading'] - Text content.
162
+ /// @param {Color} $color [#FFF] - Text color.
163
+ /// @param {Length} $size [1.5rem] - Font size.
164
+ /// @param {Time} $duration [1.5s] - Animation duration.
165
+ ///
166
+ @mixin loader_text_dots(
167
+ $text: 'Loading',
168
+ $color: $loader-color,
169
+ $size: 1.5rem,
170
+ $duration: 1.5s
171
+ ) {
172
+ font-size: $size;
173
+ font-weight: 500;
174
+ color: var(--loader-color, $color);
175
+
176
+ &::after {
177
+ content: '';
178
+ animation: text-dots $duration steps(4) infinite;
179
+ }
180
+ }
181
+
182
+ ///
183
+ /// Bouncing letters loader.
184
+ ///
185
+ /// @param {Color} $color [#FFF] - Text color.
186
+ /// @param {Length} $size [1.5rem] - Font size.
187
+ /// @param {Time} $duration [1s] - Animation duration.
188
+ ///
189
+ @mixin loader_text_bounce(
190
+ $color: $loader-color,
191
+ $size: 1.5rem,
192
+ $duration: $loader-speed
193
+ ) {
194
+ display: inline-flex;
195
+ gap: 0.1em;
196
+ font-size: $size;
197
+ font-weight: 700;
198
+ color: var(--loader-color, $color);
199
+
200
+ span {
201
+ display: inline-block;
202
+ animation: text-bounce $duration ease-in-out infinite;
203
+
204
+ @for $i from 1 through 10 {
205
+ &:nth-child(#{$i}) {
206
+ animation-delay: calc(($i - 1) * 0.1s);
207
+ }
208
+ }
209
+ }
210
+ }
211
+
212
+ ///
213
+ /// Fading letters loader.
214
+ ///
215
+ /// @param {Color} $color [#FFF] - Text color.
216
+ /// @param {Length} $size [1.5rem] - Font size.
217
+ /// @param {Time} $duration [1.5s] - Animation duration.
218
+ ///
219
+ @mixin loader_text_fade(
220
+ $color: $loader-color,
221
+ $size: 1.5rem,
222
+ $duration: 1.5s
223
+ ) {
224
+ display: inline-flex;
225
+ gap: 0.05em;
226
+ font-size: $size;
227
+ font-weight: 700;
228
+ color: var(--loader-color, $color);
229
+
230
+ span {
231
+ animation: text-letter-fade $duration ease-in-out infinite;
232
+
233
+ @for $i from 1 through 10 {
234
+ &:nth-child(#{$i}) {
235
+ animation-delay: calc(($i - 1) * 0.1s);
236
+ }
237
+ }
238
+ }
239
+ }
240
+
241
+ ///
242
+ /// Text pulse loader.
243
+ ///
244
+ /// @param {String} $text ['Loading'] - Text content.
245
+ /// @param {Color} $color [#FFF] - Text color.
246
+ /// @param {Length} $size [2rem] - Font size.
247
+ /// @param {Time} $duration [1s] - Animation duration.
248
+ ///
249
+ @mixin loader_text_pulse(
250
+ $text: 'Loading',
251
+ $color: $loader-color,
252
+ $size: 2rem,
253
+ $duration: $loader-speed
254
+ ) {
255
+ font-size: $size;
256
+ font-weight: 700;
257
+ color: var(--loader-color, $color);
258
+ animation: text-pulse $duration ease-in-out infinite;
259
+ }
260
+
261
+ ///
262
+ /// Text spotlight/shimmer loader.
263
+ ///
264
+ /// @param {String} $text ['Loading'] - Text content.
265
+ /// @param {Color} $color [rgba(255,255,255,0.3)] - Base text color.
266
+ /// @param {Color} $highlight [#FFF] - Spotlight highlight color.
267
+ /// @param {Length} $size [2rem] - Font size.
268
+ /// @param {Time} $duration [2s] - Animation duration.
269
+ ///
270
+ @mixin loader_text_spotlight(
271
+ $text: 'Loading',
272
+ $color: rgba(255, 255, 255, 0.3),
273
+ $highlight: $loader-color,
274
+ $size: 2rem,
275
+ $duration: 2s
276
+ ) {
277
+ font-size: $size;
278
+ font-weight: 700;
279
+ color: var(--loader-bg, $color);
280
+ background: linear-gradient(
281
+ 90deg,
282
+ var(--loader-bg, $color) 0%,
283
+ var(--loader-color, $highlight) 50%,
284
+ var(--loader-bg, $color) 100%
285
+ );
286
+ background-size: 200% 100%;
287
+ background-clip: text;
288
+ -webkit-background-clip: text;
289
+ -webkit-text-fill-color: transparent;
290
+ animation: text-spotlight $duration linear infinite;
291
+ }
292
+
293
+ ///
294
+ /// Typing cursor loader.
295
+ ///
296
+ /// @param {String} $text ['Loading'] - Text content.
297
+ /// @param {Color} $color [#FFF] - Text color.
298
+ /// @param {Color} $cursor-color [#FFF] - Cursor color.
299
+ /// @param {Length} $size [1.5rem] - Font size.
300
+ /// @param {Time} $duration [0.8s] - Cursor blink duration.
301
+ ///
302
+ @mixin loader_text_typing(
303
+ $text: 'Loading',
304
+ $color: $loader-color,
305
+ $cursor-color: $loader-color,
306
+ $size: 1.5rem,
307
+ $duration: 0.8s
308
+ ) {
309
+ font-size: $size;
310
+ font-weight: 500;
311
+ color: var(--loader-color, $color);
312
+ font-family: monospace;
313
+
314
+ &::after {
315
+ content: '|';
316
+ color: var(--loader-cursor, $cursor-color);
317
+ animation: text-cursor $duration ease-in-out infinite;
318
+ }
319
+ }
320
+
321
+ ///
322
+ /// Wave text loader.
323
+ ///
324
+ /// @param {Color} $color [#FFF] - Text color.
325
+ /// @param {Length} $size [1.5rem] - Font size.
326
+ /// @param {Time} $duration [1.2s] - Animation duration.
327
+ ///
328
+ @mixin loader_text_wave(
329
+ $color: $loader-color,
330
+ $size: 1.5rem,
331
+ $duration: 1.2s
332
+ ) {
333
+ display: inline-flex;
334
+ gap: 0.05em;
335
+ font-size: $size;
336
+ font-weight: 700;
337
+ color: var(--loader-color, $color);
338
+
339
+ span {
340
+ display: inline-block;
341
+ animation: text-wave $duration ease-in-out infinite;
342
+
343
+ @for $i from 1 through 10 {
344
+ &:nth-child(#{$i}) {
345
+ animation-delay: calc(($i - 1) * 0.08s);
346
+ }
347
+ }
348
+ }
349
+ }
350
+
351
+ ///
352
+ /// Shake text loader.
353
+ ///
354
+ /// @param {String} $text ['Error'] - Text content.
355
+ /// @param {Color} $color [#FF3D00] - Text color.
356
+ /// @param {Length} $size [1.5rem] - Font size.
357
+ /// @param {Time} $duration [0.5s] - Animation duration.
358
+ ///
359
+ @mixin loader_text_shake(
360
+ $text: 'Error',
361
+ $color: $loader-accent,
362
+ $size: 1.5rem,
363
+ $duration: 0.5s
364
+ ) {
365
+ font-size: $size;
366
+ font-weight: 700;
367
+ color: var(--loader-color, $color);
368
+ animation: text-shake $duration ease-in-out infinite;
369
+ }
370
+
371
+ ///
372
+ /// Gradient flow text loader.
373
+ ///
374
+ /// @param {String} $text ['Loading'] - Text content.
375
+ /// @param {Color} $color1 [#FF3D00] - First gradient color.
376
+ /// @param {Color} $color2 [#FFF] - Second gradient color.
377
+ /// @param {Color} $color3 [#FF3D00] - Third gradient color.
378
+ /// @param {Length} $size [2rem] - Font size.
379
+ /// @param {Time} $duration [3s] - Animation duration.
380
+ ///
381
+ @mixin loader_text_gradient(
382
+ $text: 'Loading',
383
+ $color1: $loader-accent,
384
+ $color2: $loader-color,
385
+ $color3: $loader-accent,
386
+ $size: 2rem,
387
+ $duration: 3s
388
+ ) {
389
+ font-size: $size;
390
+ font-weight: 700;
391
+ background: linear-gradient(
392
+ 90deg,
393
+ var(--loader-color1, $color1),
394
+ var(--loader-color2, $color2),
395
+ var(--loader-color3, $color3)
396
+ );
397
+ background-size: 200% auto;
398
+ background-clip: text;
399
+ -webkit-background-clip: text;
400
+ -webkit-text-fill-color: transparent;
401
+ animation: text-spotlight $duration linear infinite;
402
+ }
403
+
404
+ ///
405
+ /// Rotating character loader.
406
+ ///
407
+ /// @param {Color} $color [#FFF] - Text color.
408
+ /// @param {Length} $size [2rem] - Font size.
409
+ /// @param {Time} $duration [1s] - Animation duration.
410
+ ///
411
+ @mixin loader_text_spinner(
412
+ $color: $loader-color,
413
+ $size: 2rem,
414
+ $duration: $loader-speed
415
+ ) {
416
+ font-size: $size;
417
+ color: var(--loader-color, $color);
418
+ display: inline-block;
419
+ animation: spin $duration linear infinite;
420
+
421
+ @keyframes spin {
422
+ 0% { transform: rotate(0deg); }
423
+ 100% { transform: rotate(360deg); }
424
+ }
425
+ }
426
+
427
+ ///
428
+ /// Percentage counter loader (requires JS).
429
+ ///
430
+ /// @param {Color} $color [#FFF] - Text color.
431
+ /// @param {Length} $size [3rem] - Font size.
432
+ ///
433
+ @mixin loader_text_percentage(
434
+ $color: $loader-color,
435
+ $size: 3rem
436
+ ) {
437
+ font-size: $size;
438
+ font-weight: 700;
439
+ color: var(--loader-color, $color);
440
+ font-variant-numeric: tabular-nums;
441
+ font-family: monospace;
442
+
443
+ &::after {
444
+ content: '%';
445
+ }
446
+ }
@@ -0,0 +1,74 @@
1
+ ////
2
+ ///
3
+ /// Flip Transforms Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides mixins for flipping elements in various directions,
7
+ /// such as horizontally, vertically, or both. These mixins can be used to
8
+ /// easily apply flip transforms throughout your project.
9
+ ///
10
+ /// @group Transforms
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 "../../dev" as *;
25
+ @use "../../variables" as *;
26
+ @use "../keyframes" as *;
27
+
28
+
29
+ // ============================================================================
30
+ // Mixins
31
+ // ============================================================================
32
+
33
+
34
+ ///
35
+ /// Mixin for flipping elements horizontally.
36
+ /// ---------------------------------------------------------------------------
37
+ ///
38
+ /// Applies a horizontal flip by scaling the element along the X-axis.
39
+ ///
40
+ /// @name transform_flip_horizontal
41
+ /// @example scss - Usage
42
+ /// .transform_flip_horizontal { @include transform_flip_horizontal(); }
43
+ ///
44
+ @mixin transform_flip_horizontal {
45
+ transform: scale(-1, 1);
46
+ }
47
+
48
+ ///
49
+ /// Mixin for flipping elements vertically.
50
+ /// ---------------------------------------------------------------------------
51
+ ///
52
+ /// Applies a vertical flip by scaling the element along the Y-axis.
53
+ ///
54
+ /// @name transform_flip_vertical
55
+ /// @example scss - Usage
56
+ /// .transform_flip_vertical { @include transform_flip_vertical(); }
57
+ ///
58
+ @mixin transform_flip_vertical {
59
+ transform: scale(1, -1);
60
+ }
61
+
62
+ ///
63
+ /// Mixin for flipping elements both horizontally and vertically.
64
+ /// ---------------------------------------------------------------------------
65
+ ///
66
+ /// Combines horizontal and vertical flips to mirror the element.
67
+ ///
68
+ /// @name transform_flip_both
69
+ /// @example scss - Usage
70
+ /// .transform_flip_both { @include transform_flip_both(); }
71
+ ///
72
+ @mixin transform_flip_both {
73
+ transform: scale(-1, -1);
74
+ }