move.gl 0.0.1
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/LICENSE +21 -0
- package/README.md +38 -0
- package/css/move.gl.css +2 -0
- package/css/move.gl.min.css +2 -0
- package/package.json +55 -0
- package/scss/classes/_animations.scss +576 -0
- package/scss/classes/_index.scss +0 -0
- package/scss/classes/_transforms.scss +124 -0
- package/scss/classes/keyboard.scss +18 -0
- package/scss/classes/screensaver.scss +15 -0
- package/scss/dev/_banner.scss +36 -0
- package/scss/dev/_debug.scss +18 -0
- package/scss/dev/_deprecation.scss +10 -0
- package/scss/dev/_index.scss +8 -0
- package/scss/dev/_modules.scss +24 -0
- package/scss/effects/_filter.scss +176 -0
- package/scss/effects/_index.scss +23 -0
- package/scss/effects/_opacity.scss +62 -0
- package/scss/effects/_shadow.scss +175 -0
- package/scss/functions/_index.scss +0 -0
- package/scss/functions/scenes/_bubble.scss +19 -0
- package/scss/functions/scenes/_index.scss +20 -0
- package/scss/index.scss +0 -0
- package/scss/keyframes/_beat.scss +26 -0
- package/scss/keyframes/_index.scss +0 -0
- package/scss/maps/_index.scss +0 -0
- package/scss/maps/_mouse.scss +96 -0
- package/scss/mixins/_accessibility.scss +70 -0
- package/scss/mixins/_boot.scss +51 -0
- package/scss/mixins/_hover.scss +51 -0
- package/scss/mixins/_index.scss +0 -0
- package/scss/mixins/_selection.scss +321 -0
- package/scss/mixins/_shape.scss +44 -0
- package/scss/mixins/_touch.scss +95 -0
- package/scss/mixins/animations/--hover.scss +107 -0
- package/scss/mixins/animations/_base.scss +337 -0
- package/scss/mixins/animations/_beat.scss +119 -0
- package/scss/mixins/animations/_blink.scss +151 -0
- package/scss/mixins/animations/_bounce.scss +192 -0
- package/scss/mixins/animations/_elastic.scss +65 -0
- package/scss/mixins/animations/_fade.scss +154 -0
- package/scss/mixins/animations/_flash.scss +177 -0
- package/scss/mixins/animations/_flip.scss +72 -0
- package/scss/mixins/animations/_float.scss +126 -0
- package/scss/mixins/animations/_glow.scss +179 -0
- package/scss/mixins/animations/_heartbeat.scss +175 -0
- package/scss/mixins/animations/_hinge.scss +119 -0
- package/scss/mixins/animations/_index.scss +37 -0
- package/scss/mixins/animations/_jello.scss +129 -0
- package/scss/mixins/animations/_jiggle.scss +163 -0
- package/scss/mixins/animations/_lightspeed.scss +130 -0
- package/scss/mixins/animations/_nod.scss +161 -0
- package/scss/mixins/animations/_pop.scss +150 -0
- package/scss/mixins/animations/_pulse.scss +213 -0
- package/scss/mixins/animations/_ripple.scss +169 -0
- package/scss/mixins/animations/_roll.scss +261 -0
- package/scss/mixins/animations/_rotate.scss +428 -0
- package/scss/mixins/animations/_rubber.scss +116 -0
- package/scss/mixins/animations/_scale.scss +113 -0
- package/scss/mixins/animations/_shake.scss +182 -0
- package/scss/mixins/animations/_slide.scss +294 -0
- package/scss/mixins/animations/_spin.scss +219 -0
- package/scss/mixins/animations/_sway.scss +167 -0
- package/scss/mixins/animations/_swing.scss +247 -0
- package/scss/mixins/animations/_tada.scss +233 -0
- package/scss/mixins/animations/_twist.scss +177 -0
- package/scss/mixins/animations/_wave.scss +166 -0
- package/scss/mixins/animations/_wobble.scss +254 -0
- package/scss/mixins/animations/_zoom.scss +166 -0
- package/scss/mixins/effects/_filter.scss +148 -0
- package/scss/mixins/effects/_index.scss +0 -0
- package/scss/mixins/effects/_shadow.scss +21 -0
- package/scss/mixins/loaders/_index.scss +0 -0
- package/scss/mixins/loaders/_progress.scss +174 -0
- package/scss/mixins/loaders/_spinner.scss +101 -0
- package/scss/mixins/loaders/circle_01.scss +22 -0
- package/scss/mixins/loaders/circle_02.scss +19 -0
- package/scss/mixins/loaders/circle_03.scss +29 -0
- package/scss/mixins/loaders/circle_inner_01.scss +33 -0
- package/scss/mixins/loaders/circle_inner_02.scss +33 -0
- package/scss/mixins/loaders/circle_inner_03.scss +34 -0
- package/scss/mixins/mouse/_cursor.scss +182 -0
- package/scss/mixins/mouse/_index.scss +0 -0
- package/scss/mixins/mouse/_pointer.scss +258 -0
- package/scss/mixins/scroll/_index.scss +0 -0
- package/scss/mixins/scroll/_scroll.scss +104 -0
- package/scss/mixins/scroll/_scrollbar.scss +249 -0
- package/scss/mixins/transforms/_flip.scss +76 -0
- package/scss/mixins/transforms/_index.scss +23 -0
- package/scss/mixins/transforms/_matrix.scss +1 -0
- package/scss/mixins/transforms/_perspective.scss +11 -0
- package/scss/mixins/transforms/_rotate.scss +101 -0
- package/scss/mixins/transforms/_scale.scss +11 -0
- package/scss/mixins/transforms/_skew.scss +13 -0
- package/scss/mixins/transforms/_translate.scss +13 -0
- package/scss/mixins/transitions/_index.scss +0 -0
- package/scss/mixins/transitions/_transition.scss +13 -0
- package/scss/variables/_animation.scss +91 -0
- package/scss/variables/_index.scss +0 -0
- package/ts/ARContent.ts +27 -0
- package/ts/ARInteraction.ts +34 -0
- package/ts/AdaptiveUI.ts +25 -0
- package/ts/ContentStreaming.ts +20 -0
- package/ts/Draggable.ts +71 -0
- package/ts/DynamicEnvironment.ts +60 -0
- package/ts/Gesture.ts +168 -0
- package/ts/ImmersiveAudio.ts +40 -0
- package/ts/InteractiveCanvas.ts +177 -0
- package/ts/InteractiveVideo.ts +29 -0
- package/ts/Keyboard.ts +162 -0
- package/ts/RealTimeCollaboration.ts +25 -0
- package/ts/Screensaver.ts +140 -0
- package/ts/SpatialNavigation.ts +38 -0
- package/ts/UserProfile.ts +27 -0
- package/ts/VRExperience.ts +58 -0
- package/ts/VideoOverlay.ts +116 -0
- package/ts/index.ts +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Creates a circular element with a given size.
|
|
3
|
+
///
|
|
4
|
+
/// @name circle
|
|
5
|
+
/// @param {Number|Unit} $size - The diameter of the circle.
|
|
6
|
+
/// @example scss - Usage
|
|
7
|
+
/// @include circle(50px);
|
|
8
|
+
///
|
|
9
|
+
@mixin circle($size) {
|
|
10
|
+
width: $size;
|
|
11
|
+
height: $size;
|
|
12
|
+
border-radius: 50%;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
///
|
|
17
|
+
/// Creates a triangle using only CSS borders.
|
|
18
|
+
///
|
|
19
|
+
/// @name triangle
|
|
20
|
+
/// @param {Number|Unit} $size - The size of the triangle.
|
|
21
|
+
/// @param {Color} $color - The color of the triangle.
|
|
22
|
+
/// @param {String} $direction - The direction the triangle points (default: up).
|
|
23
|
+
/// @example scss - Usage
|
|
24
|
+
/// @include triangle(10px, #ff5722, down);
|
|
25
|
+
///
|
|
26
|
+
@mixin triangle($size, $color, $direction: up) {
|
|
27
|
+
width: 0;
|
|
28
|
+
height: 0;
|
|
29
|
+
border-style: solid;
|
|
30
|
+
|
|
31
|
+
@if $direction == up {
|
|
32
|
+
border-width: 0 $size $size $size;
|
|
33
|
+
border-color: transparent transparent $color transparent;
|
|
34
|
+
} @else if $direction == down {
|
|
35
|
+
border-width: $size $size 0 $size;
|
|
36
|
+
border-color: $color transparent transparent transparent;
|
|
37
|
+
} @else if $direction == left {
|
|
38
|
+
border-width: $size $size $size 0;
|
|
39
|
+
border-color: transparent $color transparent transparent;
|
|
40
|
+
} @else if $direction == right {
|
|
41
|
+
border-width: $size 0 $size $size;
|
|
42
|
+
border-color: transparent transparent transparent $color;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Touch
|
|
5
|
+
// ============================================================================
|
|
6
|
+
@use "../variables" as *;
|
|
7
|
+
@use "../mixins" as *;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
.touch_scroll {
|
|
11
|
+
overflow-y: auto;
|
|
12
|
+
-webkit-overflow-scrolling: touch;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// Increase Touch Area
|
|
17
|
+
// Ensure interactive elements are easy to tap by increasing their size or padding, especially for smaller elements like buttons and links.
|
|
18
|
+
|
|
19
|
+
// @mixin touch-target($min-size: 44px) {
|
|
20
|
+
// min-width: $min-size;
|
|
21
|
+
// min-height: $min-size;
|
|
22
|
+
// padding: 10px;
|
|
23
|
+
// box-sizing: border-box; // Include padding in the element's size
|
|
24
|
+
// }
|
|
25
|
+
|
|
26
|
+
// .button, .link {
|
|
27
|
+
// @include touch-target;
|
|
28
|
+
// // Additional styling for buttons and links
|
|
29
|
+
// }
|
|
30
|
+
// Visual Feedback for Touch
|
|
31
|
+
// Provide visual feedback for touch interactions such as color change, scale, or shadow to indicate an active state.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
// @mixin touch-feedback {
|
|
35
|
+
// transition: background-color 0.3s, transform 0.3s, box-shadow 0.3s;
|
|
36
|
+
|
|
37
|
+
// &:active {
|
|
38
|
+
// background-color: darken($primary-color, 10%);
|
|
39
|
+
// transform: scale(0.95);
|
|
40
|
+
// box-shadow: 0 5px 15px rgba(0,0,0,0.2);
|
|
41
|
+
// }
|
|
42
|
+
// }
|
|
43
|
+
|
|
44
|
+
// .interactive-element {
|
|
45
|
+
// @include touch-feedback;
|
|
46
|
+
// // Base styling for the element
|
|
47
|
+
// }
|
|
48
|
+
// Hover States with Touch Consideration
|
|
49
|
+
// Since touch devices generally don't support hover in the traditional sense, ensure that styles relying on hover also have equivalent styles for focus or active states to accommodate touch interactions.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
// @mixin hover-touch-styles {
|
|
53
|
+
// &:hover, &:focus, &:active {
|
|
54
|
+
// // Shared styles for hover, focus, and active states
|
|
55
|
+
// background-color: lighten($secondary-color, 5%);
|
|
56
|
+
// outline: none; // Remove focus outline if not desired
|
|
57
|
+
// }
|
|
58
|
+
// }
|
|
59
|
+
|
|
60
|
+
// .interactive-element {
|
|
61
|
+
// @include hover-touch-styles;
|
|
62
|
+
// // Base styling
|
|
63
|
+
// }
|
|
64
|
+
// Disable Zoom on Form Element Focus
|
|
65
|
+
// On touch devices, focusing on an input field can cause the viewport to zoom. You can control this behavior with the font-size property, ensuring it's above the threshold that triggers zooming, typically around 16px.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
// @mixin no-zoom-input {
|
|
69
|
+
// font-size: 16px; // Prevent zoom on focus on most mobile browsers
|
|
70
|
+
// &:focus {
|
|
71
|
+
// outline: none; // Optionally remove the outline
|
|
72
|
+
// }
|
|
73
|
+
// }
|
|
74
|
+
|
|
75
|
+
// input, select, textarea {
|
|
76
|
+
// @include no-zoom-input;
|
|
77
|
+
// }
|
|
78
|
+
// Gestures and Swipes
|
|
79
|
+
// For elements that use swipe gestures, ensure that the touch area is large enough and that the visual cues indicate swipeability.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
// .swipeable-element {
|
|
83
|
+
// @include touch-target(60px); // Larger touch target for easier swiping
|
|
84
|
+
// // Additional visual cues to indicate swipeability
|
|
85
|
+
// }
|
|
86
|
+
// Responsive Touch Styles
|
|
87
|
+
// Use media queries within your SCSS to apply touch-specific styles only on devices that support touch, keeping desktop styles unaffected.
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
// @media (hover: none) and (pointer: coarse) {
|
|
91
|
+
// .button, .link {
|
|
92
|
+
// @include touch-target(50px); // Larger touch targets for touch devices
|
|
93
|
+
// @include touch-feedback; // Visual feedback on touch
|
|
94
|
+
// }
|
|
95
|
+
// }
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// icon.gl | Animations
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
@use "../dev" as *;
|
|
8
|
+
@use "../variables" as *;
|
|
9
|
+
@use "base" as *;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
// @mixin hover-animation($transition-duration: 0.3s) {
|
|
13
|
+
// transition: all $transition-duration ease;
|
|
14
|
+
// &:hover {
|
|
15
|
+
// transform: scale(1.1);
|
|
16
|
+
// }
|
|
17
|
+
// }
|
|
18
|
+
|
|
19
|
+
// .hover-grow {
|
|
20
|
+
// @include hover-animation();
|
|
21
|
+
// }
|
|
22
|
+
|
|
23
|
+
// Hover
|
|
24
|
+
// ----------------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
@mixin animate_hover($scale: 1.05, $duration: 0.3s, $timing-function: ease-in-out) {
|
|
27
|
+
transition: transform $duration $timing-function;
|
|
28
|
+
&:hover {
|
|
29
|
+
transform: scale($scale);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.animate_hover {
|
|
34
|
+
@include animate_hover();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
// Hover Bounce
|
|
39
|
+
// ----------------------------------------------------------------------------
|
|
40
|
+
|
|
41
|
+
@mixin animate_hover_bounce($distance: 10px, $duration: 0.3s) {
|
|
42
|
+
transition: transform $duration ease-in-out;
|
|
43
|
+
&:hover {
|
|
44
|
+
animation-name: animate_bounce;
|
|
45
|
+
animation-duration: $duration;
|
|
46
|
+
animation-fill-mode: forwards;
|
|
47
|
+
@keyframes animate_bounce {
|
|
48
|
+
0% { transform: translateY(0); }
|
|
49
|
+
100% { transform: translateY(-$distance); }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.animate_hover_bounce {
|
|
55
|
+
@include animate_hover_bounce();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
// Hover Scale
|
|
62
|
+
// ----------------------------------------------------------------------------
|
|
63
|
+
|
|
64
|
+
@mixin animate_hover_scale($scale: 1.1, $duration: 0.3s) {
|
|
65
|
+
transition: transform $duration ease-in-out;
|
|
66
|
+
&:hover {
|
|
67
|
+
transform: scale($scale);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.animate_hover_scale {
|
|
72
|
+
@include animate_hover_scale();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Hover Rotate
|
|
76
|
+
// ----------------------------------------------------------------------------
|
|
77
|
+
|
|
78
|
+
@mixin animate_hover_rotate($angle: 15deg, $duration: 0.5s) {
|
|
79
|
+
transition: transform $duration ease-in-out;
|
|
80
|
+
&:hover {
|
|
81
|
+
transform: rotate($angle);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.animate_hover_rotate {
|
|
86
|
+
@include animate_hover_rotate();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
// Hover Drop Animation:
|
|
93
|
+
// ----------------------------------------------------------------------------
|
|
94
|
+
|
|
95
|
+
@mixin animate_hover_drop($distance: 5px, $duration: 0.3s) {
|
|
96
|
+
transition: transform $duration ease-in-out;
|
|
97
|
+
&:hover {
|
|
98
|
+
transform: translateY($distance);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.animate_hover_drop {
|
|
103
|
+
@include animate_hover_drop();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Poster
|
|
3
|
+
// ============================================================================
|
|
4
|
+
|
|
5
|
+
////
|
|
6
|
+
///
|
|
7
|
+
/// Base Animations Mixin Module
|
|
8
|
+
/// ===========================================================================
|
|
9
|
+
///
|
|
10
|
+
/// This module ...
|
|
11
|
+
///
|
|
12
|
+
///
|
|
13
|
+
/// @group Animations
|
|
14
|
+
/// @author Scape Agency
|
|
15
|
+
/// @link https://move.gl
|
|
16
|
+
/// @since 0.1.0 initial release
|
|
17
|
+
/// @todo None
|
|
18
|
+
/// @access public
|
|
19
|
+
///
|
|
20
|
+
////
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Use
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
@use "../dev" as *;
|
|
28
|
+
@use "../variables" as *;
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
// ============================================================================
|
|
32
|
+
// Mixins
|
|
33
|
+
// ============================================================================
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
///
|
|
37
|
+
/// Base Animation Mixin
|
|
38
|
+
/// This mixin provides a base structure for defining animations, allowing
|
|
39
|
+
/// customization of the name, duration, timing function, iteration count,
|
|
40
|
+
/// delay, and direction.
|
|
41
|
+
///
|
|
42
|
+
/// @name animate_base
|
|
43
|
+
/// @param {String} $name [none] - The name of the animation.
|
|
44
|
+
/// @param {Number|String} $duration [$animate_base_duration] - The duration of the animation.
|
|
45
|
+
/// @param {String} $timing_function [$animate_base_timing_function] - The timing function for the animation.
|
|
46
|
+
/// @param {Number|String} $iteration_count [$animate_base_iteration_count] - The number of iterations the animation will run.
|
|
47
|
+
/// @param {Number|String} $delay [$animate_base_delay] - The delay before the animation starts.
|
|
48
|
+
/// @param {String} $direction [$animate_base_direction] - The direction in which the animation is played.
|
|
49
|
+
///
|
|
50
|
+
@mixin animate_base(
|
|
51
|
+
$name: none,
|
|
52
|
+
$duration: $animate_base_duration,
|
|
53
|
+
$timing_function: $animate_base_timing_function,
|
|
54
|
+
$iteration_count: $animate_base_iteration_count,
|
|
55
|
+
$delay: $animate_base_delay,
|
|
56
|
+
$direction: $animate_base_direction,
|
|
57
|
+
) {
|
|
58
|
+
// animation: $name $duration $timing_function $iteration_count $delay $direction;
|
|
59
|
+
animation-name: $name;
|
|
60
|
+
animation-duration: $duration;
|
|
61
|
+
animation-timing-function: $timing_function;
|
|
62
|
+
animation-iteration-count: $iteration_count;
|
|
63
|
+
animation-delay: $delay;
|
|
64
|
+
animation-direction: $direction;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// General Animation Classes
|
|
68
|
+
// ----------------------------------------------------------------------------
|
|
69
|
+
|
|
70
|
+
// // Base classes for animations
|
|
71
|
+
// [class^="#{$icongl_prefix}animate_"],
|
|
72
|
+
// [class*=" #{$icongl_prefix}animate_"] {
|
|
73
|
+
// // Base animation properties
|
|
74
|
+
// display: inline-block;
|
|
75
|
+
// backface-visibility: hidden;
|
|
76
|
+
// perspective: 1000px; // Improve 3D animations
|
|
77
|
+
// }
|
|
78
|
+
|
|
79
|
+
// Reduced Motion Preference
|
|
80
|
+
// ----------------------------------------------------------------------------
|
|
81
|
+
|
|
82
|
+
// if agent or operating system prefers reduced motion, disable animations
|
|
83
|
+
// see: https://www.smashingmagazine.com/2020/09/design-reduced-motion-sensitivities/
|
|
84
|
+
// see: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
|
|
85
|
+
|
|
86
|
+
///
|
|
87
|
+
/// Reduced Motion
|
|
88
|
+
/// This media query applies styles that reduce motion for users who have
|
|
89
|
+
/// enabled the "prefers-reduced-motion" setting. Animations and transitions
|
|
90
|
+
/// are effectively disabled to improve accessibility.
|
|
91
|
+
/// @media (prefers-reduced-motion: reduce)
|
|
92
|
+
///
|
|
93
|
+
@media (prefers-reduced-motion: reduce) {
|
|
94
|
+
|
|
95
|
+
// Apply to specific animated classes
|
|
96
|
+
.animate_beat,
|
|
97
|
+
.animate_bounce,
|
|
98
|
+
.animate_fade,
|
|
99
|
+
.animate_beat_fade,
|
|
100
|
+
.animate_flip,
|
|
101
|
+
.animate_pulse,
|
|
102
|
+
.animate_shake,
|
|
103
|
+
.animate_spin,
|
|
104
|
+
.animate_spin-pulse {
|
|
105
|
+
animation-delay: -1ms;
|
|
106
|
+
animation-duration: 1ms;
|
|
107
|
+
animation-iteration-count: 1;
|
|
108
|
+
transition-delay: 0s;
|
|
109
|
+
transition-duration: 0s;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Global animation disabling
|
|
113
|
+
.animation {
|
|
114
|
+
animation: none;
|
|
115
|
+
transition: none;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
@media (prefers-reduced-motion: reduce) {
|
|
121
|
+
// Target all elements with a class starting with 'animate_'
|
|
122
|
+
[class*="animate_"] {
|
|
123
|
+
// Reset basic animation and transition properties
|
|
124
|
+
animation: none;
|
|
125
|
+
transition: none;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Alternatively, if animations are tied to a specific attribute
|
|
129
|
+
[data-animation] {
|
|
130
|
+
// Apply the same reset
|
|
131
|
+
animation: none;
|
|
132
|
+
transition: none;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Additional option for targeting any animated element
|
|
136
|
+
// This targets any element with animation or transition properties set
|
|
137
|
+
/// {
|
|
138
|
+
animation: none !important;
|
|
139
|
+
transition: none !important;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
// .animated {
|
|
150
|
+
// -webkit-animation-duration: 3s;
|
|
151
|
+
// animation-duration: 3s;
|
|
152
|
+
// -webkit-animation-fill-mode: both;
|
|
153
|
+
// animation-fill-mode: both;
|
|
154
|
+
// }
|
|
155
|
+
|
|
156
|
+
// .animated-middle {
|
|
157
|
+
// -webkit-animation-duration: 1.2s;
|
|
158
|
+
// animation-duration: 1.2s;
|
|
159
|
+
// -webkit-animation-fill-mode: both;
|
|
160
|
+
// animation-fill-mode: both;
|
|
161
|
+
// }
|
|
162
|
+
|
|
163
|
+
// .animated-quick {
|
|
164
|
+
// -webkit-animation-duration: 0.6s;
|
|
165
|
+
// animation-duration: 0.6s;
|
|
166
|
+
// -webkit-animation-fill-mode: both;
|
|
167
|
+
// animation-fill-mode: both;
|
|
168
|
+
// }
|
|
169
|
+
|
|
170
|
+
// .animated.infinite {
|
|
171
|
+
// -webkit-animation-iteration-count: infinite;
|
|
172
|
+
// animation-iteration-count: infinite;
|
|
173
|
+
// }
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
// Animations
|
|
179
|
+
//
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
///
|
|
185
|
+
/// Hover Opacity Transition Mixin
|
|
186
|
+
/// Provides a hover effect that changes the opacity of an element
|
|
187
|
+
/// with a transition.
|
|
188
|
+
/// @name transition_hover_opacity
|
|
189
|
+
///
|
|
190
|
+
@mixin transition_hover_opacity {
|
|
191
|
+
@include transition_duration_00;
|
|
192
|
+
opacity: 1.00;
|
|
193
|
+
:hover {
|
|
194
|
+
@include transition_duration_00;
|
|
195
|
+
opacity: 0.50;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
///
|
|
200
|
+
/// Transition Mixin
|
|
201
|
+
/// Provides a basic transition effect with a customizable duration.
|
|
202
|
+
/// @name transition_duration
|
|
203
|
+
/// @param {Number|String} $val - The duration for the transition.
|
|
204
|
+
///
|
|
205
|
+
@mixin transition_duration($val) {
|
|
206
|
+
transition: all $val ease-in-out;
|
|
207
|
+
-moz-transition: all $val ease-in-out;
|
|
208
|
+
-ms-transition: all $val ease-in-out;
|
|
209
|
+
-o-transition: all $val ease-in-out;
|
|
210
|
+
-webkit-transition: all $val ease-in-out;
|
|
211
|
+
transition-duration: all $val ease-in-out;
|
|
212
|
+
-moz-transition-duration: all $val ease-in-out;
|
|
213
|
+
-ms-transition-duration: all $val ease-in-out;
|
|
214
|
+
-o-transition-duration: all $val ease-in-out;
|
|
215
|
+
-webkit-transition-duration: all $val ease-in-out;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
///
|
|
220
|
+
/// Quick Transition Mixin
|
|
221
|
+
/// Provides a quick transition effect with a pre-defined duration.
|
|
222
|
+
/// @name transition_duration_00
|
|
223
|
+
///
|
|
224
|
+
@mixin transition_duration_00 {
|
|
225
|
+
@include transition_duration($transition_duration_00);
|
|
226
|
+
// transition: all $transition_duration_00 ease-in-out;
|
|
227
|
+
// -moz-transition: all $transition_duration_00 ease-in-out;
|
|
228
|
+
// -ms-transition: all $transition_duration_00 ease-in-out;
|
|
229
|
+
// -o-transition: all $transition_duration_00 ease-in-out;
|
|
230
|
+
// -webkit-transition: all $transition_duration_00 ease-in-out;
|
|
231
|
+
// transition-duration: all $transition_duration_00 ease-in-out;
|
|
232
|
+
// -moz-transition-duration: all $transition_duration_00 ease-in-out;
|
|
233
|
+
// -ms-transition-duration: all $transition_duration_00 ease-in-out;
|
|
234
|
+
// -o-transition-duration: all $transition_duration_00 ease-in-out;
|
|
235
|
+
// -webkit-transition-duration: all $transition_duration_00 ease-in-out;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
///
|
|
239
|
+
/// Medium Transition Mixin
|
|
240
|
+
/// Provides a medium-speed transition effect with a pre-defined duration.
|
|
241
|
+
/// @name transition_duration_01
|
|
242
|
+
///
|
|
243
|
+
@mixin transition_duration_01 {
|
|
244
|
+
@include transition_duration($transition_duration_01);
|
|
245
|
+
// transition: all $transition_duration_01 ease-in-out;
|
|
246
|
+
// -moz-transition: all $transition_duration_01 ease-in-out;
|
|
247
|
+
// -ms-transition: all $transition_duration_01 ease-in-out;
|
|
248
|
+
// -o-transition: all $transition_duration_01 ease-in-out;
|
|
249
|
+
// -webkit-transition: all $transition_duration_01 ease-in-out;
|
|
250
|
+
// transition-duration: all $transition_duration_01 ease-in-out;
|
|
251
|
+
// -moz-transition-duration: all $transition_duration_01 ease-in-out;
|
|
252
|
+
// -ms-transition-duration: all $transition_duration_01 ease-in-out;
|
|
253
|
+
// -o-transition-duration: all $transition_duration_01 ease-in-out;
|
|
254
|
+
// -webkit-transition-duration: all $transition_duration_01 ease-in-out;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
///
|
|
258
|
+
/// Long Transition Mixin
|
|
259
|
+
/// Provides a longer transition effect with a pre-defined duration.
|
|
260
|
+
/// @name transition_duration_02
|
|
261
|
+
///
|
|
262
|
+
@mixin transition_duration_02 {
|
|
263
|
+
@include transition_duration($transition_duration_02);
|
|
264
|
+
// transition: all $transition_duration_02 ease-in-out;
|
|
265
|
+
// -moz-transition: all $transition_duration_02 ease-in-out;
|
|
266
|
+
// -ms-transition: all $transition_duration_02 ease-in-out;
|
|
267
|
+
// -o-transition: all $transition_duration_02 ease-in-out;
|
|
268
|
+
// -webkit-transition: all $transition_duration_02 ease-in-out;
|
|
269
|
+
// transition-duration: all $transition_duration_02 ease-in-out;
|
|
270
|
+
// -moz-transition-duration: all $transition_duration_02 ease-in-out;
|
|
271
|
+
// -ms-transition-duration: all $transition_duration_02 ease-in-out;
|
|
272
|
+
// -o-transition-duration: all $transition_duration_02 ease-in-out;
|
|
273
|
+
// -webkit-transition-duration: all $transition_duration_02 ease-in-out;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
///
|
|
277
|
+
/// Extra Long Transition Mixin
|
|
278
|
+
/// Provides an extra-long transition effect with a pre-defined duration.
|
|
279
|
+
/// @name transition_duration_03
|
|
280
|
+
///
|
|
281
|
+
@mixin transition_duration_03 {
|
|
282
|
+
@include transition_duration($transition_duration_03);
|
|
283
|
+
// transition: all $transition_duration_03 ease-in-out;
|
|
284
|
+
// -moz-transition: all $transition_duration_03 ease-in-out;
|
|
285
|
+
// -ms-transition: all $transition_duration_03 ease-in-out;
|
|
286
|
+
// -o-transition: all $transition_duration_03 ease-in-out;
|
|
287
|
+
// -webkit-transition: all $transition_duration_03 ease-in-out;
|
|
288
|
+
// transition-duration: all $transition_duration_03 ease-in-out;
|
|
289
|
+
// -moz-transition-duration: all $transition_duration_03 ease-in-out;
|
|
290
|
+
// -ms-transition-duration: all $transition_duration_03 ease-in-out;
|
|
291
|
+
// -o-transition-duration: all $transition_duration_03 ease-in-out;
|
|
292
|
+
// -webkit-transition-duration: all $transition_duration_03 ease-in-out;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
///
|
|
296
|
+
/// Maximum Duration Transition Mixin
|
|
297
|
+
/// Provides a maximum duration transition effect with a pre-defined duration.
|
|
298
|
+
/// @name transition_duration_04
|
|
299
|
+
///
|
|
300
|
+
@mixin transition_duration_04 {
|
|
301
|
+
@include transition_duration($transition_duration_04);
|
|
302
|
+
// transition: all $transition_duration_04 ease-in-out;
|
|
303
|
+
// -moz-transition: all $transition_duration_04 ease-in-out;
|
|
304
|
+
// -ms-transition: all $transition_duration_04 ease-in-out;
|
|
305
|
+
// -o-transition: all $transition_duration_04 ease-in-out;
|
|
306
|
+
// -webkit-transition: all $transition_duration_04 ease-in-out;
|
|
307
|
+
// transition-duration: all $transition_duration_04 ease-in-out;
|
|
308
|
+
// -moz-transition-duration: all $transition_duration_04 ease-in-out;
|
|
309
|
+
// -ms-transition-duration: all $transition_duration_04 ease-in-out;
|
|
310
|
+
// -o-transition-duration: all $transition_duration_04 ease-in-out;
|
|
311
|
+
// -webkit-transition-duration: all $transition_duration_04 ease-in-out;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
///
|
|
317
|
+
/// Generates a keyframe animation for elements.
|
|
318
|
+
///
|
|
319
|
+
/// @name keyframe-animation
|
|
320
|
+
/// @param {String} $name - The name of the animation.
|
|
321
|
+
/// @param {Map} $keyframes - A map of keyframes, where the key is the percentage and the value is the CSS properties.
|
|
322
|
+
/// @example scss - Usage
|
|
323
|
+
/// @include keyframe-animation('slide-in', (0%: (transform: translateX(-100%)), 100%: (transform: translateX(0))));
|
|
324
|
+
@mixin keyframe_animation(
|
|
325
|
+
$name,
|
|
326
|
+
$keyframes
|
|
327
|
+
) {
|
|
328
|
+
@keyframes #{$name} {
|
|
329
|
+
@each $percentage, $properties in $keyframes {
|
|
330
|
+
#{$percentage} {
|
|
331
|
+
@each $property, $value in $properties {
|
|
332
|
+
#{$property}: #{$value};
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|