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.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/css/move.gl.css +2 -0
  4. package/css/move.gl.min.css +2 -0
  5. package/package.json +55 -0
  6. package/scss/classes/_animations.scss +576 -0
  7. package/scss/classes/_index.scss +0 -0
  8. package/scss/classes/_transforms.scss +124 -0
  9. package/scss/classes/keyboard.scss +18 -0
  10. package/scss/classes/screensaver.scss +15 -0
  11. package/scss/dev/_banner.scss +36 -0
  12. package/scss/dev/_debug.scss +18 -0
  13. package/scss/dev/_deprecation.scss +10 -0
  14. package/scss/dev/_index.scss +8 -0
  15. package/scss/dev/_modules.scss +24 -0
  16. package/scss/effects/_filter.scss +176 -0
  17. package/scss/effects/_index.scss +23 -0
  18. package/scss/effects/_opacity.scss +62 -0
  19. package/scss/effects/_shadow.scss +175 -0
  20. package/scss/functions/_index.scss +0 -0
  21. package/scss/functions/scenes/_bubble.scss +19 -0
  22. package/scss/functions/scenes/_index.scss +20 -0
  23. package/scss/index.scss +0 -0
  24. package/scss/keyframes/_beat.scss +26 -0
  25. package/scss/keyframes/_index.scss +0 -0
  26. package/scss/maps/_index.scss +0 -0
  27. package/scss/maps/_mouse.scss +96 -0
  28. package/scss/mixins/_accessibility.scss +70 -0
  29. package/scss/mixins/_boot.scss +51 -0
  30. package/scss/mixins/_hover.scss +51 -0
  31. package/scss/mixins/_index.scss +0 -0
  32. package/scss/mixins/_selection.scss +321 -0
  33. package/scss/mixins/_shape.scss +44 -0
  34. package/scss/mixins/_touch.scss +95 -0
  35. package/scss/mixins/animations/--hover.scss +107 -0
  36. package/scss/mixins/animations/_base.scss +337 -0
  37. package/scss/mixins/animations/_beat.scss +119 -0
  38. package/scss/mixins/animations/_blink.scss +151 -0
  39. package/scss/mixins/animations/_bounce.scss +192 -0
  40. package/scss/mixins/animations/_elastic.scss +65 -0
  41. package/scss/mixins/animations/_fade.scss +154 -0
  42. package/scss/mixins/animations/_flash.scss +177 -0
  43. package/scss/mixins/animations/_flip.scss +72 -0
  44. package/scss/mixins/animations/_float.scss +126 -0
  45. package/scss/mixins/animations/_glow.scss +179 -0
  46. package/scss/mixins/animations/_heartbeat.scss +175 -0
  47. package/scss/mixins/animations/_hinge.scss +119 -0
  48. package/scss/mixins/animations/_index.scss +37 -0
  49. package/scss/mixins/animations/_jello.scss +129 -0
  50. package/scss/mixins/animations/_jiggle.scss +163 -0
  51. package/scss/mixins/animations/_lightspeed.scss +130 -0
  52. package/scss/mixins/animations/_nod.scss +161 -0
  53. package/scss/mixins/animations/_pop.scss +150 -0
  54. package/scss/mixins/animations/_pulse.scss +213 -0
  55. package/scss/mixins/animations/_ripple.scss +169 -0
  56. package/scss/mixins/animations/_roll.scss +261 -0
  57. package/scss/mixins/animations/_rotate.scss +428 -0
  58. package/scss/mixins/animations/_rubber.scss +116 -0
  59. package/scss/mixins/animations/_scale.scss +113 -0
  60. package/scss/mixins/animations/_shake.scss +182 -0
  61. package/scss/mixins/animations/_slide.scss +294 -0
  62. package/scss/mixins/animations/_spin.scss +219 -0
  63. package/scss/mixins/animations/_sway.scss +167 -0
  64. package/scss/mixins/animations/_swing.scss +247 -0
  65. package/scss/mixins/animations/_tada.scss +233 -0
  66. package/scss/mixins/animations/_twist.scss +177 -0
  67. package/scss/mixins/animations/_wave.scss +166 -0
  68. package/scss/mixins/animations/_wobble.scss +254 -0
  69. package/scss/mixins/animations/_zoom.scss +166 -0
  70. package/scss/mixins/effects/_filter.scss +148 -0
  71. package/scss/mixins/effects/_index.scss +0 -0
  72. package/scss/mixins/effects/_shadow.scss +21 -0
  73. package/scss/mixins/loaders/_index.scss +0 -0
  74. package/scss/mixins/loaders/_progress.scss +174 -0
  75. package/scss/mixins/loaders/_spinner.scss +101 -0
  76. package/scss/mixins/loaders/circle_01.scss +22 -0
  77. package/scss/mixins/loaders/circle_02.scss +19 -0
  78. package/scss/mixins/loaders/circle_03.scss +29 -0
  79. package/scss/mixins/loaders/circle_inner_01.scss +33 -0
  80. package/scss/mixins/loaders/circle_inner_02.scss +33 -0
  81. package/scss/mixins/loaders/circle_inner_03.scss +34 -0
  82. package/scss/mixins/mouse/_cursor.scss +182 -0
  83. package/scss/mixins/mouse/_index.scss +0 -0
  84. package/scss/mixins/mouse/_pointer.scss +258 -0
  85. package/scss/mixins/scroll/_index.scss +0 -0
  86. package/scss/mixins/scroll/_scroll.scss +104 -0
  87. package/scss/mixins/scroll/_scrollbar.scss +249 -0
  88. package/scss/mixins/transforms/_flip.scss +76 -0
  89. package/scss/mixins/transforms/_index.scss +23 -0
  90. package/scss/mixins/transforms/_matrix.scss +1 -0
  91. package/scss/mixins/transforms/_perspective.scss +11 -0
  92. package/scss/mixins/transforms/_rotate.scss +101 -0
  93. package/scss/mixins/transforms/_scale.scss +11 -0
  94. package/scss/mixins/transforms/_skew.scss +13 -0
  95. package/scss/mixins/transforms/_translate.scss +13 -0
  96. package/scss/mixins/transitions/_index.scss +0 -0
  97. package/scss/mixins/transitions/_transition.scss +13 -0
  98. package/scss/variables/_animation.scss +91 -0
  99. package/scss/variables/_index.scss +0 -0
  100. package/ts/ARContent.ts +27 -0
  101. package/ts/ARInteraction.ts +34 -0
  102. package/ts/AdaptiveUI.ts +25 -0
  103. package/ts/ContentStreaming.ts +20 -0
  104. package/ts/Draggable.ts +71 -0
  105. package/ts/DynamicEnvironment.ts +60 -0
  106. package/ts/Gesture.ts +168 -0
  107. package/ts/ImmersiveAudio.ts +40 -0
  108. package/ts/InteractiveCanvas.ts +177 -0
  109. package/ts/InteractiveVideo.ts +29 -0
  110. package/ts/Keyboard.ts +162 -0
  111. package/ts/RealTimeCollaboration.ts +25 -0
  112. package/ts/Screensaver.ts +140 -0
  113. package/ts/SpatialNavigation.ts +38 -0
  114. package/ts/UserProfile.ts +27 -0
  115. package/ts/VRExperience.ts +58 -0
  116. package/ts/VideoOverlay.ts +116 -0
  117. 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
+ }