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,625 @@
1
+ ////
2
+ ///
3
+ /// Hover Controls Mixin Module
4
+ /// =========================================================================
5
+ ///
6
+ /// Provides a comprehensive set of hover effect mixins for creating
7
+ /// interactive UI elements. Includes scale, lift, glow, color
8
+ /// transitions, and advanced hover patterns.
9
+ ///
10
+ /// @group Controls
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @access public
15
+ ///
16
+ ////
17
+
18
+
19
+ // ============================================================================
20
+ // Use
21
+ // ============================================================================
22
+
23
+ @use "sass:color";
24
+ @use "../../variables" as *;
25
+
26
+
27
+ // ============================================================================
28
+ // Basic Hover Transition Mixin
29
+ // ============================================================================
30
+
31
+ ///
32
+ /// Applies a smooth transition effect on hover for specified properties.
33
+ ///
34
+ /// @param {List} $properties [all] - Properties to transition.
35
+ /// @param {Time} $duration [$hover-duration-default] - Duration.
36
+ /// @param {String} $timing [$hover-timing-default] - Timing function.
37
+ ///
38
+ @mixin hover_transition($properties: all, $duration: $hover-duration-default, $timing: $hover-timing-default) {
39
+ transition: #{$properties} #{$duration} #{$timing};
40
+
41
+ &:hover {
42
+ @content;
43
+ }
44
+ }
45
+
46
+
47
+ // ============================================================================
48
+ // Transform Hover Effects
49
+ // ============================================================================
50
+
51
+ ///
52
+ /// Scales an element when hovered.
53
+ ///
54
+ /// @param {Number} $scale [$hover-scale-default] - Scale factor on hover.
55
+ /// @param {Time} $duration [$hover-duration-default] - Transition duration.
56
+ ///
57
+ @mixin hover_scale($scale: $hover-scale-default, $duration: $hover-duration-default) {
58
+ transition: transform $duration ease-in-out;
59
+
60
+ &:hover {
61
+ transform: scale($scale);
62
+ }
63
+ }
64
+
65
+ ///
66
+ /// Scale with additional transform origin control.
67
+ ///
68
+ /// @param {Number} $scale [1.1] - Scale factor.
69
+ /// @param {String} $origin [center center] - Transform origin.
70
+ ///
71
+ @mixin hover_scale_from($scale: 1.1, $origin: center center) {
72
+ transform-origin: $origin;
73
+ transition: transform 0.3s ease;
74
+
75
+ &:hover {
76
+ transform: scale($scale);
77
+ }
78
+ }
79
+
80
+ ///
81
+ /// Lifts element upward on hover with shadow.
82
+ ///
83
+ /// @param {Length} $distance [$hover-lift-default] - Lift distance.
84
+ /// @param {Time} $duration [$hover-duration-default] - Duration.
85
+ ///
86
+ @mixin hover_lift($distance: $hover-lift-default, $duration: $hover-duration-default) {
87
+ transition: transform $duration ease, box-shadow $duration ease;
88
+
89
+ &:hover {
90
+ transform: translateY($distance);
91
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
92
+ }
93
+ }
94
+
95
+ ///
96
+ /// Rotate element on hover.
97
+ ///
98
+ /// @param {Angle} $degrees [5deg] - Rotation angle.
99
+ ///
100
+ @mixin hover_rotate($degrees: 5deg) {
101
+ transition: transform 0.3s ease;
102
+
103
+ &:hover {
104
+ transform: rotate($degrees);
105
+ }
106
+ }
107
+
108
+ ///
109
+ /// Translate element on hover.
110
+ ///
111
+ /// @param {Length} $x [0] - Horizontal translation.
112
+ /// @param {Length} $y [-10px] - Vertical translation.
113
+ /// @param {Time} $duration [0.3s] - Transition duration.
114
+ ///
115
+ @mixin hover_translate($x: 0, $y: -10px, $duration: 0.3s) {
116
+ transition: transform $duration ease;
117
+ cursor: pointer;
118
+
119
+ &:hover {
120
+ transform: translate($x, $y);
121
+ }
122
+ }
123
+
124
+ ///
125
+ /// Skew element on hover.
126
+ ///
127
+ /// @param {Angle} $x [5deg] - X-axis skew.
128
+ /// @param {Angle} $y [0deg] - Y-axis skew.
129
+ ///
130
+ @mixin hover_skew($x: 5deg, $y: 0deg) {
131
+ transition: transform 0.3s ease;
132
+
133
+ &:hover {
134
+ transform: skew($x, $y);
135
+ }
136
+ }
137
+
138
+ ///
139
+ /// 3D tilt effect on hover.
140
+ ///
141
+ /// @param {Angle} $x [10deg] - X rotation.
142
+ /// @param {Angle} $y [10deg] - Y rotation.
143
+ ///
144
+ @mixin hover_tilt($x: 10deg, $y: 10deg) {
145
+ transition: transform 0.3s ease;
146
+ transform-style: preserve-3d;
147
+
148
+ &:hover {
149
+ transform: perspective(500px) rotateX($x) rotateY($y);
150
+ }
151
+ }
152
+
153
+
154
+ // ============================================================================
155
+ // Color Hover Effects
156
+ // ============================================================================
157
+
158
+ ///
159
+ /// Background color transition on hover.
160
+ ///
161
+ /// @param {Color} $default - Default background color.
162
+ /// @param {Color} $hover - Hover background color.
163
+ /// @param {Time} $duration [0.3s] - Transition duration.
164
+ ///
165
+ @mixin hover_bg($default, $hover, $duration: 0.3s) {
166
+ background-color: $default;
167
+ transition: background-color $duration ease;
168
+
169
+ &:hover {
170
+ background-color: $hover;
171
+ }
172
+ }
173
+
174
+ ///
175
+ /// Text color transition on hover.
176
+ ///
177
+ /// @param {Color} $default - Default text color.
178
+ /// @param {Color} $hover - Hover text color.
179
+ ///
180
+ @mixin hover_color($default, $hover) {
181
+ color: $default;
182
+ transition: color 0.3s ease;
183
+
184
+ &:hover {
185
+ color: $hover;
186
+ }
187
+ }
188
+
189
+ ///
190
+ /// Border color transition on hover.
191
+ ///
192
+ /// @param {Color} $default - Default border color.
193
+ /// @param {Color} $hover - Hover border color.
194
+ ///
195
+ @mixin hover_border_color($default, $hover) {
196
+ border-color: $default;
197
+ transition: border-color 0.3s ease;
198
+
199
+ &:hover {
200
+ border-color: $hover;
201
+ }
202
+ }
203
+
204
+ ///
205
+ /// Darken background on hover.
206
+ ///
207
+ /// @param {Number} $amount [10%] - Darken amount.
208
+ ///
209
+ @mixin hover_darken($amount: 10%) {
210
+ transition: filter 0.3s ease;
211
+
212
+ &:hover {
213
+ filter: brightness(#{100% - $amount});
214
+ }
215
+ }
216
+
217
+ ///
218
+ /// Lighten background on hover.
219
+ ///
220
+ /// @param {Number} $amount [10%] - Lighten amount.
221
+ ///
222
+ @mixin hover_lighten($amount: 10%) {
223
+ transition: filter 0.3s ease;
224
+
225
+ &:hover {
226
+ filter: brightness(#{100% + $amount});
227
+ }
228
+ }
229
+
230
+
231
+ // ============================================================================
232
+ // Shadow & Glow Hover Effects
233
+ // ============================================================================
234
+
235
+ ///
236
+ /// Shadow on hover.
237
+ ///
238
+ /// @param {String} $shadow [0 8px 25px rgba(0,0,0,0.15)] - Shadow value.
239
+ ///
240
+ @mixin hover_shadow($shadow: 0 8px 25px rgba(0, 0, 0, 0.15)) {
241
+ transition: box-shadow 0.3s ease;
242
+
243
+ &:hover {
244
+ box-shadow: $shadow;
245
+ }
246
+ }
247
+
248
+ ///
249
+ /// Glow effect on hover.
250
+ ///
251
+ /// @param {Color} $color [#3b82f6] - Glow color.
252
+ /// @param {Number} $intensity [0.5] - Glow intensity.
253
+ /// @param {Length} $spread [20px] - Spread radius.
254
+ ///
255
+ @mixin hover_glow($color: #3b82f6, $intensity: 0.5, $spread: 20px) {
256
+ transition: box-shadow 0.3s ease;
257
+
258
+ &:hover {
259
+ box-shadow: 0 0 $spread rgba($color, $intensity);
260
+ }
261
+ }
262
+
263
+ ///
264
+ /// Ring/outline on hover.
265
+ ///
266
+ /// @param {Color} $color [#3b82f6] - Ring color.
267
+ /// @param {Length} $width [3px] - Ring width.
268
+ /// @param {Length} $offset [2px] - Ring offset.
269
+ ///
270
+ @mixin hover_ring($color: #3b82f6, $width: 3px, $offset: 2px) {
271
+ transition: box-shadow 0.2s ease;
272
+
273
+ &:hover {
274
+ box-shadow: 0 0 0 $offset transparent, 0 0 0 ($offset + $width) $color;
275
+ }
276
+ }
277
+
278
+
279
+ // ============================================================================
280
+ // Opacity Hover Effects
281
+ // ============================================================================
282
+
283
+ ///
284
+ /// Opacity change on hover.
285
+ ///
286
+ /// @param {Number} $default [1] - Default opacity.
287
+ /// @param {Number} $hover [0.7] - Hover opacity.
288
+ ///
289
+ @mixin hover_opacity($default: 1, $hover: 0.7) {
290
+ opacity: $default;
291
+ transition: opacity 0.3s ease;
292
+
293
+ &:hover {
294
+ opacity: $hover;
295
+ }
296
+ }
297
+
298
+ ///
299
+ /// Fade in on hover (start transparent).
300
+ ///
301
+ /// @param {Number} $from [0.6] - Starting opacity.
302
+ ///
303
+ @mixin hover_fade_in($from: 0.6) {
304
+ opacity: $from;
305
+ transition: opacity 0.3s ease;
306
+
307
+ &:hover {
308
+ opacity: 1;
309
+ }
310
+ }
311
+
312
+
313
+ // ============================================================================
314
+ // Combined Hover Effects
315
+ // ============================================================================
316
+
317
+ ///
318
+ /// Scale and rotate combined hover effect.
319
+ ///
320
+ /// @param {Number} $scale [1.2] - Scale factor.
321
+ /// @param {Angle} $rotate [10deg] - Rotation angle.
322
+ /// @param {Time} $duration [0.3s] - Transition duration.
323
+ ///
324
+ @mixin hover_scale_rotate($scale: 1.2, $rotate: 10deg, $duration: 0.3s) {
325
+ transition: transform $duration ease;
326
+ cursor: pointer;
327
+
328
+ &:hover {
329
+ transform: scale($scale) rotate($rotate);
330
+ }
331
+ }
332
+
333
+ ///
334
+ /// Lift and scale combined hover effect.
335
+ ///
336
+ /// @param {Length} $lift [-10px] - Lift distance.
337
+ /// @param {Number} $scale [1.1] - Scale factor.
338
+ /// @param {Time} $duration [0.3s] - Transition duration.
339
+ ///
340
+ @mixin hover_lift_scale($lift: -10px, $scale: 1.1, $duration: 0.3s) {
341
+ transition: transform $duration ease;
342
+ cursor: pointer;
343
+
344
+ &:hover {
345
+ transform: translateY($lift) scale($scale);
346
+ }
347
+ }
348
+
349
+ ///
350
+ /// 3D rotate combined hover effect.
351
+ ///
352
+ /// @param {Angle} $rotateY [30deg] - Y-axis rotation.
353
+ /// @param {Angle} $rotateX [15deg] - X-axis rotation.
354
+ /// @param {Number} $scale [1.1] - Scale factor.
355
+ /// @param {Time} $duration [0.3s] - Transition duration.
356
+ ///
357
+ @mixin hover_3d_rotate($rotateY: 30deg, $rotateX: 15deg, $scale: 1.1, $duration: 0.3s) {
358
+ transition: transform $duration ease;
359
+ cursor: pointer;
360
+
361
+ &:hover {
362
+ transform: rotateY($rotateY) rotateX($rotateX) scale($scale);
363
+ }
364
+ }
365
+
366
+ ///
367
+ /// Brighten on hover effect.
368
+ ///
369
+ /// @param {Color} $color [#e0f2fe] - Hover background color.
370
+ /// @param {Time} $duration [0.3s] - Transition duration.
371
+ ///
372
+ @mixin hover_brighten($color: #e0f2fe, $duration: 0.3s) {
373
+ transition: background-color $duration ease;
374
+ cursor: pointer;
375
+
376
+ &:hover {
377
+ background-color: $color;
378
+ }
379
+ }
380
+
381
+
382
+ // ============================================================================
383
+ // Advanced Hover Patterns
384
+ // ============================================================================
385
+
386
+ ///
387
+ /// Underline animation on hover.
388
+ ///
389
+ /// @param {Color} $color [currentColor] - Underline color.
390
+ /// @param {Length} $thickness [2px] - Underline thickness.
391
+ /// @param {String} $position [bottom] - Position: bottom or top.
392
+ ///
393
+ @mixin hover_underline($color: currentColor, $thickness: 2px, $position: bottom) {
394
+ position: relative;
395
+
396
+ &::after {
397
+ content: '';
398
+ position: absolute;
399
+ left: 0;
400
+ #{$position}: 0;
401
+ width: 0;
402
+ height: $thickness;
403
+ background-color: $color;
404
+ transition: width 0.3s ease;
405
+ }
406
+
407
+ &:hover::after {
408
+ width: 100%;
409
+ }
410
+ }
411
+
412
+ ///
413
+ /// Underline sliding from center.
414
+ ///
415
+ /// @param {Color} $color [currentColor] - Underline color.
416
+ /// @param {Length} $thickness [2px] - Thickness.
417
+ ///
418
+ @mixin hover_underline_center($color: currentColor, $thickness: 2px) {
419
+ position: relative;
420
+
421
+ &::after {
422
+ content: '';
423
+ position: absolute;
424
+ left: 50%;
425
+ bottom: 0;
426
+ width: 0;
427
+ height: $thickness;
428
+ background-color: $color;
429
+ transition: width 0.3s ease, left 0.3s ease;
430
+ }
431
+
432
+ &:hover::after {
433
+ width: 100%;
434
+ left: 0;
435
+ }
436
+ }
437
+
438
+ ///
439
+ /// Background slide effect on hover.
440
+ ///
441
+ /// @param {Color} $color [#3b82f6] - Background color.
442
+ /// @param {String} $direction [left] - Slide direction: left, right, top, bottom.
443
+ ///
444
+ @mixin hover_bg_slide($color: #3b82f6, $direction: left) {
445
+ position: relative;
446
+ overflow: hidden;
447
+ z-index: 1;
448
+
449
+ &::before {
450
+ content: '';
451
+ position: absolute;
452
+ z-index: -1;
453
+ background-color: $color;
454
+ transition: transform 0.3s ease;
455
+
456
+ @if $direction == left {
457
+ top: 0;
458
+ left: 0;
459
+ width: 100%;
460
+ height: 100%;
461
+ transform: translateX(-100%);
462
+ } @else if $direction == right {
463
+ top: 0;
464
+ right: 0;
465
+ width: 100%;
466
+ height: 100%;
467
+ transform: translateX(100%);
468
+ } @else if $direction == top {
469
+ top: 0;
470
+ left: 0;
471
+ width: 100%;
472
+ height: 100%;
473
+ transform: translateY(-100%);
474
+ } @else if $direction == bottom {
475
+ bottom: 0;
476
+ left: 0;
477
+ width: 100%;
478
+ height: 100%;
479
+ transform: translateY(100%);
480
+ }
481
+ }
482
+
483
+ &:hover::before {
484
+ transform: translate(0);
485
+ }
486
+ }
487
+
488
+ ///
489
+ /// Icon slide on hover (for buttons with icons).
490
+ ///
491
+ /// @param {Length} $distance [5px] - Slide distance.
492
+ /// @param {String} $direction [right] - Direction.
493
+ ///
494
+ @mixin hover_icon_slide($distance: 5px, $direction: right) {
495
+ display: inline-flex;
496
+ align-items: center;
497
+ gap: 8px;
498
+
499
+ > svg,
500
+ > .icon {
501
+ transition: transform 0.3s ease;
502
+ }
503
+
504
+ &:hover > svg,
505
+ &:hover > .icon {
506
+ @if $direction == right {
507
+ transform: translateX($distance);
508
+ } @else if $direction == left {
509
+ transform: translateX(-$distance);
510
+ } @else if $direction == up {
511
+ transform: translateY(-$distance);
512
+ } @else if $direction == down {
513
+ transform: translateY($distance);
514
+ }
515
+ }
516
+ }
517
+
518
+ ///
519
+ /// Shake animation on hover.
520
+ ///
521
+ @mixin hover_shake {
522
+ &:hover {
523
+ animation: shake-hover 0.5s ease;
524
+ }
525
+ }
526
+
527
+ ///
528
+ /// Bounce animation on hover.
529
+ ///
530
+ @mixin hover_bounce {
531
+ transition: transform 0.2s ease;
532
+
533
+ &:hover {
534
+ animation: bounce-hover 0.5s ease;
535
+ }
536
+ }
537
+
538
+ ///
539
+ /// Pulse animation on hover.
540
+ ///
541
+ @mixin hover_pulse {
542
+ &:hover {
543
+ animation: pulse-hover 1s ease infinite;
544
+ }
545
+ }
546
+
547
+
548
+ // ============================================================================
549
+ // Group/Container Hover Effects
550
+ // ============================================================================
551
+
552
+ ///
553
+ /// Show element when parent is hovered.
554
+ ///
555
+ /// @param {String} $parent ['.group'] - Parent selector.
556
+ ///
557
+ @mixin hover_show_on_parent($parent: '.group') {
558
+ opacity: 0;
559
+ visibility: hidden;
560
+ transition: opacity 0.3s ease, visibility 0.3s ease;
561
+
562
+ #{$parent}:hover & {
563
+ opacity: 1;
564
+ visibility: visible;
565
+ }
566
+ }
567
+
568
+ ///
569
+ /// Transform when parent is hovered.
570
+ ///
571
+ /// @param {String} $parent ['.group'] - Parent selector.
572
+ /// @param {String} $transform [scale(1.1)] - Transform value.
573
+ ///
574
+ @mixin hover_transform_on_parent($parent: '.group', $transform: scale(1.1)) {
575
+ transition: transform 0.3s ease;
576
+
577
+ #{$parent}:hover & {
578
+ transform: $transform;
579
+ }
580
+ }
581
+
582
+ ///
583
+ /// Highlight current item, fade siblings on parent hover.
584
+ ///
585
+ @mixin hover_highlight_item {
586
+ transition: opacity 0.3s ease;
587
+
588
+ .parent:hover &:not(:hover) {
589
+ opacity: 0.5;
590
+ }
591
+ }
592
+
593
+
594
+ // ============================================================================
595
+ // Accessibility-Aware Hover
596
+ // ============================================================================
597
+
598
+ ///
599
+ /// Hover effect that respects reduced motion preference.
600
+ ///
601
+ @mixin hover_safe($duration: 0.3s) {
602
+ transition: all $duration ease;
603
+
604
+ @media (prefers-reduced-motion: reduce) {
605
+ transition: none;
606
+ }
607
+
608
+ &:hover {
609
+ @content;
610
+ }
611
+ }
612
+
613
+ ///
614
+ /// Focus-visible styling for keyboard navigation.
615
+ ///
616
+ @mixin hover_focus_visible {
617
+ &:hover,
618
+ &:focus-visible {
619
+ @content;
620
+ }
621
+
622
+ &:focus:not(:focus-visible) {
623
+ outline: none;
624
+ }
625
+ }
@@ -0,0 +1,30 @@
1
+ ////
2
+ ///
3
+ /// Controls Mixin Module
4
+ /// =========================================================================
5
+ ///
6
+ /// Provides mixins for user interaction controls including cursor styles,
7
+ /// hover effects, scroll behavior, touch interactions, text selection,
8
+ /// pointer events, and keyboard navigation.
9
+ ///
10
+ /// @group Controls
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @access public
15
+ ///
16
+ ////
17
+
18
+
19
+ // ============================================================================
20
+ // Forward
21
+ // ============================================================================
22
+
23
+ @forward "cursor";
24
+ @forward "hover";
25
+ @forward "keyboard";
26
+ @forward "pointer";
27
+ @forward "scroll";
28
+ @forward "scrollbar";
29
+ @forward "selection";
30
+ @forward "touch";