move.gl 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/README.md +185 -11
  2. package/dist/LICENSE +21 -0
  3. package/dist/README.md +212 -0
  4. package/dist/css/move.gl.css +43859 -0
  5. package/dist/css/move.gl.min.css +19 -0
  6. package/dist/js/index.cjs +1171 -0
  7. package/dist/js/index.cjs.map +1 -0
  8. package/dist/js/index.d.cts +184 -0
  9. package/dist/js/index.d.ts +184 -0
  10. package/dist/js/index.mjs +1135 -0
  11. package/dist/js/index.mjs.map +1 -0
  12. package/dist/package.json +68 -0
  13. package/{scss → dist/scss}/classes/_animations.scss +33 -14
  14. package/dist/scss/classes/_controls.scss +314 -0
  15. package/dist/scss/classes/_effects.scss +283 -0
  16. package/dist/scss/classes/_index.scss +28 -0
  17. package/dist/scss/classes/_loaders.scss +779 -0
  18. package/dist/scss/classes/_transforms.scss +138 -0
  19. package/dist/scss/classes/_transitions.scss +264 -0
  20. package/{scss → dist/scss}/dev/_deprecation.scss +6 -3
  21. package/{scss → dist/scss}/dev/_modules.scss +5 -6
  22. package/dist/scss/docs.scss +2344 -0
  23. package/dist/scss/docs.scss.bak +3133 -0
  24. package/dist/scss/functions/_index.scss +22 -0
  25. package/dist/scss/functions/scenes/_bubble.scss +32 -0
  26. package/dist/scss/functions/scenes/_index.scss +21 -0
  27. package/dist/scss/index.scss +17 -0
  28. package/dist/scss/maps/_controls.scss +85 -0
  29. package/dist/scss/maps/_index.scss +22 -0
  30. package/{scss → dist/scss}/mixins/_accessibility.scss +24 -3
  31. package/{scss → dist/scss}/mixins/_boot.scss +4 -4
  32. package/dist/scss/mixins/_index.scss +41 -0
  33. package/dist/scss/mixins/_screensaver.scss +228 -0
  34. package/dist/scss/mixins/_shape.scss +315 -0
  35. package/dist/scss/mixins/animations/_base.scss +403 -0
  36. package/dist/scss/mixins/animations/_beat.scss +137 -0
  37. package/{scss → dist/scss}/mixins/animations/_blink.scss +60 -52
  38. package/dist/scss/mixins/animations/_bounce.scss +306 -0
  39. package/{scss → dist/scss}/mixins/animations/_elastic.scss +26 -22
  40. package/dist/scss/mixins/animations/_fade.scss +393 -0
  41. package/{scss → dist/scss}/mixins/animations/_flash.scss +53 -61
  42. package/dist/scss/mixins/animations/_flip.scss +251 -0
  43. package/{scss → dist/scss}/mixins/animations/_float.scss +47 -32
  44. package/{scss → dist/scss}/mixins/animations/_glow.scss +69 -58
  45. package/dist/scss/mixins/animations/_heartbeat.scss +195 -0
  46. package/dist/scss/mixins/animations/_hinge.scss +118 -0
  47. package/dist/scss/mixins/animations/_index.scss +97 -0
  48. package/dist/scss/mixins/animations/_jello.scss +123 -0
  49. package/dist/scss/mixins/animations/_jiggle.scss +162 -0
  50. package/dist/scss/mixins/animations/_lightspeed.scss +135 -0
  51. package/{scss → dist/scss}/mixins/animations/_nod.scss +57 -65
  52. package/dist/scss/mixins/animations/_pop.scss +153 -0
  53. package/dist/scss/mixins/animations/_pulse.scss +275 -0
  54. package/{scss → dist/scss}/mixins/animations/_ripple.scss +47 -55
  55. package/dist/scss/mixins/animations/_roll.scss +217 -0
  56. package/dist/scss/mixins/animations/_rotate.scss +728 -0
  57. package/dist/scss/mixins/animations/_rubber.scss +115 -0
  58. package/dist/scss/mixins/animations/_scale.scss +382 -0
  59. package/dist/scss/mixins/animations/_shake.scss +233 -0
  60. package/dist/scss/mixins/animations/_slide.scss +501 -0
  61. package/dist/scss/mixins/animations/_spin.scss +322 -0
  62. package/{scss → dist/scss}/mixins/animations/_sway.scss +32 -49
  63. package/{scss → dist/scss}/mixins/animations/_swing.scss +47 -49
  64. package/{scss → dist/scss}/mixins/animations/_tada.scss +44 -42
  65. package/{scss → dist/scss}/mixins/animations/_twist.scss +40 -55
  66. package/{scss → dist/scss}/mixins/animations/_wave.scss +36 -53
  67. package/dist/scss/mixins/animations/_wobble.scss +283 -0
  68. package/dist/scss/mixins/animations/_zoom.scss +394 -0
  69. package/{scss/mixins/mouse → dist/scss/mixins/controls}/_cursor.scss +60 -39
  70. package/dist/scss/mixins/controls/_hover.scss +625 -0
  71. package/dist/scss/mixins/controls/_index.scss +30 -0
  72. package/dist/scss/mixins/controls/_keyboard.scss +300 -0
  73. package/{scss/mixins/mouse → dist/scss/mixins/controls}/_pointer.scss +81 -72
  74. package/dist/scss/mixins/controls/_scroll.scss +460 -0
  75. package/{scss/mixins/scroll → dist/scss/mixins/controls}/_scrollbar.scss +50 -16
  76. package/dist/scss/mixins/controls/_selection.scss +208 -0
  77. package/dist/scss/mixins/controls/_touch.scss +401 -0
  78. package/dist/scss/mixins/effects/_blend.scss +128 -0
  79. package/dist/scss/mixins/effects/_filter.scss +470 -0
  80. package/dist/scss/mixins/effects/_focus.scss +83 -0
  81. package/dist/scss/mixins/effects/_gradient.scss +130 -0
  82. package/dist/scss/mixins/effects/_index.scss +28 -0
  83. package/dist/scss/mixins/effects/_mask.scss +76 -0
  84. package/dist/scss/mixins/effects/_opacity.scss +376 -0
  85. package/dist/scss/mixins/effects/_shadow.scss +429 -0
  86. package/dist/scss/mixins/keyframes/_base.scss +199 -0
  87. package/dist/scss/mixins/keyframes/_index.scss +24 -0
  88. package/dist/scss/mixins/keyframes/animations/_beat.scss +280 -0
  89. package/dist/scss/mixins/keyframes/animations/_blink.scss +82 -0
  90. package/dist/scss/mixins/keyframes/animations/_bounce.scss +292 -0
  91. package/dist/scss/mixins/keyframes/animations/_fade.scss +311 -0
  92. package/dist/scss/mixins/keyframes/animations/_flash.scss +165 -0
  93. package/dist/scss/mixins/keyframes/animations/_flip.scss +266 -0
  94. package/{scss/mixins → dist/scss/mixins/keyframes}/animations/_index.scss +19 -10
  95. package/dist/scss/mixins/keyframes/animations/_jiggle.scss +85 -0
  96. package/dist/scss/mixins/keyframes/animations/_lightspeed.scss +73 -0
  97. package/dist/scss/mixins/keyframes/animations/_nod.scss +79 -0
  98. package/dist/scss/mixins/keyframes/animations/_pop.scss +78 -0
  99. package/dist/scss/mixins/keyframes/animations/_pulse.scss +225 -0
  100. package/dist/scss/mixins/keyframes/animations/_ripple.scss +94 -0
  101. package/dist/scss/mixins/keyframes/animations/_roll.scss +124 -0
  102. package/dist/scss/mixins/keyframes/animations/_rotate.scss +360 -0
  103. package/dist/scss/mixins/keyframes/animations/_rubber.scss +81 -0
  104. package/dist/scss/mixins/keyframes/animations/_scale.scss +308 -0
  105. package/dist/scss/mixins/keyframes/animations/_shake.scss +270 -0
  106. package/dist/scss/mixins/keyframes/animations/_slide.scss +345 -0
  107. package/dist/scss/mixins/keyframes/animations/_spin.scss +270 -0
  108. package/dist/scss/mixins/keyframes/animations/_sway.scss +83 -0
  109. package/dist/scss/mixins/keyframes/animations/_twist.scss +89 -0
  110. package/dist/scss/mixins/keyframes/animations/_wave.scss +90 -0
  111. package/dist/scss/mixins/keyframes/animations/_wobble.scss +293 -0
  112. package/dist/scss/mixins/keyframes/animations/_zoom.scss +345 -0
  113. package/dist/scss/mixins/loaders/_bars.scss +128 -0
  114. package/dist/scss/mixins/loaders/_base.scss +39 -0
  115. package/dist/scss/mixins/loaders/_bubble.scss +395 -0
  116. package/dist/scss/mixins/loaders/_circle.scss +456 -0
  117. package/dist/scss/mixins/loaders/_dots.scss +248 -0
  118. package/dist/scss/mixins/loaders/_graph.scss +542 -0
  119. package/dist/scss/mixins/loaders/_index.scss +77 -0
  120. package/dist/scss/mixins/loaders/_line.scss +471 -0
  121. package/dist/scss/mixins/loaders/_objects.scss +563 -0
  122. package/dist/scss/mixins/loaders/_progress.scss +477 -0
  123. package/dist/scss/mixins/loaders/_rect.scss +480 -0
  124. package/dist/scss/mixins/loaders/_rings.scss +377 -0
  125. package/dist/scss/mixins/loaders/_skeleton.scss +461 -0
  126. package/dist/scss/mixins/loaders/_special.scss +611 -0
  127. package/dist/scss/mixins/loaders/_spinner.scss +175 -0
  128. package/dist/scss/mixins/loaders/_text.scss +446 -0
  129. package/{scss → dist/scss}/mixins/transforms/_flip.scss +16 -18
  130. package/dist/scss/mixins/transforms/_index.scss +28 -0
  131. package/dist/scss/mixins/transforms/_matrix.scss +18 -0
  132. package/{scss → dist/scss}/mixins/transforms/_perspective.scss +18 -1
  133. package/{scss → dist/scss}/mixins/transforms/_rotate.scss +9 -14
  134. package/{scss → dist/scss}/mixins/transforms/_scale.scss +16 -1
  135. package/{scss → dist/scss}/mixins/transforms/_skew.scss +16 -2
  136. package/{scss → dist/scss}/mixins/transforms/_translate.scss +16 -2
  137. package/dist/scss/mixins/transitions/_index.scss +22 -0
  138. package/dist/scss/mixins/transitions/_transition.scss +43 -0
  139. package/dist/scss/variables/_animations.scss +300 -0
  140. package/dist/scss/variables/_controls.scss +178 -0
  141. package/dist/scss/variables/_effects.scss +87 -0
  142. package/dist/scss/variables/_index.scss +27 -0
  143. package/dist/scss/variables/_keyframes.scss +28 -0
  144. package/dist/scss/variables/_loaders.scss +75 -0
  145. package/dist/scss/variables/_transforms.scss +85 -0
  146. package/dist/scss/variables/_transitions.scss +80 -0
  147. package/dist/ts/Draggable.ts +143 -0
  148. package/dist/ts/Gesture.ts +226 -0
  149. package/dist/ts/Keyboard.ts +195 -0
  150. package/dist/ts/LoaderManager.ts +662 -0
  151. package/dist/ts/Screensaver.ts +192 -0
  152. package/dist/ts/VideoOverlay.ts +205 -0
  153. package/dist/ts/demo.ts +1108 -0
  154. package/dist/ts/index.ts +58 -0
  155. package/package.json +90 -53
  156. package/src/html/_base.html +138 -0
  157. package/src/html/base.html +147 -0
  158. package/src/html/core-concepts.html +282 -0
  159. package/src/html/demo_base.html +171 -0
  160. package/src/html/demo_draggable.html +250 -0
  161. package/src/html/demo_gesture.html +264 -0
  162. package/src/html/demo_keyboard.html +224 -0
  163. package/src/html/demo_screensaver.html +258 -0
  164. package/src/html/demo_video_overlay.html +291 -0
  165. package/src/html/getting-started.html +242 -0
  166. package/src/html/index.html +400 -0
  167. package/src/html/keyboard.html +14 -0
  168. package/src/html/partials/_demo_links.html +21 -0
  169. package/src/html/partials/_footer.html +18 -0
  170. package/src/html/partials/_head.html +21 -0
  171. package/src/html/partials/_nav.html +84 -0
  172. package/src/html/partials/_theme_toggle.html +11 -0
  173. package/src/html/screensaver.html +20 -0
  174. package/src/html/test_animations.html +813 -0
  175. package/src/html/test_attention.html +281 -0
  176. package/src/html/test_bounce.html +201 -0
  177. package/src/html/test_effects.html +1348 -0
  178. package/src/html/test_fade.html +213 -0
  179. package/src/html/test_flip.html +208 -0
  180. package/src/html/test_keyframes.html +415 -0
  181. package/src/html/test_loaders.html +1489 -0
  182. package/src/html/test_mouse.html +516 -0
  183. package/src/html/test_overview.html +1444 -0
  184. package/src/html/test_pulse.html +212 -0
  185. package/src/html/test_scale.html +204 -0
  186. package/src/html/test_shake.html +232 -0
  187. package/src/html/test_slide.html +212 -0
  188. package/src/html/test_special.html +257 -0
  189. package/src/html/test_spin.html +216 -0
  190. package/src/html/test_transforms.html +332 -0
  191. package/src/html/test_transitions.html +245 -0
  192. package/src/html/test_zoom.html +188 -0
  193. package/src/html/video_overlay.html +27 -0
  194. package/src/jinja/_base.html.jinja +50 -0
  195. package/src/jinja/base.html.jinja +48 -0
  196. package/src/jinja/core-concepts.html.jinja +148 -0
  197. package/src/jinja/demo_draggable.html.jinja +114 -0
  198. package/src/jinja/demo_gesture.html.jinja +128 -0
  199. package/src/jinja/demo_keyboard.html.jinja +88 -0
  200. package/src/jinja/demo_screensaver.html.jinja +122 -0
  201. package/src/jinja/demo_video_overlay.html.jinja +155 -0
  202. package/src/jinja/getting-started.html.jinja +108 -0
  203. package/src/jinja/index.html.jinja +268 -0
  204. package/src/jinja/index.json +5 -0
  205. package/src/jinja/move.gl.css +7741 -0
  206. package/src/jinja/partials/_code_block.html.jinja +17 -0
  207. package/src/jinja/partials/_demo_links.html.jinja +41 -0
  208. package/src/jinja/partials/_feature_card.html.jinja +20 -0
  209. package/src/jinja/partials/_footer.html.jinja +22 -0
  210. package/src/jinja/partials/_head.html.jinja +27 -0
  211. package/src/jinja/partials/_nav.html.jinja +79 -0
  212. package/src/jinja/partials/_theme_toggle.html.jinja +15 -0
  213. package/src/jinja/test_animations.html.jinja +679 -0
  214. package/src/jinja/test_attention.html.jinja +147 -0
  215. package/src/jinja/test_bounce.html.jinja +67 -0
  216. package/src/jinja/test_effects.html.jinja +1218 -0
  217. package/src/jinja/test_fade.html.jinja +79 -0
  218. package/src/jinja/test_flip.html.jinja +74 -0
  219. package/src/jinja/test_keyframes.html.jinja +281 -0
  220. package/src/jinja/test_loaders.html.jinja +1358 -0
  221. package/src/jinja/test_mouse.html.jinja +382 -0
  222. package/src/jinja/test_overview.html.jinja +1313 -0
  223. package/src/jinja/test_pulse.html.jinja +78 -0
  224. package/src/jinja/test_scale.html.jinja +70 -0
  225. package/src/jinja/test_shake.html.jinja +98 -0
  226. package/src/jinja/test_slide.html.jinja +78 -0
  227. package/src/jinja/test_special.html.jinja +123 -0
  228. package/src/jinja/test_spin.html.jinja +82 -0
  229. package/src/jinja/test_transforms.html.jinja +198 -0
  230. package/src/jinja/test_transitions.html.jinja +111 -0
  231. package/src/jinja/test_zoom.html.jinja +54 -0
  232. package/src/scss/classes/_animations.scss +595 -0
  233. package/src/scss/classes/_controls.scss +314 -0
  234. package/src/scss/classes/_effects.scss +283 -0
  235. package/src/scss/classes/_index.scss +28 -0
  236. package/src/scss/classes/_loaders.scss +779 -0
  237. package/src/scss/classes/_transforms.scss +138 -0
  238. package/src/scss/classes/_transitions.scss +264 -0
  239. package/src/scss/dev/_banner.scss +36 -0
  240. package/src/scss/dev/_debug.scss +18 -0
  241. package/src/scss/dev/_deprecation.scss +13 -0
  242. package/src/scss/dev/_index.scss +8 -0
  243. package/src/scss/dev/_modules.scss +23 -0
  244. package/src/scss/docs.scss +2344 -0
  245. package/src/scss/docs.scss.bak +3133 -0
  246. package/src/scss/functions/_index.scss +22 -0
  247. package/src/scss/functions/scenes/_bubble.scss +32 -0
  248. package/src/scss/functions/scenes/_index.scss +21 -0
  249. package/src/scss/index.scss +17 -0
  250. package/src/scss/maps/_controls.scss +85 -0
  251. package/src/scss/maps/_index.scss +22 -0
  252. package/src/scss/mixins/_accessibility.scss +91 -0
  253. package/src/scss/mixins/_boot.scss +51 -0
  254. package/src/scss/mixins/_index.scss +41 -0
  255. package/src/scss/mixins/_screensaver.scss +228 -0
  256. package/src/scss/mixins/_shape.scss +315 -0
  257. package/src/scss/mixins/animations/_base.scss +403 -0
  258. package/src/scss/mixins/animations/_beat.scss +137 -0
  259. package/src/scss/mixins/animations/_blink.scss +159 -0
  260. package/src/scss/mixins/animations/_bounce.scss +306 -0
  261. package/src/scss/mixins/animations/_elastic.scss +69 -0
  262. package/src/scss/mixins/animations/_fade.scss +393 -0
  263. package/src/scss/mixins/animations/_flash.scss +169 -0
  264. package/src/scss/mixins/animations/_flip.scss +251 -0
  265. package/src/scss/mixins/animations/_float.scss +141 -0
  266. package/src/scss/mixins/animations/_glow.scss +190 -0
  267. package/src/scss/mixins/animations/_heartbeat.scss +195 -0
  268. package/src/scss/mixins/animations/_hinge.scss +118 -0
  269. package/src/scss/mixins/animations/_index.scss +97 -0
  270. package/src/scss/mixins/animations/_jello.scss +123 -0
  271. package/src/scss/mixins/animations/_jiggle.scss +162 -0
  272. package/src/scss/mixins/animations/_lightspeed.scss +135 -0
  273. package/src/scss/mixins/animations/_nod.scss +153 -0
  274. package/src/scss/mixins/animations/_pop.scss +153 -0
  275. package/src/scss/mixins/animations/_pulse.scss +275 -0
  276. package/src/scss/mixins/animations/_ripple.scss +161 -0
  277. package/src/scss/mixins/animations/_roll.scss +217 -0
  278. package/src/scss/mixins/animations/_rotate.scss +728 -0
  279. package/src/scss/mixins/animations/_rubber.scss +115 -0
  280. package/src/scss/mixins/animations/_scale.scss +382 -0
  281. package/src/scss/mixins/animations/_shake.scss +233 -0
  282. package/src/scss/mixins/animations/_slide.scss +501 -0
  283. package/src/scss/mixins/animations/_spin.scss +322 -0
  284. package/src/scss/mixins/animations/_sway.scss +150 -0
  285. package/src/scss/mixins/animations/_swing.scss +245 -0
  286. package/src/scss/mixins/animations/_tada.scss +235 -0
  287. package/src/scss/mixins/animations/_twist.scss +162 -0
  288. package/src/scss/mixins/animations/_wave.scss +149 -0
  289. package/src/scss/mixins/animations/_wobble.scss +283 -0
  290. package/src/scss/mixins/animations/_zoom.scss +394 -0
  291. package/src/scss/mixins/controls/_cursor.scss +203 -0
  292. package/src/scss/mixins/controls/_hover.scss +625 -0
  293. package/src/scss/mixins/controls/_index.scss +30 -0
  294. package/src/scss/mixins/controls/_keyboard.scss +300 -0
  295. package/src/scss/mixins/controls/_pointer.scss +267 -0
  296. package/src/scss/mixins/controls/_scroll.scss +460 -0
  297. package/src/scss/mixins/controls/_scrollbar.scss +283 -0
  298. package/src/scss/mixins/controls/_selection.scss +208 -0
  299. package/src/scss/mixins/controls/_touch.scss +401 -0
  300. package/src/scss/mixins/effects/_blend.scss +128 -0
  301. package/src/scss/mixins/effects/_filter.scss +470 -0
  302. package/src/scss/mixins/effects/_focus.scss +83 -0
  303. package/src/scss/mixins/effects/_gradient.scss +130 -0
  304. package/src/scss/mixins/effects/_index.scss +28 -0
  305. package/src/scss/mixins/effects/_mask.scss +76 -0
  306. package/src/scss/mixins/effects/_opacity.scss +376 -0
  307. package/src/scss/mixins/effects/_shadow.scss +429 -0
  308. package/src/scss/mixins/keyframes/_base.scss +199 -0
  309. package/src/scss/mixins/keyframes/_index.scss +24 -0
  310. package/src/scss/mixins/keyframes/animations/_beat.scss +280 -0
  311. package/src/scss/mixins/keyframes/animations/_blink.scss +82 -0
  312. package/src/scss/mixins/keyframes/animations/_bounce.scss +292 -0
  313. package/src/scss/mixins/keyframes/animations/_fade.scss +311 -0
  314. package/src/scss/mixins/keyframes/animations/_flash.scss +165 -0
  315. package/src/scss/mixins/keyframes/animations/_flip.scss +266 -0
  316. package/src/scss/mixins/keyframes/animations/_index.scss +46 -0
  317. package/src/scss/mixins/keyframes/animations/_jiggle.scss +85 -0
  318. package/src/scss/mixins/keyframes/animations/_lightspeed.scss +73 -0
  319. package/src/scss/mixins/keyframes/animations/_nod.scss +79 -0
  320. package/src/scss/mixins/keyframes/animations/_pop.scss +78 -0
  321. package/src/scss/mixins/keyframes/animations/_pulse.scss +225 -0
  322. package/src/scss/mixins/keyframes/animations/_ripple.scss +94 -0
  323. package/src/scss/mixins/keyframes/animations/_roll.scss +124 -0
  324. package/src/scss/mixins/keyframes/animations/_rotate.scss +360 -0
  325. package/src/scss/mixins/keyframes/animations/_rubber.scss +81 -0
  326. package/src/scss/mixins/keyframes/animations/_scale.scss +308 -0
  327. package/src/scss/mixins/keyframes/animations/_shake.scss +270 -0
  328. package/src/scss/mixins/keyframes/animations/_slide.scss +345 -0
  329. package/src/scss/mixins/keyframes/animations/_spin.scss +270 -0
  330. package/src/scss/mixins/keyframes/animations/_sway.scss +83 -0
  331. package/src/scss/mixins/keyframes/animations/_twist.scss +89 -0
  332. package/src/scss/mixins/keyframes/animations/_wave.scss +90 -0
  333. package/src/scss/mixins/keyframes/animations/_wobble.scss +293 -0
  334. package/src/scss/mixins/keyframes/animations/_zoom.scss +345 -0
  335. package/src/scss/mixins/loaders/_bars.scss +128 -0
  336. package/src/scss/mixins/loaders/_base.scss +39 -0
  337. package/src/scss/mixins/loaders/_bubble.scss +395 -0
  338. package/src/scss/mixins/loaders/_circle.scss +456 -0
  339. package/src/scss/mixins/loaders/_dots.scss +248 -0
  340. package/src/scss/mixins/loaders/_graph.scss +542 -0
  341. package/src/scss/mixins/loaders/_index.scss +77 -0
  342. package/src/scss/mixins/loaders/_line.scss +471 -0
  343. package/src/scss/mixins/loaders/_objects.scss +563 -0
  344. package/src/scss/mixins/loaders/_progress.scss +477 -0
  345. package/src/scss/mixins/loaders/_rect.scss +480 -0
  346. package/src/scss/mixins/loaders/_rings.scss +377 -0
  347. package/src/scss/mixins/loaders/_skeleton.scss +461 -0
  348. package/src/scss/mixins/loaders/_special.scss +611 -0
  349. package/src/scss/mixins/loaders/_spinner.scss +175 -0
  350. package/src/scss/mixins/loaders/_text.scss +446 -0
  351. package/src/scss/mixins/transforms/_flip.scss +74 -0
  352. package/src/scss/mixins/transforms/_index.scss +28 -0
  353. package/src/scss/mixins/transforms/_matrix.scss +18 -0
  354. package/src/scss/mixins/transforms/_perspective.scss +28 -0
  355. package/src/scss/mixins/transforms/_rotate.scss +96 -0
  356. package/src/scss/mixins/transforms/_scale.scss +26 -0
  357. package/src/scss/mixins/transforms/_skew.scss +27 -0
  358. package/src/scss/mixins/transforms/_translate.scss +27 -0
  359. package/src/scss/mixins/transitions/_index.scss +22 -0
  360. package/src/scss/mixins/transitions/_transition.scss +43 -0
  361. package/src/scss/variables/_animations.scss +300 -0
  362. package/src/scss/variables/_controls.scss +178 -0
  363. package/src/scss/variables/_effects.scss +87 -0
  364. package/src/scss/variables/_index.scss +27 -0
  365. package/src/scss/variables/_keyframes.scss +28 -0
  366. package/src/scss/variables/_loaders.scss +75 -0
  367. package/src/scss/variables/_transforms.scss +85 -0
  368. package/src/scss/variables/_transitions.scss +80 -0
  369. package/src/ts/Draggable.ts +143 -0
  370. package/src/ts/Gesture.ts +226 -0
  371. package/src/ts/Keyboard.ts +195 -0
  372. package/src/ts/LoaderManager.ts +662 -0
  373. package/src/ts/Screensaver.ts +192 -0
  374. package/src/ts/VideoOverlay.ts +205 -0
  375. package/src/ts/demo.ts +1108 -0
  376. package/src/ts/index.ts +58 -0
  377. package/css/move.gl.css +0 -2
  378. package/css/move.gl.min.css +0 -2
  379. package/scss/classes/_transforms.scss +0 -124
  380. package/scss/classes/keyboard.scss +0 -18
  381. package/scss/classes/screensaver.scss +0 -15
  382. package/scss/effects/_filter.scss +0 -176
  383. package/scss/effects/_index.scss +0 -23
  384. package/scss/effects/_opacity.scss +0 -62
  385. package/scss/effects/_shadow.scss +0 -175
  386. package/scss/functions/scenes/_bubble.scss +0 -19
  387. package/scss/functions/scenes/_index.scss +0 -20
  388. package/scss/index.scss +0 -0
  389. package/scss/keyframes/_beat.scss +0 -26
  390. package/scss/keyframes/_index.scss +0 -0
  391. package/scss/maps/_index.scss +0 -0
  392. package/scss/maps/_mouse.scss +0 -96
  393. package/scss/mixins/_hover.scss +0 -51
  394. package/scss/mixins/_index.scss +0 -0
  395. package/scss/mixins/_selection.scss +0 -321
  396. package/scss/mixins/_shape.scss +0 -44
  397. package/scss/mixins/_touch.scss +0 -95
  398. package/scss/mixins/animations/--hover.scss +0 -107
  399. package/scss/mixins/animations/_base.scss +0 -337
  400. package/scss/mixins/animations/_beat.scss +0 -119
  401. package/scss/mixins/animations/_bounce.scss +0 -192
  402. package/scss/mixins/animations/_fade.scss +0 -154
  403. package/scss/mixins/animations/_flip.scss +0 -72
  404. package/scss/mixins/animations/_heartbeat.scss +0 -175
  405. package/scss/mixins/animations/_hinge.scss +0 -119
  406. package/scss/mixins/animations/_jello.scss +0 -129
  407. package/scss/mixins/animations/_jiggle.scss +0 -163
  408. package/scss/mixins/animations/_lightspeed.scss +0 -130
  409. package/scss/mixins/animations/_pop.scss +0 -150
  410. package/scss/mixins/animations/_pulse.scss +0 -213
  411. package/scss/mixins/animations/_roll.scss +0 -261
  412. package/scss/mixins/animations/_rotate.scss +0 -428
  413. package/scss/mixins/animations/_rubber.scss +0 -116
  414. package/scss/mixins/animations/_scale.scss +0 -113
  415. package/scss/mixins/animations/_shake.scss +0 -182
  416. package/scss/mixins/animations/_slide.scss +0 -294
  417. package/scss/mixins/animations/_spin.scss +0 -219
  418. package/scss/mixins/animations/_wobble.scss +0 -254
  419. package/scss/mixins/animations/_zoom.scss +0 -166
  420. package/scss/mixins/effects/_filter.scss +0 -148
  421. package/scss/mixins/effects/_index.scss +0 -0
  422. package/scss/mixins/effects/_shadow.scss +0 -21
  423. package/scss/mixins/loaders/_index.scss +0 -0
  424. package/scss/mixins/loaders/_progress.scss +0 -174
  425. package/scss/mixins/loaders/_spinner.scss +0 -101
  426. package/scss/mixins/loaders/circle_01.scss +0 -22
  427. package/scss/mixins/loaders/circle_02.scss +0 -19
  428. package/scss/mixins/loaders/circle_03.scss +0 -29
  429. package/scss/mixins/loaders/circle_inner_01.scss +0 -33
  430. package/scss/mixins/loaders/circle_inner_02.scss +0 -33
  431. package/scss/mixins/loaders/circle_inner_03.scss +0 -34
  432. package/scss/mixins/mouse/_index.scss +0 -0
  433. package/scss/mixins/scroll/_index.scss +0 -0
  434. package/scss/mixins/scroll/_scroll.scss +0 -104
  435. package/scss/mixins/transforms/_index.scss +0 -23
  436. package/scss/mixins/transforms/_matrix.scss +0 -1
  437. package/scss/mixins/transitions/_index.scss +0 -0
  438. package/scss/mixins/transitions/_transition.scss +0 -13
  439. package/scss/variables/_animation.scss +0 -91
  440. package/scss/variables/_index.scss +0 -0
  441. package/ts/ARContent.ts +0 -27
  442. package/ts/ARInteraction.ts +0 -34
  443. package/ts/AdaptiveUI.ts +0 -25
  444. package/ts/ContentStreaming.ts +0 -20
  445. package/ts/Draggable.ts +0 -71
  446. package/ts/DynamicEnvironment.ts +0 -60
  447. package/ts/Gesture.ts +0 -168
  448. package/ts/ImmersiveAudio.ts +0 -40
  449. package/ts/InteractiveCanvas.ts +0 -177
  450. package/ts/InteractiveVideo.ts +0 -29
  451. package/ts/Keyboard.ts +0 -162
  452. package/ts/RealTimeCollaboration.ts +0 -25
  453. package/ts/Screensaver.ts +0 -140
  454. package/ts/SpatialNavigation.ts +0 -38
  455. package/ts/UserProfile.ts +0 -27
  456. package/ts/VRExperience.ts +0 -58
  457. package/ts/VideoOverlay.ts +0 -116
  458. package/ts/index.ts +0 -0
  459. /package/{scss → dist/scss}/dev/_banner.scss +0 -0
  460. /package/{scss → dist/scss}/dev/_debug.scss +0 -0
  461. /package/{scss → dist/scss}/dev/_index.scss +0 -0
  462. /package/{scss/classes/_index.scss → src/html/partials/_code_block.html} +0 -0
  463. /package/{scss/functions/_index.scss → src/html/partials/_feature_card.html} +0 -0
@@ -0,0 +1,1489 @@
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en" data-theme="light">
4
+
5
+ <head>
6
+
7
+ <meta charset="UTF-8" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
9
+ <meta name="description"
10
+ content="Motion and Animation Library — CSS animations, transitions, keyframes, and interactive motion effects." />
11
+ <meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)" />
12
+ <meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)" />
13
+ <title>move.gl</title>
14
+
15
+ <!-- Library CSS -->
16
+ <link rel="stylesheet" href="/css/move.gl.css" />
17
+ <!-- Documentation CSS -->
18
+ <link rel="stylesheet" href="/css/move.gl.docs.css" />
19
+
20
+ <!-- Fonts -->
21
+ <link rel="preconnect" href="https://fonts.googleapis.com">
22
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
23
+ <link
24
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"
25
+ rel="stylesheet">
26
+ </head>
27
+
28
+ <body class="">
29
+
30
+ <div class="nav-wrapper">
31
+ <nav class="nav">
32
+ <div class="nav__inner">
33
+ <a href="index.html" class="nav__logo">
34
+ <span class="nav__logo-text">move.gl</span>
35
+ <span class="nav__version">v0.0.1</span>
36
+ </a>
37
+ <div class="nav__right">
38
+
39
+ <button type="button" class="theme-toggle" data-toggle="theme" title="Toggle dark mode" aria-label="Toggle dark mode">
40
+ <svg class="theme-icon theme-icon--light" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
41
+ <path
42
+ d="M8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zm7-5a.75.75 0 00-.75-.75h-1.5a.75.75 0 000 1.5h1.5A.75.75 0 0015 8zM3 8a.75.75 0 00-.75-.75H.75a.75.75 0 000 1.5h1.5A.75.75 0 003 8zm9.536-4.536a.75.75 0 00-1.06 0l-1.061 1.06a.75.75 0 001.06 1.061l1.061-1.06a.75.75 0 000-1.061zm-9.072 9.072a.75.75 0 00-1.06 0l-1.061 1.06a.75.75 0 101.06 1.061l1.061-1.06a.75.75 0 000-1.061zm9.072 0a.75.75 0 00-1.06 1.06l1.06 1.061a.75.75 0 101.061-1.06l-1.06-1.061zm-9.072-9.072a.75.75 0 00-1.06 1.06l1.06 1.061a.75.75 0 001.061-1.06l-1.06-1.061z" />
43
+ </svg>
44
+ <svg class="theme-icon theme-icon--dark" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
45
+ <path d="M6.2 1A6.98 6.98 0 008 7a6.98 6.98 0 00-1.8 6A7 7 0 116.2 1z" />
46
+ </svg>
47
+ </button>
48
+
49
+ <div class="nav__dropdown" id="nav-dropdown">
50
+ <button type="button" class="nav__dropdown-toggle" aria-expanded="false" aria-haspopup="true">
51
+ <span>Docs</span>
52
+ <svg width="10" height="6" viewBox="0 0 10 6" fill="none" stroke="currentColor"
53
+ stroke-width="1.5">
54
+ <path d="M1 1l4 4 4-4" />
55
+ </svg>
56
+ </button>
57
+ <div class="nav__dropdown-menu" role="menu">
58
+ <div class="nav__dropdown-section">
59
+ <span class="nav__dropdown-label">Learn</span>
60
+ <a href="getting-started.html" role="menuitem">Getting Started</a>
61
+ <a href="core-concepts.html" role="menuitem">Core Concepts</a>
62
+ </div>
63
+ <div class="nav__dropdown-section">
64
+ <span class="nav__dropdown-label">Overview</span>
65
+ <a href="test_overview.html" role="menuitem">All Animations</a>
66
+ </div>
67
+ <div class="nav__dropdown-section">
68
+ <span class="nav__dropdown-label">Animations</span>
69
+ <a href="test_fade.html" role="menuitem">Fade</a>
70
+ <a href="test_slide.html" role="menuitem">Slide</a>
71
+ <a href="test_bounce.html" role="menuitem">Bounce</a>
72
+ <a href="test_zoom.html" role="menuitem">Zoom</a>
73
+ <a href="test_flip.html" role="menuitem">Flip</a>
74
+ <a href="test_scale.html" role="menuitem">Scale</a>
75
+ <a href="test_spin.html" role="menuitem">Spin & Rotate</a>
76
+ <a href="test_pulse.html" role="menuitem">Pulse</a>
77
+ <a href="test_shake.html" role="menuitem">Shake & Wobble</a>
78
+ <a href="test_attention.html" role="menuitem">Attention</a>
79
+ <a href="test_special.html" role="menuitem">Special Effects</a>
80
+ </div>
81
+ <div class="nav__dropdown-section">
82
+ <span class="nav__dropdown-label">Effects</span>
83
+ <a href="test_loaders.html" role="menuitem">Loaders</a>
84
+ <a href="test_transitions.html" role="menuitem">Transitions</a>
85
+ <a href="test_transforms.html" role="menuitem">Transforms</a>
86
+ <a href="test_effects.html" role="menuitem">Filter Effects</a>
87
+ <a href="test_keyframes.html" role="menuitem">Keyframes</a>
88
+ <a href="test_mouse.html" role="menuitem">Mouse Interactions</a>
89
+ </div>
90
+ <div class="nav__dropdown-section">
91
+ <span class="nav__dropdown-label">TypeScript Demos</span>
92
+ <a href="demo_draggable.html" role="menuitem">Draggable</a>
93
+ <a href="demo_gesture.html" role="menuitem">Gesture Handler</a>
94
+ <a href="demo_keyboard.html" role="menuitem">Virtual Keyboard</a>
95
+ <a href="demo_screensaver.html" role="menuitem">Screensaver</a>
96
+ <a href="demo_video_overlay.html" role="menuitem">Video Overlay</a>
97
+ </div>
98
+ </div>
99
+ </div>
100
+
101
+ <a href="https://github.com/stylescape/move.gl" class="nav__github" target="_blank"
102
+ title="View on GitHub">
103
+ <svg width="18" height="18" viewBox="0 0 16 16" fill="currentColor">
104
+ <path
105
+ d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" />
106
+ </svg>
107
+ </a>
108
+ </div>
109
+ </div>
110
+ </nav>
111
+ </div>
112
+
113
+ <main class="main">
114
+ <div class="container"><section class="section">
115
+ <h1 class="section-title">🔄 Loaders</h1>
116
+ <p class="section-description">
117
+ A comprehensive collection of CSS loading animations. All loaders use greyscale colors for visibility
118
+ on any background. Each card shows the loader preview and the HTML code needed to implement it.
119
+ </p>
120
+
121
+
122
+ <h2 class="demo-section-title">🌀 Spinners</h2>
123
+ <p class="demo-section-desc">Classic rotating spinner animations</p>
124
+ <div class="demo-grid-fixed">
125
+ <div class="demo-card-fixed">
126
+ <div class="demo-card-fixed__preview">
127
+ <div class="loader loader--spinner"></div>
128
+ </div>
129
+ <div class="demo-card-fixed__info">
130
+ <h4 class="demo-card-fixed__title">spinner</h4>
131
+ </div>
132
+ <div class="demo-card-fixed__code">
133
+ <code>&lt;div class="loader loader--spinner"&gt;&lt;/div&gt;</code>
134
+ </div>
135
+ </div>
136
+ <div class="demo-card-fixed">
137
+ <div class="demo-card-fixed__preview">
138
+ <div class="loader loader--spinner-dots"></div>
139
+ </div>
140
+ <div class="demo-card-fixed__info">
141
+ <h4 class="demo-card-fixed__title">spinner-dots</h4>
142
+ </div>
143
+ <div class="demo-card-fixed__code">
144
+ <code>&lt;div class="loader loader--spinner-dots"&gt;&lt;/div&gt;</code>
145
+ </div>
146
+ </div>
147
+ <div class="demo-card-fixed">
148
+ <div class="demo-card-fixed__preview">
149
+ <div class="loader loader--ring"></div>
150
+ </div>
151
+ <div class="demo-card-fixed__info">
152
+ <h4 class="demo-card-fixed__title">ring</h4>
153
+ </div>
154
+ <div class="demo-card-fixed__code">
155
+ <code>&lt;div class="loader loader--ring"&gt;&lt;/div&gt;</code>
156
+ </div>
157
+ </div>
158
+ <div class="demo-card-fixed">
159
+ <div class="demo-card-fixed__preview">
160
+ <div class="loader loader--dual-ring"></div>
161
+ </div>
162
+ <div class="demo-card-fixed__info">
163
+ <h4 class="demo-card-fixed__title">dual-ring</h4>
164
+ </div>
165
+ <div class="demo-card-fixed__code">
166
+ <code>&lt;div class="loader loader--dual-ring"&gt;&lt;/div&gt;</code>
167
+ </div>
168
+ </div>
169
+ <div class="demo-card-fixed">
170
+ <div class="demo-card-fixed__preview">
171
+ <div class="loader loader--windmill"></div>
172
+ </div>
173
+ <div class="demo-card-fixed__info">
174
+ <h4 class="demo-card-fixed__title">windmill</h4>
175
+ </div>
176
+ <div class="demo-card-fixed__code">
177
+ <code>&lt;div class="loader loader--windmill"&gt;&lt;/div&gt;</code>
178
+ </div>
179
+ </div>
180
+ <div class="demo-card-fixed">
181
+ <div class="demo-card-fixed__preview">
182
+ <div class="loader loader--chase"></div>
183
+ </div>
184
+ <div class="demo-card-fixed__info">
185
+ <h4 class="demo-card-fixed__title">chase</h4>
186
+ </div>
187
+ <div class="demo-card-fixed__code">
188
+ <code>&lt;div class="loader loader--chase"&gt;&lt;/div&gt;</code>
189
+ </div>
190
+ </div>
191
+ </div>
192
+
193
+
194
+ <h2 class="demo-section-title">⭕ Circles</h2>
195
+ <p class="demo-section-desc">Circular loading animations with various effects</p>
196
+ <div class="demo-grid-fixed">
197
+ <div class="demo-card-fixed">
198
+ <div class="demo-card-fixed__preview">
199
+ <div class="loader loader--circle-spinner"></div>
200
+ </div>
201
+ <div class="demo-card-fixed__info">
202
+ <h4 class="demo-card-fixed__title">circle-spinner</h4>
203
+ </div>
204
+ <div class="demo-card-fixed__code">
205
+ <code>&lt;div class="loader loader--circle-spinner"&gt;&lt;/div&gt;</code>
206
+ </div>
207
+ </div>
208
+ <div class="demo-card-fixed">
209
+ <div class="demo-card-fixed__preview">
210
+ <div class="loader loader--circle-pulse"></div>
211
+ </div>
212
+ <div class="demo-card-fixed__info">
213
+ <h4 class="demo-card-fixed__title">circle-pulse</h4>
214
+ </div>
215
+ <div class="demo-card-fixed__code">
216
+ <code>&lt;div class="loader loader--circle-pulse"&gt;&lt;/div&gt;</code>
217
+ </div>
218
+ </div>
219
+ <div class="demo-card-fixed">
220
+ <div class="demo-card-fixed__preview">
221
+ <div class="loader loader--circle-ripple"></div>
222
+ </div>
223
+ <div class="demo-card-fixed__info">
224
+ <h4 class="demo-card-fixed__title">circle-ripple</h4>
225
+ </div>
226
+ <div class="demo-card-fixed__code">
227
+ <code>&lt;div class="loader loader--circle-ripple"&gt;&lt;/div&gt;</code>
228
+ </div>
229
+ </div>
230
+ <div class="demo-card-fixed">
231
+ <div class="demo-card-fixed__preview">
232
+ <div class="loader loader--circle-clip"></div>
233
+ </div>
234
+ <div class="demo-card-fixed__info">
235
+ <h4 class="demo-card-fixed__title">circle-clip</h4>
236
+ </div>
237
+ <div class="demo-card-fixed__code">
238
+ <code>&lt;div class="loader loader--circle-clip"&gt;&lt;/div&gt;</code>
239
+ </div>
240
+ </div>
241
+ <div class="demo-card-fixed">
242
+ <div class="demo-card-fixed__preview">
243
+ <div class="loader loader--circle-clip-dual"></div>
244
+ </div>
245
+ <div class="demo-card-fixed__info">
246
+ <h4 class="demo-card-fixed__title">circle-clip-dual</h4>
247
+ </div>
248
+ <div class="demo-card-fixed__code">
249
+ <code>&lt;div class="loader loader--circle-clip-dual"&gt;&lt;/div&gt;</code>
250
+ </div>
251
+ </div>
252
+ <div class="demo-card-fixed">
253
+ <div class="demo-card-fixed__preview">
254
+ <div class="loader loader--circle-dual"></div>
255
+ </div>
256
+ <div class="demo-card-fixed__info">
257
+ <h4 class="demo-card-fixed__title">circle-dual</h4>
258
+ </div>
259
+ <div class="demo-card-fixed__code">
260
+ <code>&lt;div class="loader loader--circle-dual"&gt;&lt;/div&gt;</code>
261
+ </div>
262
+ </div>
263
+ <div class="demo-card-fixed">
264
+ <div class="demo-card-fixed__preview">
265
+ <div class="loader loader--circle-triple"></div>
266
+ </div>
267
+ <div class="demo-card-fixed__info">
268
+ <h4 class="demo-card-fixed__title">circle-triple</h4>
269
+ </div>
270
+ <div class="demo-card-fixed__code">
271
+ <code>&lt;div class="loader loader--circle-triple"&gt;&lt;/div&gt;</code>
272
+ </div>
273
+ </div>
274
+ <div class="demo-card-fixed">
275
+ <div class="demo-card-fixed__preview">
276
+ <div class="loader loader--circle-nested"></div>
277
+ </div>
278
+ <div class="demo-card-fixed__info">
279
+ <h4 class="demo-card-fixed__title">circle-nested</h4>
280
+ </div>
281
+ <div class="demo-card-fixed__code">
282
+ <code>&lt;div class="loader loader--circle-nested"&gt;&lt;/div&gt;</code>
283
+ </div>
284
+ </div>
285
+ <div class="demo-card-fixed">
286
+ <div class="demo-card-fixed__preview">
287
+ <div class="loader loader--circle-dot"></div>
288
+ </div>
289
+ <div class="demo-card-fixed__info">
290
+ <h4 class="demo-card-fixed__title">circle-dot</h4>
291
+ </div>
292
+ <div class="demo-card-fixed__code">
293
+ <code>&lt;div class="loader loader--circle-dot"&gt;&lt;/div&gt;</code>
294
+ </div>
295
+ </div>
296
+ <div class="demo-card-fixed">
297
+ <div class="demo-card-fixed__preview">
298
+ <div class="loader loader--circle-notch"></div>
299
+ </div>
300
+ <div class="demo-card-fixed__info">
301
+ <h4 class="demo-card-fixed__title">circle-notch</h4>
302
+ </div>
303
+ <div class="demo-card-fixed__code">
304
+ <code>&lt;div class="loader loader--circle-notch"&gt;&lt;/div&gt;</code>
305
+ </div>
306
+ </div>
307
+ <div class="demo-card-fixed">
308
+ <div class="demo-card-fixed__preview">
309
+ <div class="loader loader--circle-orbit"></div>
310
+ </div>
311
+ <div class="demo-card-fixed__info">
312
+ <h4 class="demo-card-fixed__title">circle-orbit</h4>
313
+ </div>
314
+ <div class="demo-card-fixed__code">
315
+ <code>&lt;div class="loader loader--circle-orbit"&gt;&lt;/div&gt;</code>
316
+ </div>
317
+ </div>
318
+ </div>
319
+
320
+
321
+ <h2 class="demo-section-title">⚫ Dots</h2>
322
+ <p class="demo-section-desc">Animated dot patterns and effects</p>
323
+ <div class="demo-grid-fixed">
324
+ <div class="demo-card-fixed">
325
+ <div class="demo-card-fixed__preview">
326
+ <div class="loader loader--dots"></div>
327
+ </div>
328
+ <div class="demo-card-fixed__info">
329
+ <h4 class="demo-card-fixed__title">dots</h4>
330
+ </div>
331
+ <div class="demo-card-fixed__code">
332
+ <code>&lt;div class="loader loader--dots"&gt;&lt;/div&gt;</code>
333
+ </div>
334
+ </div>
335
+ <div class="demo-card-fixed">
336
+ <div class="demo-card-fixed__preview">
337
+ <div class="loader loader--dots-bounce"></div>
338
+ </div>
339
+ <div class="demo-card-fixed__info">
340
+ <h4 class="demo-card-fixed__title">dots-bounce</h4>
341
+ </div>
342
+ <div class="demo-card-fixed__code">
343
+ <code>&lt;div class="loader loader--dots-bounce"&gt;&lt;/div&gt;</code>
344
+ </div>
345
+ </div>
346
+ <div class="demo-card-fixed">
347
+ <div class="demo-card-fixed__preview">
348
+ <div class="loader loader--dots-fade"></div>
349
+ </div>
350
+ <div class="demo-card-fixed__info">
351
+ <h4 class="demo-card-fixed__title">dots-fade</h4>
352
+ </div>
353
+ <div class="demo-card-fixed__code">
354
+ <code>&lt;div class="loader loader--dots-fade"&gt;&lt;/div&gt;</code>
355
+ </div>
356
+ </div>
357
+ <div class="demo-card-fixed">
358
+ <div class="demo-card-fixed__preview">
359
+ <div class="loader loader--dots-grow"></div>
360
+ </div>
361
+ <div class="demo-card-fixed__info">
362
+ <h4 class="demo-card-fixed__title">dots-grow</h4>
363
+ </div>
364
+ <div class="demo-card-fixed__code">
365
+ <code>&lt;div class="loader loader--dots-grow"&gt;&lt;/div&gt;</code>
366
+ </div>
367
+ </div>
368
+ <div class="demo-card-fixed">
369
+ <div class="demo-card-fixed__preview">
370
+ <div class="loader loader--dots-wave"></div>
371
+ </div>
372
+ <div class="demo-card-fixed__info">
373
+ <h4 class="demo-card-fixed__title">dots-wave</h4>
374
+ </div>
375
+ <div class="demo-card-fixed__code">
376
+ <code>&lt;div class="loader loader--dots-wave"&gt;&lt;/div&gt;</code>
377
+ </div>
378
+ </div>
379
+ <div class="demo-card-fixed">
380
+ <div class="demo-card-fixed__preview">
381
+ <div class="loader loader--ellipsis"></div>
382
+ </div>
383
+ <div class="demo-card-fixed__info">
384
+ <h4 class="demo-card-fixed__title">ellipsis</h4>
385
+ </div>
386
+ <div class="demo-card-fixed__code">
387
+ <code>&lt;div class="loader loader--ellipsis"&gt;&lt;/div&gt;</code>
388
+ </div>
389
+ </div>
390
+ </div>
391
+
392
+
393
+ <h2 class="demo-section-title">🫧 Bubbles</h2>
394
+ <p class="demo-section-desc">Bubble and sphere animations</p>
395
+ <div class="demo-grid-fixed">
396
+ <div class="demo-card-fixed">
397
+ <div class="demo-card-fixed__preview">
398
+ <div class="loader loader--bubble-expand"></div>
399
+ </div>
400
+ <div class="demo-card-fixed__info">
401
+ <h4 class="demo-card-fixed__title">bubble-expand</h4>
402
+ </div>
403
+ <div class="demo-card-fixed__code">
404
+ <code>&lt;div class="loader loader--bubble-expand"&gt;&lt;/div&gt;</code>
405
+ </div>
406
+ </div>
407
+ <div class="demo-card-fixed">
408
+ <div class="demo-card-fixed__preview">
409
+ <div class="loader loader--bubble-rotate"></div>
410
+ </div>
411
+ <div class="demo-card-fixed__info">
412
+ <h4 class="demo-card-fixed__title">bubble-rotate</h4>
413
+ </div>
414
+ <div class="demo-card-fixed__code">
415
+ <code>&lt;div class="loader loader--bubble-rotate"&gt;&lt;/div&gt;</code>
416
+ </div>
417
+ </div>
418
+ <div class="demo-card-fixed">
419
+ <div class="demo-card-fixed__preview">
420
+ <div class="loader loader--bubble-flip"></div>
421
+ </div>
422
+ <div class="demo-card-fixed__info">
423
+ <h4 class="demo-card-fixed__title">bubble-flip</h4>
424
+ </div>
425
+ <div class="demo-card-fixed__code">
426
+ <code>&lt;div class="loader loader--bubble-flip"&gt;&lt;/div&gt;</code>
427
+ </div>
428
+ </div>
429
+ <div class="demo-card-fixed">
430
+ <div class="demo-card-fixed__preview">
431
+ <div class="loader loader--bubble-collision"></div>
432
+ </div>
433
+ <div class="demo-card-fixed__info">
434
+ <h4 class="demo-card-fixed__title">bubble-collision</h4>
435
+ </div>
436
+ <div class="demo-card-fixed__code">
437
+ <code>&lt;div class="loader loader--bubble-collision"&gt;&lt;/div&gt;</code>
438
+ </div>
439
+ </div>
440
+ <div class="demo-card-fixed">
441
+ <div class="demo-card-fixed__preview">
442
+ <div class="loader loader--bubble-dots-bounce"></div>
443
+ </div>
444
+ <div class="demo-card-fixed__info">
445
+ <h4 class="demo-card-fixed__title">bubble-dots-bounce</h4>
446
+ </div>
447
+ <div class="demo-card-fixed__code">
448
+ <code>&lt;div class="loader loader--bubble-dots-bounce"&gt;&lt;/div&gt;</code>
449
+ </div>
450
+ </div>
451
+ <div class="demo-card-fixed">
452
+ <div class="demo-card-fixed__preview">
453
+ <div class="loader loader--bubble-dots-flash"></div>
454
+ </div>
455
+ <div class="demo-card-fixed__info">
456
+ <h4 class="demo-card-fixed__title">bubble-dots-flash</h4>
457
+ </div>
458
+ <div class="demo-card-fixed__code">
459
+ <code>&lt;div class="loader loader--bubble-dots-flash"&gt;&lt;/div&gt;</code>
460
+ </div>
461
+ </div>
462
+ <div class="demo-card-fixed">
463
+ <div class="demo-card-fixed__preview">
464
+ <div class="loader loader--bubble-dots-pulse"></div>
465
+ </div>
466
+ <div class="demo-card-fixed__info">
467
+ <h4 class="demo-card-fixed__title">bubble-dots-pulse</h4>
468
+ </div>
469
+ <div class="demo-card-fixed__code">
470
+ <code>&lt;div class="loader loader--bubble-dots-pulse"&gt;&lt;/div&gt;</code>
471
+ </div>
472
+ </div>
473
+ <div class="demo-card-fixed">
474
+ <div class="demo-card-fixed__preview">
475
+ <div class="loader loader--bubble-dots-rotate"></div>
476
+ </div>
477
+ <div class="demo-card-fixed__info">
478
+ <h4 class="demo-card-fixed__title">bubble-dots-rotate</h4>
479
+ </div>
480
+ <div class="demo-card-fixed__code">
481
+ <code>&lt;div class="loader loader--bubble-dots-rotate"&gt;&lt;/div&gt;</code>
482
+ </div>
483
+ </div>
484
+ </div>
485
+
486
+
487
+ <h2 class="demo-section-title">📊 Bars</h2>
488
+ <p class="demo-section-desc">Bar and equalizer animations</p>
489
+ <div class="demo-grid-fixed">
490
+ <div class="demo-card-fixed">
491
+ <div class="demo-card-fixed__preview">
492
+ <div class="loader loader--bars"></div>
493
+ </div>
494
+ <div class="demo-card-fixed__info">
495
+ <h4 class="demo-card-fixed__title">bars</h4>
496
+ </div>
497
+ <div class="demo-card-fixed__code">
498
+ <code>&lt;div class="loader loader--bars"&gt;&lt;/div&gt;</code>
499
+ </div>
500
+ </div>
501
+ <div class="demo-card-fixed">
502
+ <div class="demo-card-fixed__preview">
503
+ <div class="loader loader--bar-wave"></div>
504
+ </div>
505
+ <div class="demo-card-fixed__info">
506
+ <h4 class="demo-card-fixed__title">bar-wave</h4>
507
+ </div>
508
+ <div class="demo-card-fixed__code">
509
+ <code>&lt;div class="loader loader--bar-wave"&gt;&lt;/div&gt;</code>
510
+ </div>
511
+ </div>
512
+ <div class="demo-card-fixed">
513
+ <div class="demo-card-fixed__preview">
514
+ <div class="loader loader--bar-pulse"></div>
515
+ </div>
516
+ <div class="demo-card-fixed__info">
517
+ <h4 class="demo-card-fixed__title">bar-pulse</h4>
518
+ </div>
519
+ <div class="demo-card-fixed__code">
520
+ <code>&lt;div class="loader loader--bar-pulse"&gt;&lt;/div&gt;</code>
521
+ </div>
522
+ </div>
523
+ <div class="demo-card-fixed">
524
+ <div class="demo-card-fixed__preview">
525
+ <div class="loader loader--bar-bounce"></div>
526
+ </div>
527
+ <div class="demo-card-fixed__info">
528
+ <h4 class="demo-card-fixed__title">bar-bounce</h4>
529
+ </div>
530
+ <div class="demo-card-fixed__code">
531
+ <code>&lt;div class="loader loader--bar-bounce"&gt;&lt;/div&gt;</code>
532
+ </div>
533
+ </div>
534
+ <div class="demo-card-fixed">
535
+ <div class="demo-card-fixed__preview">
536
+ <div class="loader loader--bar-equalizer"></div>
537
+ </div>
538
+ <div class="demo-card-fixed__info">
539
+ <h4 class="demo-card-fixed__title">bar-equalizer</h4>
540
+ </div>
541
+ <div class="demo-card-fixed__code">
542
+ <code>&lt;div class="loader loader--bar-equalizer"&gt;&lt;/div&gt;</code>
543
+ </div>
544
+ </div>
545
+ <div class="demo-card-fixed">
546
+ <div class="demo-card-fixed__preview">
547
+ <div class="loader loader--bar-expand"></div>
548
+ </div>
549
+ <div class="demo-card-fixed__info">
550
+ <h4 class="demo-card-fixed__title">bar-expand</h4>
551
+ </div>
552
+ <div class="demo-card-fixed__code">
553
+ <code>&lt;div class="loader loader--bar-expand"&gt;&lt;/div&gt;</code>
554
+ </div>
555
+ </div>
556
+ <div class="demo-card-fixed">
557
+ <div class="demo-card-fixed__preview">
558
+ <div class="loader loader--bar-shrink"></div>
559
+ </div>
560
+ <div class="demo-card-fixed__info">
561
+ <h4 class="demo-card-fixed__title">bar-shrink</h4>
562
+ </div>
563
+ <div class="demo-card-fixed__code">
564
+ <code>&lt;div class="loader loader--bar-shrink"&gt;&lt;/div&gt;</code>
565
+ </div>
566
+ </div>
567
+ <div class="demo-card-fixed">
568
+ <div class="demo-card-fixed__preview">
569
+ <div class="loader loader--bar-flash"></div>
570
+ </div>
571
+ <div class="demo-card-fixed__info">
572
+ <h4 class="demo-card-fixed__title">bar-flash</h4>
573
+ </div>
574
+ <div class="demo-card-fixed__code">
575
+ <code>&lt;div class="loader loader--bar-flash"&gt;&lt;/div&gt;</code>
576
+ </div>
577
+ </div>
578
+ <div class="demo-card-fixed">
579
+ <div class="demo-card-fixed__preview">
580
+ <div class="loader loader--bar-reveal"></div>
581
+ </div>
582
+ <div class="demo-card-fixed__info">
583
+ <h4 class="demo-card-fixed__title">bar-reveal</h4>
584
+ </div>
585
+ <div class="demo-card-fixed__code">
586
+ <code>&lt;div class="loader loader--bar-reveal"&gt;&lt;/div&gt;</code>
587
+ </div>
588
+ </div>
589
+ <div class="demo-card-fixed">
590
+ <div class="demo-card-fixed__preview">
591
+ <div class="loader loader--bar-matrix"></div>
592
+ </div>
593
+ <div class="demo-card-fixed__info">
594
+ <h4 class="demo-card-fixed__title">bar-matrix</h4>
595
+ </div>
596
+ <div class="demo-card-fixed__code">
597
+ <code>&lt;div class="loader loader--bar-matrix"&gt;&lt;/div&gt;</code>
598
+ </div>
599
+ </div>
600
+ <div class="demo-card-fixed">
601
+ <div class="demo-card-fixed__preview">
602
+ <div class="loader loader--bar-sound-wave"></div>
603
+ </div>
604
+ <div class="demo-card-fixed__info">
605
+ <h4 class="demo-card-fixed__title">bar-sound-wave</h4>
606
+ </div>
607
+ <div class="demo-card-fixed__code">
608
+ <code>&lt;div class="loader loader--bar-sound-wave"&gt;&lt;/div&gt;</code>
609
+ </div>
610
+ </div>
611
+ <div class="demo-card-fixed">
612
+ <div class="demo-card-fixed__preview">
613
+ <div class="loader loader--wave-bar"></div>
614
+ </div>
615
+ <div class="demo-card-fixed__info">
616
+ <h4 class="demo-card-fixed__title">wave-bar</h4>
617
+ </div>
618
+ <div class="demo-card-fixed__code">
619
+ <code>&lt;div class="loader loader--wave-bar"&gt;&lt;/div&gt;</code>
620
+ </div>
621
+ </div>
622
+ </div>
623
+
624
+
625
+ <h2 class="demo-section-title">📈 Progress</h2>
626
+ <p class="demo-section-desc">Progress bars and indicators</p>
627
+ <div class="demo-grid-fixed">
628
+ <div class="demo-card-fixed">
629
+ <div class="demo-card-fixed__preview">
630
+ <div class="loader loader--progress"></div>
631
+ </div>
632
+ <div class="demo-card-fixed__info">
633
+ <h4 class="demo-card-fixed__title">progress</h4>
634
+ </div>
635
+ <div class="demo-card-fixed__code">
636
+ <code>&lt;div class="loader loader--progress"&gt;&lt;/div&gt;</code>
637
+ </div>
638
+ </div>
639
+ <div class="demo-card-fixed">
640
+ <div class="demo-card-fixed__preview">
641
+ <div class="loader loader--progress-indeterminate"></div>
642
+ </div>
643
+ <div class="demo-card-fixed__info">
644
+ <h4 class="demo-card-fixed__title">progress-indeterminate</h4>
645
+ </div>
646
+ <div class="demo-card-fixed__code">
647
+ <code>&lt;div class="loader loader--progress-indeterminate"&gt;&lt;/div&gt;</code>
648
+ </div>
649
+ </div>
650
+ <div class="demo-card-fixed">
651
+ <div class="demo-card-fixed__preview">
652
+ <div class="loader loader--progress-circle"></div>
653
+ </div>
654
+ <div class="demo-card-fixed__info">
655
+ <h4 class="demo-card-fixed__title">progress-circle</h4>
656
+ </div>
657
+ <div class="demo-card-fixed__code">
658
+ <code>&lt;div class="loader loader--progress-circle"&gt;&lt;/div&gt;</code>
659
+ </div>
660
+ </div>
661
+ <div class="demo-card-fixed">
662
+ <div class="demo-card-fixed__preview">
663
+ <div class="loader loader--progress-dots"></div>
664
+ </div>
665
+ <div class="demo-card-fixed__info">
666
+ <h4 class="demo-card-fixed__title">progress-dots</h4>
667
+ </div>
668
+ <div class="demo-card-fixed__code">
669
+ <code>&lt;div class="loader loader--progress-dots"&gt;&lt;/div&gt;</code>
670
+ </div>
671
+ </div>
672
+ <div class="demo-card-fixed">
673
+ <div class="demo-card-fixed__preview">
674
+ <div class="loader loader--progress-fill"></div>
675
+ </div>
676
+ <div class="demo-card-fixed__info">
677
+ <h4 class="demo-card-fixed__title">progress-fill</h4>
678
+ </div>
679
+ <div class="demo-card-fixed__code">
680
+ <code>&lt;div class="loader loader--progress-fill"&gt;&lt;/div&gt;</code>
681
+ </div>
682
+ </div>
683
+ <div class="demo-card-fixed">
684
+ <div class="demo-card-fixed__preview">
685
+ <div class="loader loader--progress-gradient"></div>
686
+ </div>
687
+ <div class="demo-card-fixed__info">
688
+ <h4 class="demo-card-fixed__title">progress-gradient</h4>
689
+ </div>
690
+ <div class="demo-card-fixed__code">
691
+ <code>&lt;div class="loader loader--progress-gradient"&gt;&lt;/div&gt;</code>
692
+ </div>
693
+ </div>
694
+ <div class="demo-card-fixed">
695
+ <div class="demo-card-fixed__preview">
696
+ <div class="loader loader--progress-pulse"></div>
697
+ </div>
698
+ <div class="demo-card-fixed__info">
699
+ <h4 class="demo-card-fixed__title">progress-pulse</h4>
700
+ </div>
701
+ <div class="demo-card-fixed__code">
702
+ <code>&lt;div class="loader loader--progress-pulse"&gt;&lt;/div&gt;</code>
703
+ </div>
704
+ </div>
705
+ <div class="demo-card-fixed">
706
+ <div class="demo-card-fixed__preview">
707
+ <div class="loader loader--progress-segments"></div>
708
+ </div>
709
+ <div class="demo-card-fixed__info">
710
+ <h4 class="demo-card-fixed__title">progress-segments</h4>
711
+ </div>
712
+ <div class="demo-card-fixed__code">
713
+ <code>&lt;div class="loader loader--progress-segments"&gt;&lt;/div&gt;</code>
714
+ </div>
715
+ </div>
716
+ <div class="demo-card-fixed">
717
+ <div class="demo-card-fixed__preview">
718
+ <div class="loader loader--progress-split"></div>
719
+ </div>
720
+ <div class="demo-card-fixed__info">
721
+ <h4 class="demo-card-fixed__title">progress-split</h4>
722
+ </div>
723
+ <div class="demo-card-fixed__code">
724
+ <code>&lt;div class="loader loader--progress-split"&gt;&lt;/div&gt;</code>
725
+ </div>
726
+ </div>
727
+ <div class="demo-card-fixed">
728
+ <div class="demo-card-fixed__preview">
729
+ <div class="loader loader--progress-stripe"></div>
730
+ </div>
731
+ <div class="demo-card-fixed__info">
732
+ <h4 class="demo-card-fixed__title">progress-stripe</h4>
733
+ </div>
734
+ <div class="demo-card-fixed__code">
735
+ <code>&lt;div class="loader loader--progress-stripe"&gt;&lt;/div&gt;</code>
736
+ </div>
737
+ </div>
738
+ <div class="demo-card-fixed">
739
+ <div class="demo-card-fixed__preview">
740
+ <div class="loader loader--progress-stripe-fill"></div>
741
+ </div>
742
+ <div class="demo-card-fixed__info">
743
+ <h4 class="demo-card-fixed__title">progress-stripe-fill</h4>
744
+ </div>
745
+ <div class="demo-card-fixed__code">
746
+ <code>&lt;div class="loader loader--progress-stripe-fill"&gt;&lt;/div&gt;</code>
747
+ </div>
748
+ </div>
749
+ </div>
750
+
751
+
752
+ <h2 class="demo-section-title">🟦 Rectangles</h2>
753
+ <p class="demo-section-desc">Square and rectangle based animations</p>
754
+ <div class="demo-grid-fixed">
755
+ <div class="demo-card-fixed">
756
+ <div class="demo-card-fixed__preview">
757
+ <div class="loader loader--square"></div>
758
+ </div>
759
+ <div class="demo-card-fixed__info">
760
+ <h4 class="demo-card-fixed__title">square</h4>
761
+ </div>
762
+ <div class="demo-card-fixed__code">
763
+ <code>&lt;div class="loader loader--square"&gt;&lt;/div&gt;</code>
764
+ </div>
765
+ </div>
766
+ <div class="demo-card-fixed">
767
+ <div class="demo-card-fixed__preview">
768
+ <div class="loader loader--cube"></div>
769
+ </div>
770
+ <div class="demo-card-fixed__info">
771
+ <h4 class="demo-card-fixed__title">cube</h4>
772
+ </div>
773
+ <div class="demo-card-fixed__code">
774
+ <code>&lt;div class="loader loader--cube"&gt;&lt;/div&gt;</code>
775
+ </div>
776
+ </div>
777
+ <div class="demo-card-fixed">
778
+ <div class="demo-card-fixed__preview">
779
+ <div class="loader loader--rect-alternate"></div>
780
+ </div>
781
+ <div class="demo-card-fixed__info">
782
+ <h4 class="demo-card-fixed__title">rect-alternate</h4>
783
+ </div>
784
+ <div class="demo-card-fixed__code">
785
+ <code>&lt;div class="loader loader--rect-alternate"&gt;&lt;/div&gt;</code>
786
+ </div>
787
+ </div>
788
+ <div class="demo-card-fixed">
789
+ <div class="demo-card-fixed__preview">
790
+ <div class="loader loader--rect-diamond"></div>
791
+ </div>
792
+ <div class="demo-card-fixed__info">
793
+ <h4 class="demo-card-fixed__title">rect-diamond</h4>
794
+ </div>
795
+ <div class="demo-card-fixed__code">
796
+ <code>&lt;div class="loader loader--rect-diamond"&gt;&lt;/div&gt;</code>
797
+ </div>
798
+ </div>
799
+ <div class="demo-card-fixed">
800
+ <div class="demo-card-fixed__preview">
801
+ <div class="loader loader--rect-dual"></div>
802
+ </div>
803
+ <div class="demo-card-fixed__info">
804
+ <h4 class="demo-card-fixed__title">rect-dual</h4>
805
+ </div>
806
+ <div class="demo-card-fixed__code">
807
+ <code>&lt;div class="loader loader--rect-dual"&gt;&lt;/div&gt;</code>
808
+ </div>
809
+ </div>
810
+ <div class="demo-card-fixed">
811
+ <div class="demo-card-fixed__preview">
812
+ <div class="loader loader--rect-expand"></div>
813
+ </div>
814
+ <div class="demo-card-fixed__info">
815
+ <h4 class="demo-card-fixed__title">rect-expand</h4>
816
+ </div>
817
+ <div class="demo-card-fixed__code">
818
+ <code>&lt;div class="loader loader--rect-expand"&gt;&lt;/div&gt;</code>
819
+ </div>
820
+ </div>
821
+ <div class="demo-card-fixed">
822
+ <div class="demo-card-fixed__preview">
823
+ <div class="loader loader--rect-fill"></div>
824
+ </div>
825
+ <div class="demo-card-fixed__info">
826
+ <h4 class="demo-card-fixed__title">rect-fill</h4>
827
+ </div>
828
+ <div class="demo-card-fixed__code">
829
+ <code>&lt;div class="loader loader--rect-fill"&gt;&lt;/div&gt;</code>
830
+ </div>
831
+ </div>
832
+ <div class="demo-card-fixed">
833
+ <div class="demo-card-fixed__preview">
834
+ <div class="loader loader--rect-flip"></div>
835
+ </div>
836
+ <div class="demo-card-fixed__info">
837
+ <h4 class="demo-card-fixed__title">rect-flip</h4>
838
+ </div>
839
+ <div class="demo-card-fixed__code">
840
+ <code>&lt;div class="loader loader--rect-flip"&gt;&lt;/div&gt;</code>
841
+ </div>
842
+ </div>
843
+ <div class="demo-card-fixed">
844
+ <div class="demo-card-fixed__preview">
845
+ <div class="loader loader--rect-morph"></div>
846
+ </div>
847
+ <div class="demo-card-fixed__info">
848
+ <h4 class="demo-card-fixed__title">rect-morph</h4>
849
+ </div>
850
+ <div class="demo-card-fixed__code">
851
+ <code>&lt;div class="loader loader--rect-morph"&gt;&lt;/div&gt;</code>
852
+ </div>
853
+ </div>
854
+ <div class="demo-card-fixed">
855
+ <div class="demo-card-fixed__preview">
856
+ <div class="loader loader--rect-nested"></div>
857
+ </div>
858
+ <div class="demo-card-fixed__info">
859
+ <h4 class="demo-card-fixed__title">rect-nested</h4>
860
+ </div>
861
+ <div class="demo-card-fixed__code">
862
+ <code>&lt;div class="loader loader--rect-nested"&gt;&lt;/div&gt;</code>
863
+ </div>
864
+ </div>
865
+ <div class="demo-card-fixed">
866
+ <div class="demo-card-fixed__preview">
867
+ <div class="loader loader--rect-shrink"></div>
868
+ </div>
869
+ <div class="demo-card-fixed__info">
870
+ <h4 class="demo-card-fixed__title">rect-shrink</h4>
871
+ </div>
872
+ <div class="demo-card-fixed__code">
873
+ <code>&lt;div class="loader loader--rect-shrink"&gt;&lt;/div&gt;</code>
874
+ </div>
875
+ </div>
876
+ <div class="demo-card-fixed">
877
+ <div class="demo-card-fixed__preview">
878
+ <div class="loader loader--rect-stepped"></div>
879
+ </div>
880
+ <div class="demo-card-fixed__info">
881
+ <h4 class="demo-card-fixed__title">rect-stepped</h4>
882
+ </div>
883
+ <div class="demo-card-fixed__code">
884
+ <code>&lt;div class="loader loader--rect-stepped"&gt;&lt;/div&gt;</code>
885
+ </div>
886
+ </div>
887
+ <div class="demo-card-fixed">
888
+ <div class="demo-card-fixed__preview">
889
+ <div class="loader loader--rect-walk"></div>
890
+ </div>
891
+ <div class="demo-card-fixed__info">
892
+ <h4 class="demo-card-fixed__title">rect-walk</h4>
893
+ </div>
894
+ <div class="demo-card-fixed__code">
895
+ <code>&lt;div class="loader loader--rect-walk"&gt;&lt;/div&gt;</code>
896
+ </div>
897
+ </div>
898
+ <div class="demo-card-fixed">
899
+ <div class="demo-card-fixed__preview">
900
+ <div class="loader loader--folding"></div>
901
+ </div>
902
+ <div class="demo-card-fixed__info">
903
+ <h4 class="demo-card-fixed__title">folding</h4>
904
+ </div>
905
+ <div class="demo-card-fixed__code">
906
+ <code>&lt;div class="loader loader--folding"&gt;&lt;/div&gt;</code>
907
+ </div>
908
+ </div>
909
+ <div class="demo-card-fixed">
910
+ <div class="demo-card-fixed__preview">
911
+ <div class="loader loader--flip-card"></div>
912
+ </div>
913
+ <div class="demo-card-fixed__info">
914
+ <h4 class="demo-card-fixed__title">flip-card</h4>
915
+ </div>
916
+ <div class="demo-card-fixed__code">
917
+ <code>&lt;div class="loader loader--flip-card"&gt;&lt;/div&gt;</code>
918
+ </div>
919
+ </div>
920
+ </div>
921
+
922
+
923
+ <h2 class="demo-section-title">💫 Pulse & Ripple</h2>
924
+ <p class="demo-section-desc">Pulsating and ripple effect animations</p>
925
+ <div class="demo-grid-fixed">
926
+ <div class="demo-card-fixed">
927
+ <div class="demo-card-fixed__preview">
928
+ <div class="loader loader--pulse"></div>
929
+ </div>
930
+ <div class="demo-card-fixed__info">
931
+ <h4 class="demo-card-fixed__title">pulse</h4>
932
+ </div>
933
+ <div class="demo-card-fixed__code">
934
+ <code>&lt;div class="loader loader--pulse"&gt;&lt;/div&gt;</code>
935
+ </div>
936
+ </div>
937
+ <div class="demo-card-fixed">
938
+ <div class="demo-card-fixed__preview">
939
+ <div class="loader loader--ripple"></div>
940
+ </div>
941
+ <div class="demo-card-fixed__info">
942
+ <h4 class="demo-card-fixed__title">ripple</h4>
943
+ </div>
944
+ <div class="demo-card-fixed__code">
945
+ <code>&lt;div class="loader loader--ripple"&gt;&lt;/div&gt;</code>
946
+ </div>
947
+ </div>
948
+ <div class="demo-card-fixed">
949
+ <div class="demo-card-fixed__preview">
950
+ <div class="loader loader--bounce"></div>
951
+ </div>
952
+ <div class="demo-card-fixed__info">
953
+ <h4 class="demo-card-fixed__title">bounce</h4>
954
+ </div>
955
+ <div class="demo-card-fixed__code">
956
+ <code>&lt;div class="loader loader--bounce"&gt;&lt;/div&gt;</code>
957
+ </div>
958
+ </div>
959
+ <div class="demo-card-fixed">
960
+ <div class="demo-card-fixed__preview">
961
+ <div class="loader loader--bouncing-ball"></div>
962
+ </div>
963
+ <div class="demo-card-fixed__info">
964
+ <h4 class="demo-card-fixed__title">bouncing-ball</h4>
965
+ </div>
966
+ <div class="demo-card-fixed__code">
967
+ <code>&lt;div class="loader loader--bouncing-ball"&gt;&lt;/div&gt;</code>
968
+ </div>
969
+ </div>
970
+ <div class="demo-card-fixed">
971
+ <div class="demo-card-fixed__preview">
972
+ <div class="loader loader--heartbeat"></div>
973
+ </div>
974
+ <div class="demo-card-fixed__info">
975
+ <h4 class="demo-card-fixed__title">heartbeat</h4>
976
+ </div>
977
+ <div class="demo-card-fixed__code">
978
+ <code>&lt;div class="loader loader--heartbeat"&gt;&lt;/div&gt;</code>
979
+ </div>
980
+ </div>
981
+ <div class="demo-card-fixed">
982
+ <div class="demo-card-fixed__preview">
983
+ <div class="loader loader--gradient"></div>
984
+ </div>
985
+ <div class="demo-card-fixed__info">
986
+ <h4 class="demo-card-fixed__title">gradient</h4>
987
+ </div>
988
+ <div class="demo-card-fixed__code">
989
+ <code>&lt;div class="loader loader--gradient"&gt;&lt;/div&gt;</code>
990
+ </div>
991
+ </div>
992
+ <div class="demo-card-fixed">
993
+ <div class="demo-card-fixed__preview">
994
+ <div class="loader loader--morph"></div>
995
+ </div>
996
+ <div class="demo-card-fixed__info">
997
+ <h4 class="demo-card-fixed__title">morph</h4>
998
+ </div>
999
+ <div class="demo-card-fixed__code">
1000
+ <code>&lt;div class="loader loader--morph"&gt;&lt;/div&gt;</code>
1001
+ </div>
1002
+ </div>
1003
+ </div>
1004
+
1005
+
1006
+ <h2 class="demo-section-title">📝 Text</h2>
1007
+ <p class="demo-section-desc">Text-based loading animations</p>
1008
+ <div class="demo-grid-fixed">
1009
+ <div class="demo-card-fixed">
1010
+ <div class="demo-card-fixed__preview">
1011
+ <div class="loader loader--typing"></div>
1012
+ </div>
1013
+ <div class="demo-card-fixed__info">
1014
+ <h4 class="demo-card-fixed__title">typing</h4>
1015
+ </div>
1016
+ <div class="demo-card-fixed__code">
1017
+ <code>&lt;div class="loader loader--typing"&gt;&lt;/div&gt;</code>
1018
+ </div>
1019
+ </div>
1020
+ <div class="demo-card-fixed">
1021
+ <div class="demo-card-fixed__preview">
1022
+ <div class="loader loader--text-typing" data-text="Loading"></div>
1023
+ </div>
1024
+ <div class="demo-card-fixed__info">
1025
+ <h4 class="demo-card-fixed__title">text-typing</h4>
1026
+ </div>
1027
+ <div class="demo-card-fixed__code">
1028
+ <code>&lt;div class="loader loader--text-typing" data-text="Loading"&gt;&lt;/div&gt;</code>
1029
+ </div>
1030
+ </div>
1031
+ <div class="demo-card-fixed">
1032
+ <div class="demo-card-fixed__preview">
1033
+ <div class="loader loader--text-dots" data-text="Loading"></div>
1034
+ </div>
1035
+ <div class="demo-card-fixed__info">
1036
+ <h4 class="demo-card-fixed__title">text-dots</h4>
1037
+ </div>
1038
+ <div class="demo-card-fixed__code">
1039
+ <code>&lt;div class="loader loader--text-dots" data-text="Loading"&gt;&lt;/div&gt;</code>
1040
+ </div>
1041
+ </div>
1042
+ <div class="demo-card-fixed">
1043
+ <div class="demo-card-fixed__preview">
1044
+ <div class="loader loader--text-bounce" data-text="LOADING"></div>
1045
+ </div>
1046
+ <div class="demo-card-fixed__info">
1047
+ <h4 class="demo-card-fixed__title">text-bounce</h4>
1048
+ </div>
1049
+ <div class="demo-card-fixed__code">
1050
+ <code>&lt;div class="loader loader--text-bounce" data-text="LOADING"&gt;&lt;/div&gt;</code>
1051
+ </div>
1052
+ </div>
1053
+ <div class="demo-card-fixed">
1054
+ <div class="demo-card-fixed__preview">
1055
+ <div class="loader loader--text-fade" data-text="Loading"></div>
1056
+ </div>
1057
+ <div class="demo-card-fixed__info">
1058
+ <h4 class="demo-card-fixed__title">text-fade</h4>
1059
+ </div>
1060
+ <div class="demo-card-fixed__code">
1061
+ <code>&lt;div class="loader loader--text-fade" data-text="Loading"&gt;&lt;/div&gt;</code>
1062
+ </div>
1063
+ </div>
1064
+ <div class="demo-card-fixed">
1065
+ <div class="demo-card-fixed__preview">
1066
+ <div class="loader loader--text-fill" data-text="LOAD"></div>
1067
+ </div>
1068
+ <div class="demo-card-fixed__info">
1069
+ <h4 class="demo-card-fixed__title">text-fill</h4>
1070
+ </div>
1071
+ <div class="demo-card-fixed__code">
1072
+ <code>&lt;div class="loader loader--text-fill" data-text="LOAD"&gt;&lt;/div&gt;</code>
1073
+ </div>
1074
+ </div>
1075
+ <div class="demo-card-fixed">
1076
+ <div class="demo-card-fixed__preview">
1077
+ <div class="loader loader--text-gradient" data-text="Loading"></div>
1078
+ </div>
1079
+ <div class="demo-card-fixed__info">
1080
+ <h4 class="demo-card-fixed__title">text-gradient</h4>
1081
+ </div>
1082
+ <div class="demo-card-fixed__code">
1083
+ <code>&lt;div class="loader loader--text-gradient" data-text="Loading"&gt;&lt;/div&gt;</code>
1084
+ </div>
1085
+ </div>
1086
+ <div class="demo-card-fixed">
1087
+ <div class="demo-card-fixed__preview">
1088
+ <div class="loader loader--text-percentage"></div>
1089
+ </div>
1090
+ <div class="demo-card-fixed__info">
1091
+ <h4 class="demo-card-fixed__title">text-percentage</h4>
1092
+ </div>
1093
+ <div class="demo-card-fixed__code">
1094
+ <code>&lt;div class="loader loader--text-percentage"&gt;&lt;/div&gt;</code>
1095
+ </div>
1096
+ </div>
1097
+ <div class="demo-card-fixed">
1098
+ <div class="demo-card-fixed__preview">
1099
+ <div class="loader loader--text-pulse" data-text="Loading"></div>
1100
+ </div>
1101
+ <div class="demo-card-fixed__info">
1102
+ <h4 class="demo-card-fixed__title">text-pulse</h4>
1103
+ </div>
1104
+ <div class="demo-card-fixed__code">
1105
+ <code>&lt;div class="loader loader--text-pulse" data-text="Loading"&gt;&lt;/div&gt;</code>
1106
+ </div>
1107
+ </div>
1108
+ <div class="demo-card-fixed">
1109
+ <div class="demo-card-fixed__preview">
1110
+ <div class="loader loader--text-shake" data-text="Loading"></div>
1111
+ </div>
1112
+ <div class="demo-card-fixed__info">
1113
+ <h4 class="demo-card-fixed__title">text-shake</h4>
1114
+ </div>
1115
+ <div class="demo-card-fixed__code">
1116
+ <code>&lt;div class="loader loader--text-shake" data-text="Loading"&gt;&lt;/div&gt;</code>
1117
+ </div>
1118
+ </div>
1119
+ <div class="demo-card-fixed">
1120
+ <div class="demo-card-fixed__preview">
1121
+ <div class="loader loader--text-spinner"></div>
1122
+ </div>
1123
+ <div class="demo-card-fixed__info">
1124
+ <h4 class="demo-card-fixed__title">text-spinner</h4>
1125
+ </div>
1126
+ <div class="demo-card-fixed__code">
1127
+ <code>&lt;div class="loader loader--text-spinner"&gt;&lt;/div&gt;</code>
1128
+ </div>
1129
+ </div>
1130
+ <div class="demo-card-fixed">
1131
+ <div class="demo-card-fixed__preview">
1132
+ <div class="loader loader--text-spotlight" data-text="Loading"></div>
1133
+ </div>
1134
+ <div class="demo-card-fixed__info">
1135
+ <h4 class="demo-card-fixed__title">text-spotlight</h4>
1136
+ </div>
1137
+ <div class="demo-card-fixed__code">
1138
+ <code>&lt;div class="loader loader--text-spotlight" data-text="Loading"&gt;&lt;/div&gt;</code>
1139
+ </div>
1140
+ </div>
1141
+ <div class="demo-card-fixed">
1142
+ <div class="demo-card-fixed__preview">
1143
+ <div class="loader loader--text-wave" data-text="Loading"></div>
1144
+ </div>
1145
+ <div class="demo-card-fixed__info">
1146
+ <h4 class="demo-card-fixed__title">text-wave</h4>
1147
+ </div>
1148
+ <div class="demo-card-fixed__code">
1149
+ <code>&lt;div class="loader loader--text-wave" data-text="Loading"&gt;&lt;/div&gt;</code>
1150
+ </div>
1151
+ </div>
1152
+ <div class="demo-card-fixed">
1153
+ <div class="demo-card-fixed__preview">
1154
+ <div class="loader loader--brackets"></div>
1155
+ </div>
1156
+ <div class="demo-card-fixed__info">
1157
+ <h4 class="demo-card-fixed__title">brackets</h4>
1158
+ </div>
1159
+ <div class="demo-card-fixed__code">
1160
+ <code>&lt;div class="loader loader--brackets"&gt;&lt;/div&gt;</code>
1161
+ </div>
1162
+ </div>
1163
+ </div>
1164
+
1165
+
1166
+ <h2 class="demo-section-title">💀 Skeleton</h2>
1167
+ <p class="demo-section-desc">Placeholder loading effects for content</p>
1168
+ <div class="demo-grid-fixed">
1169
+ <div class="demo-card-fixed">
1170
+ <div class="demo-card-fixed__preview">
1171
+ <div class="loader loader--skeleton-shimmer" style="width: 100%; height: 40px;"></div>
1172
+ </div>
1173
+ <div class="demo-card-fixed__info">
1174
+ <h4 class="demo-card-fixed__title">skeleton-shimmer</h4>
1175
+ </div>
1176
+ <div class="demo-card-fixed__code">
1177
+ <code>&lt;div class="loader loader--skeleton-shimmer"&gt;&lt;/div&gt;</code>
1178
+ </div>
1179
+ </div>
1180
+ <div class="demo-card-fixed">
1181
+ <div class="demo-card-fixed__preview">
1182
+ <div class="loader loader--skeleton-pulse" style="width: 100%; height: 40px;"></div>
1183
+ </div>
1184
+ <div class="demo-card-fixed__info">
1185
+ <h4 class="demo-card-fixed__title">skeleton-pulse</h4>
1186
+ </div>
1187
+ <div class="demo-card-fixed__code">
1188
+ <code>&lt;div class="loader loader--skeleton-pulse"&gt;&lt;/div&gt;</code>
1189
+ </div>
1190
+ </div>
1191
+ <div class="demo-card-fixed">
1192
+ <div class="demo-card-fixed__preview">
1193
+ <div class="loader loader--skeleton-wave" style="width: 100%; height: 40px;"></div>
1194
+ </div>
1195
+ <div class="demo-card-fixed__info">
1196
+ <h4 class="demo-card-fixed__title">skeleton-wave</h4>
1197
+ </div>
1198
+ <div class="demo-card-fixed__code">
1199
+ <code>&lt;div class="loader loader--skeleton-wave"&gt;&lt;/div&gt;</code>
1200
+ </div>
1201
+ </div>
1202
+ <div class="demo-card-fixed">
1203
+ <div class="demo-card-fixed__preview">
1204
+ <div class="loader loader--skeleton-fade" style="width: 100%; height: 40px;"></div>
1205
+ </div>
1206
+ <div class="demo-card-fixed__info">
1207
+ <h4 class="demo-card-fixed__title">skeleton-fade</h4>
1208
+ </div>
1209
+ <div class="demo-card-fixed__code">
1210
+ <code>&lt;div class="loader loader--skeleton-fade"&gt;&lt;/div&gt;</code>
1211
+ </div>
1212
+ </div>
1213
+ </div>
1214
+
1215
+
1216
+ <h2 class="demo-section-title">🎨 Graphic</h2>
1217
+ <p class="demo-section-desc">Visually distinctive animated loaders</p>
1218
+ <div class="demo-grid-fixed">
1219
+ <div class="demo-card-fixed">
1220
+ <div class="demo-card-fixed__preview">
1221
+ <div class="loader loader--orbit"></div>
1222
+ </div>
1223
+ <div class="demo-card-fixed__info">
1224
+ <h4 class="demo-card-fixed__title">orbit</h4>
1225
+ </div>
1226
+ <div class="demo-card-fixed__code">
1227
+ <code>&lt;div class="loader loader--orbit"&gt;&lt;/div&gt;</code>
1228
+ </div>
1229
+ </div>
1230
+ <div class="demo-card-fixed">
1231
+ <div class="demo-card-fixed__preview">
1232
+ <div class="loader loader--atom"></div>
1233
+ </div>
1234
+ <div class="demo-card-fixed__info">
1235
+ <h4 class="demo-card-fixed__title">atom</h4>
1236
+ </div>
1237
+ <div class="demo-card-fixed__code">
1238
+ <code>&lt;div class="loader loader--atom"&gt;&lt;/div&gt;</code>
1239
+ </div>
1240
+ </div>
1241
+ <div class="demo-card-fixed">
1242
+ <div class="demo-card-fixed__preview">
1243
+ <div class="loader loader--dna"></div>
1244
+ </div>
1245
+ <div class="demo-card-fixed__info">
1246
+ <h4 class="demo-card-fixed__title">dna</h4>
1247
+ </div>
1248
+ <div class="demo-card-fixed__code">
1249
+ <code>&lt;div class="loader loader--dna"&gt;&lt;/div&gt;</code>
1250
+ </div>
1251
+ </div>
1252
+ <div class="demo-card-fixed">
1253
+ <div class="demo-card-fixed__preview">
1254
+ <div class="loader loader--infinity"></div>
1255
+ </div>
1256
+ <div class="demo-card-fixed__info">
1257
+ <h4 class="demo-card-fixed__title">infinity</h4>
1258
+ </div>
1259
+ <div class="demo-card-fixed__code">
1260
+ <code>&lt;div class="loader loader--infinity"&gt;&lt;/div&gt;</code>
1261
+ </div>
1262
+ </div>
1263
+ <div class="demo-card-fixed">
1264
+ <div class="demo-card-fixed__preview">
1265
+ <div class="loader loader--star"></div>
1266
+ </div>
1267
+ <div class="demo-card-fixed__info">
1268
+ <h4 class="demo-card-fixed__title">star</h4>
1269
+ </div>
1270
+ <div class="demo-card-fixed__code">
1271
+ <code>&lt;div class="loader loader--star"&gt;&lt;/div&gt;</code>
1272
+ </div>
1273
+ </div>
1274
+ <div class="demo-card-fixed">
1275
+ <div class="demo-card-fixed__preview">
1276
+ <div class="loader loader--heart"></div>
1277
+ </div>
1278
+ <div class="demo-card-fixed__info">
1279
+ <h4 class="demo-card-fixed__title">heart</h4>
1280
+ </div>
1281
+ <div class="demo-card-fixed__code">
1282
+ <code>&lt;div class="loader loader--heart"&gt;&lt;/div&gt;</code>
1283
+ </div>
1284
+ </div>
1285
+ <div class="demo-card-fixed">
1286
+ <div class="demo-card-fixed__preview">
1287
+ <div class="loader loader--wifi"></div>
1288
+ </div>
1289
+ <div class="demo-card-fixed__info">
1290
+ <h4 class="demo-card-fixed__title">wifi</h4>
1291
+ </div>
1292
+ <div class="demo-card-fixed__code">
1293
+ <code>&lt;div class="loader loader--wifi"&gt;&lt;/div&gt;</code>
1294
+ </div>
1295
+ </div>
1296
+ <div class="demo-card-fixed">
1297
+ <div class="demo-card-fixed__preview">
1298
+ <div class="loader loader--gear"></div>
1299
+ </div>
1300
+ <div class="demo-card-fixed__info">
1301
+ <h4 class="demo-card-fixed__title">gear</h4>
1302
+ </div>
1303
+ <div class="demo-card-fixed__code">
1304
+ <code>&lt;div class="loader loader--gear"&gt;&lt;/div&gt;</code>
1305
+ </div>
1306
+ </div>
1307
+ </div>
1308
+
1309
+
1310
+ <h2 class="demo-section-title">🎭 Objects</h2>
1311
+ <p class="demo-section-desc">Real-world object inspired loaders</p>
1312
+ <div class="demo-grid-fixed">
1313
+ <div class="demo-card-fixed">
1314
+ <div class="demo-card-fixed__preview">
1315
+ <div class="loader loader--hourglass"></div>
1316
+ </div>
1317
+ <div class="demo-card-fixed__info">
1318
+ <h4 class="demo-card-fixed__title">hourglass</h4>
1319
+ </div>
1320
+ <div class="demo-card-fixed__code">
1321
+ <code>&lt;div class="loader loader--hourglass"&gt;&lt;/div&gt;</code>
1322
+ </div>
1323
+ </div>
1324
+ <div class="demo-card-fixed">
1325
+ <div class="demo-card-fixed__preview">
1326
+ <div class="loader loader--clock"></div>
1327
+ </div>
1328
+ <div class="demo-card-fixed__info">
1329
+ <h4 class="demo-card-fixed__title">clock</h4>
1330
+ </div>
1331
+ <div class="demo-card-fixed__code">
1332
+ <code>&lt;div class="loader loader--clock"&gt;&lt;/div&gt;</code>
1333
+ </div>
1334
+ </div>
1335
+ <div class="demo-card-fixed">
1336
+ <div class="demo-card-fixed__preview">
1337
+ <div class="loader loader--battery"></div>
1338
+ </div>
1339
+ <div class="demo-card-fixed__info">
1340
+ <h4 class="demo-card-fixed__title">battery</h4>
1341
+ </div>
1342
+ <div class="demo-card-fixed__code">
1343
+ <code>&lt;div class="loader loader--battery"&gt;&lt;/div&gt;</code>
1344
+ </div>
1345
+ </div>
1346
+ <div class="demo-card-fixed">
1347
+ <div class="demo-card-fixed__preview">
1348
+ <div class="loader loader--book"></div>
1349
+ </div>
1350
+ <div class="demo-card-fixed__info">
1351
+ <h4 class="demo-card-fixed__title">book</h4>
1352
+ </div>
1353
+ <div class="demo-card-fixed__code">
1354
+ <code>&lt;div class="loader loader--book"&gt;&lt;/div&gt;</code>
1355
+ </div>
1356
+ </div>
1357
+ <div class="demo-card-fixed">
1358
+ <div class="demo-card-fixed__preview">
1359
+ <div class="loader loader--clipboard"></div>
1360
+ </div>
1361
+ <div class="demo-card-fixed__info">
1362
+ <h4 class="demo-card-fixed__title">clipboard</h4>
1363
+ </div>
1364
+ <div class="demo-card-fixed__code">
1365
+ <code>&lt;div class="loader loader--clipboard"&gt;&lt;/div&gt;</code>
1366
+ </div>
1367
+ </div>
1368
+ <div class="demo-card-fixed">
1369
+ <div class="demo-card-fixed__preview">
1370
+ <div class="loader loader--coin"></div>
1371
+ </div>
1372
+ <div class="demo-card-fixed__info">
1373
+ <h4 class="demo-card-fixed__title">coin</h4>
1374
+ </div>
1375
+ <div class="demo-card-fixed__code">
1376
+ <code>&lt;div class="loader loader--coin"&gt;&lt;/div&gt;</code>
1377
+ </div>
1378
+ </div>
1379
+ <div class="demo-card-fixed">
1380
+ <div class="demo-card-fixed__preview">
1381
+ <div class="loader loader--document"></div>
1382
+ </div>
1383
+ <div class="demo-card-fixed__info">
1384
+ <h4 class="demo-card-fixed__title">document</h4>
1385
+ </div>
1386
+ <div class="demo-card-fixed__code">
1387
+ <code>&lt;div class="loader loader--document"&gt;&lt;/div&gt;</code>
1388
+ </div>
1389
+ </div>
1390
+ <div class="demo-card-fixed">
1391
+ <div class="demo-card-fixed__preview">
1392
+ <div class="loader loader--envelope"></div>
1393
+ </div>
1394
+ <div class="demo-card-fixed__info">
1395
+ <h4 class="demo-card-fixed__title">envelope</h4>
1396
+ </div>
1397
+ <div class="demo-card-fixed__code">
1398
+ <code>&lt;div class="loader loader--envelope"&gt;&lt;/div&gt;</code>
1399
+ </div>
1400
+ </div>
1401
+ <div class="demo-card-fixed">
1402
+ <div class="demo-card-fixed__preview">
1403
+ <div class="loader loader--search"></div>
1404
+ </div>
1405
+ <div class="demo-card-fixed__info">
1406
+ <h4 class="demo-card-fixed__title">search</h4>
1407
+ </div>
1408
+ <div class="demo-card-fixed__code">
1409
+ <code>&lt;div class="loader loader--search"&gt;&lt;/div&gt;</code>
1410
+ </div>
1411
+ </div>
1412
+ </div>
1413
+
1414
+
1415
+ <h2 class="demo-section-title">⚛️ Physics</h2>
1416
+ <p class="demo-section-desc">Motion-based physics animations</p>
1417
+ <div class="demo-grid-fixed">
1418
+ <div class="demo-card-fixed">
1419
+ <div class="demo-card-fixed__preview">
1420
+ <div class="loader loader--pendulum"></div>
1421
+ </div>
1422
+ <div class="demo-card-fixed__info">
1423
+ <h4 class="demo-card-fixed__title">pendulum</h4>
1424
+ </div>
1425
+ <div class="demo-card-fixed__code">
1426
+ <code>&lt;div class="loader loader--pendulum"&gt;&lt;/div&gt;</code>
1427
+ </div>
1428
+ </div>
1429
+ <div class="demo-card-fixed">
1430
+ <div class="demo-card-fixed__preview">
1431
+ <div class="loader loader--seesaw"></div>
1432
+ </div>
1433
+ <div class="demo-card-fixed__info">
1434
+ <h4 class="demo-card-fixed__title">seesaw</h4>
1435
+ </div>
1436
+ <div class="demo-card-fixed__code">
1437
+ <code>&lt;div class="loader loader--seesaw"&gt;&lt;/div&gt;</code>
1438
+ </div>
1439
+ </div>
1440
+ <div class="demo-card-fixed">
1441
+ <div class="demo-card-fixed__preview">
1442
+ <div class="loader loader--ping-pong"></div>
1443
+ </div>
1444
+ <div class="demo-card-fixed__info">
1445
+ <h4 class="demo-card-fixed__title">ping-pong</h4>
1446
+ </div>
1447
+ <div class="demo-card-fixed__code">
1448
+ <code>&lt;div class="loader loader--ping-pong"&gt;&lt;/div&gt;</code>
1449
+ </div>
1450
+ </div>
1451
+ <div class="demo-card-fixed">
1452
+ <div class="demo-card-fixed__preview">
1453
+ <div class="loader loader--rolling-rock"></div>
1454
+ </div>
1455
+ <div class="demo-card-fixed__info">
1456
+ <h4 class="demo-card-fixed__title">rolling-rock</h4>
1457
+ </div>
1458
+ <div class="demo-card-fixed__code">
1459
+ <code>&lt;div class="loader loader--rolling-rock"&gt;&lt;/div&gt;</code>
1460
+ </div>
1461
+ </div>
1462
+ </div>
1463
+
1464
+ </section>
1465
+ </div>
1466
+ </main>
1467
+
1468
+ <footer class="footer">
1469
+ <div class="footer__content">
1470
+ <div class="footer__left">
1471
+ <span class="footer__brand">move.gl</span>
1472
+ <span class="footer__tagline">Motion & Animation Library</span>
1473
+ </div>
1474
+ <div class="footer__right">
1475
+ <div class="footer__links">
1476
+ <a href="https://github.com/stylescape/move.gl" class="footer__link" target="_blank">GitHub</a>
1477
+ <a href="https://www.npmjs.com/package/move.gl" class="footer__link" target="_blank">npm</a>
1478
+ <a href="https://www.scape.agency" class="footer__link" target="_blank">Scape Agency</a>
1479
+ </div>
1480
+ <span class="footer__copyright">© 2024 Scape Agency. MIT License.</span>
1481
+ </div>
1482
+ </div>
1483
+ </footer>
1484
+
1485
+ <!-- Core Scripts -->
1486
+ <script type="module" src="/js/move.gl.js"></script>
1487
+ <script type="module" src="/js/demo.js"></script></body>
1488
+
1489
+ </html>