react-loadly 2.1.1 → 2.3.0
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/README.md +473 -11
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +119 -46
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/types/@types/index.d.ts +15 -0
- package/dist/types/@types/index.d.ts.map +1 -1
- package/dist/types/@types/interfaces/IBarsLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IBarsLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IBaseLoaderProps.d.ts +0 -2
- package/dist/types/@types/interfaces/IBaseLoaderProps.d.ts.map +1 -1
- package/dist/types/@types/interfaces/IBounceLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IBounceLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IDotsLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IDotsLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IFluidLoaderProps.d.ts +1 -0
- package/dist/types/@types/interfaces/IFluidLoaderProps.d.ts.map +1 -1
- package/dist/types/@types/interfaces/IGeometricLoaderProps.d.ts +2 -0
- package/dist/types/@types/interfaces/IGeometricLoaderProps.d.ts.map +1 -1
- package/dist/types/@types/interfaces/IHashtagLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IHashtagLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IOrbitLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IOrbitLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IPlaneLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IPlaneLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IProgressRingLoaderProps.d.ts +2 -0
- package/dist/types/@types/interfaces/IProgressRingLoaderProps.d.ts.map +1 -1
- package/dist/types/@types/interfaces/IRippleLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IRippleLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IRotateLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IRotateLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/ISnakeLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/ISnakeLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/ISquaresLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/ISquaresLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/IStairLoaderProps.d.ts +7 -0
- package/dist/types/@types/interfaces/IStairLoaderProps.d.ts.map +1 -0
- package/dist/types/@types/interfaces/index.d.ts +11 -0
- package/dist/types/@types/interfaces/index.d.ts.map +1 -1
- package/dist/types/components/organisms/BarsLoader.d.ts +2 -2
- package/dist/types/components/organisms/BarsLoader.d.ts.map +1 -1
- package/dist/types/components/organisms/BounceLoader.d.ts +2 -2
- package/dist/types/components/organisms/BounceLoader.d.ts.map +1 -1
- package/dist/types/components/organisms/DotsLoader.d.ts +2 -2
- package/dist/types/components/organisms/DotsLoader.d.ts.map +1 -1
- package/dist/types/components/organisms/ElementLoader.d.ts.map +1 -1
- package/dist/types/components/organisms/HashtagLoader.d.ts +4 -0
- package/dist/types/components/organisms/HashtagLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/OrbitLoader.d.ts +4 -0
- package/dist/types/components/organisms/OrbitLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/PlaneLoader.d.ts +4 -0
- package/dist/types/components/organisms/PlaneLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/ProgressRingLoader.d.ts.map +1 -1
- package/dist/types/components/organisms/RippleLoader.d.ts +4 -0
- package/dist/types/components/organisms/RippleLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/RotateLoader.d.ts +2 -2
- package/dist/types/components/organisms/RotateLoader.d.ts.map +1 -1
- package/dist/types/components/organisms/SnakeLoader.d.ts +4 -0
- package/dist/types/components/organisms/SnakeLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/SquaresLoader.d.ts +4 -0
- package/dist/types/components/organisms/SquaresLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/StairLoader.d.ts +4 -0
- package/dist/types/components/organisms/StairLoader.d.ts.map +1 -0
- package/dist/types/components/organisms/index.d.ts +8 -1
- package/dist/types/components/organisms/index.d.ts.map +1 -1
- package/dist/types/examples/AutoSkeletonAPIExample.d.ts +3 -0
- package/dist/types/examples/AutoSkeletonAPIExample.d.ts.map +1 -0
- package/dist/types/examples/AutoSkeletonExample.d.ts.map +1 -0
- package/dist/types/examples/BarsExample.d.ts +3 -0
- package/dist/types/examples/BarsExample.d.ts.map +1 -0
- package/dist/types/examples/BounceExample.d.ts +3 -0
- package/dist/types/examples/BounceExample.d.ts.map +1 -0
- package/dist/types/examples/DotsExample.d.ts +3 -0
- package/dist/types/examples/DotsExample.d.ts.map +1 -0
- package/dist/types/examples/ElementExample.d.ts +3 -0
- package/dist/types/examples/ElementExample.d.ts.map +1 -0
- package/dist/types/examples/HashtagExample.d.ts +3 -0
- package/dist/types/examples/HashtagExample.d.ts.map +1 -0
- package/dist/types/examples/OrbitExample.d.ts +3 -0
- package/dist/types/examples/OrbitExample.d.ts.map +1 -0
- package/dist/types/examples/PlaneExample.d.ts +3 -0
- package/dist/types/examples/PlaneExample.d.ts.map +1 -0
- package/dist/types/examples/ProgressRingExample.d.ts +3 -0
- package/dist/types/examples/ProgressRingExample.d.ts.map +1 -0
- package/dist/types/examples/RippleExample.d.ts +3 -0
- package/dist/types/examples/RippleExample.d.ts.map +1 -0
- package/dist/types/examples/RotateExample.d.ts +3 -0
- package/dist/types/examples/RotateExample.d.ts.map +1 -0
- package/dist/types/examples/SnakeExample.d.ts +3 -0
- package/dist/types/examples/SnakeExample.d.ts.map +1 -0
- package/dist/types/examples/SquaresExample.d.ts +3 -0
- package/dist/types/examples/SquaresExample.d.ts.map +1 -0
- package/dist/types/examples/StairExample.d.ts +3 -0
- package/dist/types/examples/StairExample.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/types/AutoSkeletonExample.d.ts.map +0 -1
- /package/dist/types/{AutoSkeletonExample.d.ts → examples/AutoSkeletonExample.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -25,6 +25,28 @@ Perfect for building **React apps, dashboards, forms, and data-driven UIs** wher
|
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
|
+
## 🆕 What's New
|
|
29
|
+
|
|
30
|
+
We've added **7 exciting new loaders** to expand your loading animation options:
|
|
31
|
+
|
|
32
|
+
1. **OrbitLoader** - Beautiful orbiting elements around a central point
|
|
33
|
+
2. **PlaneLoader** - 3D rotating cube with perspective transforms
|
|
34
|
+
3. **RippleLoader** - Expanding ripple rings from a central point
|
|
35
|
+
4. **SquaresLoader** - Multiple rotating squares with dynamic grid effect
|
|
36
|
+
5. **StairLoader** - Cascading stair steps with progress-like effect
|
|
37
|
+
6. **HashtagLoader** - Animated hashtag with progressive drawing
|
|
38
|
+
7. **SnakeLoader** - Snake-like slithering animation with flowing segments
|
|
39
|
+
|
|
40
|
+
All new loaders support:
|
|
41
|
+
|
|
42
|
+
- ✅ Customizable colors with `secondaryColor` prop
|
|
43
|
+
- ✅ Adjustable element count (where applicable)
|
|
44
|
+
- ✅ Fullscreen mode support
|
|
45
|
+
- ✅ Accessibility features (ARIA labels, reduced motion)
|
|
46
|
+
- ✅ Performance optimizations with hardware acceleration
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
28
50
|
## 🚀 Getting Started
|
|
29
51
|
|
|
30
52
|
### Installation
|
|
@@ -84,16 +106,23 @@ function App() {
|
|
|
84
106
|
|
|
85
107
|
### Geometric Loaders
|
|
86
108
|
|
|
87
|
-
| Component
|
|
88
|
-
|
|
|
89
|
-
| `SpinLoader`
|
|
90
|
-
| `PulseLoader`
|
|
91
|
-
| `WaveLoader`
|
|
92
|
-
| `GridLoader`
|
|
93
|
-
| `RingLoader`
|
|
94
|
-
| `BarsLoader`
|
|
95
|
-
| `BounceLoader`
|
|
96
|
-
| `RotateLoader`
|
|
109
|
+
| Component | Description |
|
|
110
|
+
| --------------- | ---------------------------------------------------------------------------- |
|
|
111
|
+
| `SpinLoader` | A classic spinner with a minimalist design. |
|
|
112
|
+
| `PulseLoader` | A dynamic animation of pulsing dots. |
|
|
113
|
+
| `WaveLoader` | A series of bars creating a wave-like effect. |
|
|
114
|
+
| `GridLoader` | A grid of squares that animate in sequence. |
|
|
115
|
+
| `RingLoader` | A sophisticated ring spinner with dual rotation. |
|
|
116
|
+
| `BarsLoader` | Animated bars with staggered timing. |
|
|
117
|
+
| `BounceLoader` | Bouncing dots with elastic animation. |
|
|
118
|
+
| `RotateLoader` | 3D rotating elements with depth. |
|
|
119
|
+
| `OrbitLoader` | Orbiting elements around a central point with customizable count and colors. |
|
|
120
|
+
| `PlaneLoader` | 3D rotating cube with perspective transforms. |
|
|
121
|
+
| `SquaresLoader` | Multiple rotating squares with varying delays and scales. |
|
|
122
|
+
| `StairLoader` | Cascading stair steps creating a progress effect. |
|
|
123
|
+
| `HashtagLoader` | Animated hashtag symbol with progressive drawing effect. |
|
|
124
|
+
| `SnakeLoader` | Snake-like slithering animation with flowing segments. |
|
|
125
|
+
| `RippleLoader` | Expanding ripple rings from a central point. |
|
|
97
126
|
|
|
98
127
|
---
|
|
99
128
|
|
|
@@ -358,6 +387,278 @@ All other props are inherited from `IBaseLoaderProps`.
|
|
|
358
387
|
|
|
359
388
|
---
|
|
360
389
|
|
|
390
|
+
### OrbitLoader Component
|
|
391
|
+
|
|
392
|
+
The `OrbitLoader` creates a beautiful orbital animation with elements rotating around a central point, similar to planets orbiting a star.
|
|
393
|
+
|
|
394
|
+
#### Basic Usage
|
|
395
|
+
|
|
396
|
+
```jsx
|
|
397
|
+
import { OrbitLoader } from "react-loadly";
|
|
398
|
+
|
|
399
|
+
function App() {
|
|
400
|
+
return (
|
|
401
|
+
<div>
|
|
402
|
+
{/* Default with 3 orbiting elements */}
|
|
403
|
+
<OrbitLoader />
|
|
404
|
+
|
|
405
|
+
{/* Custom number of orbiting elements */}
|
|
406
|
+
<OrbitLoader count={5} />
|
|
407
|
+
|
|
408
|
+
{/* With secondary color */}
|
|
409
|
+
<OrbitLoader count={4} color="#3b82f6" secondaryColor="#f59e0b" />
|
|
410
|
+
</div>
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
#### OrbitLoader Props
|
|
416
|
+
|
|
417
|
+
| Prop | Type | Default | Description |
|
|
418
|
+
| ---------------- | ---------------- | --------- | ---------------------------------------- |
|
|
419
|
+
| `count` | number | 3 | Number of orbiting elements |
|
|
420
|
+
| `secondaryColor` | string | undefined | Secondary color for alternating elements |
|
|
421
|
+
| `size` | number \| string | 60 | Size of the loader |
|
|
422
|
+
| `color` | string | "#6366f1" | Primary color of the orbit elements |
|
|
423
|
+
| `speed` | number | 1 | Animation speed multiplier |
|
|
424
|
+
|
|
425
|
+
All other props are inherited from `IBaseLoaderProps`.
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
### PlaneLoader Component
|
|
430
|
+
|
|
431
|
+
The `PlaneLoader` displays a 3D rotating cube with perspective transforms, creating a modern 3D loading experience.
|
|
432
|
+
|
|
433
|
+
#### Basic Usage
|
|
434
|
+
|
|
435
|
+
```jsx
|
|
436
|
+
import { PlaneLoader } from "react-loadly";
|
|
437
|
+
|
|
438
|
+
function App() {
|
|
439
|
+
return (
|
|
440
|
+
<div>
|
|
441
|
+
{/* Default cube */}
|
|
442
|
+
<PlaneLoader />
|
|
443
|
+
|
|
444
|
+
{/* Custom size and color */}
|
|
445
|
+
<PlaneLoader size={60} color="#10b981" />
|
|
446
|
+
|
|
447
|
+
{/* With secondary color for cube faces */}
|
|
448
|
+
<PlaneLoader size={70} color="#3b82f6" secondaryColor="#8b5cf6" />
|
|
449
|
+
</div>
|
|
450
|
+
);
|
|
451
|
+
}
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
#### PlaneLoader Props
|
|
455
|
+
|
|
456
|
+
| Prop | Type | Default | Description |
|
|
457
|
+
| ---------------- | ---------------- | --------- | ----------------------------------- |
|
|
458
|
+
| `secondaryColor` | string | undefined | Color for the cube face backgrounds |
|
|
459
|
+
| `size` | number \| string | 50 | Size of the loader |
|
|
460
|
+
| `color` | string | "#6366f1" | Primary color of the cube edges |
|
|
461
|
+
| `speed` | number | 1 | Animation speed multiplier |
|
|
462
|
+
|
|
463
|
+
All other props are inherited from `IBaseLoaderProps`.
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
### RippleLoader Component
|
|
468
|
+
|
|
469
|
+
The `RippleLoader` creates expanding ripple rings from a central point, similar to water ripples.
|
|
470
|
+
|
|
471
|
+
#### Basic Usage
|
|
472
|
+
|
|
473
|
+
```jsx
|
|
474
|
+
import { RippleLoader } from "react-loadly";
|
|
475
|
+
|
|
476
|
+
function App() {
|
|
477
|
+
return (
|
|
478
|
+
<div>
|
|
479
|
+
{/* Default with 3 ripples */}
|
|
480
|
+
<RippleLoader />
|
|
481
|
+
|
|
482
|
+
{/* Custom number of ripples */}
|
|
483
|
+
<RippleLoader count={5} />
|
|
484
|
+
|
|
485
|
+
{/* With secondary color and custom border width */}
|
|
486
|
+
<RippleLoader count={4} color="#3b82f6" secondaryColor="#8b5cf6" borderWidth={3} />
|
|
487
|
+
</div>
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
#### RippleLoader Props
|
|
493
|
+
|
|
494
|
+
| Prop | Type | Default | Description |
|
|
495
|
+
| ---------------- | ---------------- | --------- | --------------------------------------- |
|
|
496
|
+
| `count` | number | 3 | Number of ripple rings |
|
|
497
|
+
| `secondaryColor` | string | undefined | Secondary color for alternating ripples |
|
|
498
|
+
| `borderWidth` | number | 2 | Width of the ripple border |
|
|
499
|
+
| `size` | number \| string | 50 | Size of the loader |
|
|
500
|
+
| `color` | string | "#6366f1" | Primary color of the ripples |
|
|
501
|
+
| `speed` | number | 1 | Animation speed multiplier |
|
|
502
|
+
|
|
503
|
+
All other props are inherited from `IBaseLoaderProps`.
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
### SquaresLoader Component
|
|
508
|
+
|
|
509
|
+
The `SquaresLoader` displays multiple rotating squares with varying delays and scales for a dynamic grid effect.
|
|
510
|
+
|
|
511
|
+
#### Basic Usage
|
|
512
|
+
|
|
513
|
+
```jsx
|
|
514
|
+
import { SquaresLoader } from "react-loadly";
|
|
515
|
+
|
|
516
|
+
function App() {
|
|
517
|
+
return (
|
|
518
|
+
<div>
|
|
519
|
+
{/* Default with 4 squares */}
|
|
520
|
+
<SquaresLoader />
|
|
521
|
+
|
|
522
|
+
{/* Custom number of squares */}
|
|
523
|
+
<SquaresLoader count={6} />
|
|
524
|
+
|
|
525
|
+
{/* With secondary color */}
|
|
526
|
+
<SquaresLoader count={9} color="#3b82f6" secondaryColor="#f59e0b" />
|
|
527
|
+
</div>
|
|
528
|
+
);
|
|
529
|
+
}
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
#### SquaresLoader Props
|
|
533
|
+
|
|
534
|
+
| Prop | Type | Default | Description |
|
|
535
|
+
| ---------------- | ---------------- | --------- | --------------------------------------- |
|
|
536
|
+
| `count` | number | 4 | Number of squares |
|
|
537
|
+
| `secondaryColor` | string | undefined | Secondary color for alternating squares |
|
|
538
|
+
| `size` | number \| string | 40 | Size of the loader |
|
|
539
|
+
| `color` | string | "#6366f1" | Primary color of the squares |
|
|
540
|
+
| `speed` | number | 1 | Animation speed multiplier |
|
|
541
|
+
|
|
542
|
+
All other props are inherited from `IBaseLoaderProps`.
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
### StairLoader Component
|
|
547
|
+
|
|
548
|
+
The `StairLoader` creates cascading stair steps that animate in sequence, creating a progress-like effect.
|
|
549
|
+
|
|
550
|
+
#### Basic Usage
|
|
551
|
+
|
|
552
|
+
```jsx
|
|
553
|
+
import { StairLoader } from "react-loadly";
|
|
554
|
+
|
|
555
|
+
function App() {
|
|
556
|
+
return (
|
|
557
|
+
<div>
|
|
558
|
+
{/* Default with 5 steps */}
|
|
559
|
+
<StairLoader />
|
|
560
|
+
|
|
561
|
+
{/* Custom number of steps */}
|
|
562
|
+
<StairLoader count={7} />
|
|
563
|
+
|
|
564
|
+
{/* With secondary color */}
|
|
565
|
+
<StairLoader count={6} color="#3b82f6" secondaryColor="#8b5cf6" />
|
|
566
|
+
</div>
|
|
567
|
+
);
|
|
568
|
+
}
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
#### StairLoader Props
|
|
572
|
+
|
|
573
|
+
| Prop | Type | Default | Description |
|
|
574
|
+
| ---------------- | ---------------- | --------- | ------------------------------------- |
|
|
575
|
+
| `count` | number | 5 | Number of stair steps |
|
|
576
|
+
| `secondaryColor` | string | undefined | Secondary color for alternating steps |
|
|
577
|
+
| `size` | number \| string | 35 | Size of the loader |
|
|
578
|
+
| `color` | string | "#6366f1" | Primary color of the steps |
|
|
579
|
+
| `speed` | number | 1 | Animation speed multiplier |
|
|
580
|
+
|
|
581
|
+
All other props are inherited from `IBaseLoaderProps`.
|
|
582
|
+
|
|
583
|
+
---
|
|
584
|
+
|
|
585
|
+
### HashtagLoader Component
|
|
586
|
+
|
|
587
|
+
The `HashtagLoader` animates a hashtag symbol with a progressive drawing effect.
|
|
588
|
+
|
|
589
|
+
#### Basic Usage
|
|
590
|
+
|
|
591
|
+
```jsx
|
|
592
|
+
import { HashtagLoader } from "react-loadly";
|
|
593
|
+
|
|
594
|
+
function App() {
|
|
595
|
+
return (
|
|
596
|
+
<div>
|
|
597
|
+
{/* Default hashtag */}
|
|
598
|
+
<HashtagLoader />
|
|
599
|
+
|
|
600
|
+
{/* Custom size and color */}
|
|
601
|
+
<HashtagLoader size={60} color="#10b981" />
|
|
602
|
+
|
|
603
|
+
{/* With secondary color */}
|
|
604
|
+
<HashtagLoader size={70} color="#3b82f6" secondaryColor="#8b5cf6" />
|
|
605
|
+
</div>
|
|
606
|
+
);
|
|
607
|
+
}
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
#### HashtagLoader Props
|
|
611
|
+
|
|
612
|
+
| Prop | Type | Default | Description |
|
|
613
|
+
| ---------------- | ---------------- | --------- | --------------------------------------------- |
|
|
614
|
+
| `secondaryColor` | string | undefined | Secondary color for alternating path segments |
|
|
615
|
+
| `size` | number \| string | 50 | Size of the loader |
|
|
616
|
+
| `color` | string | "#6366f1" | Primary color of the hashtag stroke |
|
|
617
|
+
| `speed` | number | 1 | Animation speed multiplier |
|
|
618
|
+
|
|
619
|
+
All other props are inherited from `IBaseLoaderProps`.
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
### SnakeLoader Component
|
|
624
|
+
|
|
625
|
+
The `SnakeLoader` creates a snake-like animation with flowing segments that move in a wave pattern.
|
|
626
|
+
|
|
627
|
+
#### Basic Usage
|
|
628
|
+
|
|
629
|
+
```jsx
|
|
630
|
+
import { SnakeLoader } from "react-loadly";
|
|
631
|
+
|
|
632
|
+
function App() {
|
|
633
|
+
return (
|
|
634
|
+
<div>
|
|
635
|
+
{/* Default with 6 segments */}
|
|
636
|
+
<SnakeLoader />
|
|
637
|
+
|
|
638
|
+
{/* Custom number of segments */}
|
|
639
|
+
<SnakeLoader count={8} />
|
|
640
|
+
|
|
641
|
+
{/* With secondary color */}
|
|
642
|
+
<SnakeLoader count={10} color="#3b82f6" secondaryColor="#f59e0b" />
|
|
643
|
+
</div>
|
|
644
|
+
);
|
|
645
|
+
}
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
#### SnakeLoader Props
|
|
649
|
+
|
|
650
|
+
| Prop | Type | Default | Description |
|
|
651
|
+
| ---------------- | ---------------- | --------- | ---------------------------------------- |
|
|
652
|
+
| `count` | number | 6 | Number of snake segments |
|
|
653
|
+
| `secondaryColor` | string | undefined | Secondary color for alternating segments |
|
|
654
|
+
| `size` | number \| string | 60 | Size of the loader |
|
|
655
|
+
| `color` | string | "#6366f1" | Primary color of the snake segments |
|
|
656
|
+
| `speed` | number | 1 | Animation speed multiplier |
|
|
657
|
+
|
|
658
|
+
All other props are inherited from `IBaseLoaderProps`.
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
|
|
361
662
|
## 🦴 SkeletonLoader Component
|
|
362
663
|
|
|
363
664
|
The `SkeletonLoader` is perfect for modern loading states, creating placeholder content that mimics the actual content structure.
|
|
@@ -575,6 +876,88 @@ All other props are inherited from `IBaseLoaderProps`.
|
|
|
575
876
|
|
|
576
877
|
---
|
|
577
878
|
|
|
879
|
+
## 🎨 New Loaders Feature Guide
|
|
880
|
+
|
|
881
|
+
### Using Multiple New Loaders Together
|
|
882
|
+
|
|
883
|
+
Here's how to combine the new loaders for amazing visual effects:
|
|
884
|
+
|
|
885
|
+
```jsx
|
|
886
|
+
import { OrbitLoader, PlaneLoader, RippleLoader, SquaresLoader, StairLoader, HashtagLoader, SnakeLoader } from "react-loadly";
|
|
887
|
+
|
|
888
|
+
function MultiLoaderShowcase() {
|
|
889
|
+
return (
|
|
890
|
+
<div style={{ display: "grid", gridTemplateColumns: "repeat(2, 1fr)", gap: "40px", padding: "40px" }}>
|
|
891
|
+
{/* Orbital system animation */}
|
|
892
|
+
<div style={{ textAlign: "center" }}>
|
|
893
|
+
<h3>OrbitLoader - Space Theme</h3>
|
|
894
|
+
<OrbitLoader size={80} count={5} color="#0ea5e9" secondaryColor="#fbbf24" />
|
|
895
|
+
</div>
|
|
896
|
+
|
|
897
|
+
{/* 3D cube for tech products */}
|
|
898
|
+
<div style={{ textAlign: "center" }}>
|
|
899
|
+
<h3>PlaneLoader - 3D Effect</h3>
|
|
900
|
+
<PlaneLoader size={70} color="#6366f1" secondaryColor="#8b5cf6" />
|
|
901
|
+
</div>
|
|
902
|
+
|
|
903
|
+
{/* Ripple for notifications */}
|
|
904
|
+
<div style={{ textAlign: "center" }}>
|
|
905
|
+
<h3>RippleLoader - Pulse Effect</h3>
|
|
906
|
+
<RippleLoader size={60} count={4} color="#10b981" borderWidth={3} />
|
|
907
|
+
</div>
|
|
908
|
+
|
|
909
|
+
{/* Dynamic grid */}
|
|
910
|
+
<div style={{ textAlign: "center" }}>
|
|
911
|
+
<h3>SquaresLoader - Grid Animation</h3>
|
|
912
|
+
<SquaresLoader size={50} count={6} color="#3b82f6" />
|
|
913
|
+
</div>
|
|
914
|
+
|
|
915
|
+
{/* Progress stairs */}
|
|
916
|
+
<div style={{ textAlign: "center" }}>
|
|
917
|
+
<h3>StairLoader - Step Effect</h3>
|
|
918
|
+
<StairLoader size={45} count={7} color="#f59e0b" />
|
|
919
|
+
</div>
|
|
920
|
+
|
|
921
|
+
{/* Social media hashtag */}
|
|
922
|
+
<div style={{ textAlign: "center" }}>
|
|
923
|
+
<h3>HashtagLoader - Social Media</h3>
|
|
924
|
+
<HashtagLoader size={65} color="#1da1f2" speed={1.5} />
|
|
925
|
+
</div>
|
|
926
|
+
|
|
927
|
+
{/* Flowing snake */}
|
|
928
|
+
<div style={{ textAlign: "center" }}>
|
|
929
|
+
<h3>SnakeLoader - Organic Motion</h3>
|
|
930
|
+
<SnakeLoader size={70} count={8} color="#ec4899" secondaryColor="#8b5cf6" />
|
|
931
|
+
</div>
|
|
932
|
+
</div>
|
|
933
|
+
);
|
|
934
|
+
}
|
|
935
|
+
```
|
|
936
|
+
|
|
937
|
+
### Color Themes for New Loaders
|
|
938
|
+
|
|
939
|
+
All new loaders support `secondaryColor` for beautiful gradient and alternating color effects:
|
|
940
|
+
|
|
941
|
+
```jsx
|
|
942
|
+
// Ocean theme
|
|
943
|
+
<OrbitLoader color="#0ea5e9" secondaryColor="#06b6d4" />
|
|
944
|
+
<RippleLoader color="#0891b2" borderWidth={2} />
|
|
945
|
+
|
|
946
|
+
// Fire theme
|
|
947
|
+
<SnakeLoader color="#f97316" secondaryColor="#ef4444" />
|
|
948
|
+
<StairLoader color="#ff9500" secondaryColor="#ff6b00" />
|
|
949
|
+
|
|
950
|
+
// Purple theme
|
|
951
|
+
<PlaneLoader color="#7c3aed" secondaryColor="#a78bfa" />
|
|
952
|
+
<SquaresLoader color="#8b5cf6" secondaryColor="#c4b5fd" />
|
|
953
|
+
|
|
954
|
+
// Social media theme
|
|
955
|
+
<HashtagLoader color="#1da1f2" /> // Twitter blue
|
|
956
|
+
<HashtagLoader color="#E1306C" /> // Instagram pink
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
---
|
|
960
|
+
|
|
578
961
|
## ⚡ Performance & Best Practices
|
|
579
962
|
|
|
580
963
|
### Performance Optimization
|
|
@@ -713,7 +1096,15 @@ React Loadly provides comprehensive TypeScript definitions for all components an
|
|
|
713
1096
|
import type { IBaseLoaderProps, ISkeletonLoaderProps } from "react-loadly";
|
|
714
1097
|
|
|
715
1098
|
// For component-specific props
|
|
716
|
-
import type {
|
|
1099
|
+
import type {
|
|
1100
|
+
IOrbitLoaderProps,
|
|
1101
|
+
IPlaneLoaderProps,
|
|
1102
|
+
IRippleLoaderProps,
|
|
1103
|
+
ISquaresLoaderProps,
|
|
1104
|
+
IStairLoaderProps,
|
|
1105
|
+
IHashtagLoaderProps,
|
|
1106
|
+
ISnakeLoaderProps
|
|
1107
|
+
} from "react-loadly";
|
|
717
1108
|
|
|
718
1109
|
// For hook return types
|
|
719
1110
|
import type { IUseLoaderStateReturn } from "react-loadly/hooks";
|
|
@@ -725,6 +1116,12 @@ import type { AnimationDirectionType } from "react-loadly";
|
|
|
725
1116
|
|
|
726
1117
|
All types are properly exported and can be used in your TypeScript projects for better type safety and autocompletion.
|
|
727
1118
|
|
|
1119
|
+
**Available Interface Exports:**
|
|
1120
|
+
- `IBaseLoaderProps` - Base props for all loaders
|
|
1121
|
+
- `IGeometricLoaderProps` - Base props for geometric loaders (includes `count`, `secondaryColor`, etc.)
|
|
1122
|
+
- `IOrbitLoaderProps`, `IPlaneLoaderProps`, `IRippleLoaderProps`, etc. - Specific loader props
|
|
1123
|
+
- `ISkeletonLoaderProps`, `IProgressRingLoaderProps`, `IMorphLoaderProps` - Specialized loader props
|
|
1124
|
+
|
|
728
1125
|
Avoid importing directly from internal paths like `react-loadly/types` or `react-loadly/interfaces` as these are not part of the public API and may change.
|
|
729
1126
|
|
|
730
1127
|
### Fullscreen Mode
|
|
@@ -878,6 +1275,71 @@ function ImageGallery({ images, loading }) {
|
|
|
878
1275
|
}
|
|
879
1276
|
```
|
|
880
1277
|
|
|
1278
|
+
### Social Media Feed Loading
|
|
1279
|
+
|
|
1280
|
+
``jsx
|
|
1281
|
+
function SocialFeed({ posts, loading }) {
|
|
1282
|
+
if (loading) {
|
|
1283
|
+
return (
|
|
1284
|
+
<div className="social-feed">
|
|
1285
|
+
{Array.from({ length: 5 }).map((_, i) => (
|
|
1286
|
+
<div key={i} className="feed-card">
|
|
1287
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: '12px', marginBottom: '12px' }}>
|
|
1288
|
+
<SkeletonLoader variant="avatar" size={40} />
|
|
1289
|
+
<SkeletonLoader lines={2} width="80%" />
|
|
1290
|
+
</div>
|
|
1291
|
+
<SkeletonLoader variant="card" width="100%" height={200} />
|
|
1292
|
+
<div style={{ display: 'flex', gap: '8px', marginTop: '12px' }}>
|
|
1293
|
+
<SnakeLoader size={20} count={4} />
|
|
1294
|
+
<span>Processing...</span>
|
|
1295
|
+
</div>
|
|
1296
|
+
</div>
|
|
1297
|
+
))}
|
|
1298
|
+
</div>
|
|
1299
|
+
);
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
return <div className="social-feed">{posts.map(renderPost)}</div>;
|
|
1303
|
+
}
|
|
1304
|
+
```
|
|
1305
|
+
|
|
1306
|
+
### Gaming/Entertainment Loading States
|
|
1307
|
+
|
|
1308
|
+
``jsx
|
|
1309
|
+
function GameLoader() {
|
|
1310
|
+
return (
|
|
1311
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '20px', alignItems: 'center' }}>
|
|
1312
|
+
{/* Futuristic game loading */}
|
|
1313
|
+
<OrbitLoader size={80} count={6} color="#00f5ff" secondaryColor="#ff0080" />
|
|
1314
|
+
|
|
1315
|
+
{/* Social media hashtag */}
|
|
1316
|
+
<HashtagLoader size={60} color="#1da1f2" speed={1.5} />
|
|
1317
|
+
|
|
1318
|
+
{/* Snake game effect */}
|
|
1319
|
+
<SnakeLoader size={70} count={8} color="#10b981" secondaryColor="#f59e0b" />
|
|
1320
|
+
</div>
|
|
1321
|
+
);
|
|
1322
|
+
}
|
|
1323
|
+
```
|
|
1324
|
+
|
|
1325
|
+
### 3D and Modern UI Loading
|
|
1326
|
+
|
|
1327
|
+
``jsx
|
|
1328
|
+
function ModernDashboardLoader() {
|
|
1329
|
+
return (
|
|
1330
|
+
<div className="dashboard-loader">
|
|
1331
|
+
{/* 3D rotating cube for tech products */}
|
|
1332
|
+
<PlaneLoader size={60} color="#6366f1" secondaryColor="#8b5cf6" />
|
|
1333
|
+
|
|
1334
|
+
{/* Ripple effect for notifications */}
|
|
1335
|
+
<RippleLoader size={50} count={4} color="#3b82f6" borderWidth={3} />
|
|
1336
|
+
|
|
1337
|
+
{/* Staircase for progress indication */}
|
|
1338
|
+
<StairLoader count={7} size={40} color="#10b981" />
|
|
1339
|
+
</div>
|
|
1340
|
+
);
|
|
1341
|
+
}
|
|
1342
|
+
|
|
881
1343
|
---
|
|
882
1344
|
|
|
883
1345
|
## 🧩 Advanced Usage
|