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,249 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Scrollbar
|
|
5
|
+
// ============================================================================
|
|
6
|
+
@use "../variables" as *;
|
|
7
|
+
@use "../mixins" as *;
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
::-webkit-scrollbar {}
|
|
11
|
+
::-webkit-scrollbar-button {}
|
|
12
|
+
::-webkit-scrollbar-track {}
|
|
13
|
+
::-webkit-scrollbar-track-piece {}
|
|
14
|
+
::-webkit-scrollbar-thumb {}
|
|
15
|
+
::-webkit-scrollbar-corner {}
|
|
16
|
+
::-webkit-resizer {}
|
|
17
|
+
https://gist.github.com/JuanMaRuiz/7927982
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
::-webkit-scrollbar — the entire scrollbar.
|
|
21
|
+
::-webkit-scrollbar-button — the buttons on the scrollbar (arrows pointing upwards and downwards).
|
|
22
|
+
::-webkit-scrollbar-thumb — the draggable scrolling handle.
|
|
23
|
+
::-webkit-scrollbar-track — the track (progress bar) of the scrollbar.
|
|
24
|
+
::-webkit-scrollbar-track-piece — the part of the track (progress bar) not covered by the handle.
|
|
25
|
+
::-webkit-scrollbar-corner — the bottom corner of the scrollbar, where both horizontal and vertical scrollbars meet.
|
|
26
|
+
::-webkit-resizer — the draggable resizing handle that appears at the bottom corner of some elements.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// width
|
|
31
|
+
*::-webkit-scrollbar {
|
|
32
|
+
// width: $q * 2;
|
|
33
|
+
// //width: 0px;
|
|
34
|
+
// background: transparent;
|
|
35
|
+
// overflow: visible;
|
|
36
|
+
// background-color: transparent;
|
|
37
|
+
// display: none;
|
|
38
|
+
width: 12px;
|
|
39
|
+
|
|
40
|
+
// width: 3px !important;
|
|
41
|
+
background-color: transparent;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Track
|
|
45
|
+
*::-webkit-scrollbar-track {
|
|
46
|
+
//background: $color_01;
|
|
47
|
+
// opacity: 0.0;
|
|
48
|
+
// // opacity: 1.0;
|
|
49
|
+
// background-color: transparent;
|
|
50
|
+
// //width: 0px;
|
|
51
|
+
// //background: rgba(0, 0, 0, 0.2);
|
|
52
|
+
// display: none;
|
|
53
|
+
// -webkit-box-shadow: none;
|
|
54
|
+
|
|
55
|
+
// display: none;
|
|
56
|
+
-webkit-box-shadow: none !important;
|
|
57
|
+
background-color: transparent;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Track Piece
|
|
61
|
+
*::-webkit-scrollbar-track-piece{
|
|
62
|
+
//display: none;
|
|
63
|
+
// width: 8px;
|
|
64
|
+
// display: none;
|
|
65
|
+
|
|
66
|
+
-webkit-border-radius: 6px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Handle
|
|
70
|
+
*::-webkit-scrollbar-thumb {
|
|
71
|
+
//height:30px;
|
|
72
|
+
//background-color: rgba(0, 0, 0, 0.2);
|
|
73
|
+
//border: solid $color_02;
|
|
74
|
+
// border-radius: $q;
|
|
75
|
+
// opacity: 0.5;
|
|
76
|
+
// display: block;
|
|
77
|
+
// background-color: transparent;
|
|
78
|
+
|
|
79
|
+
// background:$color_02;
|
|
80
|
+
// -webkit-box-shadow: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
*::-webkit-scrollbar-thumb:window-inactive {
|
|
84
|
+
background: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Handle on hover
|
|
88
|
+
*::-webkit-scrollbar-thumb:hover {
|
|
89
|
+
//background:$color_02;
|
|
90
|
+
//opacity: 1;
|
|
91
|
+
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
::-webkit-scrollbar-thumb:vertical {
|
|
96
|
+
///height: 50px;
|
|
97
|
+
//background-color: #333333;
|
|
98
|
+
//-webkit-border-radius: 8px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
::-webkit-scrollbar-button:start:decrement,
|
|
105
|
+
body::-webkit-scrollbar-button:end:increment {
|
|
106
|
+
//display: block;
|
|
107
|
+
//height: 0;
|
|
108
|
+
//background-color: transparent;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
// SCSS Mixin for Custom Scrollbars
|
|
115
|
+
// This mixin allows for customization of the scrollbar's appearance. Note that scrollbar customization is primarily supported in WebKit-based browsers (like Chrome and Safari) and partially in Firefox.
|
|
116
|
+
/// @name custom-scrollbar
|
|
117
|
+
/// Customizes the appearance of scrollbars in WebKit browsers.
|
|
118
|
+
/// @param {Color} $thumb-color - The color of the scrollbar thumb.
|
|
119
|
+
/// @param {Color} $track-color - The color of the scrollbar track.
|
|
120
|
+
/// @param {Number|Unit} $width - The width of the scrollbar (default: 8px).
|
|
121
|
+
/// @example scss - Usage
|
|
122
|
+
/// @include custom-scrollbar(#888, #ccc, 10px);
|
|
123
|
+
@mixin custom-scrollbar($width: 12px, $track-color: #f1f1f1, $thumb-color: #888) {
|
|
124
|
+
// For WebKit-based browsers
|
|
125
|
+
&::-webkit-scrollbar {
|
|
126
|
+
width: $width;
|
|
127
|
+
height: $width;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
&::-webkit-scrollbar-track {
|
|
131
|
+
background: $track-color;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&::-webkit-scrollbar-thumb {
|
|
135
|
+
background: $thumb-color;
|
|
136
|
+
border-radius: $width / 2;
|
|
137
|
+
border: 2px solid $track-color;
|
|
138
|
+
&:hover {
|
|
139
|
+
background: darken($thumb-color, 10%);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// For Firefox
|
|
144
|
+
scrollbar-width: thin;
|
|
145
|
+
scrollbar-color: $thumb-color $track-color;
|
|
146
|
+
|
|
147
|
+
// For other browsers, there's limited support for customization.
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
// Usage Example
|
|
152
|
+
// You can apply this mixin to any element that has overflow content, such as a container with scrollable content.
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
.scrollable-content {
|
|
156
|
+
@include custom-scrollbar(10px, #e0e0e0, #4A4A4A); // Customize the width, track color, and thumb color
|
|
157
|
+
max-height: 300px;
|
|
158
|
+
overflow-y: scroll;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
// Extended Custom Scrollbar Mixin
|
|
166
|
+
// This extended version includes additional styling options for the scrollbar thumb, including hover and active states, and introduces a more detailed approach to styling the scrollbar track and corner.
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
@mixin extended-custom-scrollbar(
|
|
170
|
+
$width: 12px,
|
|
171
|
+
$track-color: #f1f1f1,
|
|
172
|
+
$thumb-color: #888,
|
|
173
|
+
$thumb-hover-color: darken($thumb-color, 10%),
|
|
174
|
+
$thumb-active-color: darken($thumb-color, 20%)
|
|
175
|
+
) {
|
|
176
|
+
// Scrollbar track
|
|
177
|
+
&::-webkit-scrollbar {
|
|
178
|
+
width: $width;
|
|
179
|
+
height: $width; // For horizontal scrollbars
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
&::-webkit-scrollbar-track {
|
|
183
|
+
background: $track-color;
|
|
184
|
+
border-radius: $width / 2;
|
|
185
|
+
box-shadow: inset 0 0 5px grey; // Optional: adds inset shadow to the track
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Scrollbar thumb
|
|
189
|
+
&::-webkit-scrollbar-thumb {
|
|
190
|
+
background: $thumb-color;
|
|
191
|
+
border-radius: $width / 2;
|
|
192
|
+
border: 3px solid $track-color; // Creates a margin between the track and thumb
|
|
193
|
+
|
|
194
|
+
&:hover {
|
|
195
|
+
background: $thumb-hover-color;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
&:active {
|
|
199
|
+
background: $thumb-active-color;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Scrollbar corner (where horizontal and vertical scrollbars meet)
|
|
204
|
+
&::-webkit-scrollbar-corner {
|
|
205
|
+
background: $track-color;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Firefox
|
|
209
|
+
scrollbar-width: auto;
|
|
210
|
+
scrollbar-color: $thumb-color $track-color;
|
|
211
|
+
|
|
212
|
+
// More detailed styling for Firefox can be achieved with properties like `scrollbar-width` and `scrollbar-color`
|
|
213
|
+
}
|
|
214
|
+
// Usage Example with Extended Options
|
|
215
|
+
// Apply this mixin to any scrollable element to enhance its appearance with a custom scrollbar that includes interactive states for better user engagement.
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
.detailed-scrollable-content {
|
|
219
|
+
@include extended-custom-scrollbar(8px, #eaeaea, #bcbcbc, #a8a8a8, #989898);
|
|
220
|
+
max-height: 400px;
|
|
221
|
+
overflow-y: auto;
|
|
222
|
+
}
|
|
223
|
+
// Advanced Customization for Specific Elements
|
|
224
|
+
// You can also target specific parts of the scrollbar for even more detailed customization. For instance, you might want to style only the vertical or horizontal scrollbar, or apply unique styles to the scrollbar buttons (arrows), which some browsers display.
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
.unique-vertical-scrollbar {
|
|
228
|
+
&::-webkit-scrollbar {
|
|
229
|
+
width: 10px;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
&::-webkit-scrollbar-thumb {
|
|
233
|
+
background: linear-gradient(180deg, #ff8a00, #e52e71);
|
|
234
|
+
border-radius: 5px;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.unique-horizontal-scrollbar {
|
|
239
|
+
&::-webkit-scrollbar {
|
|
240
|
+
height: 10px;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
&::-webkit-scrollbar-thumb {
|
|
244
|
+
background: linear-gradient(90deg, #ff8a00, #e52e71);
|
|
245
|
+
border-radius: 5px;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Poster
|
|
3
|
+
// ============================================================================
|
|
4
|
+
|
|
5
|
+
////
|
|
6
|
+
///
|
|
7
|
+
/// Flip Transforms Mixin Module
|
|
8
|
+
/// ===========================================================================
|
|
9
|
+
/// This module provides mixins for flipping elements in various directions,
|
|
10
|
+
/// such as horizontally, vertically, or both. These mixins can be used to
|
|
11
|
+
/// easily apply flip transforms throughout your project.
|
|
12
|
+
///
|
|
13
|
+
/// @group Transforms
|
|
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
|
+
// ============================================================================
|
|
25
|
+
// Use
|
|
26
|
+
// ============================================================================
|
|
27
|
+
|
|
28
|
+
@use "../dev" as *;
|
|
29
|
+
@use "../variables" as *;
|
|
30
|
+
@use "../keyframes" as *;
|
|
31
|
+
@use "base" as *;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Mixins
|
|
37
|
+
// ============================================================================
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
///
|
|
41
|
+
/// Mixin for flipping elements horizontally.
|
|
42
|
+
/// Applies a horizontal flip by scaling the element along the X-axis.
|
|
43
|
+
///
|
|
44
|
+
/// @name transform_flip_horizontal
|
|
45
|
+
/// @example scss - Usage
|
|
46
|
+
/// .transform_flip_horizontal { @include transform_flip_horizontal(); }
|
|
47
|
+
///
|
|
48
|
+
@mixin transform_flip_horizontal {
|
|
49
|
+
transform: scale(-1, 1);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
///
|
|
54
|
+
/// Mixin for flipping elements vertically.
|
|
55
|
+
/// Applies a vertical flip by scaling the element along the Y-axis.
|
|
56
|
+
///
|
|
57
|
+
/// @name transform_flip_vertical
|
|
58
|
+
/// @example scss - Usage
|
|
59
|
+
/// .transform_flip_vertical { @include transform_flip_vertical(); }
|
|
60
|
+
///
|
|
61
|
+
@mixin transform_flip_vertical {
|
|
62
|
+
transform: scale(1, -1);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
///
|
|
67
|
+
/// Mixin for flipping elements both horizontally and vertically.
|
|
68
|
+
/// Combines horizontal and vertical flips to mirror the element.
|
|
69
|
+
///
|
|
70
|
+
/// @name transform_flip_both
|
|
71
|
+
/// @example scss - Usage
|
|
72
|
+
/// .transform_flip_both { @include transform_flip_both(); }
|
|
73
|
+
///
|
|
74
|
+
@mixin transform_flip_both {
|
|
75
|
+
transform: scale(-1, -1);
|
|
76
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Poster
|
|
3
|
+
// ============================================================================
|
|
4
|
+
|
|
5
|
+
////
|
|
6
|
+
///
|
|
7
|
+
/// Transforms Mixin Module
|
|
8
|
+
/// ===========================================================================
|
|
9
|
+
/// This module provides reusable mixins for applying transformations such as
|
|
10
|
+
/// rotations and flips to elements. It includes mixins for rotating elements
|
|
11
|
+
/// by a specified degree, as well as predefined classes for common rotation
|
|
12
|
+
/// angles. This module is designed to facilitate the application of CSS
|
|
13
|
+
/// transforms in a consistent and maintainable manner throughout your project.
|
|
14
|
+
///
|
|
15
|
+
/// @group Transforms
|
|
16
|
+
/// @author Scape Agency
|
|
17
|
+
/// @link https://move.gl
|
|
18
|
+
/// @since 0.1.0 initial release
|
|
19
|
+
/// @todo None
|
|
20
|
+
/// @access public
|
|
21
|
+
///
|
|
22
|
+
////
|
|
23
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
https://developer.mozilla.org/en-US/docs/Web/CSS/transform
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Mixin for setting perspective on elements, useful for 3D transforms.
|
|
3
|
+
///
|
|
4
|
+
/// @mixin perspective
|
|
5
|
+
/// @param {Number} $value [$default-perspective] - The perspective value for 3D transformations.
|
|
6
|
+
/// @example scss - Usage
|
|
7
|
+
/// .icon-perspective { @include perspective(1000px); } // Applies a perspective of 1000px
|
|
8
|
+
///
|
|
9
|
+
@mixin perspective($value: $default-perspective) {
|
|
10
|
+
perspective: $value;
|
|
11
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Poster
|
|
3
|
+
// ============================================================================
|
|
4
|
+
|
|
5
|
+
////
|
|
6
|
+
///
|
|
7
|
+
/// Rotate Transforms Mixin Module
|
|
8
|
+
/// ===========================================================================
|
|
9
|
+
///
|
|
10
|
+
/// @group Transforms
|
|
11
|
+
/// @author Scape Agency
|
|
12
|
+
/// @link https://move.gl
|
|
13
|
+
/// @since 0.1.0 initial release
|
|
14
|
+
/// @todo None
|
|
15
|
+
/// @access public
|
|
16
|
+
///
|
|
17
|
+
////
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Use
|
|
23
|
+
// ============================================================================
|
|
24
|
+
|
|
25
|
+
@use "../dev" as *;
|
|
26
|
+
@use "../variables" as *;
|
|
27
|
+
@use "../keyframes" as *;
|
|
28
|
+
@use "base" as *;
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
// ============================================================================
|
|
33
|
+
// Mixins
|
|
34
|
+
// ============================================================================
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
///
|
|
38
|
+
/// Mixin for rotating elements by a specified degree.
|
|
39
|
+
/// Applies a CSS rotation transform to the element.
|
|
40
|
+
///
|
|
41
|
+
/// @name transform_rotate
|
|
42
|
+
/// @param {Number} $degrees [0deg] - The degree to rotate the element.
|
|
43
|
+
/// @example scss - Usage
|
|
44
|
+
/// .icon_rotate { @include transform_rotate(90deg); } // Rotates icon by 90 degrees
|
|
45
|
+
///
|
|
46
|
+
@mixin transform_rotate($degrees: 0deg) {
|
|
47
|
+
transform: rotate($degrees);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
///
|
|
52
|
+
/// Mixin for rotating elements based on a dynamic value from a CSS variable.
|
|
53
|
+
/// This allows for rotations that can be adjusted at runtime using CSS variables.
|
|
54
|
+
///
|
|
55
|
+
/// @name transform_rotate_dynamic
|
|
56
|
+
/// @param {String} $variable [--rotation-angle] - The CSS variable to use for dynamic rotation.
|
|
57
|
+
/// @example scss - Usage
|
|
58
|
+
/// .transform_rotate_dynamic { @include transform_rotate_dynamic('--my_custom_rotation'); }
|
|
59
|
+
///
|
|
60
|
+
@mixin transform_rotate_dynamic($variable: '--rotation_angle') {
|
|
61
|
+
transform: rotate(var(#{$variable}));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
///
|
|
68
|
+
/// Mixin for rotating elements along the X-axis.
|
|
69
|
+
///
|
|
70
|
+
/// @name transform_rotate_x
|
|
71
|
+
/// @param {Number} $degrees [$default-rotation] - The degree to rotate the element along the X-axis.
|
|
72
|
+
/// @example scss - Usage
|
|
73
|
+
/// .icon-transform_rotate_x { @include transform_rotate_x(45deg); } // Rotates the element 45 degrees along the X-axis
|
|
74
|
+
///
|
|
75
|
+
@mixin transform_rotate_x($degrees: $default-rotation) {
|
|
76
|
+
transform: rotateX($degrees);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
///
|
|
80
|
+
/// Mixin for rotating elements along the Y-axis.
|
|
81
|
+
///
|
|
82
|
+
/// @name transform_rotate_y
|
|
83
|
+
/// @param {Number} $degrees [$default-rotation] - The degree to rotate the element along the Y-axis.
|
|
84
|
+
/// @example scss - Usage
|
|
85
|
+
/// .icon-transform_rotate_y { @include transform_rotate_y(45deg); } // Rotates the element 45 degrees along the Y-axis
|
|
86
|
+
///
|
|
87
|
+
@mixin transform_rotate_y($degrees: $default-rotation) {
|
|
88
|
+
transform: rotateY($degrees);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
///
|
|
92
|
+
/// Mixin for rotating elements along the Z-axis.
|
|
93
|
+
///
|
|
94
|
+
/// @name transform_rotate_z
|
|
95
|
+
/// @param {Number} $degrees [$default-rotation] - The degree to rotate the element along the Z-axis.
|
|
96
|
+
/// @example scss - Usage
|
|
97
|
+
/// .icon-transform_rotate_z { @include transform_rotate_z(45deg); } // Rotates the element 45 degrees along the Z-axis
|
|
98
|
+
///
|
|
99
|
+
@mixin transform_rotate_z($degrees: $default-rotation) {
|
|
100
|
+
transform: rotateZ($degrees);
|
|
101
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Mixin for scaling elements by a specified factor.
|
|
3
|
+
///
|
|
4
|
+
/// @mixin scale
|
|
5
|
+
/// @param {Number} $factor [1] - The scaling factor.
|
|
6
|
+
/// @example scss - Usage
|
|
7
|
+
/// .icon_scale { @include scale(1.5); } // Scales the element by 1.5
|
|
8
|
+
///
|
|
9
|
+
@mixin scale($factor: 1) {
|
|
10
|
+
transform: scale($factor);
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
///
|
|
3
|
+
/// Mixin for skewing elements by specified angles along X and Y axes.
|
|
4
|
+
///
|
|
5
|
+
/// @mixin skew
|
|
6
|
+
/// @param {Number} $x [$default-skew] - The angle to skew along the X-axis.
|
|
7
|
+
/// @param {Number} $y [$default-skew] - The angle to skew along the Y-axis.
|
|
8
|
+
/// @example scss - Usage
|
|
9
|
+
/// .icon-skew { @include skew(10deg, 5deg); } // Skews the element 10deg on X-axis and 5deg on Y-axis
|
|
10
|
+
///
|
|
11
|
+
@mixin skew($x: $default-skew, $y: $default-skew) {
|
|
12
|
+
transform: skew($x, $y);
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
///
|
|
3
|
+
/// Mixin for translating elements by a specified distance along X and Y axes.
|
|
4
|
+
///
|
|
5
|
+
/// @mixin translate
|
|
6
|
+
/// @param {Number} $x [$default-translate] - The distance to translate along the X-axis.
|
|
7
|
+
/// @param {Number} $y [$default-translate] - The distance to translate along the Y-axis.
|
|
8
|
+
/// @example scss - Usage
|
|
9
|
+
/// .icon-translate { @include translate(10px, 20px); } // Moves the element 10px right and 20px down
|
|
10
|
+
///
|
|
11
|
+
@mixin translate($x: $default-translate, $y: $default-translate) {
|
|
12
|
+
transform: translate($x, $y);
|
|
13
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Applies a transition to an element.
|
|
3
|
+
///
|
|
4
|
+
/// @name transition
|
|
5
|
+
/// @param {String} $property - The CSS property to transition.
|
|
6
|
+
/// @param {String} $duration - The duration of the transition (default: 0.3s).
|
|
7
|
+
/// @param {String} $timing-function - The timing function of the transition (default: ease).
|
|
8
|
+
/// @example scss - Usage
|
|
9
|
+
/// @include transition('all', '0.3s', 'ease-in-out');
|
|
10
|
+
///
|
|
11
|
+
@mixin transition($property, $duration: 0.3s, $timing-function: ease) {
|
|
12
|
+
transition: #{$property} #{$duration} #{$timing-function};
|
|
13
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// StyleScape | Animations | Base
|
|
4
|
+
// ============================================================================
|
|
5
|
+
|
|
6
|
+
@use "../dev" as *;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// Default Variables
|
|
10
|
+
// ----------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
$animate_base_duration: 1s !default;
|
|
13
|
+
$animate_base_duration_fast: 0.5s !default;
|
|
14
|
+
$animate_base_duration_slow: 2s !default;
|
|
15
|
+
|
|
16
|
+
$animate_base_delay: 0s !default;
|
|
17
|
+
$animate_base_timing_function: ease-in-out !default;
|
|
18
|
+
$animate_base_iteration_count: infinite !default;
|
|
19
|
+
$animate_base_direction: normal !default;
|
|
20
|
+
$animate_base_color_start: #ffffff !default;
|
|
21
|
+
$animate_base_color_end: #000000 !default;
|
|
22
|
+
$animate_base_color_glow_01: $N2405 !default;
|
|
23
|
+
$animate_base_color_glow_02: $N3005 !default;
|
|
24
|
+
$animate_base_color_glow_03: $N3605 !default;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// ============================================================================
|
|
28
|
+
|
|
29
|
+
$transition_duration_00: 0.5s;
|
|
30
|
+
$transition_duration_01: 1.0s;
|
|
31
|
+
$transition_duration_02: 1.5s;
|
|
32
|
+
$transition_duration_03: 2.0s;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
$slideshow-time: 6s;
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
// ============================================================================
|
|
41
|
+
|
|
42
|
+
/// Default animation durations
|
|
43
|
+
$animate-base-duration: 0.5s !default;
|
|
44
|
+
$animate-base-duration-slow: 1s !default;
|
|
45
|
+
$animate-base-duration-fast: 0.25s !default;
|
|
46
|
+
|
|
47
|
+
/// Default timing functions
|
|
48
|
+
$animate-base-timing-function: ease-in-out !default;
|
|
49
|
+
$animate-base-timing-function-fade: cubic-bezier(.4, 0, .6, 1) !default;
|
|
50
|
+
|
|
51
|
+
/// Default iteration counts
|
|
52
|
+
$animate-base-iteration-count: infinite !default;
|
|
53
|
+
|
|
54
|
+
/// Default scale values
|
|
55
|
+
$animate-scale-base: 1 !default;
|
|
56
|
+
$animate-scale-beat: 1.25 !default;
|
|
57
|
+
$animate-scale-beat-fade: 1.125 !default;
|
|
58
|
+
$animate-scale-beat-double-small: 0.8 !default;
|
|
59
|
+
$animate-scale-beat-double-large: 1.5 !default;
|
|
60
|
+
|
|
61
|
+
/// Default opacity values
|
|
62
|
+
$animate-opacity-fade: 0.4 !default;
|
|
63
|
+
|
|
64
|
+
/// Default angles
|
|
65
|
+
$animate-angle-twist: 10deg !default;
|
|
66
|
+
$animate-angle-gentle: 5deg !default;
|
|
67
|
+
$animate-angle-rapid: 15deg !default;
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
/// Animation Durations
|
|
75
|
+
$animate-base-duration: 0.5s !default;
|
|
76
|
+
$animate-base-duration-slow: 1s !default;
|
|
77
|
+
$animate-base-duration-fast: 0.25s !default;
|
|
78
|
+
|
|
79
|
+
/// Timing Functions
|
|
80
|
+
$animate-base-timing-function: step-end !default;
|
|
81
|
+
$animate-timing-function-rapid: steps(2, end) !default;
|
|
82
|
+
$animate-timing-function-soft: ease-in-out !default;
|
|
83
|
+
$animate-timing-function-alternate: linear !default;
|
|
84
|
+
|
|
85
|
+
/// Iteration Count
|
|
86
|
+
$animate-base-iteration-count: infinite !default;
|
|
87
|
+
|
|
88
|
+
/// Opacity Levels
|
|
89
|
+
$animate-opacity-start: 1 !default;
|
|
90
|
+
$animate-opacity-blink: 0 !default;
|
|
91
|
+
$animate-opacity-soft-blink: 0.3 !default;
|
|
File without changes
|
package/ts/ARContent.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Augmented Reality Content Manager
|
|
3
|
+
* @notice Manages the lifecycle and interaction of AR content in web applications.
|
|
4
|
+
* @dev Supports dynamic content updates, positioning, and user interaction in an augmented reality context.
|
|
5
|
+
*/
|
|
6
|
+
class ARContentManager {
|
|
7
|
+
private scene: any; // Placeholder for an AR framework scene object, like AR.js or similar.
|
|
8
|
+
|
|
9
|
+
constructor(scene: any) {
|
|
10
|
+
this.scene = scene;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
public addContent(modelUrl: string, lat: number, lon: number) {
|
|
14
|
+
console.log(`Adding AR content at [${lat}, ${lon}] from ${modelUrl}`);
|
|
15
|
+
// Here you'd add the model to the scene at the specified geolocation.
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public updateContent(modelId: string, properties: any) {
|
|
19
|
+
console.log(`Updating content ${modelId} with properties`, properties);
|
|
20
|
+
// Update properties like scale, rotation, or interactive elements.
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public removeContent(modelId: string) {
|
|
24
|
+
console.log(`Removing content ${modelId}`);
|
|
25
|
+
// Remove a model from the scene.
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title AR Interaction Handler
|
|
3
|
+
* @notice Manages Augmented Reality overlays and interactions using the WebXR Device API.
|
|
4
|
+
* @dev Provides functionalities to place and interact with virtual objects in the real world through the user's camera.
|
|
5
|
+
*/
|
|
6
|
+
class ARInteractionHandler {
|
|
7
|
+
private xrSession: XRSession | null = null;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.checkARSupport();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
private async checkARSupport() {
|
|
14
|
+
if (navigator.xr && await navigator.xr.isSessionSupported('immersive-ar')) {
|
|
15
|
+
console.log("AR is supported.");
|
|
16
|
+
this.initAR();
|
|
17
|
+
} else {
|
|
18
|
+
console.error("AR is not supported on this device.");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private async initAR() {
|
|
23
|
+
this.xrSession = await navigator.xr.requestSession('immersive-ar');
|
|
24
|
+
this.setupARSession();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
private setupARSession() {
|
|
28
|
+
// Initialize and configure AR session settings
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public addARObjectAt(x: number, y: number, z: number, object: HTMLElement) {
|
|
32
|
+
// Translate screen coordinates to real-world coordinates and add an object there
|
|
33
|
+
}
|
|
34
|
+
}
|