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,208 @@
1
+ ////
2
+ ///
3
+ /// Selection Controls Mixin Module
4
+ /// =========================================================================
5
+ ///
6
+ /// Provides mixins for customizing text selection styles including
7
+ /// background colors, text colors, and themed selections. Supports
8
+ /// cross-browser compatibility with vendor prefixes.
9
+ ///
10
+ /// @group Controls
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @access public
15
+ ///
16
+ ////
17
+
18
+
19
+ // ============================================================================
20
+ // Use
21
+ // ============================================================================
22
+
23
+ @use "sass:color";
24
+ @use "sass:map";
25
+ @use "../../variables" as *;
26
+ @use "../../maps" as *;
27
+
28
+
29
+ // ============================================================================
30
+ // Mixins
31
+ // ============================================================================
32
+
33
+
34
+ /// selection
35
+ /// ---------------------------------------------------------------------------
36
+ /// Base mixin for applying styles to text selection across browsers.
37
+ /// Uses @content to allow custom styles to be passed in.
38
+ ///
39
+ /// @name selection
40
+ /// @group Controls
41
+ /// @access public
42
+ ///
43
+ /// @content Styles to apply to selected text.
44
+ ///
45
+ /// @example scss
46
+ /// @include selection {
47
+ /// background-color: #007bff;
48
+ /// color: #fff;
49
+ /// }
50
+ ///
51
+ @mixin selection {
52
+ ::selection { @content; }
53
+ ::-moz-selection { @content; }
54
+ ::-webkit-selection { @content; }
55
+ ::-ms-selection { @content; }
56
+ }
57
+
58
+
59
+ /// custom-selection
60
+ /// ---------------------------------------------------------------------------
61
+ /// Mixin for defining custom text selection colors.
62
+ /// Applies background and text color to selected text.
63
+ ///
64
+ /// @name custom-selection
65
+ /// @group Controls
66
+ /// @access public
67
+ ///
68
+ /// @param {Color} $bg-color [#b3d4fc] - Selection background color.
69
+ /// @param {Color} $text-color [#fff] - Selection text color.
70
+ ///
71
+ /// @example scss
72
+ /// .element {
73
+ /// @include custom-selection(#009688, #ffffff);
74
+ /// }
75
+ ///
76
+ @mixin custom-selection($bg-color: #b3d4fc, $text-color: #fff) {
77
+ &::selection {
78
+ background-color: $bg-color;
79
+ color: $text-color;
80
+ }
81
+ &::-moz-selection {
82
+ background-color: $bg-color;
83
+ color: $text-color;
84
+ }
85
+ }
86
+
87
+
88
+ /// dynamic-selection
89
+ /// ---------------------------------------------------------------------------
90
+ /// Creates selection styles with dynamically adjusted colors based on a
91
+ /// base color. Lightens background and darkens text for good contrast.
92
+ ///
93
+ /// @name dynamic-selection
94
+ /// @group Controls
95
+ /// @access public
96
+ ///
97
+ /// @param {Color} $base-color - Base color for dynamic adjustment.
98
+ ///
99
+ /// @example scss
100
+ /// .element {
101
+ /// @include dynamic-selection(#007bff);
102
+ /// }
103
+ ///
104
+ @mixin dynamic-selection($base-color) {
105
+ $adjusted-bg-color: color.adjust($base-color, $lightness: 20%);
106
+ $adjusted-text-color: color.adjust($base-color, $lightness: -50%);
107
+
108
+ &::selection {
109
+ background-color: $adjusted-bg-color;
110
+ color: $adjusted-text-color;
111
+ }
112
+ &::-moz-selection {
113
+ background-color: $adjusted-bg-color;
114
+ color: $adjusted-text-color;
115
+ }
116
+ }
117
+
118
+
119
+ /// apply-selection-to-elements
120
+ /// ---------------------------------------------------------------------------
121
+ /// Applies selection styles to a list of elements. Useful for batch
122
+ /// application of consistent selection styles.
123
+ ///
124
+ /// @name apply-selection-to-elements
125
+ /// @group Controls
126
+ /// @access public
127
+ ///
128
+ /// @param {List} $elements - List of selectors to apply styles to.
129
+ /// @param {Color} $bg-color - Selection background color.
130
+ /// @param {Color} $text-color - Selection text color.
131
+ ///
132
+ /// @example scss
133
+ /// @include apply-selection-to-elements(
134
+ /// ('p', 'h1', '.custom'),
135
+ /// #ffcc80,
136
+ /// #333
137
+ /// );
138
+ ///
139
+ @mixin apply-selection-to-elements($elements, $bg-color, $text-color) {
140
+ @each $element in $elements {
141
+ #{$element}::selection {
142
+ background-color: $bg-color;
143
+ color: $text-color;
144
+ }
145
+ #{$element}::-moz-selection {
146
+ background-color: $bg-color;
147
+ color: $text-color;
148
+ }
149
+ }
150
+ }
151
+
152
+
153
+ /// gradient-selection
154
+ /// ---------------------------------------------------------------------------
155
+ /// Applies a gradient background to text selection. Note that gradient
156
+ /// support may vary across browsers.
157
+ ///
158
+ /// @name gradient-selection
159
+ /// @group Controls
160
+ /// @access public
161
+ ///
162
+ /// @param {Color} $color1 - First gradient color.
163
+ /// @param {Color} $color2 - Second gradient color.
164
+ ///
165
+ /// @example scss
166
+ /// .element {
167
+ /// @include gradient-selection(#FFD54F, #D500F9);
168
+ /// }
169
+ ///
170
+ @mixin gradient-selection($color1, $color2) {
171
+ &::selection {
172
+ background: linear-gradient(45deg, $color1, $color2);
173
+ color: color.mix($color1, $color2, 50%);
174
+ }
175
+ &::-moz-selection {
176
+ background: linear-gradient(45deg, $color1, $color2);
177
+ color: color.mix($color1, $color2, 50%);
178
+ }
179
+ }
180
+
181
+
182
+ /// scoped-selection
183
+ /// ---------------------------------------------------------------------------
184
+ /// Applies selection styles to a specific scope/selector. Useful for
185
+ /// theming different sections of a page.
186
+ ///
187
+ /// @name scoped-selection
188
+ /// @group Controls
189
+ /// @access public
190
+ ///
191
+ /// @param {String} $scope - CSS selector for the scope.
192
+ /// @param {Color} $bg-color - Selection background color.
193
+ /// @param {Color} $text-color - Selection text color.
194
+ ///
195
+ /// @example scss
196
+ /// @include scoped-selection('.dark-theme', #333, #fff);
197
+ /// @include scoped-selection('.light-theme', #e0e0e0, #000);
198
+ ///
199
+ @mixin scoped-selection($scope, $bg-color, $text-color) {
200
+ #{$scope}::selection {
201
+ background-color: $bg-color;
202
+ color: $text-color;
203
+ }
204
+ #{$scope}::-moz-selection {
205
+ background-color: $bg-color;
206
+ color: $text-color;
207
+ }
208
+ }
@@ -0,0 +1,401 @@
1
+ ////
2
+ ///
3
+ /// Touch Controls Mixin Module
4
+ /// =========================================================================
5
+ ///
6
+ /// Provides comprehensive mixins for touch interactions including touch
7
+ /// targets, touch feedback, touch scrolling, gesture handling, and
8
+ /// responsive touch styles for mobile and tablet devices.
9
+ ///
10
+ /// @group Controls
11
+ /// @author Scape Agency
12
+ /// @link https://move.gl
13
+ /// @since 0.1.0 initial release
14
+ /// @access public
15
+ ///
16
+ ////
17
+
18
+
19
+ // ============================================================================
20
+ // Use
21
+ // ============================================================================
22
+
23
+ @use "../../variables" as *;
24
+
25
+
26
+ // ============================================================================
27
+ // Touch Target Mixins
28
+ // ============================================================================
29
+
30
+ ///
31
+ /// Ensure minimum touch target size for accessibility.
32
+ ///
33
+ /// @param {Length} $min-size [44px] - Minimum touch target size.
34
+ ///
35
+ @mixin touch_target($min-size: $touch-target-min) {
36
+ min-width: $min-size;
37
+ min-height: $min-size;
38
+
39
+ // Ensure touch area even for inline elements
40
+ display: inline-flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ }
44
+
45
+ ///
46
+ /// Increase touch area with invisible padding.
47
+ ///
48
+ /// @param {Length} $padding [10px] - Extra padding for touch area.
49
+ ///
50
+ @mixin touch_area_expand($padding: 10px) {
51
+ position: relative;
52
+
53
+ &::before {
54
+ content: '';
55
+ position: absolute;
56
+ top: -$padding;
57
+ right: -$padding;
58
+ bottom: -$padding;
59
+ left: -$padding;
60
+ }
61
+ }
62
+
63
+ ///
64
+ /// Touch-friendly button styles.
65
+ ///
66
+ /// @param {Length} $min-size [44px] - Minimum size.
67
+ /// @param {Length} $padding [12px 24px] - Button padding.
68
+ ///
69
+ @mixin touch_button($min-size: $touch-target-min, $padding: 12px 24px) {
70
+ min-height: $min-size;
71
+ padding: $padding;
72
+ touch-action: manipulation;
73
+ user-select: none;
74
+ -webkit-tap-highlight-color: transparent;
75
+ }
76
+
77
+
78
+ // ============================================================================
79
+ // Touch Feedback Mixins
80
+ // ============================================================================
81
+
82
+ ///
83
+ /// Visual feedback for touch interactions.
84
+ ///
85
+ /// @param {Number} $scale [0.95] - Scale on press.
86
+ /// @param {Color} $highlight [rgba(0,0,0,0.1)] - Highlight color.
87
+ ///
88
+ @mixin touch_feedback($scale: 0.95, $highlight: rgba(0, 0, 0, 0.1)) {
89
+ transition: transform $touch-feedback-duration ease,
90
+ background-color $touch-feedback-duration ease;
91
+
92
+ &:active {
93
+ transform: scale($scale);
94
+ background-color: $highlight;
95
+ }
96
+ }
97
+
98
+ ///
99
+ /// Ripple effect on touch (requires JS for position).
100
+ ///
101
+ /// @param {Color} $color [rgba(255,255,255,0.3)] - Ripple color.
102
+ ///
103
+ @mixin touch_ripple($color: rgba(255, 255, 255, 0.3)) {
104
+ position: relative;
105
+ overflow: hidden;
106
+
107
+ &::after {
108
+ content: '';
109
+ position: absolute;
110
+ top: 50%;
111
+ left: 50%;
112
+ width: 0;
113
+ height: 0;
114
+ background: $color;
115
+ border-radius: 50%;
116
+ transform: translate(-50%, -50%);
117
+ opacity: 0;
118
+ transition: width 0.3s ease, height 0.3s ease, opacity 0.3s ease;
119
+ }
120
+
121
+ &:active::after {
122
+ width: 200%;
123
+ height: 200%;
124
+ opacity: 1;
125
+ }
126
+ }
127
+
128
+ ///
129
+ /// Highlight effect for tapped items.
130
+ ///
131
+ /// @param {Color} $color [rgba(0,0,0,0.05)] - Highlight color.
132
+ ///
133
+ @mixin touch_highlight($color: rgba(0, 0, 0, 0.05)) {
134
+ -webkit-tap-highlight-color: $color;
135
+
136
+ &:active {
137
+ background-color: $color;
138
+ }
139
+ }
140
+
141
+ ///
142
+ /// Disable default touch highlight.
143
+ ///
144
+ @mixin touch_highlight_none {
145
+ -webkit-tap-highlight-color: transparent;
146
+ -webkit-touch-callout: none;
147
+ }
148
+
149
+
150
+ // ============================================================================
151
+ // Touch Scroll Mixins
152
+ // ============================================================================
153
+
154
+ ///
155
+ /// Enable smooth momentum scrolling on touch devices.
156
+ ///
157
+ @mixin touch_scroll {
158
+ overflow-y: auto;
159
+ -webkit-overflow-scrolling: touch;
160
+ }
161
+
162
+ ///
163
+ /// Horizontal touch scrolling.
164
+ ///
165
+ @mixin touch_scroll_x {
166
+ overflow-x: auto;
167
+ overflow-y: hidden;
168
+ -webkit-overflow-scrolling: touch;
169
+ scroll-snap-type: x mandatory;
170
+ }
171
+
172
+ ///
173
+ /// Touch-friendly scrollable container.
174
+ ///
175
+ /// @param {Length} $max-height [none] - Maximum height.
176
+ ///
177
+ @mixin touch_scrollable($max-height: none) {
178
+ overflow: auto;
179
+ -webkit-overflow-scrolling: touch;
180
+ overscroll-behavior: contain;
181
+
182
+ @if $max-height != none {
183
+ max-height: $max-height;
184
+ }
185
+ }
186
+
187
+
188
+ // ============================================================================
189
+ // Touch Action Mixins
190
+ // ============================================================================
191
+
192
+ ///
193
+ /// Control touch action behavior.
194
+ ///
195
+ /// @param {String} $action [manipulation] - Touch action value.
196
+ ///
197
+ @mixin touch_action($action: manipulation) {
198
+ touch-action: $action;
199
+ }
200
+
201
+ ///
202
+ /// Disable all touch actions (for custom handling).
203
+ ///
204
+ @mixin touch_action_none {
205
+ touch-action: none;
206
+ }
207
+
208
+ ///
209
+ /// Allow only pan gestures.
210
+ ///
211
+ /// @param {String} $direction [both] - pan-x, pan-y, or both.
212
+ ///
213
+ @mixin touch_pan($direction: both) {
214
+ @if $direction == x {
215
+ touch-action: pan-x;
216
+ } @else if $direction == y {
217
+ touch-action: pan-y;
218
+ } @else {
219
+ touch-action: pan-x pan-y;
220
+ }
221
+ }
222
+
223
+ ///
224
+ /// Allow pinch zoom.
225
+ ///
226
+ @mixin touch_pinch_zoom {
227
+ touch-action: pinch-zoom;
228
+ }
229
+
230
+ ///
231
+ /// Standard touch manipulation (disables double-tap zoom).
232
+ ///
233
+ @mixin touch_manipulation {
234
+ touch-action: manipulation;
235
+ }
236
+
237
+
238
+ // ============================================================================
239
+ // User Selection Mixins
240
+ // ============================================================================
241
+
242
+ ///
243
+ /// Prevent text selection on touch.
244
+ ///
245
+ @mixin touch_no_select {
246
+ user-select: none;
247
+ -webkit-user-select: none;
248
+ -webkit-touch-callout: none;
249
+ }
250
+
251
+ ///
252
+ /// Allow text selection.
253
+ ///
254
+ @mixin touch_select {
255
+ user-select: text;
256
+ -webkit-user-select: text;
257
+ }
258
+
259
+ ///
260
+ /// Prevent all callouts on long press.
261
+ ///
262
+ @mixin touch_no_callout {
263
+ -webkit-touch-callout: none;
264
+ }
265
+
266
+
267
+ // ============================================================================
268
+ // Input Zoom Prevention Mixins
269
+ // ============================================================================
270
+
271
+ ///
272
+ /// Prevent zoom on input focus (iOS).
273
+ ///
274
+ @mixin touch_no_zoom_input {
275
+ font-size: 16px; // Prevents auto-zoom on iOS
276
+
277
+ &:focus {
278
+ font-size: 16px;
279
+ }
280
+ }
281
+
282
+ ///
283
+ /// Touch-friendly form inputs.
284
+ ///
285
+ /// @param {Length} $min-height [44px] - Minimum height.
286
+ ///
287
+ @mixin touch_input($min-height: $touch-target-min) {
288
+ min-height: $min-height;
289
+ font-size: 16px; // Prevent zoom
290
+ padding: 12px 16px;
291
+ touch-action: manipulation;
292
+ }
293
+
294
+
295
+ // ============================================================================
296
+ // Gesture Mixins
297
+ // ============================================================================
298
+
299
+ ///
300
+ /// Styles for swipeable elements.
301
+ ///
302
+ /// @param {String} $direction [horizontal] - Swipe direction.
303
+ ///
304
+ @mixin touch_swipeable($direction: horizontal) {
305
+ @include touch_highlight_none;
306
+ @include touch_no_select;
307
+
308
+ @if $direction == horizontal {
309
+ touch-action: pan-x;
310
+ overflow-x: auto;
311
+ scroll-snap-type: x mandatory;
312
+ } @else {
313
+ touch-action: pan-y;
314
+ overflow-y: auto;
315
+ scroll-snap-type: y mandatory;
316
+ }
317
+
318
+ -webkit-overflow-scrolling: touch;
319
+ }
320
+
321
+ ///
322
+ /// Draggable element styles.
323
+ ///
324
+ @mixin touch_draggable {
325
+ touch-action: none;
326
+ user-select: none;
327
+ -webkit-user-drag: none;
328
+ cursor: grab;
329
+
330
+ &:active {
331
+ cursor: grabbing;
332
+ }
333
+ }
334
+
335
+ ///
336
+ /// Pinch-zoomable element.
337
+ ///
338
+ @mixin touch_zoomable {
339
+ touch-action: pinch-zoom pan-x pan-y;
340
+ }
341
+
342
+
343
+ // ============================================================================
344
+ // Responsive Touch Mixins
345
+ // ============================================================================
346
+
347
+ ///
348
+ /// Apply styles only on touch devices.
349
+ ///
350
+ @mixin touch_only {
351
+ @media (hover: none) and (pointer: coarse) {
352
+ @content;
353
+ }
354
+ }
355
+
356
+ ///
357
+ /// Apply styles only on non-touch devices.
358
+ ///
359
+ @mixin no_touch {
360
+ @media (hover: hover) and (pointer: fine) {
361
+ @content;
362
+ }
363
+ }
364
+
365
+ ///
366
+ /// Hover styles that work on both touch and non-touch.
367
+ ///
368
+ @mixin touch_hover {
369
+ &:hover,
370
+ &:focus,
371
+ &:active {
372
+ @content;
373
+ }
374
+ }
375
+
376
+
377
+ // ============================================================================
378
+ // Utility Classes
379
+ // ============================================================================
380
+
381
+ ///
382
+ /// Generate touch utility classes.
383
+ ///
384
+ @mixin generate_touch_utilities {
385
+ .touch-target { @include touch_target; }
386
+ .touch-target-lg { @include touch_target($touch-target-large); }
387
+
388
+ .touch-scroll { @include touch_scroll; }
389
+ .touch-scroll-x { @include touch_scroll_x; }
390
+
391
+ .touch-none { @include touch_action_none; }
392
+ .touch-manipulation { @include touch_manipulation; }
393
+ .touch-pan-x { @include touch_pan(x); }
394
+ .touch-pan-y { @include touch_pan(y); }
395
+
396
+ .touch-no-select { @include touch_no_select; }
397
+ .touch-no-highlight { @include touch_highlight_none; }
398
+
399
+ .touch-feedback { @include touch_feedback; }
400
+ .touch-draggable { @include touch_draggable; }
401
+ }