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