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,22 @@
1
+ // ============================================================================
2
+ // move.gl | Functions Index
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Functions Module Index
10
+ /// ===========================================================================
11
+ ///
12
+ /// This module consolidates all SCSS functions for animation calculations,
13
+ /// easing, timing, and scene generation.
14
+ ///
15
+ /// @group Functions
16
+ /// @author Scape Agency
17
+ /// @link https://move.gl
18
+ /// @since 0.1.0 initial release
19
+ /// @access public
20
+ ////
21
+
22
+ @forward "scenes";
@@ -0,0 +1,32 @@
1
+ // ============================================================================
2
+ // move.gl | Bubble Scene
3
+ // ============================================================================
4
+ // A bubble animation scene with a gradient background.
5
+ // Use the mixin to apply these styles to a specific container.
6
+ // ============================================================================
7
+
8
+ ///
9
+ /// Bubble Scene Mixin
10
+ /// Applies the bubble scene styling to a container.
11
+ ///
12
+ /// @param {Color} $bg-start [#ffd2c1] - Start color of gradient
13
+ /// @param {Color} $bg-end [#f9d0d3] - End color of gradient
14
+ ///
15
+ @mixin bubble_scene($bg-start: #ffd2c1, $bg-end: #f9d0d3) {
16
+ *,
17
+ *::before,
18
+ *::after {
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ height: 100vh;
23
+ margin: 0;
24
+ overflow: hidden;
25
+ background: linear-gradient(135deg, $bg-start, $bg-end);
26
+
27
+ .scene {
28
+ position: absolute;
29
+ width: 100%;
30
+ height: 100vh;
31
+ }
32
+ }
@@ -0,0 +1,21 @@
1
+ // ============================================================================
2
+ // move.gl | Scenes Functions Index
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Scenes Functions Module
10
+ /// ===========================================================================
11
+ ///
12
+ /// This module provides functions for generating animated scene elements.
13
+ ///
14
+ /// @group Functions
15
+ /// @author Scape Agency
16
+ /// @link https://move.gl
17
+ /// @since 0.1.0 initial release
18
+ /// @access public
19
+ ////
20
+
21
+ @forward "bubble";
@@ -0,0 +1,17 @@
1
+
2
+
3
+
4
+ @forward "functions";
5
+ @forward "variables";
6
+ @forward "maps";
7
+ @forward "mixins";
8
+ @forward "classes";
9
+
10
+
11
+ // Development Utilities
12
+ // ============================================================================
13
+ // Importing development-specific styles for debugging or development phase
14
+ // enhancements.
15
+
16
+ @use "dev/banner" as *; // Development banner for branding or notices.
17
+ @include banner(""); // Including the development banner with a custom message.
@@ -0,0 +1,85 @@
1
+ ////
2
+ ///
3
+ /// Controls Maps Module
4
+ /// =========================================================================
5
+ ///
6
+ /// Maps for controls including cursor styles.
7
+ ///
8
+ /// @group Controls
9
+ /// @author Scape Agency
10
+ /// @link https://move.gl
11
+ /// @since 0.1.0 initial release
12
+ /// @access public
13
+ ///
14
+ ////
15
+
16
+
17
+ // ============================================================================
18
+ // Cursor Styles Map
19
+ // ============================================================================
20
+
21
+ /// Cursor Styles Map
22
+ /// ---------------------------------------------------------------------------
23
+ /// A map defining standard cursor styles for easy reference and extensibility.
24
+ /// Allows for uniform application of cursor styles across elements.
25
+ ///
26
+ /// @see https://developer.mozilla.org/en-US/docs/Web/CSS/cursor
27
+ ///
28
+ $cursor_styles: (
29
+
30
+ // General
31
+ "auto": auto,
32
+ "default": default,
33
+ "none": none,
34
+
35
+ // Links & Status
36
+ "context-menu": context-menu,
37
+ "help": help,
38
+ "pointer": pointer,
39
+ "progress": progress,
40
+ "wait": wait,
41
+
42
+ // Selection
43
+ "cell": cell,
44
+ "crosshair": crosshair,
45
+ "text": text,
46
+ "vertical-text": vertical-text,
47
+
48
+ // Drag & drop
49
+ "alias": alias,
50
+ "copy": copy,
51
+ "move": move,
52
+ "no-drop": no-drop,
53
+ "not-allowed": not-allowed,
54
+ "grab": grab,
55
+ "grabbing": grabbing,
56
+
57
+ // Resizing & Scrolling
58
+ "all-scroll": all-scroll,
59
+ "col-resize": col-resize,
60
+ "row-resize": row-resize,
61
+ "n-resize": n-resize,
62
+ "e-resize": e-resize,
63
+ "s-resize": s-resize,
64
+ "w-resize": w-resize,
65
+ "ne-resize": ne-resize,
66
+ "nw-resize": nw-resize,
67
+ "se-resize": se-resize,
68
+ "sw-resize": sw-resize,
69
+ "ew-resize": ew-resize,
70
+ "ns-resize": ns-resize,
71
+ "nesw-resize": nesw-resize,
72
+ "nwse-resize": nwse-resize,
73
+
74
+ // Zooming
75
+ "zoom-in": zoom-in,
76
+ "zoom-out": zoom-out,
77
+
78
+ // Aliases
79
+ "disabled": not-allowed,
80
+ "resize-vertical": ns-resize,
81
+ "resize-horizontal": ew-resize,
82
+ "resize-diagonal-1": nwse-resize,
83
+ "resize-diagonal-2": nesw-resize,
84
+
85
+ );
@@ -0,0 +1,22 @@
1
+ ////
2
+ ///
3
+ /// Maps Module Index
4
+ /// =========================================================================
5
+ ///
6
+ /// Central index for all map definitions used throughout the project.
7
+ /// Maps provide structured data for cursors, animations, and other modules.
8
+ ///
9
+ /// @group Maps
10
+ /// @author Scape Agency
11
+ /// @link https://move.gl
12
+ /// @since 0.1.0 initial release
13
+ /// @access public
14
+ ///
15
+ ////
16
+
17
+
18
+ // ============================================================================
19
+ // Forwards
20
+ // ============================================================================
21
+
22
+ @forward "controls";
@@ -0,0 +1,91 @@
1
+ ////
2
+ ///
3
+ /// Transitions Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module ...
7
+ ///
8
+ ///
9
+ /// @group Transitions
10
+ /// @author Scape Agency
11
+ /// @link https://move.gl
12
+ /// @since 0.1.0 initial release
13
+ /// @todo None
14
+ /// @access public
15
+ ///
16
+ ////
17
+
18
+
19
+ // ============================================================================
20
+ // Use
21
+ // ============================================================================
22
+
23
+ @use "../../variables" as *;
24
+ // @use "../../mixins" as *; // Removed to avoid circular dependency
25
+
26
+
27
+ // ============================================================================
28
+ // Mixins
29
+ // ============================================================================
30
+
31
+
32
+ /// Set the progress cursor for elements with `aria-busy="true"`.
33
+ [aria-busy='true'] {
34
+ cursor: progress;
35
+ }
36
+
37
+ /// Set the pointer cursor for elements that control other elements, indicated
38
+ /// by `aria-controls`.
39
+ [aria-controls] {
40
+ cursor: pointer;
41
+ }
42
+
43
+ /// Set the default cursor for disabled or non-interactive elements, indicated
44
+ /// by `aria-disabled="true"`.
45
+ [aria-disabled='true'] {
46
+ cursor: default;
47
+ }
48
+
49
+
50
+
51
+
52
+
53
+ // Accessibility Enhancements
54
+ // Using ARIA attributes to improve cursor semantics for better user experience
55
+ // in assistive technologies and for users with disabilities.
56
+
57
+ /// Mixin to apply cursor styles based on ARIA attributes.
58
+ /// @param {String} $property - The ARIA property (without 'aria-' prefix).
59
+ /// @param {String} $value - The value of the ARIA property.
60
+ /// @param {String} $cursor - The cursor style to apply.
61
+ ///
62
+ @mixin cursor_style($property, $value, $cursor) {
63
+ [#{'aria-' + $property}='#{ $value }'] {
64
+ cursor: $cursor;
65
+ }
66
+ }
67
+
68
+ /// Progress cursor for elements that are updating or being processed.
69
+ /// Applied to `aria-busy="true"` elements.
70
+ /// @group Accessibility
71
+ @include cursor_style('busy', 'true', progress);
72
+
73
+ /// Pointer cursor for interactive elements that control other elements.
74
+ /// Applied to elements with the `aria-controls` attribute.
75
+ /// @group Accessibility
76
+ @include cursor_style('controls', '', pointer);
77
+
78
+ /// Default cursor for elements that are disabled or non-interactive.
79
+ /// Applied to `aria-disabled="true"` elements.
80
+ /// @group Accessibility
81
+ @include cursor_style('disabled', 'true', default);
82
+
83
+ /// Not-allowed cursor for elements in an invalid state.
84
+ /// Example use case: form inputs with `aria-invalid="true"`.
85
+ /// @group Accessibility
86
+ @include cursor_style('invalid', 'true', not-allowed);
87
+
88
+ /// Help cursor for elements that provide additional information or guidance.
89
+ /// Example use case: elements with `aria-haspopup="true"`.
90
+ /// @group Accessibility
91
+ @include cursor_style('haspopup', 'true', help);
@@ -0,0 +1,51 @@
1
+
2
+
3
+ @use "../../variables" as *;
4
+ // @use "../../mixins" as *; // Removed to avoid circular dependency
5
+
6
+ /// Apply a fade-in animation to the `body` element using the `$boot-fadein-time` variable for the duration.
7
+ /// This animation smoothly transitions the opacity of the `body` from `$boot-fadein-opacity-start` to `$boot-fadein-opacity-end`.
8
+ /// @group Animation
9
+ ///
10
+ body {
11
+ -webkit-animation: fadein $boot-fadein-time;
12
+ -moz-animation: fadein $boot-fadein-time;
13
+ -ms-animation: fadein $boot-fadein-time;
14
+ -o-animation: fadein $boot-fadein-time;
15
+ animation: fadein $boot-fadein-time;
16
+ }
17
+
18
+ /// Keyframes for the `fadein` animation, transitioning opacity from `$boot-fadein-opacity-start` to `$boot-fadein-opacity-end`.
19
+ /// @group Animation
20
+ @keyframes fadein {
21
+ from { opacity: $boot-fadein-opacity-start; }
22
+ to { opacity: $boot-fadein-opacity-end; }
23
+ }
24
+
25
+ /// Webkit-specific keyframes for the `fadein` animation.
26
+ /// @group Animation
27
+ @-webkit-keyframes fadein {
28
+ from { opacity: $boot-fadein-opacity-start; }
29
+ to { opacity: $boot-fadein-opacity-end; }
30
+ }
31
+
32
+ /// Mozilla-specific keyframes for the `fadein` animation.
33
+ /// @group Animation
34
+ @-moz-keyframes fadein {
35
+ from { opacity: $boot-fadein-opacity-start; }
36
+ to { opacity: $boot-fadein-opacity-end; }
37
+ }
38
+
39
+ /// Microsoft-specific keyframes for the `fadein` animation.
40
+ /// @group Animation
41
+ @-ms-keyframes fadein {
42
+ from { opacity: $boot-fadein-opacity-start; }
43
+ to { opacity: $boot-fadein-opacity-end; }
44
+ }
45
+
46
+ /// Opera-specific keyframes for the `fadein` animation.
47
+ /// @group Animation
48
+ @-o-keyframes fadein {
49
+ from { opacity: $boot-fadein-opacity-start; }
50
+ to { opacity: $boot-fadein-opacity-end; }
51
+ }
@@ -0,0 +1,41 @@
1
+ // ============================================================================
2
+ // move.gl | Mixins Index
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Mixins Module Index
10
+ /// =========================================================================
11
+ ///
12
+ /// Consolidates all mixin submodules for the move.gl animation and motion
13
+ /// library. Organized by functional category:
14
+ ///
15
+ /// - animations: Animation effect mixins (bounce, fade, spin, etc.)
16
+ /// - controls: User interaction (cursor, hover, scroll, touch, keyboard)
17
+ /// - effects: Visual effects (shadow, opacity, filter, gradient)
18
+ /// - keyframes: CSS @keyframes definitions
19
+ /// - loaders: Loading indicators and spinners
20
+ /// - transforms: CSS transform utilities
21
+ /// - transitions: CSS transition utilities
22
+ ///
23
+ /// @group Mixins
24
+ /// @author Scape Agency
25
+ /// @link https://move.gl
26
+ /// @since 0.1.0 initial release
27
+ /// @access public
28
+ ////
29
+
30
+
31
+ // ============================================================================
32
+ // Forward Modules
33
+ // ============================================================================
34
+
35
+ @forward "animations";
36
+ @forward "controls";
37
+ @forward "effects";
38
+ @forward "loaders";
39
+ @forward "transforms";
40
+ @forward "transitions";
41
+ @forward "screensaver";
@@ -0,0 +1,228 @@
1
+ // ============================================================================
2
+ // move.gl | Screensaver Component Mixins
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Screensaver Component Mixins
10
+ /// ===========================================================================
11
+ ///
12
+ /// This module provides mixins for creating screensaver UI components.
13
+ ///
14
+ /// @group Components
15
+ /// @author Scape Agency
16
+ /// @link https://move.gl
17
+ /// @since 0.1.0 initial release
18
+ /// @access public
19
+ ////
20
+
21
+
22
+ // ============================================================================
23
+ // Use
24
+ // ============================================================================
25
+
26
+ @use "../variables" as *;
27
+
28
+
29
+ // ============================================================================
30
+ // Screensaver Container Mixins
31
+ // ============================================================================
32
+
33
+ ///
34
+ /// Main screensaver overlay.
35
+ ///
36
+ @mixin screensaver_container {
37
+ position: fixed;
38
+ inset: 0;
39
+ z-index: var(--screensaver-z-index, $screensaver-z-index);
40
+ background: var(--screensaver-bg, $screensaver-bg);
41
+ display: flex;
42
+ flex-direction: column;
43
+ align-items: center;
44
+ justify-content: center;
45
+ opacity: 0;
46
+ visibility: hidden;
47
+ transition: opacity var(--screensaver-fade, $screensaver-fade) ease,
48
+ visibility var(--screensaver-fade, $screensaver-fade) ease;
49
+ }
50
+
51
+ ///
52
+ /// Active screensaver state.
53
+ ///
54
+ @mixin screensaver_active {
55
+ opacity: 1;
56
+ visibility: visible;
57
+ }
58
+
59
+
60
+ // ============================================================================
61
+ // Screensaver Content Mixins
62
+ // ============================================================================
63
+
64
+ ///
65
+ /// Screensaver content wrapper.
66
+ ///
67
+ @mixin screensaver_content {
68
+ text-align: center;
69
+ color: var(--screensaver-color, $screensaver-color);
70
+ }
71
+
72
+ ///
73
+ /// Screensaver icon.
74
+ ///
75
+ @mixin screensaver_icon {
76
+ font-size: var(--screensaver-icon-size, $screensaver-icon-size);
77
+ margin-bottom: 1rem;
78
+ animation: screensaver-float 3s ease-in-out infinite;
79
+ }
80
+
81
+ ///
82
+ /// Screensaver title.
83
+ ///
84
+ @mixin screensaver_title {
85
+ font-size: var(--screensaver-title-size, $screensaver-title-size);
86
+ font-weight: 600;
87
+ margin-bottom: 0.5rem;
88
+ }
89
+
90
+ ///
91
+ /// Screensaver hint/subtitle.
92
+ ///
93
+ @mixin screensaver_hint {
94
+ font-size: var(--screensaver-hint-size, $screensaver-hint-size);
95
+ opacity: 0.8;
96
+ }
97
+
98
+
99
+ // ============================================================================
100
+ // Screensaver Animation Mixins
101
+ // ============================================================================
102
+
103
+ ///
104
+ /// Float animation for screensaver icon.
105
+ ///
106
+ /// @param {Length} $distance [-20px] - Float distance.
107
+ /// @param {Time} $duration [3s] - Animation duration.
108
+ ///
109
+ @mixin keyframes_screensaver_float($distance: -20px, $duration: 3s) {
110
+ @keyframes screensaver-float {
111
+ 0%, 100% {
112
+ transform: translateY(0);
113
+ }
114
+ 50% {
115
+ transform: translateY($distance);
116
+ }
117
+ }
118
+ }
119
+
120
+
121
+ // ============================================================================
122
+ // Screensaver Video Mixins
123
+ // ============================================================================
124
+
125
+ ///
126
+ /// Video element for screensaver.
127
+ ///
128
+ @mixin screensaver_video {
129
+ position: absolute;
130
+ inset: 0;
131
+ width: 100%;
132
+ height: 100%;
133
+ object-fit: cover;
134
+ }
135
+
136
+ ///
137
+ /// Video overlay (dark tint).
138
+ ///
139
+ @mixin screensaver_video_overlay {
140
+ position: absolute;
141
+ inset: 0;
142
+ background: rgba(0, 0, 0, 0.4);
143
+ }
144
+
145
+ ///
146
+ /// Gradient overlay for screensaver.
147
+ ///
148
+ @mixin screensaver_gradient_overlay {
149
+ position: absolute;
150
+ inset: 0;
151
+ background: linear-gradient(
152
+ 135deg,
153
+ var(--screensaver-gradient-start, #667eea) 0%,
154
+ var(--screensaver-gradient-end, #764ba2) 100%
155
+ );
156
+ opacity: var(--screensaver-overlay-opacity, 1);
157
+ }
158
+
159
+
160
+ // ============================================================================
161
+ // Screensaver Theme Mixins
162
+ // ============================================================================
163
+
164
+ ///
165
+ /// Dark theme screensaver.
166
+ ///
167
+ @mixin screensaver_dark {
168
+ --screensaver-bg: #000000;
169
+ --screensaver-color: #ffffff;
170
+ }
171
+
172
+ ///
173
+ /// Light theme screensaver.
174
+ ///
175
+ @mixin screensaver_light {
176
+ --screensaver-bg: #f0f0f0;
177
+ --screensaver-color: #333333;
178
+ }
179
+
180
+ ///
181
+ /// Gradient background screensaver.
182
+ ///
183
+ @mixin screensaver_gradient {
184
+ --screensaver-bg: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
185
+ }
186
+
187
+
188
+ // ============================================================================
189
+ // Screensaver Bounce Effect
190
+ // ============================================================================
191
+
192
+ ///
193
+ /// Bouncing element for screensaver (DVD logo style).
194
+ ///
195
+ @mixin screensaver_bounce {
196
+ position: absolute;
197
+ animation: screensaver-bounce-x linear infinite,
198
+ screensaver-bounce-y linear infinite;
199
+ }
200
+
201
+ ///
202
+ /// Horizontal bounce keyframes.
203
+ ///
204
+ @mixin keyframes_screensaver_bounce_x($duration: 7s) {
205
+ @keyframes screensaver-bounce-x {
206
+ 0%, 100% {
207
+ left: 0;
208
+ }
209
+ 50% {
210
+ left: calc(100% - 100px);
211
+ }
212
+ }
213
+ }
214
+
215
+ ///
216
+ /// Vertical bounce keyframes.
217
+ ///
218
+ @mixin keyframes_screensaver_bounce_y($duration: 5s) {
219
+ @keyframes screensaver-bounce-y {
220
+ 0%, 100% {
221
+ top: 0;
222
+ }
223
+ 50% {
224
+ top: calc(100% - 100px);
225
+ }
226
+ }
227
+ }
228
+