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,128 @@
1
+ ////
2
+ ///
3
+ /// Blend Mode Effects Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides mixins for mix-blend-mode and background-blend-mode
7
+ /// effects for creating composite visual effects.
8
+ ///
9
+ /// @group Effects
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
+ // Mix Blend Mode Mixins
20
+ // ============================================================================
21
+
22
+ ///
23
+ /// Sets mix-blend-mode property.
24
+ ///
25
+ /// @param {String} $mode [normal] - The blend mode.
26
+ ///
27
+ @mixin mix_blend($mode: normal) {
28
+ mix-blend-mode: $mode;
29
+ }
30
+
31
+ /// Normal blend mode
32
+ @mixin blend_normal { mix-blend-mode: normal; }
33
+
34
+ /// Multiply blend mode
35
+ @mixin blend_multiply { mix-blend-mode: multiply; }
36
+
37
+ /// Screen blend mode
38
+ @mixin blend_screen { mix-blend-mode: screen; }
39
+
40
+ /// Overlay blend mode
41
+ @mixin blend_overlay { mix-blend-mode: overlay; }
42
+
43
+ /// Darken blend mode
44
+ @mixin blend_darken { mix-blend-mode: darken; }
45
+
46
+ /// Lighten blend mode
47
+ @mixin blend_lighten { mix-blend-mode: lighten; }
48
+
49
+ /// Color dodge blend mode
50
+ @mixin blend_color_dodge { mix-blend-mode: color-dodge; }
51
+
52
+ /// Color burn blend mode
53
+ @mixin blend_color_burn { mix-blend-mode: color-burn; }
54
+
55
+ /// Hard light blend mode
56
+ @mixin blend_hard_light { mix-blend-mode: hard-light; }
57
+
58
+ /// Soft light blend mode
59
+ @mixin blend_soft_light { mix-blend-mode: soft-light; }
60
+
61
+ /// Difference blend mode
62
+ @mixin blend_difference { mix-blend-mode: difference; }
63
+
64
+ /// Exclusion blend mode
65
+ @mixin blend_exclusion { mix-blend-mode: exclusion; }
66
+
67
+ /// Hue blend mode
68
+ @mixin blend_hue { mix-blend-mode: hue; }
69
+
70
+ /// Saturation blend mode
71
+ @mixin blend_saturation { mix-blend-mode: saturation; }
72
+
73
+ /// Color blend mode
74
+ @mixin blend_color { mix-blend-mode: color; }
75
+
76
+ /// Luminosity blend mode
77
+ @mixin blend_luminosity { mix-blend-mode: luminosity; }
78
+
79
+
80
+ // ============================================================================
81
+ // Background Blend Mode Mixins
82
+ // ============================================================================
83
+
84
+ ///
85
+ /// Sets background-blend-mode property.
86
+ ///
87
+ /// @param {String} $mode [normal] - The blend mode.
88
+ ///
89
+ @mixin bg_blend($mode: normal) {
90
+ background-blend-mode: $mode;
91
+ }
92
+
93
+ /// Normal background blend mode
94
+ @mixin bg_blend_normal { background-blend-mode: normal; }
95
+
96
+ /// Multiply background blend mode
97
+ @mixin bg_blend_multiply { background-blend-mode: multiply; }
98
+
99
+ /// Screen background blend mode
100
+ @mixin bg_blend_screen { background-blend-mode: screen; }
101
+
102
+ /// Overlay background blend mode
103
+ @mixin bg_blend_overlay { background-blend-mode: overlay; }
104
+
105
+ /// Darken background blend mode
106
+ @mixin bg_blend_darken { background-blend-mode: darken; }
107
+
108
+ /// Lighten background blend mode
109
+ @mixin bg_blend_lighten { background-blend-mode: lighten; }
110
+
111
+ /// Color dodge background blend mode
112
+ @mixin bg_blend_color_dodge { background-blend-mode: color-dodge; }
113
+
114
+ /// Color burn background blend mode
115
+ @mixin bg_blend_color_burn { background-blend-mode: color-burn; }
116
+
117
+ /// Hard light background blend mode
118
+ @mixin bg_blend_hard_light { background-blend-mode: hard-light; }
119
+
120
+ /// Soft light background blend mode
121
+ @mixin bg_blend_soft_light { background-blend-mode: soft-light; }
122
+
123
+ /// Difference background blend mode
124
+ @mixin bg_blend_difference { background-blend-mode: difference; }
125
+
126
+ /// Exclusion background blend mode
127
+ @mixin bg_blend_exclusion { background-blend-mode: exclusion; }
128
+
@@ -0,0 +1,470 @@
1
+ ////
2
+ ///
3
+ /// Filter Effects Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides a comprehensive set of CSS filter mixins for creating
7
+ /// visual effects like blur, grayscale, brightness, contrast, and more.
8
+ /// Includes individual filters, combinations, transitions, and presets.
9
+ ///
10
+ /// @group Effects
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @todo None
15
+ /// @access public
16
+ ///
17
+ ////
18
+
19
+
20
+ // ============================================================================
21
+ // Use
22
+ // ============================================================================
23
+
24
+ @use "sass:list";
25
+ @use "sass:math";
26
+
27
+
28
+ // ============================================================================
29
+ // Base Filter Mixins
30
+ // ============================================================================
31
+
32
+ ///
33
+ /// Mixin for blur effect.
34
+ ///
35
+ /// @param {Length} $radius [0] - The radius of the blur effect.
36
+ /// @example scss - Usage
37
+ /// .example { @include filter_blur(5px); }
38
+ ///
39
+ @mixin filter_blur($radius: 0) {
40
+ filter: blur($radius);
41
+ }
42
+
43
+ ///
44
+ /// Mixin for grayscale effect.
45
+ ///
46
+ /// @param {Percentage} $amount [100%] - The amount of grayscale to apply.
47
+ /// @example scss - Usage
48
+ /// .example { @include filter_grayscale(50%); }
49
+ ///
50
+ @mixin filter_grayscale($amount: 100%) {
51
+ filter: grayscale($amount);
52
+ }
53
+
54
+ ///
55
+ /// Mixin for brightness effect.
56
+ ///
57
+ /// @param {Percentage} $amount [100%] - The amount of brightness to apply.
58
+ /// @example scss - Usage
59
+ /// .example { @include filter_brightness(120%); }
60
+ ///
61
+ @mixin filter_brightness($amount: 100%) {
62
+ filter: brightness($amount);
63
+ }
64
+
65
+ ///
66
+ /// Mixin for contrast effect.
67
+ ///
68
+ /// @param {Percentage} $amount [100%] - The amount of contrast to apply.
69
+ /// @example scss - Usage
70
+ /// .example { @include filter_contrast(80%); }
71
+ ///
72
+ @mixin filter_contrast($amount: 100%) {
73
+ filter: contrast($amount);
74
+ }
75
+
76
+ ///
77
+ /// Mixin for sepia effect.
78
+ ///
79
+ /// @param {Percentage} $amount [100%] - The amount of sepia to apply.
80
+ /// @example scss - Usage
81
+ /// .example { @include filter_sepia(50%); }
82
+ ///
83
+ @mixin filter_sepia($amount: 100%) {
84
+ filter: sepia($amount);
85
+ }
86
+
87
+ ///
88
+ /// Mixin for invert effect.
89
+ ///
90
+ /// @param {Percentage} $amount [100%] - The amount of inversion to apply.
91
+ /// @example scss - Usage
92
+ /// .example { @include filter_invert(50%); }
93
+ ///
94
+ @mixin filter_invert($amount: 100%) {
95
+ filter: invert($amount);
96
+ }
97
+
98
+ ///
99
+ /// Mixin for hue-rotate effect.
100
+ ///
101
+ /// @param {Angle} $angle [0deg] - The angle of hue rotation.
102
+ /// @example scss - Usage
103
+ /// .example { @include filter_hue_rotate(90deg); }
104
+ ///
105
+ @mixin filter_hue_rotate($angle: 0deg) {
106
+ filter: hue-rotate($angle);
107
+ }
108
+
109
+ ///
110
+ /// Mixin for saturate effect.
111
+ ///
112
+ /// @param {Percentage} $amount [100%] - The amount of saturation to apply.
113
+ /// @example scss - Usage
114
+ /// .example { @include filter_saturate(200%); }
115
+ ///
116
+ @mixin filter_saturate($amount: 100%) {
117
+ filter: saturate($amount);
118
+ }
119
+
120
+ ///
121
+ /// Mixin for opacity filter effect.
122
+ ///
123
+ /// @param {Percentage} $amount [100%] - The opacity amount.
124
+ /// @example scss - Usage
125
+ /// .example { @include filter_opacity(50%); }
126
+ ///
127
+ @mixin filter_opacity($amount: 100%) {
128
+ filter: opacity($amount);
129
+ }
130
+
131
+ ///
132
+ /// Mixin for drop shadow effect.
133
+ ///
134
+ /// @param {Length} $offsetX [0] - Horizontal offset.
135
+ /// @param {Length} $offsetY [0] - Vertical offset.
136
+ /// @param {Length} $blurRadius [0] - Blur radius.
137
+ /// @param {Color} $color [#000] - Shadow color.
138
+ /// @example scss - Usage
139
+ /// .example { @include filter_drop_shadow(10px, 10px, 5px, rgba(0, 0, 0, 0.5)); }
140
+ ///
141
+ @mixin filter_drop_shadow($offsetX: 0, $offsetY: 0, $blurRadius: 0, $color: #000) {
142
+ filter: drop-shadow($offsetX $offsetY $blurRadius $color);
143
+ }
144
+
145
+
146
+ // ============================================================================
147
+ // Combined Filter Mixins
148
+ // ============================================================================
149
+
150
+ ///
151
+ /// Mixin for combining multiple filters.
152
+ ///
153
+ /// @param {...} $filters - A list of filter functions.
154
+ /// @example scss - Usage
155
+ /// .example { @include filter_combine(blur(5px), brightness(120%)); }
156
+ ///
157
+ @mixin filter_combine($filters...) {
158
+ filter: $filters;
159
+ }
160
+
161
+ ///
162
+ /// Applies multiple filters with a single mixin call.
163
+ ///
164
+ /// @param {Length} $blur [null] - Blur radius.
165
+ /// @param {Percentage} $brightness [null] - Brightness amount.
166
+ /// @param {Percentage} $contrast [null] - Contrast amount.
167
+ /// @param {Percentage} $grayscale [null] - Grayscale amount.
168
+ /// @param {Angle} $hue-rotate [null] - Hue rotation angle.
169
+ /// @param {Percentage} $invert [null] - Invert amount.
170
+ /// @param {Percentage} $saturate [null] - Saturation amount.
171
+ /// @param {Percentage} $sepia [null] - Sepia amount.
172
+ /// @param {List} $drop-shadow [null] - Drop shadow values.
173
+ ///
174
+ @mixin filter_multi(
175
+ $blur: null,
176
+ $brightness: null,
177
+ $contrast: null,
178
+ $grayscale: null,
179
+ $hue-rotate: null,
180
+ $invert: null,
181
+ $saturate: null,
182
+ $sepia: null,
183
+ $drop-shadow: null
184
+ ) {
185
+ $filters: ();
186
+
187
+ @if $blur { $filters: append($filters, blur($blur)); }
188
+ @if $brightness { $filters: append($filters, brightness($brightness)); }
189
+ @if $contrast { $filters: append($filters, contrast($contrast)); }
190
+ @if $grayscale { $filters: append($filters, grayscale($grayscale)); }
191
+ @if $hue-rotate { $filters: append($filters, hue-rotate($hue-rotate)); }
192
+ @if $invert { $filters: append($filters, invert($invert)); }
193
+ @if $saturate { $filters: append($filters, saturate($saturate)); }
194
+ @if $sepia { $filters: append($filters, sepia($sepia)); }
195
+ @if $drop-shadow { $filters: append($filters, drop-shadow($drop-shadow)); }
196
+
197
+ @if length($filters) > 0 {
198
+ filter: $filters;
199
+ }
200
+ }
201
+
202
+
203
+ // ============================================================================
204
+ // Filter Transition Mixins
205
+ // ============================================================================
206
+
207
+ ///
208
+ /// Applies a filter with smooth transition support.
209
+ ///
210
+ /// @param {String} $filter - The filter to apply.
211
+ /// @param {Time} $duration [0.3s] - Transition duration.
212
+ /// @param {String} $timing [ease] - Timing function.
213
+ ///
214
+ @mixin filter_transition($duration: 0.3s, $timing: ease) {
215
+ transition: filter $duration $timing;
216
+ }
217
+
218
+ ///
219
+ /// Applies a hover filter effect with transition.
220
+ ///
221
+ /// @param {String} $default-filter [none] - Default filter state.
222
+ /// @param {String} $hover-filter - Filter to apply on hover.
223
+ /// @param {Time} $duration [0.3s] - Transition duration.
224
+ ///
225
+ @mixin filter_hover($default-filter: none, $hover-filter, $duration: 0.3s) {
226
+ filter: $default-filter;
227
+ transition: filter $duration ease;
228
+
229
+ &:hover {
230
+ filter: $hover-filter;
231
+ }
232
+ }
233
+
234
+
235
+ // ============================================================================
236
+ // Backdrop Filter Mixins
237
+ // ============================================================================
238
+
239
+ ///
240
+ /// Applies backdrop blur effect (frosted glass).
241
+ ///
242
+ /// @param {Length} $radius [10px] - Blur radius.
243
+ /// @example scss - Usage
244
+ /// .glass { @include backdrop_blur(20px); }
245
+ ///
246
+ @mixin backdrop_blur($radius: 10px) {
247
+ backdrop-filter: blur($radius);
248
+ -webkit-backdrop-filter: blur($radius);
249
+ }
250
+
251
+ ///
252
+ /// Creates a frosted glass effect with multiple backdrop filters.
253
+ ///
254
+ /// @param {Length} $blur [10px] - Blur amount.
255
+ /// @param {Percentage} $saturation [180%] - Saturation boost.
256
+ /// @param {Percentage} $brightness [100%] - Brightness adjustment.
257
+ ///
258
+ @mixin backdrop_glass($blur: 10px, $saturation: 180%, $brightness: 100%) {
259
+ backdrop-filter: blur($blur) saturate($saturation) brightness($brightness);
260
+ -webkit-backdrop-filter: blur($blur) saturate($saturation) brightness($brightness);
261
+ }
262
+
263
+ ///
264
+ /// Applies backdrop grayscale effect.
265
+ ///
266
+ /// @param {Percentage} $amount [100%] - Grayscale amount.
267
+ ///
268
+ @mixin backdrop_grayscale($amount: 100%) {
269
+ backdrop-filter: grayscale($amount);
270
+ -webkit-backdrop-filter: grayscale($amount);
271
+ }
272
+
273
+ ///
274
+ /// Combines multiple backdrop filters.
275
+ ///
276
+ /// @param {Length} $blur [null] - Blur radius.
277
+ /// @param {Percentage} $brightness [null] - Brightness.
278
+ /// @param {Percentage} $contrast [null] - Contrast.
279
+ /// @param {Percentage} $grayscale [null] - Grayscale.
280
+ /// @param {Angle} $hue-rotate [null] - Hue rotation.
281
+ /// @param {Percentage} $invert [null] - Invert.
282
+ /// @param {Percentage} $saturate [null] - Saturation.
283
+ /// @param {Percentage} $sepia [null] - Sepia.
284
+ ///
285
+ @mixin backdrop_multi(
286
+ $blur: null,
287
+ $brightness: null,
288
+ $contrast: null,
289
+ $grayscale: null,
290
+ $hue-rotate: null,
291
+ $invert: null,
292
+ $saturate: null,
293
+ $sepia: null
294
+ ) {
295
+ $filters: ();
296
+
297
+ @if $blur { $filters: list.append($filters, blur($blur)); }
298
+ @if $brightness { $filters: list.append($filters, brightness($brightness)); }
299
+ @if $contrast { $filters: list.append($filters, contrast($contrast)); }
300
+ @if $grayscale { $filters: list.append($filters, grayscale($grayscale)); }
301
+ @if $hue-rotate { $filters: list.append($filters, hue-rotate($hue-rotate)); }
302
+ @if $invert { $filters: list.append($filters, invert($invert)); }
303
+ @if $saturate { $filters: list.append($filters, saturate($saturate)); }
304
+ @if $sepia { $filters: list.append($filters, sepia($sepia)); }
305
+
306
+ @if list.length($filters) > 0 {
307
+ backdrop-filter: $filters;
308
+ -webkit-backdrop-filter: $filters;
309
+ }
310
+ }
311
+
312
+
313
+ // ============================================================================
314
+ // Filter Presets
315
+ // ============================================================================
316
+
317
+ ///
318
+ /// Vintage photo effect preset.
319
+ ///
320
+ @mixin filter_preset_vintage {
321
+ filter: sepia(50%) contrast(95%) brightness(90%) saturate(150%);
322
+ }
323
+
324
+ ///
325
+ /// Dramatic high-contrast preset.
326
+ ///
327
+ @mixin filter_preset_dramatic {
328
+ filter: contrast(150%) brightness(90%) saturate(120%);
329
+ }
330
+
331
+ ///
332
+ /// Cold/cool tone preset.
333
+ ///
334
+ @mixin filter_preset_cold {
335
+ filter: hue-rotate(180deg) saturate(80%) brightness(105%);
336
+ }
337
+
338
+ ///
339
+ /// Warm tone preset.
340
+ ///
341
+ @mixin filter_preset_warm {
342
+ filter: sepia(30%) brightness(105%) saturate(130%);
343
+ }
344
+
345
+ ///
346
+ /// Faded/matte preset.
347
+ ///
348
+ @mixin filter_preset_faded {
349
+ filter: contrast(90%) brightness(110%) saturate(80%);
350
+ }
351
+
352
+ ///
353
+ /// High saturation/vivid preset.
354
+ ///
355
+ @mixin filter_preset_vivid {
356
+ filter: saturate(180%) contrast(110%) brightness(105%);
357
+ }
358
+
359
+ ///
360
+ /// Noir/black and white with contrast preset.
361
+ ///
362
+ @mixin filter_preset_noir {
363
+ filter: grayscale(100%) contrast(120%) brightness(90%);
364
+ }
365
+
366
+ ///
367
+ /// Dreamy/soft focus preset.
368
+ ///
369
+ @mixin filter_preset_dreamy {
370
+ filter: blur(1px) brightness(110%) saturate(120%);
371
+ }
372
+
373
+ ///
374
+ /// X-ray/inverted preset.
375
+ ///
376
+ @mixin filter_preset_xray {
377
+ filter: invert(100%) hue-rotate(180deg);
378
+ }
379
+
380
+ ///
381
+ /// Duotone effect (requires additional CSS for color overlay).
382
+ ///
383
+ /// @param {Angle} $hue [0deg] - The hue rotation for duotone color.
384
+ ///
385
+ @mixin filter_preset_duotone($hue: 0deg) {
386
+ filter: grayscale(100%) brightness(110%) contrast(110%);
387
+
388
+ &::after {
389
+ content: '';
390
+ position: absolute;
391
+ inset: 0;
392
+ background: hsl($hue, 70%, 50%);
393
+ mix-blend-mode: multiply;
394
+ pointer-events: none;
395
+ }
396
+ }
397
+
398
+
399
+ // ============================================================================
400
+ // SVG Filter Reference Mixins
401
+ // ============================================================================
402
+
403
+ ///
404
+ /// Applies an SVG filter by ID reference.
405
+ ///
406
+ /// @param {String} $filter-id - The ID of the SVG filter element.
407
+ /// @example scss - Usage
408
+ /// .element { @include filter_svg('myCustomFilter'); }
409
+ ///
410
+ @mixin filter_svg($filter-id) {
411
+ filter: url('##{$filter-id}');
412
+ }
413
+
414
+
415
+ // ============================================================================
416
+ // Utility Classes Generator
417
+ // ============================================================================
418
+
419
+ ///
420
+ /// Generates utility classes for common filter effects.
421
+ ///
422
+ @mixin generate_filter_utilities {
423
+ .filter-none { filter: none !important; }
424
+
425
+ // Blur utilities
426
+ @for $i from 1 through 10 {
427
+ .blur-#{$i} { filter: blur(#{$i}px); }
428
+ }
429
+
430
+ // Grayscale utilities
431
+ .grayscale { filter: grayscale(100%); }
432
+ .grayscale-50 { filter: grayscale(50%); }
433
+
434
+ // Brightness utilities
435
+ .brightness-50 { filter: brightness(50%); }
436
+ .brightness-75 { filter: brightness(75%); }
437
+ .brightness-90 { filter: brightness(90%); }
438
+ .brightness-100 { filter: brightness(100%); }
439
+ .brightness-110 { filter: brightness(110%); }
440
+ .brightness-125 { filter: brightness(125%); }
441
+ .brightness-150 { filter: brightness(150%); }
442
+
443
+ // Contrast utilities
444
+ .contrast-50 { filter: contrast(50%); }
445
+ .contrast-75 { filter: contrast(75%); }
446
+ .contrast-100 { filter: contrast(100%); }
447
+ .contrast-125 { filter: contrast(125%); }
448
+ .contrast-150 { filter: contrast(150%); }
449
+
450
+ // Saturate utilities
451
+ .saturate-0 { filter: saturate(0%); }
452
+ .saturate-50 { filter: saturate(50%); }
453
+ .saturate-100 { filter: saturate(100%); }
454
+ .saturate-150 { filter: saturate(150%); }
455
+ .saturate-200 { filter: saturate(200%); }
456
+
457
+ // Sepia utility
458
+ .sepia { filter: sepia(100%); }
459
+
460
+ // Invert utility
461
+ .invert { filter: invert(100%); }
462
+
463
+ // Hue rotate utilities
464
+ .hue-rotate-15 { filter: hue-rotate(15deg); }
465
+ .hue-rotate-30 { filter: hue-rotate(30deg); }
466
+ .hue-rotate-60 { filter: hue-rotate(60deg); }
467
+ .hue-rotate-90 { filter: hue-rotate(90deg); }
468
+ .hue-rotate-180 { filter: hue-rotate(180deg); }
469
+ }
470
+
@@ -0,0 +1,83 @@
1
+ ////
2
+ ///
3
+ /// Focus Effects Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides mixins for focus state effects.
7
+ ///
8
+ /// @group Effects
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
+ // Use
19
+ // ============================================================================
20
+
21
+ @use "../../variables" as *;
22
+
23
+
24
+ // ============================================================================
25
+ // Focus State Mixins
26
+ // ============================================================================
27
+
28
+ ///
29
+ /// Default focus style with outline.
30
+ ///
31
+ /// @param {Color} $color [$focus-color-default] - Outline color.
32
+ /// @param {Length} $width [2px] - Outline width.
33
+ /// @param {Length} $offset [2px] - Outline offset.
34
+ ///
35
+ @mixin focus_default($color: $focus-color-default, $width: 2px, $offset: 2px) {
36
+ &:focus {
37
+ outline: $width solid $color;
38
+ outline-offset: $offset;
39
+ }
40
+ }
41
+
42
+ ///
43
+ /// Focus ring using box-shadow.
44
+ ///
45
+ /// @param {Color} $color [$focus-color-default] - Ring color.
46
+ /// @param {Number} $opacity [0.5] - Ring opacity.
47
+ /// @param {Length} $spread [3px] - Ring spread.
48
+ ///
49
+ @mixin focus_ring($color: $focus-color-default, $opacity: 0.5, $spread: 3px) {
50
+ &:focus {
51
+ outline: none;
52
+ box-shadow: 0 0 0 $spread rgba($color, $opacity);
53
+ }
54
+ }
55
+
56
+ ///
57
+ /// Focus glow effect.
58
+ ///
59
+ /// @param {Color} $color [$focus-color-default] - Glow color.
60
+ /// @param {Number} $opacity [0.6] - Glow opacity.
61
+ /// @param {Length} $spread [15px] - Glow spread.
62
+ ///
63
+ @mixin focus_glow($color: $focus-color-default, $opacity: 0.6, $spread: 15px) {
64
+ &:focus {
65
+ outline: none;
66
+ box-shadow: 0 0 $spread rgba($color, $opacity);
67
+ }
68
+ }
69
+
70
+ ///
71
+ /// Focus outline (dashed style).
72
+ ///
73
+ /// @param {Color} $color [$focus-color-purple] - Outline color.
74
+ /// @param {Length} $width [3px] - Outline width.
75
+ /// @param {Length} $offset [3px] - Outline offset.
76
+ ///
77
+ @mixin focus_outline($color: $focus-color-purple, $width: 3px, $offset: 3px) {
78
+ &:focus {
79
+ outline: $width dashed $color;
80
+ outline-offset: $offset;
81
+ }
82
+ }
83
+