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.
- package/README.md +185 -11
- package/dist/LICENSE +21 -0
- package/dist/README.md +212 -0
- package/dist/css/move.gl.css +43859 -0
- package/dist/css/move.gl.min.css +19 -0
- package/dist/js/index.cjs +1171 -0
- package/dist/js/index.cjs.map +1 -0
- package/dist/js/index.d.cts +184 -0
- package/dist/js/index.d.ts +184 -0
- package/dist/js/index.mjs +1135 -0
- package/dist/js/index.mjs.map +1 -0
- package/dist/package.json +68 -0
- package/{scss → dist/scss}/classes/_animations.scss +33 -14
- package/dist/scss/classes/_controls.scss +314 -0
- package/dist/scss/classes/_effects.scss +283 -0
- package/dist/scss/classes/_index.scss +28 -0
- package/dist/scss/classes/_loaders.scss +779 -0
- package/dist/scss/classes/_transforms.scss +138 -0
- package/dist/scss/classes/_transitions.scss +264 -0
- package/{scss → dist/scss}/dev/_deprecation.scss +6 -3
- package/{scss → dist/scss}/dev/_modules.scss +5 -6
- package/dist/scss/docs.scss +2344 -0
- package/dist/scss/docs.scss.bak +3133 -0
- package/dist/scss/functions/_index.scss +22 -0
- package/dist/scss/functions/scenes/_bubble.scss +32 -0
- package/dist/scss/functions/scenes/_index.scss +21 -0
- package/dist/scss/index.scss +17 -0
- package/dist/scss/maps/_controls.scss +85 -0
- package/dist/scss/maps/_index.scss +22 -0
- package/{scss → dist/scss}/mixins/_accessibility.scss +24 -3
- package/{scss → dist/scss}/mixins/_boot.scss +4 -4
- package/dist/scss/mixins/_index.scss +41 -0
- package/dist/scss/mixins/_screensaver.scss +228 -0
- package/dist/scss/mixins/_shape.scss +315 -0
- package/dist/scss/mixins/animations/_base.scss +403 -0
- package/dist/scss/mixins/animations/_beat.scss +137 -0
- package/{scss → dist/scss}/mixins/animations/_blink.scss +60 -52
- package/dist/scss/mixins/animations/_bounce.scss +306 -0
- package/{scss → dist/scss}/mixins/animations/_elastic.scss +26 -22
- package/dist/scss/mixins/animations/_fade.scss +393 -0
- package/{scss → dist/scss}/mixins/animations/_flash.scss +53 -61
- package/dist/scss/mixins/animations/_flip.scss +251 -0
- package/{scss → dist/scss}/mixins/animations/_float.scss +47 -32
- package/{scss → dist/scss}/mixins/animations/_glow.scss +69 -58
- package/dist/scss/mixins/animations/_heartbeat.scss +195 -0
- package/dist/scss/mixins/animations/_hinge.scss +118 -0
- package/dist/scss/mixins/animations/_index.scss +97 -0
- package/dist/scss/mixins/animations/_jello.scss +123 -0
- package/dist/scss/mixins/animations/_jiggle.scss +162 -0
- package/dist/scss/mixins/animations/_lightspeed.scss +135 -0
- package/{scss → dist/scss}/mixins/animations/_nod.scss +57 -65
- package/dist/scss/mixins/animations/_pop.scss +153 -0
- package/dist/scss/mixins/animations/_pulse.scss +275 -0
- package/{scss → dist/scss}/mixins/animations/_ripple.scss +47 -55
- package/dist/scss/mixins/animations/_roll.scss +217 -0
- package/dist/scss/mixins/animations/_rotate.scss +728 -0
- package/dist/scss/mixins/animations/_rubber.scss +115 -0
- package/dist/scss/mixins/animations/_scale.scss +382 -0
- package/dist/scss/mixins/animations/_shake.scss +233 -0
- package/dist/scss/mixins/animations/_slide.scss +501 -0
- package/dist/scss/mixins/animations/_spin.scss +322 -0
- package/{scss → dist/scss}/mixins/animations/_sway.scss +32 -49
- package/{scss → dist/scss}/mixins/animations/_swing.scss +47 -49
- package/{scss → dist/scss}/mixins/animations/_tada.scss +44 -42
- package/{scss → dist/scss}/mixins/animations/_twist.scss +40 -55
- package/{scss → dist/scss}/mixins/animations/_wave.scss +36 -53
- package/dist/scss/mixins/animations/_wobble.scss +283 -0
- package/dist/scss/mixins/animations/_zoom.scss +394 -0
- package/{scss/mixins/mouse → dist/scss/mixins/controls}/_cursor.scss +60 -39
- package/dist/scss/mixins/controls/_hover.scss +625 -0
- package/dist/scss/mixins/controls/_index.scss +30 -0
- package/dist/scss/mixins/controls/_keyboard.scss +300 -0
- package/{scss/mixins/mouse → dist/scss/mixins/controls}/_pointer.scss +81 -72
- package/dist/scss/mixins/controls/_scroll.scss +460 -0
- package/{scss/mixins/scroll → dist/scss/mixins/controls}/_scrollbar.scss +50 -16
- package/dist/scss/mixins/controls/_selection.scss +208 -0
- package/dist/scss/mixins/controls/_touch.scss +401 -0
- package/dist/scss/mixins/effects/_blend.scss +128 -0
- package/dist/scss/mixins/effects/_filter.scss +470 -0
- package/dist/scss/mixins/effects/_focus.scss +83 -0
- package/dist/scss/mixins/effects/_gradient.scss +130 -0
- package/dist/scss/mixins/effects/_index.scss +28 -0
- package/dist/scss/mixins/effects/_mask.scss +76 -0
- package/dist/scss/mixins/effects/_opacity.scss +376 -0
- package/dist/scss/mixins/effects/_shadow.scss +429 -0
- package/dist/scss/mixins/keyframes/_base.scss +199 -0
- package/dist/scss/mixins/keyframes/_index.scss +24 -0
- package/dist/scss/mixins/keyframes/animations/_beat.scss +280 -0
- package/dist/scss/mixins/keyframes/animations/_blink.scss +82 -0
- package/dist/scss/mixins/keyframes/animations/_bounce.scss +292 -0
- package/dist/scss/mixins/keyframes/animations/_fade.scss +311 -0
- package/dist/scss/mixins/keyframes/animations/_flash.scss +165 -0
- package/dist/scss/mixins/keyframes/animations/_flip.scss +266 -0
- package/{scss/mixins → dist/scss/mixins/keyframes}/animations/_index.scss +19 -10
- package/dist/scss/mixins/keyframes/animations/_jiggle.scss +85 -0
- package/dist/scss/mixins/keyframes/animations/_lightspeed.scss +73 -0
- package/dist/scss/mixins/keyframes/animations/_nod.scss +79 -0
- package/dist/scss/mixins/keyframes/animations/_pop.scss +78 -0
- package/dist/scss/mixins/keyframes/animations/_pulse.scss +225 -0
- package/dist/scss/mixins/keyframes/animations/_ripple.scss +94 -0
- package/dist/scss/mixins/keyframes/animations/_roll.scss +124 -0
- package/dist/scss/mixins/keyframes/animations/_rotate.scss +360 -0
- package/dist/scss/mixins/keyframes/animations/_rubber.scss +81 -0
- package/dist/scss/mixins/keyframes/animations/_scale.scss +308 -0
- package/dist/scss/mixins/keyframes/animations/_shake.scss +270 -0
- package/dist/scss/mixins/keyframes/animations/_slide.scss +345 -0
- package/dist/scss/mixins/keyframes/animations/_spin.scss +270 -0
- package/dist/scss/mixins/keyframes/animations/_sway.scss +83 -0
- package/dist/scss/mixins/keyframes/animations/_twist.scss +89 -0
- package/dist/scss/mixins/keyframes/animations/_wave.scss +90 -0
- package/dist/scss/mixins/keyframes/animations/_wobble.scss +293 -0
- package/dist/scss/mixins/keyframes/animations/_zoom.scss +345 -0
- package/dist/scss/mixins/loaders/_bars.scss +128 -0
- package/dist/scss/mixins/loaders/_base.scss +39 -0
- package/dist/scss/mixins/loaders/_bubble.scss +395 -0
- package/dist/scss/mixins/loaders/_circle.scss +456 -0
- package/dist/scss/mixins/loaders/_dots.scss +248 -0
- package/dist/scss/mixins/loaders/_graph.scss +542 -0
- package/dist/scss/mixins/loaders/_index.scss +77 -0
- package/dist/scss/mixins/loaders/_line.scss +471 -0
- package/dist/scss/mixins/loaders/_objects.scss +563 -0
- package/dist/scss/mixins/loaders/_progress.scss +477 -0
- package/dist/scss/mixins/loaders/_rect.scss +480 -0
- package/dist/scss/mixins/loaders/_rings.scss +377 -0
- package/dist/scss/mixins/loaders/_skeleton.scss +461 -0
- package/dist/scss/mixins/loaders/_special.scss +611 -0
- package/dist/scss/mixins/loaders/_spinner.scss +175 -0
- package/dist/scss/mixins/loaders/_text.scss +446 -0
- package/{scss → dist/scss}/mixins/transforms/_flip.scss +16 -18
- package/dist/scss/mixins/transforms/_index.scss +28 -0
- package/dist/scss/mixins/transforms/_matrix.scss +18 -0
- package/{scss → dist/scss}/mixins/transforms/_perspective.scss +18 -1
- package/{scss → dist/scss}/mixins/transforms/_rotate.scss +9 -14
- package/{scss → dist/scss}/mixins/transforms/_scale.scss +16 -1
- package/{scss → dist/scss}/mixins/transforms/_skew.scss +16 -2
- package/{scss → dist/scss}/mixins/transforms/_translate.scss +16 -2
- package/dist/scss/mixins/transitions/_index.scss +22 -0
- package/dist/scss/mixins/transitions/_transition.scss +43 -0
- package/dist/scss/variables/_animations.scss +300 -0
- package/dist/scss/variables/_controls.scss +178 -0
- package/dist/scss/variables/_effects.scss +87 -0
- package/dist/scss/variables/_index.scss +27 -0
- package/dist/scss/variables/_keyframes.scss +28 -0
- package/dist/scss/variables/_loaders.scss +75 -0
- package/dist/scss/variables/_transforms.scss +85 -0
- package/dist/scss/variables/_transitions.scss +80 -0
- package/dist/ts/Draggable.ts +143 -0
- package/dist/ts/Gesture.ts +226 -0
- package/dist/ts/Keyboard.ts +195 -0
- package/dist/ts/LoaderManager.ts +662 -0
- package/dist/ts/Screensaver.ts +192 -0
- package/dist/ts/VideoOverlay.ts +205 -0
- package/dist/ts/demo.ts +1108 -0
- package/dist/ts/index.ts +58 -0
- package/package.json +90 -53
- package/src/html/_base.html +138 -0
- package/src/html/base.html +147 -0
- package/src/html/core-concepts.html +282 -0
- package/src/html/demo_base.html +171 -0
- package/src/html/demo_draggable.html +250 -0
- package/src/html/demo_gesture.html +264 -0
- package/src/html/demo_keyboard.html +224 -0
- package/src/html/demo_screensaver.html +258 -0
- package/src/html/demo_video_overlay.html +291 -0
- package/src/html/getting-started.html +242 -0
- package/src/html/index.html +400 -0
- package/src/html/keyboard.html +14 -0
- package/src/html/partials/_demo_links.html +21 -0
- package/src/html/partials/_footer.html +18 -0
- package/src/html/partials/_head.html +21 -0
- package/src/html/partials/_nav.html +84 -0
- package/src/html/partials/_theme_toggle.html +11 -0
- package/src/html/screensaver.html +20 -0
- package/src/html/test_animations.html +813 -0
- package/src/html/test_attention.html +281 -0
- package/src/html/test_bounce.html +201 -0
- package/src/html/test_effects.html +1348 -0
- package/src/html/test_fade.html +213 -0
- package/src/html/test_flip.html +208 -0
- package/src/html/test_keyframes.html +415 -0
- package/src/html/test_loaders.html +1489 -0
- package/src/html/test_mouse.html +516 -0
- package/src/html/test_overview.html +1444 -0
- package/src/html/test_pulse.html +212 -0
- package/src/html/test_scale.html +204 -0
- package/src/html/test_shake.html +232 -0
- package/src/html/test_slide.html +212 -0
- package/src/html/test_special.html +257 -0
- package/src/html/test_spin.html +216 -0
- package/src/html/test_transforms.html +332 -0
- package/src/html/test_transitions.html +245 -0
- package/src/html/test_zoom.html +188 -0
- package/src/html/video_overlay.html +27 -0
- package/src/jinja/_base.html.jinja +50 -0
- package/src/jinja/base.html.jinja +48 -0
- package/src/jinja/core-concepts.html.jinja +148 -0
- package/src/jinja/demo_draggable.html.jinja +114 -0
- package/src/jinja/demo_gesture.html.jinja +128 -0
- package/src/jinja/demo_keyboard.html.jinja +88 -0
- package/src/jinja/demo_screensaver.html.jinja +122 -0
- package/src/jinja/demo_video_overlay.html.jinja +155 -0
- package/src/jinja/getting-started.html.jinja +108 -0
- package/src/jinja/index.html.jinja +268 -0
- package/src/jinja/index.json +5 -0
- package/src/jinja/move.gl.css +7741 -0
- package/src/jinja/partials/_code_block.html.jinja +17 -0
- package/src/jinja/partials/_demo_links.html.jinja +41 -0
- package/src/jinja/partials/_feature_card.html.jinja +20 -0
- package/src/jinja/partials/_footer.html.jinja +22 -0
- package/src/jinja/partials/_head.html.jinja +27 -0
- package/src/jinja/partials/_nav.html.jinja +79 -0
- package/src/jinja/partials/_theme_toggle.html.jinja +15 -0
- package/src/jinja/test_animations.html.jinja +679 -0
- package/src/jinja/test_attention.html.jinja +147 -0
- package/src/jinja/test_bounce.html.jinja +67 -0
- package/src/jinja/test_effects.html.jinja +1218 -0
- package/src/jinja/test_fade.html.jinja +79 -0
- package/src/jinja/test_flip.html.jinja +74 -0
- package/src/jinja/test_keyframes.html.jinja +281 -0
- package/src/jinja/test_loaders.html.jinja +1358 -0
- package/src/jinja/test_mouse.html.jinja +382 -0
- package/src/jinja/test_overview.html.jinja +1313 -0
- package/src/jinja/test_pulse.html.jinja +78 -0
- package/src/jinja/test_scale.html.jinja +70 -0
- package/src/jinja/test_shake.html.jinja +98 -0
- package/src/jinja/test_slide.html.jinja +78 -0
- package/src/jinja/test_special.html.jinja +123 -0
- package/src/jinja/test_spin.html.jinja +82 -0
- package/src/jinja/test_transforms.html.jinja +198 -0
- package/src/jinja/test_transitions.html.jinja +111 -0
- package/src/jinja/test_zoom.html.jinja +54 -0
- package/src/scss/classes/_animations.scss +595 -0
- package/src/scss/classes/_controls.scss +314 -0
- package/src/scss/classes/_effects.scss +283 -0
- package/src/scss/classes/_index.scss +28 -0
- package/src/scss/classes/_loaders.scss +779 -0
- package/src/scss/classes/_transforms.scss +138 -0
- package/src/scss/classes/_transitions.scss +264 -0
- package/src/scss/dev/_banner.scss +36 -0
- package/src/scss/dev/_debug.scss +18 -0
- package/src/scss/dev/_deprecation.scss +13 -0
- package/src/scss/dev/_index.scss +8 -0
- package/src/scss/dev/_modules.scss +23 -0
- package/src/scss/docs.scss +2344 -0
- package/src/scss/docs.scss.bak +3133 -0
- package/src/scss/functions/_index.scss +22 -0
- package/src/scss/functions/scenes/_bubble.scss +32 -0
- package/src/scss/functions/scenes/_index.scss +21 -0
- package/src/scss/index.scss +17 -0
- package/src/scss/maps/_controls.scss +85 -0
- package/src/scss/maps/_index.scss +22 -0
- package/src/scss/mixins/_accessibility.scss +91 -0
- package/src/scss/mixins/_boot.scss +51 -0
- package/src/scss/mixins/_index.scss +41 -0
- package/src/scss/mixins/_screensaver.scss +228 -0
- package/src/scss/mixins/_shape.scss +315 -0
- package/src/scss/mixins/animations/_base.scss +403 -0
- package/src/scss/mixins/animations/_beat.scss +137 -0
- package/src/scss/mixins/animations/_blink.scss +159 -0
- package/src/scss/mixins/animations/_bounce.scss +306 -0
- package/src/scss/mixins/animations/_elastic.scss +69 -0
- package/src/scss/mixins/animations/_fade.scss +393 -0
- package/src/scss/mixins/animations/_flash.scss +169 -0
- package/src/scss/mixins/animations/_flip.scss +251 -0
- package/src/scss/mixins/animations/_float.scss +141 -0
- package/src/scss/mixins/animations/_glow.scss +190 -0
- package/src/scss/mixins/animations/_heartbeat.scss +195 -0
- package/src/scss/mixins/animations/_hinge.scss +118 -0
- package/src/scss/mixins/animations/_index.scss +97 -0
- package/src/scss/mixins/animations/_jello.scss +123 -0
- package/src/scss/mixins/animations/_jiggle.scss +162 -0
- package/src/scss/mixins/animations/_lightspeed.scss +135 -0
- package/src/scss/mixins/animations/_nod.scss +153 -0
- package/src/scss/mixins/animations/_pop.scss +153 -0
- package/src/scss/mixins/animations/_pulse.scss +275 -0
- package/src/scss/mixins/animations/_ripple.scss +161 -0
- package/src/scss/mixins/animations/_roll.scss +217 -0
- package/src/scss/mixins/animations/_rotate.scss +728 -0
- package/src/scss/mixins/animations/_rubber.scss +115 -0
- package/src/scss/mixins/animations/_scale.scss +382 -0
- package/src/scss/mixins/animations/_shake.scss +233 -0
- package/src/scss/mixins/animations/_slide.scss +501 -0
- package/src/scss/mixins/animations/_spin.scss +322 -0
- package/src/scss/mixins/animations/_sway.scss +150 -0
- package/src/scss/mixins/animations/_swing.scss +245 -0
- package/src/scss/mixins/animations/_tada.scss +235 -0
- package/src/scss/mixins/animations/_twist.scss +162 -0
- package/src/scss/mixins/animations/_wave.scss +149 -0
- package/src/scss/mixins/animations/_wobble.scss +283 -0
- package/src/scss/mixins/animations/_zoom.scss +394 -0
- package/src/scss/mixins/controls/_cursor.scss +203 -0
- package/src/scss/mixins/controls/_hover.scss +625 -0
- package/src/scss/mixins/controls/_index.scss +30 -0
- package/src/scss/mixins/controls/_keyboard.scss +300 -0
- package/src/scss/mixins/controls/_pointer.scss +267 -0
- package/src/scss/mixins/controls/_scroll.scss +460 -0
- package/src/scss/mixins/controls/_scrollbar.scss +283 -0
- package/src/scss/mixins/controls/_selection.scss +208 -0
- package/src/scss/mixins/controls/_touch.scss +401 -0
- package/src/scss/mixins/effects/_blend.scss +128 -0
- package/src/scss/mixins/effects/_filter.scss +470 -0
- package/src/scss/mixins/effects/_focus.scss +83 -0
- package/src/scss/mixins/effects/_gradient.scss +130 -0
- package/src/scss/mixins/effects/_index.scss +28 -0
- package/src/scss/mixins/effects/_mask.scss +76 -0
- package/src/scss/mixins/effects/_opacity.scss +376 -0
- package/src/scss/mixins/effects/_shadow.scss +429 -0
- package/src/scss/mixins/keyframes/_base.scss +199 -0
- package/src/scss/mixins/keyframes/_index.scss +24 -0
- package/src/scss/mixins/keyframes/animations/_beat.scss +280 -0
- package/src/scss/mixins/keyframes/animations/_blink.scss +82 -0
- package/src/scss/mixins/keyframes/animations/_bounce.scss +292 -0
- package/src/scss/mixins/keyframes/animations/_fade.scss +311 -0
- package/src/scss/mixins/keyframes/animations/_flash.scss +165 -0
- package/src/scss/mixins/keyframes/animations/_flip.scss +266 -0
- package/src/scss/mixins/keyframes/animations/_index.scss +46 -0
- package/src/scss/mixins/keyframes/animations/_jiggle.scss +85 -0
- package/src/scss/mixins/keyframes/animations/_lightspeed.scss +73 -0
- package/src/scss/mixins/keyframes/animations/_nod.scss +79 -0
- package/src/scss/mixins/keyframes/animations/_pop.scss +78 -0
- package/src/scss/mixins/keyframes/animations/_pulse.scss +225 -0
- package/src/scss/mixins/keyframes/animations/_ripple.scss +94 -0
- package/src/scss/mixins/keyframes/animations/_roll.scss +124 -0
- package/src/scss/mixins/keyframes/animations/_rotate.scss +360 -0
- package/src/scss/mixins/keyframes/animations/_rubber.scss +81 -0
- package/src/scss/mixins/keyframes/animations/_scale.scss +308 -0
- package/src/scss/mixins/keyframes/animations/_shake.scss +270 -0
- package/src/scss/mixins/keyframes/animations/_slide.scss +345 -0
- package/src/scss/mixins/keyframes/animations/_spin.scss +270 -0
- package/src/scss/mixins/keyframes/animations/_sway.scss +83 -0
- package/src/scss/mixins/keyframes/animations/_twist.scss +89 -0
- package/src/scss/mixins/keyframes/animations/_wave.scss +90 -0
- package/src/scss/mixins/keyframes/animations/_wobble.scss +293 -0
- package/src/scss/mixins/keyframes/animations/_zoom.scss +345 -0
- package/src/scss/mixins/loaders/_bars.scss +128 -0
- package/src/scss/mixins/loaders/_base.scss +39 -0
- package/src/scss/mixins/loaders/_bubble.scss +395 -0
- package/src/scss/mixins/loaders/_circle.scss +456 -0
- package/src/scss/mixins/loaders/_dots.scss +248 -0
- package/src/scss/mixins/loaders/_graph.scss +542 -0
- package/src/scss/mixins/loaders/_index.scss +77 -0
- package/src/scss/mixins/loaders/_line.scss +471 -0
- package/src/scss/mixins/loaders/_objects.scss +563 -0
- package/src/scss/mixins/loaders/_progress.scss +477 -0
- package/src/scss/mixins/loaders/_rect.scss +480 -0
- package/src/scss/mixins/loaders/_rings.scss +377 -0
- package/src/scss/mixins/loaders/_skeleton.scss +461 -0
- package/src/scss/mixins/loaders/_special.scss +611 -0
- package/src/scss/mixins/loaders/_spinner.scss +175 -0
- package/src/scss/mixins/loaders/_text.scss +446 -0
- package/src/scss/mixins/transforms/_flip.scss +74 -0
- package/src/scss/mixins/transforms/_index.scss +28 -0
- package/src/scss/mixins/transforms/_matrix.scss +18 -0
- package/src/scss/mixins/transforms/_perspective.scss +28 -0
- package/src/scss/mixins/transforms/_rotate.scss +96 -0
- package/src/scss/mixins/transforms/_scale.scss +26 -0
- package/src/scss/mixins/transforms/_skew.scss +27 -0
- package/src/scss/mixins/transforms/_translate.scss +27 -0
- package/src/scss/mixins/transitions/_index.scss +22 -0
- package/src/scss/mixins/transitions/_transition.scss +43 -0
- package/src/scss/variables/_animations.scss +300 -0
- package/src/scss/variables/_controls.scss +178 -0
- package/src/scss/variables/_effects.scss +87 -0
- package/src/scss/variables/_index.scss +27 -0
- package/src/scss/variables/_keyframes.scss +28 -0
- package/src/scss/variables/_loaders.scss +75 -0
- package/src/scss/variables/_transforms.scss +85 -0
- package/src/scss/variables/_transitions.scss +80 -0
- package/src/ts/Draggable.ts +143 -0
- package/src/ts/Gesture.ts +226 -0
- package/src/ts/Keyboard.ts +195 -0
- package/src/ts/LoaderManager.ts +662 -0
- package/src/ts/Screensaver.ts +192 -0
- package/src/ts/VideoOverlay.ts +205 -0
- package/src/ts/demo.ts +1108 -0
- package/src/ts/index.ts +58 -0
- package/css/move.gl.css +0 -2
- package/css/move.gl.min.css +0 -2
- package/scss/classes/_transforms.scss +0 -124
- package/scss/classes/keyboard.scss +0 -18
- package/scss/classes/screensaver.scss +0 -15
- package/scss/effects/_filter.scss +0 -176
- package/scss/effects/_index.scss +0 -23
- package/scss/effects/_opacity.scss +0 -62
- package/scss/effects/_shadow.scss +0 -175
- package/scss/functions/scenes/_bubble.scss +0 -19
- package/scss/functions/scenes/_index.scss +0 -20
- package/scss/index.scss +0 -0
- package/scss/keyframes/_beat.scss +0 -26
- package/scss/keyframes/_index.scss +0 -0
- package/scss/maps/_index.scss +0 -0
- package/scss/maps/_mouse.scss +0 -96
- package/scss/mixins/_hover.scss +0 -51
- package/scss/mixins/_index.scss +0 -0
- package/scss/mixins/_selection.scss +0 -321
- package/scss/mixins/_shape.scss +0 -44
- package/scss/mixins/_touch.scss +0 -95
- package/scss/mixins/animations/--hover.scss +0 -107
- package/scss/mixins/animations/_base.scss +0 -337
- package/scss/mixins/animations/_beat.scss +0 -119
- package/scss/mixins/animations/_bounce.scss +0 -192
- package/scss/mixins/animations/_fade.scss +0 -154
- package/scss/mixins/animations/_flip.scss +0 -72
- package/scss/mixins/animations/_heartbeat.scss +0 -175
- package/scss/mixins/animations/_hinge.scss +0 -119
- package/scss/mixins/animations/_jello.scss +0 -129
- package/scss/mixins/animations/_jiggle.scss +0 -163
- package/scss/mixins/animations/_lightspeed.scss +0 -130
- package/scss/mixins/animations/_pop.scss +0 -150
- package/scss/mixins/animations/_pulse.scss +0 -213
- package/scss/mixins/animations/_roll.scss +0 -261
- package/scss/mixins/animations/_rotate.scss +0 -428
- package/scss/mixins/animations/_rubber.scss +0 -116
- package/scss/mixins/animations/_scale.scss +0 -113
- package/scss/mixins/animations/_shake.scss +0 -182
- package/scss/mixins/animations/_slide.scss +0 -294
- package/scss/mixins/animations/_spin.scss +0 -219
- package/scss/mixins/animations/_wobble.scss +0 -254
- package/scss/mixins/animations/_zoom.scss +0 -166
- package/scss/mixins/effects/_filter.scss +0 -148
- package/scss/mixins/effects/_index.scss +0 -0
- package/scss/mixins/effects/_shadow.scss +0 -21
- package/scss/mixins/loaders/_index.scss +0 -0
- package/scss/mixins/loaders/_progress.scss +0 -174
- package/scss/mixins/loaders/_spinner.scss +0 -101
- package/scss/mixins/loaders/circle_01.scss +0 -22
- package/scss/mixins/loaders/circle_02.scss +0 -19
- package/scss/mixins/loaders/circle_03.scss +0 -29
- package/scss/mixins/loaders/circle_inner_01.scss +0 -33
- package/scss/mixins/loaders/circle_inner_02.scss +0 -33
- package/scss/mixins/loaders/circle_inner_03.scss +0 -34
- package/scss/mixins/mouse/_index.scss +0 -0
- package/scss/mixins/scroll/_index.scss +0 -0
- package/scss/mixins/scroll/_scroll.scss +0 -104
- package/scss/mixins/transforms/_index.scss +0 -23
- package/scss/mixins/transforms/_matrix.scss +0 -1
- package/scss/mixins/transitions/_index.scss +0 -0
- package/scss/mixins/transitions/_transition.scss +0 -13
- package/scss/variables/_animation.scss +0 -91
- package/scss/variables/_index.scss +0 -0
- package/ts/ARContent.ts +0 -27
- package/ts/ARInteraction.ts +0 -34
- package/ts/AdaptiveUI.ts +0 -25
- package/ts/ContentStreaming.ts +0 -20
- package/ts/Draggable.ts +0 -71
- package/ts/DynamicEnvironment.ts +0 -60
- package/ts/Gesture.ts +0 -168
- package/ts/ImmersiveAudio.ts +0 -40
- package/ts/InteractiveCanvas.ts +0 -177
- package/ts/InteractiveVideo.ts +0 -29
- package/ts/Keyboard.ts +0 -162
- package/ts/RealTimeCollaboration.ts +0 -25
- package/ts/Screensaver.ts +0 -140
- package/ts/SpatialNavigation.ts +0 -38
- package/ts/UserProfile.ts +0 -27
- package/ts/VRExperience.ts +0 -58
- package/ts/VideoOverlay.ts +0 -116
- package/ts/index.ts +0 -0
- /package/{scss → dist/scss}/dev/_banner.scss +0 -0
- /package/{scss → dist/scss}/dev/_debug.scss +0 -0
- /package/{scss → dist/scss}/dev/_index.scss +0 -0
- /package/{scss/classes/_index.scss → src/html/partials/_code_block.html} +0 -0
- /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
|
+
}
|