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,166 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Poster
|
|
3
|
+
// ============================================================================
|
|
4
|
+
|
|
5
|
+
////
|
|
6
|
+
///
|
|
7
|
+
/// Zoom 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
|
+
@use "../keyframes" as *;
|
|
30
|
+
@use "base" as *;
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// Mixins
|
|
35
|
+
// ============================================================================
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
///
|
|
39
|
+
/// Zoom Animation
|
|
40
|
+
/// Creates a zoom effect by scaling an element.
|
|
41
|
+
///
|
|
42
|
+
/// @name animate_zoom
|
|
43
|
+
/// @param {Number} $scale [1.5] - The scale factor at the peak of the animation.
|
|
44
|
+
/// @param {Duration} $duration [$animate_base_duration] - The duration of the animation.
|
|
45
|
+
/// @param {String} $timing_function [ease-in-out] - 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
|
+
///
|
|
48
|
+
@mixin animate_zoom(
|
|
49
|
+
$scale: 1.5,
|
|
50
|
+
$duration: $animate_base_duration,
|
|
51
|
+
$timing_function: ease-in-out,
|
|
52
|
+
$iteration_count: $animate_base_iteration_count
|
|
53
|
+
) {
|
|
54
|
+
@include animate_base(
|
|
55
|
+
animate_zoom,
|
|
56
|
+
$duration,
|
|
57
|
+
$timing_function,
|
|
58
|
+
$iteration_count,
|
|
59
|
+
);
|
|
60
|
+
@keyframes animate_zoom {
|
|
61
|
+
0%, 100% { transform: scale(1); }
|
|
62
|
+
50% { transform: scale($scale); }
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
// Gentle Zoom Animation
|
|
69
|
+
// ----------------------------------------------------------------------------
|
|
70
|
+
|
|
71
|
+
///
|
|
72
|
+
/// Gentle Zoom Animation
|
|
73
|
+
/// A slower and subtler zoom animation.
|
|
74
|
+
///
|
|
75
|
+
/// @name animate_zoom_slow
|
|
76
|
+
/// @param {Number} $scale [1.3] - The scale factor at the peak of the animation.
|
|
77
|
+
/// @param {Duration} $duration [$animate_base_duration_slow] - The duration of the animation.
|
|
78
|
+
/// @param {String} $timing_function [ease-in-out] - The timing function for the animation.
|
|
79
|
+
/// @param {Number|String} $iteration_count [$animate_base_iteration_count] - The number of iterations the animation will run.
|
|
80
|
+
///
|
|
81
|
+
@mixin animate_zoom_slow(
|
|
82
|
+
$scale: 1.3,
|
|
83
|
+
$duration: $animate_base_duration_slow,
|
|
84
|
+
$timing_function: ease-in-out,
|
|
85
|
+
$iteration_count: $animate_base_iteration_count
|
|
86
|
+
) {
|
|
87
|
+
@include animate_base(
|
|
88
|
+
animate_zoom_slow,
|
|
89
|
+
$duration,
|
|
90
|
+
$timing_function,
|
|
91
|
+
$iteration_count,
|
|
92
|
+
);
|
|
93
|
+
@keyframes animate_zoom_slow {
|
|
94
|
+
0%, 100% { transform: scale(1); }
|
|
95
|
+
50% { transform: scale($scale); }
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
// Rapid Zoom Animation
|
|
102
|
+
// ----------------------------------------------------------------------------
|
|
103
|
+
|
|
104
|
+
///
|
|
105
|
+
/// Rapid Zoom Animation
|
|
106
|
+
/// A faster and more intense zoom animation.
|
|
107
|
+
/// @name animate_zoom_fast
|
|
108
|
+
/// @param {Number} $scale [1.7] - The scale factor at the peak of the animation.
|
|
109
|
+
/// @param {Duration} $duration [$animate_base_duration_fast] - The duration of the animation.
|
|
110
|
+
/// @param {String} $timing_function [ease-in-out] - The timing function for the animation.
|
|
111
|
+
/// @param {Number|String} $iteration_count [$animate_base_iteration_count] - The number of iterations the animation will run.
|
|
112
|
+
///
|
|
113
|
+
@mixin animate_zoom_fast(
|
|
114
|
+
$scale: 1.7,
|
|
115
|
+
$duration: $animate_base_duration_fast,
|
|
116
|
+
$timing_function: ease-in-out,
|
|
117
|
+
$iteration_count: $animate_base_iteration_count
|
|
118
|
+
) {
|
|
119
|
+
@include animate_base(
|
|
120
|
+
animate_zoom_fast,
|
|
121
|
+
$duration,
|
|
122
|
+
$timing_function,
|
|
123
|
+
$iteration_count,
|
|
124
|
+
);
|
|
125
|
+
@keyframes animate_zoom_fast {
|
|
126
|
+
0%, 100% { transform: scale(1); }
|
|
127
|
+
50% { transform: scale($scale); }
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
// Zoom with Fade Animation
|
|
133
|
+
// ----------------------------------------------------------------------------
|
|
134
|
+
|
|
135
|
+
///
|
|
136
|
+
/// Zoom with Fade Animation
|
|
137
|
+
/// Combines zoom with a fade effect.
|
|
138
|
+
/// @name animate_zoom_fade
|
|
139
|
+
/// @param {Number} $scale [1.5] - The scale factor at the peak of the animation.
|
|
140
|
+
/// @param {Duration} $duration [$animate_base_duration] - The duration of the animation.
|
|
141
|
+
/// @param {String} $timing_function [ease-in-out] - The timing function for the animation.
|
|
142
|
+
/// @param {Number|String} $iteration_count [$animate_base_iteration_count] - The number of iterations the animation will run.
|
|
143
|
+
///
|
|
144
|
+
@mixin animate_zoom_fade(
|
|
145
|
+
$scale: 1.5,
|
|
146
|
+
$duration: $animate_base_duration,
|
|
147
|
+
$timing_function: ease-in-out,
|
|
148
|
+
$iteration_count: $animate_base_iteration_count
|
|
149
|
+
) {
|
|
150
|
+
@include animate_base(
|
|
151
|
+
animate_zoom_fade,
|
|
152
|
+
$duration,
|
|
153
|
+
$timing_function,
|
|
154
|
+
$iteration_count,
|
|
155
|
+
);
|
|
156
|
+
@keyframes animate_zoom_fade {
|
|
157
|
+
0%, 100% {
|
|
158
|
+
transform: scale(1);
|
|
159
|
+
opacity: 1;
|
|
160
|
+
}
|
|
161
|
+
50% {
|
|
162
|
+
transform: scale($scale);
|
|
163
|
+
opacity: 0.5;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Basic Filter Mixins
|
|
3
|
+
/// Here's how you can create SCSS mixins for commonly used filter effects,
|
|
4
|
+
/// allowing for easy reuse throughout your stylesheets:
|
|
5
|
+
///
|
|
6
|
+
|
|
7
|
+
///
|
|
8
|
+
/// Mixin for blur effect.
|
|
9
|
+
///
|
|
10
|
+
/// @param {Length} $radius [0] - The radius of the blur effect. Default is 0.
|
|
11
|
+
///
|
|
12
|
+
/// @example scss - Usage
|
|
13
|
+
/// .example {
|
|
14
|
+
/// @include filter_blur(5px);
|
|
15
|
+
/// }
|
|
16
|
+
///
|
|
17
|
+
@mixin filter_blur($radius: 0) {
|
|
18
|
+
filter: blur($radius);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
///
|
|
22
|
+
/// Mixin for grayscale effect.
|
|
23
|
+
///
|
|
24
|
+
/// @param {Percentage} $amount [100%] - The amount of grayscale to apply. Default is 100%.
|
|
25
|
+
///
|
|
26
|
+
/// @example scss - Usage
|
|
27
|
+
/// .example {
|
|
28
|
+
/// @include filter_grayscale(50%);
|
|
29
|
+
/// }
|
|
30
|
+
///
|
|
31
|
+
@mixin filter_grayscale($amount: 100%) {
|
|
32
|
+
filter: grayscale($amount);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
///
|
|
36
|
+
/// Mixin for brightness effect.
|
|
37
|
+
///
|
|
38
|
+
/// @param {Percentage} $amount [100%] - The amount of brightness to apply. Default is 100%.
|
|
39
|
+
///
|
|
40
|
+
/// @example scss - Usage
|
|
41
|
+
/// .example {
|
|
42
|
+
/// @include filter_brightness(120%);
|
|
43
|
+
/// }
|
|
44
|
+
///
|
|
45
|
+
@mixin filter_brightness($amount: 100%) {
|
|
46
|
+
filter: brightness($amount);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
///
|
|
50
|
+
/// Mixin for contrast effect.
|
|
51
|
+
///
|
|
52
|
+
/// @param {Percentage} $amount [100%] - The amount of contrast to apply. Default is 100%.
|
|
53
|
+
///
|
|
54
|
+
/// @example scss - Usage
|
|
55
|
+
/// .example {
|
|
56
|
+
/// @include filter_contrast(80%);
|
|
57
|
+
/// }
|
|
58
|
+
///
|
|
59
|
+
@mixin filter_contrast($amount: 100%) {
|
|
60
|
+
filter: contrast($amount);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
///
|
|
64
|
+
/// Mixin for sepia effect.
|
|
65
|
+
///
|
|
66
|
+
/// @param {Percentage} $amount [100%] - The amount of sepia to apply. Default is 100%.
|
|
67
|
+
///
|
|
68
|
+
/// @example scss - Usage
|
|
69
|
+
/// .example {
|
|
70
|
+
/// @include filter_sepia(50%);
|
|
71
|
+
/// }
|
|
72
|
+
///
|
|
73
|
+
@mixin filter_sepia($amount: 100%) {
|
|
74
|
+
filter: sepia($amount);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
///
|
|
78
|
+
/// Mixin for invert effect.
|
|
79
|
+
///
|
|
80
|
+
/// @param {Percentage} $amount [100%] - The amount of inversion to apply. Default is 100%.
|
|
81
|
+
///
|
|
82
|
+
/// @example scss - Usage
|
|
83
|
+
/// .example {
|
|
84
|
+
/// @include filter_invert(50%);
|
|
85
|
+
/// }
|
|
86
|
+
///
|
|
87
|
+
@mixin filter_invert($amount: 100%) {
|
|
88
|
+
filter: invert($amount);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
///
|
|
92
|
+
/// Mixin for hue-rotate effect.
|
|
93
|
+
///
|
|
94
|
+
/// @param {Angle} $angle [0deg] - The angle of hue rotation. Default is 0deg.
|
|
95
|
+
///
|
|
96
|
+
/// @example scss - Usage
|
|
97
|
+
/// .example {
|
|
98
|
+
/// @include filter_hue_rotate(90deg);
|
|
99
|
+
/// }
|
|
100
|
+
///
|
|
101
|
+
@mixin filter_hue_rotate($angle: 0deg) {
|
|
102
|
+
filter: hue-rotate($angle);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
///
|
|
106
|
+
/// Mixin for saturate effect.
|
|
107
|
+
///
|
|
108
|
+
/// @param {Percentage} $amount [100%] - The amount of saturation to apply. Default is 100%.
|
|
109
|
+
///
|
|
110
|
+
/// @example scss - Usage
|
|
111
|
+
/// .example {
|
|
112
|
+
/// @include filter_saturate(200%);
|
|
113
|
+
/// }
|
|
114
|
+
///
|
|
115
|
+
@mixin filter_saturate($amount: 100%) {
|
|
116
|
+
filter: saturate($amount);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
///
|
|
120
|
+
/// Mixin for drop shadow effect.
|
|
121
|
+
///
|
|
122
|
+
/// @param {Length} $offsetX [0] - The horizontal offset of the shadow. Default is 0.
|
|
123
|
+
/// @param {Length} $offsetY [0] - The vertical offset of the shadow. Default is 0.
|
|
124
|
+
/// @param {Length} $blurRadius [0] - The blur radius of the shadow. Default is 0.
|
|
125
|
+
/// @param {Color} $color [#000] - The color of the shadow. Default is black.
|
|
126
|
+
///
|
|
127
|
+
/// @example scss - Usage
|
|
128
|
+
/// .example {
|
|
129
|
+
/// @include filter_drop_shadow(10px, 10px, 5px, rgba(0, 0, 0, 0.5));
|
|
130
|
+
/// }
|
|
131
|
+
///
|
|
132
|
+
@mixin filter_drop_shadow($offsetX: 0, $offsetY: 0, $blurRadius: 0, $color: #000) {
|
|
133
|
+
filter: drop-shadow($offsetX $offsetY $blurRadius $color);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
///
|
|
137
|
+
/// Mixin for combining multiple filters.
|
|
138
|
+
///
|
|
139
|
+
/// @param {...} $filters - A list of filters to apply.
|
|
140
|
+
///
|
|
141
|
+
/// @example scss - Usage
|
|
142
|
+
/// .example {
|
|
143
|
+
/// @include filter_multi(filter_blur(5px), filter_brightness(120%));
|
|
144
|
+
/// }
|
|
145
|
+
///
|
|
146
|
+
@mixin filter_multi($filters...) {
|
|
147
|
+
filter: $filters;
|
|
148
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// Applies a material design-inspired elevation (shadow) to an element.
|
|
2
|
+
///
|
|
3
|
+
/// @name elevation
|
|
4
|
+
/// @param {Number} $level - The elevation level (1-24).
|
|
5
|
+
/// @example scss - Usage
|
|
6
|
+
/// @include elevation(4);
|
|
7
|
+
@mixin elevation($level) {
|
|
8
|
+
$elevations: (
|
|
9
|
+
1: 0px 1px 3px rgba(0, 0, 0, 0.12), 0px 1px 2px rgba(0, 0, 0, 0.24),
|
|
10
|
+
2: 0px 3px 6px rgba(0, 0, 0, 0.16), 0px 3px 6px rgba(0, 0, 0, 0.23),
|
|
11
|
+
3: 0px 10px 20px rgba(0, 0, 0, 0.19), 0px 6px 6px rgba(0, 0, 0, 0.23),
|
|
12
|
+
4: 0px 14px 28px rgba(0, 0, 0, 0.25), 0px 10px 10px rgba(0, 0, 0, 0.22),
|
|
13
|
+
5: 0px 19px 38px rgba(0, 0, 0, 0.30), 0px 15px 12px rgba(0, 0, 0, 0.22)
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
@if map-has-key($elevations, $level) {
|
|
17
|
+
box-shadow: map-get($elevations, $level);
|
|
18
|
+
} @else {
|
|
19
|
+
@warn "Invalid elevation level: #{$level}.";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// Copyright 2023 Scape Agency BV
|
|
2
|
+
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@use "../variables" as *;
|
|
17
|
+
@use "../mixins" as *;
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
// /* Add the correct vertical alignment in Chrome, Firefox, and Opera */
|
|
24
|
+
// progress {
|
|
25
|
+
// vertical-align: baseline;
|
|
26
|
+
// }
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// // Disable animation if transitions are disabled
|
|
31
|
+
|
|
32
|
+
// // scss-docs-start progress-keyframes
|
|
33
|
+
// @if $enable-transitions {
|
|
34
|
+
// @keyframes progress-bar-stripes {
|
|
35
|
+
// 0% { background-position-x: $progress-height; }
|
|
36
|
+
// }
|
|
37
|
+
// }
|
|
38
|
+
// // scss-docs-end progress-keyframes
|
|
39
|
+
|
|
40
|
+
// .progress,
|
|
41
|
+
// .progress-stacked {
|
|
42
|
+
// // scss-docs-start progress-css-vars
|
|
43
|
+
// --#{$prefix}progress-height: #{$progress-height};
|
|
44
|
+
// @include rfs($progress-font-size, --#{$prefix}progress-font-size);
|
|
45
|
+
// --#{$prefix}progress-bg: #{$progress-bg};
|
|
46
|
+
// --#{$prefix}progress-border-radius: #{$progress-border-radius};
|
|
47
|
+
// --#{$prefix}progress-box-shadow: #{$progress-box-shadow};
|
|
48
|
+
// --#{$prefix}progress-bar-color: #{$progress-bar-color};
|
|
49
|
+
// --#{$prefix}progress-bar-bg: #{$progress-bar-bg};
|
|
50
|
+
// --#{$prefix}progress-bar-transition: #{$progress-bar-transition};
|
|
51
|
+
// // scss-docs-end progress-css-vars
|
|
52
|
+
|
|
53
|
+
// display: flex;
|
|
54
|
+
// height: var(--#{$prefix}progress-height);
|
|
55
|
+
// overflow: hidden; // force rounded corners by cropping it
|
|
56
|
+
// @include font-size(var(--#{$prefix}progress-font-size));
|
|
57
|
+
// background-color: var(--#{$prefix}progress-bg);
|
|
58
|
+
// @include border-radius(var(--#{$prefix}progress-border-radius));
|
|
59
|
+
// @include box-shadow(var(--#{$prefix}progress-box-shadow));
|
|
60
|
+
// }
|
|
61
|
+
|
|
62
|
+
// .progress-bar {
|
|
63
|
+
// display: flex;
|
|
64
|
+
// flex-direction: column;
|
|
65
|
+
// justify-content: center;
|
|
66
|
+
// overflow: hidden;
|
|
67
|
+
// color: var(--#{$prefix}progress-bar-color);
|
|
68
|
+
// text-align: center;
|
|
69
|
+
// white-space: nowrap;
|
|
70
|
+
// background-color: var(--#{$prefix}progress-bar-bg);
|
|
71
|
+
// @include transition(var(--#{$prefix}progress-bar-transition));
|
|
72
|
+
// }
|
|
73
|
+
|
|
74
|
+
// .progress-bar-striped {
|
|
75
|
+
// @include gradient-striped();
|
|
76
|
+
// background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
|
|
77
|
+
// }
|
|
78
|
+
|
|
79
|
+
// .progress-stacked > .progress {
|
|
80
|
+
// overflow: visible;
|
|
81
|
+
// }
|
|
82
|
+
|
|
83
|
+
// .progress-stacked > .progress > .progress-bar {
|
|
84
|
+
// width: 100%;
|
|
85
|
+
// }
|
|
86
|
+
|
|
87
|
+
// @if $enable-transitions {
|
|
88
|
+
// .progress-bar-animated {
|
|
89
|
+
// animation: $progress-bar-animation-timing progress-bar-stripes;
|
|
90
|
+
|
|
91
|
+
// @if $enable-reduced-motion {
|
|
92
|
+
// @media (prefers-reduced-motion: reduce) {
|
|
93
|
+
// animation: none;
|
|
94
|
+
// }
|
|
95
|
+
// }
|
|
96
|
+
// }
|
|
97
|
+
// }
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
// // @import "../utilities/mixins"
|
|
103
|
+
|
|
104
|
+
// // $progress-bar-background-color: $border-light !default
|
|
105
|
+
// // $progress-value-background-color: $text !default
|
|
106
|
+
// // $progress-border-radius: $radius-rounded !default
|
|
107
|
+
|
|
108
|
+
// // $progress-indeterminate-duration: 1.5s !default
|
|
109
|
+
|
|
110
|
+
// // $progress-colors: $colors !default
|
|
111
|
+
|
|
112
|
+
// // .progress
|
|
113
|
+
// // @extend %block
|
|
114
|
+
// // -moz-appearance: none
|
|
115
|
+
// // -webkit-appearance: none
|
|
116
|
+
// // border: none
|
|
117
|
+
// // border-radius: $progress-border-radius
|
|
118
|
+
// // display: block
|
|
119
|
+
// // height: $size-normal
|
|
120
|
+
// // overflow: hidden
|
|
121
|
+
// // padding: 0
|
|
122
|
+
// // width: 100%
|
|
123
|
+
// // &::-webkit-progress-bar
|
|
124
|
+
// // background-color: $progress-bar-background-color
|
|
125
|
+
// // &::-webkit-progress-value
|
|
126
|
+
// // background-color: $progress-value-background-color
|
|
127
|
+
// // &::-moz-progress-bar
|
|
128
|
+
// // background-color: $progress-value-background-color
|
|
129
|
+
// // &::-ms-fill
|
|
130
|
+
// // background-color: $progress-value-background-color
|
|
131
|
+
// // border: none
|
|
132
|
+
// // // Colors
|
|
133
|
+
// // @each $name, $pair in $progress-colors
|
|
134
|
+
// // $color: nth($pair, 1)
|
|
135
|
+
// // &.is-#{$name}
|
|
136
|
+
// // &::-webkit-progress-value
|
|
137
|
+
// // background-color: $color
|
|
138
|
+
// // &::-moz-progress-bar
|
|
139
|
+
// // background-color: $color
|
|
140
|
+
// // &::-ms-fill
|
|
141
|
+
// // background-color: $color
|
|
142
|
+
// // &:indeterminate
|
|
143
|
+
// // background-image: linear-gradient(to right, $color 30%, $progress-bar-background-color 30%)
|
|
144
|
+
|
|
145
|
+
// // &:indeterminate
|
|
146
|
+
// // animation-duration: $progress-indeterminate-duration
|
|
147
|
+
// // animation-iteration-count: infinite
|
|
148
|
+
// // animation-name: moveIndeterminate
|
|
149
|
+
// // animation-timing-function: linear
|
|
150
|
+
// // background-color: $progress-bar-background-color
|
|
151
|
+
// // background-image: linear-gradient(to right, $text 30%, $progress-bar-background-color 30%)
|
|
152
|
+
// // background-position: top left
|
|
153
|
+
// // background-repeat: no-repeat
|
|
154
|
+
// // background-size: 150% 150%
|
|
155
|
+
// // &::-webkit-progress-bar
|
|
156
|
+
// // background-color: transparent
|
|
157
|
+
// // &::-moz-progress-bar
|
|
158
|
+
// // background-color: transparent
|
|
159
|
+
// // &::-ms-fill
|
|
160
|
+
// // animation-name: none
|
|
161
|
+
|
|
162
|
+
// // // Sizes
|
|
163
|
+
// // &.is-small
|
|
164
|
+
// // height: $size-small
|
|
165
|
+
// // &.is-medium
|
|
166
|
+
// // height: $size-medium
|
|
167
|
+
// // &.is-large
|
|
168
|
+
// // height: $size-large
|
|
169
|
+
|
|
170
|
+
// // @keyframes moveIndeterminate
|
|
171
|
+
// // from
|
|
172
|
+
// // background-position: 200% 0
|
|
173
|
+
// // to
|
|
174
|
+
// // background-position: -200% 0
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// Copyright 2024 Scape Agency BV
|
|
2
|
+
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
@use "../variables" as *;
|
|
16
|
+
@use "../mixins" as *;
|
|
17
|
+
//
|
|
18
|
+
// Rotating border
|
|
19
|
+
//
|
|
20
|
+
|
|
21
|
+
.spinner-grow,
|
|
22
|
+
.spinner-border {
|
|
23
|
+
display: inline-block;
|
|
24
|
+
width: var(--#{$prefix}spinner-width);
|
|
25
|
+
height: var(--#{$prefix}spinner-height);
|
|
26
|
+
vertical-align: var(--#{$prefix}spinner-vertical-align);
|
|
27
|
+
// stylelint-disable-next-line property-disallowed-list
|
|
28
|
+
border-radius: 50%;
|
|
29
|
+
animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// scss-docs-start spinner-border-keyframes
|
|
33
|
+
@keyframes spinner-border {
|
|
34
|
+
to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
|
|
35
|
+
}
|
|
36
|
+
// scss-docs-end spinner-border-keyframes
|
|
37
|
+
|
|
38
|
+
.spinner-border {
|
|
39
|
+
// scss-docs-start spinner-border-css-vars
|
|
40
|
+
--#{$prefix}spinner-width: #{$spinner-width};
|
|
41
|
+
--#{$prefix}spinner-height: #{$spinner-height};
|
|
42
|
+
--#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
|
|
43
|
+
--#{$prefix}spinner-border-width: #{$spinner-border-width};
|
|
44
|
+
--#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
|
|
45
|
+
--#{$prefix}spinner-animation-name: spinner-border;
|
|
46
|
+
// scss-docs-end spinner-border-css-vars
|
|
47
|
+
|
|
48
|
+
border: var(--#{$prefix}spinner-border-width) solid currentcolor;
|
|
49
|
+
border-right-color: transparent;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.spinner-border-sm {
|
|
53
|
+
// scss-docs-start spinner-border-sm-css-vars
|
|
54
|
+
--#{$prefix}spinner-width: #{$spinner-width-sm};
|
|
55
|
+
--#{$prefix}spinner-height: #{$spinner-height-sm};
|
|
56
|
+
--#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
|
|
57
|
+
// scss-docs-end spinner-border-sm-css-vars
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//
|
|
61
|
+
// Growing circle
|
|
62
|
+
//
|
|
63
|
+
|
|
64
|
+
// scss-docs-start spinner-grow-keyframes
|
|
65
|
+
@keyframes spinner-grow {
|
|
66
|
+
0% {
|
|
67
|
+
transform: scale(0);
|
|
68
|
+
}
|
|
69
|
+
50% {
|
|
70
|
+
opacity: 1;
|
|
71
|
+
transform: none;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// scss-docs-end spinner-grow-keyframes
|
|
75
|
+
|
|
76
|
+
.spinner-grow {
|
|
77
|
+
// scss-docs-start spinner-grow-css-vars
|
|
78
|
+
--#{$prefix}spinner-width: #{$spinner-width};
|
|
79
|
+
--#{$prefix}spinner-height: #{$spinner-height};
|
|
80
|
+
--#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
|
|
81
|
+
--#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
|
|
82
|
+
--#{$prefix}spinner-animation-name: spinner-grow;
|
|
83
|
+
// scss-docs-end spinner-grow-css-vars
|
|
84
|
+
|
|
85
|
+
background-color: currentcolor;
|
|
86
|
+
opacity: 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.spinner-grow-sm {
|
|
90
|
+
--#{$prefix}spinner-width: #{$spinner-width-sm};
|
|
91
|
+
--#{$prefix}spinner-height: #{$spinner-height-sm};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@if $enable-reduced-motion {
|
|
95
|
+
@media (prefers-reduced-motion: reduce) {
|
|
96
|
+
.spinner-border,
|
|
97
|
+
.spinner-grow {
|
|
98
|
+
--#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// https://cssloaders.github.io/
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
.loader {
|
|
5
|
+
width: 48px;
|
|
6
|
+
height: 48px;
|
|
7
|
+
border: 5px solid #FFF;
|
|
8
|
+
border-bottom-color: #FF3D00;
|
|
9
|
+
border-radius: 50%;
|
|
10
|
+
display: inline-block;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
animation: rotation 1s linear infinite;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@keyframes rotation {
|
|
16
|
+
0% {
|
|
17
|
+
transform: rotate(0deg);
|
|
18
|
+
}
|
|
19
|
+
100% {
|
|
20
|
+
transform: rotate(360deg);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.loader {
|
|
2
|
+
width: 48px;
|
|
3
|
+
height: 48px;
|
|
4
|
+
border: 5px solid #FFF;
|
|
5
|
+
border-bottom-color: transparent;
|
|
6
|
+
border-radius: 50%;
|
|
7
|
+
display: inline-block;
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
animation: rotation 1s linear infinite;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@keyframes rotation {
|
|
13
|
+
0% {
|
|
14
|
+
transform: rotate(0deg);
|
|
15
|
+
}
|
|
16
|
+
100% {
|
|
17
|
+
transform: rotate(360deg);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.loader {
|
|
2
|
+
width: 48px;
|
|
3
|
+
height: 48px;
|
|
4
|
+
border-radius: 50%;
|
|
5
|
+
position: relative;
|
|
6
|
+
animation: rotate 1s linear infinite
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.loader::before {
|
|
10
|
+
content: "";
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
position: absolute;
|
|
13
|
+
inset: 0px;
|
|
14
|
+
border-radius: 50%;
|
|
15
|
+
border: 5px solid #FFF;
|
|
16
|
+
animation: prixClipFix 2s linear infinite ;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@keyframes rotate {
|
|
20
|
+
100% {transform: rotate(360deg)}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@keyframes prixClipFix {
|
|
24
|
+
0% {clip-path:polygon(50% 50%,0 0,0 0,0 0,0 0,0 0)}
|
|
25
|
+
25% {clip-path:polygon(50% 50%,0 0,100% 0,100% 0,100% 0,100% 0)}
|
|
26
|
+
50% {clip-path:polygon(50% 50%,0 0,100% 0,100% 100%,100% 100%,100% 100%)}
|
|
27
|
+
75% {clip-path:polygon(50% 50%,0 0,100% 0,100% 100%,0 100%,0 100%)}
|
|
28
|
+
100% {clip-path:polygon(50% 50%,0 0,100% 0,100% 100%,0 100%,0 0)}
|
|
29
|
+
}
|