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,130 @@
1
+ ////
2
+ ///
3
+ /// Gradient Effects Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides mixins for creating linear, radial, and conic
7
+ /// gradient effects with customizable colors and directions.
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
+ // Use
20
+ // ============================================================================
21
+
22
+ @use "../../variables" as *;
23
+
24
+
25
+ // ============================================================================
26
+ // Linear Gradient Mixins
27
+ // ============================================================================
28
+
29
+ ///
30
+ /// Base linear gradient mixin.
31
+ ///
32
+ /// @param {String} $direction [to right] - Gradient direction.
33
+ /// @param {Color} $from [$gradient-from-default] - Start color.
34
+ /// @param {Color} $to [$gradient-to-default] - End color.
35
+ ///
36
+ @mixin gradient_linear($direction: to right, $from: $gradient-from-default, $to: $gradient-to-default) {
37
+ background: linear-gradient($direction, $from, $to);
38
+ }
39
+
40
+ /// Gradient to right
41
+ @mixin gradient_to_r($from: $gradient-from-default, $to: $gradient-to-default) {
42
+ background: linear-gradient(to right, var(--gradient-from, $from), var(--gradient-to, $to));
43
+ }
44
+
45
+ /// Gradient to left
46
+ @mixin gradient_to_l($from: $gradient-from-default, $to: $gradient-to-default) {
47
+ background: linear-gradient(to left, var(--gradient-from, $from), var(--gradient-to, $to));
48
+ }
49
+
50
+ /// Gradient to top
51
+ @mixin gradient_to_t($from: $gradient-from-default, $to: $gradient-to-default) {
52
+ background: linear-gradient(to top, var(--gradient-from, $from), var(--gradient-to, $to));
53
+ }
54
+
55
+ /// Gradient to bottom
56
+ @mixin gradient_to_b($from: $gradient-from-default, $to: $gradient-to-default) {
57
+ background: linear-gradient(to bottom, var(--gradient-from, $from), var(--gradient-to, $to));
58
+ }
59
+
60
+ /// Gradient to top right
61
+ @mixin gradient_to_tr($from: $gradient-from-default, $to: $gradient-to-default) {
62
+ background: linear-gradient(to top right, var(--gradient-from, $from), var(--gradient-to, $to));
63
+ }
64
+
65
+ /// Gradient to top left
66
+ @mixin gradient_to_tl($from: $gradient-from-default, $to: $gradient-to-default) {
67
+ background: linear-gradient(to top left, var(--gradient-from, $from), var(--gradient-to, $to));
68
+ }
69
+
70
+ /// Gradient to bottom right
71
+ @mixin gradient_to_br($from: $gradient-from-default, $to: $gradient-to-default) {
72
+ background: linear-gradient(to bottom right, var(--gradient-from, $from), var(--gradient-to, $to));
73
+ }
74
+
75
+ /// Gradient to bottom left
76
+ @mixin gradient_to_bl($from: $gradient-from-default, $to: $gradient-to-default) {
77
+ background: linear-gradient(to bottom left, var(--gradient-from, $from), var(--gradient-to, $to));
78
+ }
79
+
80
+
81
+ // ============================================================================
82
+ // Radial Gradient Mixins
83
+ // ============================================================================
84
+
85
+ ///
86
+ /// Base radial gradient mixin.
87
+ ///
88
+ /// @param {String} $position [circle] - Shape and position.
89
+ /// @param {Color} $from [$gradient-from-default] - Start color.
90
+ /// @param {Color} $to [$gradient-to-default] - End color.
91
+ ///
92
+ @mixin gradient_radial($position: circle, $from: $gradient-from-default, $to: $gradient-to-default) {
93
+ background: radial-gradient($position, var(--gradient-from, $from), var(--gradient-to, $to));
94
+ }
95
+
96
+ /// Radial gradient at top
97
+ @mixin gradient_radial_at_t($from: $gradient-from-default, $to: $gradient-to-default) {
98
+ background: radial-gradient(at top, var(--gradient-from, $from), var(--gradient-to, $to));
99
+ }
100
+
101
+ /// Radial gradient at bottom
102
+ @mixin gradient_radial_at_b($from: $gradient-from-default, $to: $gradient-to-default) {
103
+ background: radial-gradient(at bottom, var(--gradient-from, $from), var(--gradient-to, $to));
104
+ }
105
+
106
+ /// Radial gradient at left
107
+ @mixin gradient_radial_at_l($from: $gradient-from-default, $to: $gradient-to-default) {
108
+ background: radial-gradient(at left, var(--gradient-from, $from), var(--gradient-to, $to));
109
+ }
110
+
111
+ /// Radial gradient at right
112
+ @mixin gradient_radial_at_r($from: $gradient-from-default, $to: $gradient-to-default) {
113
+ background: radial-gradient(at right, var(--gradient-from, $from), var(--gradient-to, $to));
114
+ }
115
+
116
+
117
+ // ============================================================================
118
+ // Conic Gradient Mixins
119
+ // ============================================================================
120
+
121
+ ///
122
+ /// Base conic gradient mixin.
123
+ ///
124
+ /// @param {Color} $from [$gradient-from-default] - Start color.
125
+ /// @param {Color} $to [$gradient-to-default] - End color.
126
+ ///
127
+ @mixin gradient_conic($from: $gradient-from-default, $to: $gradient-to-default) {
128
+ background: conic-gradient(var(--gradient-from, $from), var(--gradient-to, $to));
129
+ }
130
+
@@ -0,0 +1,28 @@
1
+ // ============================================================================
2
+ // move.gl | Effects Mixin Index
3
+ // ============================================================================
4
+ // Copyright 2025 Scape Agency BV
5
+ // Licensed under MIT License
6
+ // ============================================================================
7
+
8
+ ////
9
+ /// Effects Mixin Module
10
+ /// ===========================================================================
11
+ ///
12
+ /// Provides visual effect mixins including shadows, filters, opacity,
13
+ /// blend modes, gradients, masks, and focus states.
14
+ ///
15
+ /// @group Effects
16
+ /// @author Scape Agency
17
+ /// @link https://move.gl
18
+ /// @since 0.1.0 initial release
19
+ /// @access public
20
+ ////
21
+
22
+ @forward "filter";
23
+ @forward "shadow";
24
+ @forward "opacity";
25
+ @forward "blend";
26
+ @forward "gradient";
27
+ @forward "mask";
28
+ @forward "focus";
@@ -0,0 +1,76 @@
1
+ ////
2
+ ///
3
+ /// Mask Effects Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides mixins for CSS mask effects including
7
+ /// gradient fades and radial masks.
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
+ // Gradient Mask Mixins
20
+ // ============================================================================
21
+
22
+ ///
23
+ /// Fade mask to bottom.
24
+ ///
25
+ /// @param {Percentage} $solid [60%] - Percentage where solid color ends.
26
+ ///
27
+ @mixin mask_fade_b($solid: 60%) {
28
+ mask-image: linear-gradient(to bottom, black $solid, transparent 100%);
29
+ -webkit-mask-image: linear-gradient(to bottom, black $solid, transparent 100%);
30
+ }
31
+
32
+ ///
33
+ /// Fade mask to top.
34
+ ///
35
+ /// @param {Percentage} $solid [60%] - Percentage where solid color ends.
36
+ ///
37
+ @mixin mask_fade_t($solid: 60%) {
38
+ mask-image: linear-gradient(to top, black $solid, transparent 100%);
39
+ -webkit-mask-image: linear-gradient(to top, black $solid, transparent 100%);
40
+ }
41
+
42
+ ///
43
+ /// Fade mask to left.
44
+ ///
45
+ /// @param {Percentage} $solid [60%] - Percentage where solid color ends.
46
+ ///
47
+ @mixin mask_fade_l($solid: 60%) {
48
+ mask-image: linear-gradient(to left, black $solid, transparent 100%);
49
+ -webkit-mask-image: linear-gradient(to left, black $solid, transparent 100%);
50
+ }
51
+
52
+ ///
53
+ /// Fade mask to right.
54
+ ///
55
+ /// @param {Percentage} $solid [60%] - Percentage where solid color ends.
56
+ ///
57
+ @mixin mask_fade_r($solid: 60%) {
58
+ mask-image: linear-gradient(to right, black $solid, transparent 100%);
59
+ -webkit-mask-image: linear-gradient(to right, black $solid, transparent 100%);
60
+ }
61
+
62
+
63
+ // ============================================================================
64
+ // Radial Mask Mixins
65
+ // ============================================================================
66
+
67
+ ///
68
+ /// Radial mask (circular vignette).
69
+ ///
70
+ /// @param {Percentage} $solid [50%] - Percentage where solid color ends.
71
+ ///
72
+ @mixin mask_radial($solid: 50%) {
73
+ mask-image: radial-gradient(circle, black $solid, transparent 100%);
74
+ -webkit-mask-image: radial-gradient(circle, black $solid, transparent 100%);
75
+ }
76
+
@@ -0,0 +1,376 @@
1
+ ////
2
+ ///
3
+ /// Opacity Effects Mixin Module
4
+ /// ===========================================================================
5
+ ///
6
+ /// This module provides a comprehensive set of opacity-related mixins for
7
+ /// managing element visibility, fade effects, and opacity transitions.
8
+ /// Includes utility mixins, hover effects, and animation support.
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 "../../variables" as *;
25
+
26
+
27
+ // ============================================================================
28
+ // Base Opacity Mixins
29
+ // ============================================================================
30
+
31
+ ///
32
+ /// Sets opacity with optional visibility control.
33
+ ///
34
+ /// @param {Number} $level [1] - Opacity level (0-1).
35
+ /// @param {Boolean} $toggle-visibility [true] - Whether to toggle visibility.
36
+ ///
37
+ @mixin set_opacity($level: 1, $toggle-visibility: true) {
38
+ opacity: $level;
39
+
40
+ @if $toggle-visibility {
41
+ @if $level == 0 {
42
+ visibility: hidden;
43
+ } @else {
44
+ visibility: visible;
45
+ }
46
+ }
47
+ }
48
+
49
+ ///
50
+ /// Sets opacity using percentage value.
51
+ ///
52
+ /// @param {Number} $percentage [100] - Opacity percentage (0-100).
53
+ ///
54
+ @mixin opacity_percent($percentage: 100) {
55
+ opacity: calc($percentage / 100);
56
+ }
57
+
58
+
59
+ // ============================================================================
60
+ // Opacity State Mixins
61
+ // ============================================================================
62
+
63
+ /// Fully visible
64
+ @mixin opacity_visible {
65
+ opacity: 1;
66
+ visibility: visible;
67
+ }
68
+
69
+ /// Fully hidden
70
+ @mixin opacity_hidden {
71
+ opacity: 0;
72
+ visibility: hidden;
73
+ }
74
+
75
+ /// Disabled state appearance
76
+ @mixin opacity_disabled {
77
+ opacity: $opacity-disabled;
78
+ pointer-events: none;
79
+ cursor: not-allowed;
80
+ }
81
+
82
+ /// Muted/secondary importance
83
+ @mixin opacity_muted {
84
+ opacity: $opacity-muted;
85
+ }
86
+
87
+
88
+ // ============================================================================
89
+ // Opacity Transition Mixins
90
+ // ============================================================================
91
+
92
+ ///
93
+ /// Smooth opacity transition.
94
+ ///
95
+ /// @param {Time} $duration [0.3s] - Transition duration.
96
+ /// @param {String} $timing [ease] - Timing function.
97
+ ///
98
+ @mixin opacity_transition($duration: 0.3s, $timing: ease) {
99
+ transition: opacity $duration $timing, visibility $duration $timing;
100
+ }
101
+
102
+ ///
103
+ /// Opacity hover effect.
104
+ ///
105
+ /// @param {Number} $default [1] - Default opacity.
106
+ /// @param {Number} $hover [$opacity-hover-default] - Hover opacity.
107
+ /// @param {Time} $duration [0.3s] - Transition duration.
108
+ ///
109
+ @mixin opacity_hover($default: 1, $hover: $opacity-hover-default, $duration: 0.3s) {
110
+ opacity: $default;
111
+ transition: opacity $duration ease;
112
+
113
+ &:hover {
114
+ opacity: $hover;
115
+ }
116
+ }
117
+
118
+ ///
119
+ /// Reverse opacity hover (more visible on hover).
120
+ ///
121
+ /// @param {Number} $default [0.6] - Default opacity.
122
+ /// @param {Number} $hover [1] - Hover opacity.
123
+ /// @param {Time} $duration [0.3s] - Transition duration.
124
+ ///
125
+ @mixin opacity_hover_reveal($default: 0.6, $hover: 1, $duration: 0.3s) {
126
+ opacity: $default;
127
+ transition: opacity $duration ease;
128
+
129
+ &:hover {
130
+ opacity: $hover;
131
+ }
132
+ }
133
+
134
+
135
+ // ============================================================================
136
+ // Fade Mixins
137
+ // ============================================================================
138
+
139
+ ///
140
+ /// Fade in from transparent.
141
+ ///
142
+ /// @param {Time} $duration [0.3s] - Animation duration.
143
+ /// @param {String} $timing [ease-out] - Timing function.
144
+ ///
145
+ @mixin fade_in($duration: 0.3s, $timing: ease-out) {
146
+ animation: fadeIn $duration $timing forwards;
147
+ }
148
+
149
+ ///
150
+ /// Fade out to transparent.
151
+ ///
152
+ /// @param {Time} $duration [0.3s] - Animation duration.
153
+ /// @param {String} $timing [ease-in] - Timing function.
154
+ ///
155
+ @mixin fade_out($duration: 0.3s, $timing: ease-in) {
156
+ animation: fadeOut $duration $timing forwards;
157
+ }
158
+
159
+ ///
160
+ /// Fade in keyframes definition.
161
+ ///
162
+ @mixin keyframes_fade_in {
163
+ @keyframes fadeIn {
164
+ from {
165
+ opacity: 0;
166
+ visibility: hidden;
167
+ }
168
+ to {
169
+ opacity: 1;
170
+ visibility: visible;
171
+ }
172
+ }
173
+ }
174
+
175
+ ///
176
+ /// Fade out keyframes definition.
177
+ ///
178
+ @mixin keyframes_fade_out {
179
+ @keyframes fadeOut {
180
+ from {
181
+ opacity: 1;
182
+ visibility: visible;
183
+ }
184
+ to {
185
+ opacity: 0;
186
+ visibility: hidden;
187
+ }
188
+ }
189
+ }
190
+
191
+
192
+ // ============================================================================
193
+ // Interactive Opacity Mixins
194
+ // ============================================================================
195
+
196
+ ///
197
+ /// Focus opacity effect.
198
+ ///
199
+ /// @param {Number} $default [1] - Default opacity.
200
+ /// @param {Number} $focus [0.85] - Focus opacity.
201
+ ///
202
+ @mixin opacity_focus($default: 1, $focus: 0.85) {
203
+ opacity: $default;
204
+ transition: opacity 0.2s ease;
205
+
206
+ &:focus {
207
+ opacity: $focus;
208
+ }
209
+ }
210
+
211
+ ///
212
+ /// Active/pressed state opacity.
213
+ ///
214
+ /// @param {Number} $active [0.7] - Active state opacity.
215
+ ///
216
+ @mixin opacity_active($active: 0.7) {
217
+ transition: opacity 0.1s ease;
218
+
219
+ &:active {
220
+ opacity: $active;
221
+ }
222
+ }
223
+
224
+ ///
225
+ /// Combined interactive opacity states.
226
+ ///
227
+ /// @param {Number} $default [1] - Default opacity.
228
+ /// @param {Number} $hover [0.8] - Hover opacity.
229
+ /// @param {Number} $active [0.6] - Active opacity.
230
+ ///
231
+ @mixin opacity_interactive($default: 1, $hover: 0.8, $active: 0.6) {
232
+ opacity: $default;
233
+ transition: opacity 0.2s ease;
234
+
235
+ &:hover {
236
+ opacity: $hover;
237
+ }
238
+
239
+ &:active {
240
+ opacity: $active;
241
+ }
242
+ }
243
+
244
+
245
+ // ============================================================================
246
+ // Group/Parent Hover Opacity
247
+ // ============================================================================
248
+
249
+ ///
250
+ /// Opacity change when parent is hovered.
251
+ ///
252
+ /// @param {String} $parent ['.group'] - Parent selector.
253
+ /// @param {Number} $default [0] - Default opacity.
254
+ /// @param {Number} $hover [1] - Opacity when parent is hovered.
255
+ ///
256
+ @mixin opacity_group_hover($parent: '.group', $default: 0, $hover: 1) {
257
+ opacity: $default;
258
+ transition: opacity 0.3s ease;
259
+
260
+ #{$parent}:hover & {
261
+ opacity: $hover;
262
+ }
263
+ }
264
+
265
+ ///
266
+ /// Fade siblings when one is hovered (for galleries, menus).
267
+ ///
268
+ /// @param {Number} $sibling-opacity [0.5] - Opacity of non-hovered siblings.
269
+ ///
270
+ @mixin opacity_hover_fade_siblings($sibling-opacity: 0.5) {
271
+ transition: opacity 0.3s ease;
272
+
273
+ &:hover ~ &,
274
+ ~ &:not(:hover) {
275
+ opacity: $sibling-opacity;
276
+ }
277
+ }
278
+
279
+
280
+ // ============================================================================
281
+ // Conditional Opacity
282
+ // ============================================================================
283
+
284
+ ///
285
+ /// Opacity based on data attribute state.
286
+ ///
287
+ /// @param {String} $attribute - Data attribute name.
288
+ /// @param {String} $value - Expected value.
289
+ /// @param {Number} $opacity [0.5] - Opacity when condition is met.
290
+ ///
291
+ @mixin opacity_data_state($attribute, $value, $opacity: 0.5) {
292
+ &[data-#{$attribute}="#{$value}"] {
293
+ opacity: $opacity;
294
+ }
295
+ }
296
+
297
+ ///
298
+ /// Reduced opacity for loading state.
299
+ ///
300
+ @mixin opacity_loading {
301
+ opacity: 0.6;
302
+ pointer-events: none;
303
+
304
+ &::after {
305
+ content: '';
306
+ position: absolute;
307
+ inset: 0;
308
+ background: rgba(255, 255, 255, 0.5);
309
+ }
310
+ }
311
+
312
+
313
+ // ============================================================================
314
+ // Blend & Layer Opacity
315
+ // ============================================================================
316
+
317
+ ///
318
+ /// Overlay with opacity.
319
+ ///
320
+ /// @param {Color} $color [#000] - Overlay color.
321
+ /// @param {Number} $opacity [0.5] - Overlay opacity.
322
+ ///
323
+ @mixin opacity_overlay($color: #000, $opacity: 0.5) {
324
+ position: relative;
325
+
326
+ &::before {
327
+ content: '';
328
+ position: absolute;
329
+ inset: 0;
330
+ background-color: $color;
331
+ opacity: $opacity;
332
+ pointer-events: none;
333
+ }
334
+ }
335
+
336
+
337
+ // ============================================================================
338
+ // Utility Classes Generator
339
+ // ============================================================================
340
+
341
+ ///
342
+ /// Generates utility classes for opacity levels.
343
+ ///
344
+ @mixin generate_opacity_utilities {
345
+ // Percentage-based utilities
346
+ @for $i from 0 through 10 {
347
+ $value: calc($i / 10);
348
+ .opacity-#{$i * 10} {
349
+ opacity: $value !important;
350
+ }
351
+ }
352
+
353
+ // Additional fine-grained values
354
+ .opacity-5 { opacity: 0.05 !important; }
355
+ .opacity-15 { opacity: 0.15 !important; }
356
+ .opacity-25 { opacity: 0.25 !important; }
357
+ .opacity-35 { opacity: 0.35 !important; }
358
+ .opacity-45 { opacity: 0.45 !important; }
359
+ .opacity-55 { opacity: 0.55 !important; }
360
+ .opacity-65 { opacity: 0.65 !important; }
361
+ .opacity-75 { opacity: 0.75 !important; }
362
+ .opacity-85 { opacity: 0.85 !important; }
363
+ .opacity-95 { opacity: 0.95 !important; }
364
+
365
+ // State utilities
366
+ .opacity-visible { @include opacity_visible; }
367
+ .opacity-hidden { @include opacity_hidden; }
368
+ .opacity-disabled { @include opacity_disabled; }
369
+ .opacity-muted { @include opacity_muted; }
370
+
371
+ // Hover utilities
372
+ .hover\:opacity-0:hover { opacity: 0 !important; }
373
+ .hover\:opacity-50:hover { opacity: 0.5 !important; }
374
+ .hover\:opacity-75:hover { opacity: 0.75 !important; }
375
+ .hover\:opacity-100:hover { opacity: 1 !important; }
376
+ }