loading-state-zoo 0.3.0 → 0.4.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 +38 -71
- package/dist/index.cjs +233 -172
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -17
- package/dist/index.d.ts +11 -17
- package/dist/index.js +230 -169
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +230 -169
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +38 -48
- package/dist/react.d.ts +38 -48
- package/dist/react.js +230 -169
- package/dist/react.js.map +1 -1
- package/dist/theme.css +323 -226
- package/docs/AI.md +12 -10
- package/docs/components.json +69 -108
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# loading-state-zoo
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**30 loading patterns, one tiny package.** Dots, spinners, orbs, AI, shapes, bars, music and skeletons that tell the user "please wait" — made silky smooth and ready to use in **React**, **plain websites**, and **iOS / Android apps**.
|
|
4
4
|
|
|
5
5
|
Think of it as a small zoo of loading animals. You pick an animal, put it in your app's cage, and it starts moving right away. You can even change its **color**, **size** and **speed** — no scissors or glue required.
|
|
6
6
|
|
|
@@ -28,12 +28,11 @@ Think of it as a small zoo of loading animals. You pick an animal, put it in you
|
|
|
28
28
|
| [Scan sweep](#scan-sweep) | Spinner | Radar/sonar, scanning, searching |
|
|
29
29
|
| [Orbit dots](#orbit-dots) | Spinner | Floaty, lightweight loading |
|
|
30
30
|
| [Orbit ring dots](#orbit-ring-dots) | Spinner | Cosmetic ring, data-heavy load |
|
|
31
|
-
| [
|
|
32
|
-
| [
|
|
33
|
-
| [
|
|
34
|
-
| [
|
|
35
|
-
| [
|
|
36
|
-
| [Aura orb](#aura-orb) | Orbs | Gradient waits, brand palettes |
|
|
31
|
+
| [Sonar](#sonar) | Spinner | Radar pings, location detection |
|
|
32
|
+
| [iOS 27 orb](#ios-27-orb) | Orbs | Voice assistants, AI thinking, holographic waits |
|
|
33
|
+
| [AI orb](#ai-orb) | AI | AI assistants, generative waits |
|
|
34
|
+
| [AI thinking](#ai-thinking) | AI | Chat completions, waiting on answers |
|
|
35
|
+
| [AI neural](#ai-neural) | AI | Neural nets, model training |
|
|
37
36
|
| [Eyes](#eyes) | Shape | Fun state, "watching" waiting |
|
|
38
37
|
| [Morphing square](#morphing-square) | Shape | Modern brand moments |
|
|
39
38
|
| [Breathing pulse](#breathing-pulse) | Shape | Subtle, gentle "alive" loading |
|
|
@@ -44,7 +43,6 @@ Think of it as a small zoo of loading animals. You pick an animal, put it in you
|
|
|
44
43
|
| [Activity rings](#activity-rings) | Bars & rings | Fitness, health, Apple Watch style |
|
|
45
44
|
| [Waveform](#waveform) | Music | Audio apps, playing states |
|
|
46
45
|
| [Vinyl](#vinyl) | Music | Music apps, retro feels |
|
|
47
|
-
| [Sonar](#sonar) | Music | Audio pulses, location pings |
|
|
48
46
|
| [Music note](#music-note) | Music | Music players, playful waits |
|
|
49
47
|
| [Skeleton shimmer](#skeleton-shimmer) | Skeleton | Placeholder while real content loads |
|
|
50
48
|
| [Skeleton card](#skeleton-card) | Skeleton | Composite card/feed placeholders |
|
|
@@ -85,7 +83,7 @@ export function MyLoader() {
|
|
|
85
83
|
}
|
|
86
84
|
```
|
|
87
85
|
|
|
88
|
-
That's it. Importing the package **automatically registers** all
|
|
86
|
+
That's it. Importing the package **automatically registers** all 30 elements for you (it's safe to import in many places — duplicates are skipped). It is also safe on the server (SSR/Next.js): on Node there is no browser, so nothing registers and nothing breaks.
|
|
89
87
|
|
|
90
88
|
If you prefer to register manually:
|
|
91
89
|
|
|
@@ -113,7 +111,7 @@ Add the package from a CDN (or bundle it) and write the tags directly in your HT
|
|
|
113
111
|
</div>
|
|
114
112
|
```
|
|
115
113
|
|
|
116
|
-
Mix and match any of the
|
|
114
|
+
Mix and match any of the 30 tags — see the full list below.
|
|
117
115
|
|
|
118
116
|
---
|
|
119
117
|
|
|
@@ -237,9 +235,9 @@ Every number inside every animation is also a CSS variable. Change how far dots
|
|
|
237
235
|
| `--lz-eq-min` | Equalizer | Shortest bar height | `0.3` |
|
|
238
236
|
| `--lz-slide-from` | Indeterminate bar | Slider start position | `-100%` |
|
|
239
237
|
| `--lz-slide-to` | Indeterminate bar | Slider end position | `300%` |
|
|
240
|
-
| `--lz-
|
|
241
|
-
| `--lz-
|
|
242
|
-
| `--lz-
|
|
238
|
+
| `--lz-ios-fade` | iOS 27 orb | Resting dot opacity | `0.2` |
|
|
239
|
+
| `--lz-ios-min` | iOS 27 orb | Resting dot scale | `0.5` |
|
|
240
|
+
| `--lz-ios-peak` | iOS 27 orb | Glowing dot scale | `1.25` |
|
|
243
241
|
| `--lz-wf-min` | Waveform | Resting bar scale | `0.22` |
|
|
244
242
|
| `--lz-sonar-fade` | Sonar | Ring start opacity | `0.9` |
|
|
245
243
|
| `--lz-note-bob` | Music note | Note bob height | `0.35em` |
|
|
@@ -397,7 +395,7 @@ Variables: `--lz-stroke` · `--lz-color-weak`.
|
|
|
397
395
|
|
|
398
396
|
### Scan sweep
|
|
399
397
|
|
|
400
|
-
**What it is:** concentric rings with a sweeping beam — like radar. **Good for:** scanning, searching, syncing data.
|
|
398
|
+
**What it is:** concentric rings with crosshair ticks, a counter-rotating dial and a sweeping beam — like a radar. **Good for:** scanning, searching, syncing data.
|
|
401
399
|
|
|
402
400
|
```html
|
|
403
401
|
<lz-scan-sweep size="64" color="#30d158"></lz-scan-sweep>
|
|
@@ -446,101 +444,70 @@ Variables: `--lz-dot-size` · `--lz-orbit-fade`.
|
|
|
446
444
|
|
|
447
445
|
---
|
|
448
446
|
|
|
449
|
-
###
|
|
447
|
+
### iOS 27 orb
|
|
450
448
|
|
|
451
|
-
**What it is:** a
|
|
449
|
+
**What it is:** an orb of 27 dots where a bright glow travels from the dot being "touched" to the next, spiraling inward like an iOS listening animation. **Good for:** voice assistants, AI thinking, holographic waits.
|
|
452
450
|
|
|
453
451
|
```html
|
|
454
|
-
<lz-
|
|
452
|
+
<lz-ios-27-orb size="64" accent="#64d2ff" color="#bf5af2"></lz-ios-27-orb>
|
|
455
453
|
```
|
|
456
454
|
|
|
457
455
|
```tsx
|
|
458
|
-
<
|
|
456
|
+
<Ios27Orb size={64} accent="#64d2ff" color="#bf5af2" />
|
|
459
457
|
```
|
|
460
458
|
|
|
461
|
-
Attributes: `size` (default `44`) · `accent` (default `#0a84ff`) · `speed`.
|
|
462
|
-
Variables: `--lz-
|
|
463
|
-
|
|
464
|
-
---
|
|
465
|
-
|
|
466
|
-
### Morphing orb
|
|
467
|
-
|
|
468
|
-
**What it is:** a blob that endlessly morphs its silhouette between rounded shapes. **Good for:** creative waits, brand moments, game loading.
|
|
469
|
-
|
|
470
|
-
```html
|
|
471
|
-
<lz-morphing-orb size="64" accent="#30d158"></lz-morphing-orb>
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
```tsx
|
|
475
|
-
<MorphingOrb size={64} accent="#30d158" />
|
|
476
|
-
```
|
|
477
|
-
|
|
478
|
-
Attributes: `size` (default `44`) · `accent` (default `#0a84ff`) · `speed`.
|
|
459
|
+
Attributes: `size` (default `44`) · `accent` (warm pole hue, default `#0a84ff`) · `color` (cool pole hue, default `#f5f5f7`) · `speed`.
|
|
460
|
+
Variables: `--lz-ios-fade` · `--lz-ios-min` · `--lz-ios-peak`.
|
|
479
461
|
|
|
480
462
|
---
|
|
481
463
|
|
|
482
|
-
###
|
|
464
|
+
### AI orb
|
|
483
465
|
|
|
484
|
-
**What it is:** a
|
|
466
|
+
**What it is:** a breathing gradient sphere with an orbiting light dot and twinkling sparkles. **Good for:** AI assistants, generative waits, "smart" ready states.
|
|
485
467
|
|
|
486
468
|
```html
|
|
487
|
-
<lz-
|
|
469
|
+
<lz-ai-orb size="64" accent="#bf5af2"></lz-ai-orb>
|
|
488
470
|
```
|
|
489
471
|
|
|
490
472
|
```tsx
|
|
491
|
-
<
|
|
473
|
+
<AiOrb size={64} accent="#bf5af2" />
|
|
492
474
|
```
|
|
493
475
|
|
|
494
|
-
Attributes: `size` (default `44`) · `accent` (default `#0a84ff`) · `speed`.
|
|
476
|
+
Attributes: `size` (default `44`) · `accent` (default `#0a84ff`) · `color` (sparkles) · `speed`.
|
|
495
477
|
|
|
496
478
|
---
|
|
497
479
|
|
|
498
|
-
###
|
|
480
|
+
### AI thinking
|
|
499
481
|
|
|
500
|
-
**What it is:** a
|
|
482
|
+
**What it is:** a rounded thinking field with typing dots wrapped in a rotating accent ring. **Good for:** chat completions, AI replies, waiting on answers.
|
|
501
483
|
|
|
502
484
|
```html
|
|
503
|
-
<lz-
|
|
485
|
+
<lz-ai-thinking size="44" accent="#30d158"></lz-ai-thinking>
|
|
504
486
|
```
|
|
505
487
|
|
|
506
488
|
```tsx
|
|
507
|
-
<
|
|
489
|
+
<AiThinking size={44} accent="#30d158" />
|
|
508
490
|
```
|
|
509
491
|
|
|
510
|
-
Attributes: `size` (default `
|
|
511
|
-
Variables: `--lz-
|
|
492
|
+
Attributes: `size` (default `40`) · `accent` (default `#0a84ff`) · `color` (typing dots) · `speed`.
|
|
493
|
+
Variables: `--lz-surface` (field background).
|
|
512
494
|
|
|
513
495
|
---
|
|
514
496
|
|
|
515
|
-
###
|
|
497
|
+
### AI neural
|
|
516
498
|
|
|
517
|
-
**What it is:** a
|
|
499
|
+
**What it is:** a grid of dots pulsing like an artificial neural network with a diagonal activation wave. **Good for:** neural nets, model training, data pipelines.
|
|
518
500
|
|
|
519
501
|
```html
|
|
520
|
-
<lz-
|
|
502
|
+
<lz-ai-neural rows="4" cols="7" accent="#fa114f"></lz-ai-neural>
|
|
521
503
|
```
|
|
522
504
|
|
|
523
505
|
```tsx
|
|
524
|
-
<
|
|
506
|
+
<AiNeural rows={4} cols={7} accent="#fa114f" />
|
|
525
507
|
```
|
|
526
508
|
|
|
527
|
-
Attributes: `size` (default `
|
|
528
|
-
|
|
529
|
-
---
|
|
530
|
-
|
|
531
|
-
### Aura orb
|
|
532
|
-
|
|
533
|
-
**What it is:** two tinted orbs counter-rotating in overlapping orbits. **Good for:** gradient waits, brand palettes, hero backgrounds.
|
|
534
|
-
|
|
535
|
-
```html
|
|
536
|
-
<lz-aura-orb accent="#ff375f" color="#64d2ff"></lz-aura-orb>
|
|
537
|
-
```
|
|
538
|
-
|
|
539
|
-
```tsx
|
|
540
|
-
<AuraOrb accent="#ff375f" color="#64d2ff" />
|
|
541
|
-
```
|
|
542
|
-
|
|
543
|
-
Attributes: `size` (default `44`) · `accent` (default `#0a84ff`) · `color` · `speed`.
|
|
509
|
+
Attributes: `size` (default `6`) · `rows` (default `3`) · `cols` (default `5`) · `gap` (default `10`) · `accent` (checking neurons) · `color` (resting neurons) · `speed`.
|
|
510
|
+
Variables: `--lz-grid-gap` · `--lz-grid-min` · `--lz-grid-fade`.
|
|
544
511
|
|
|
545
512
|
---
|
|
546
513
|
|
|
@@ -703,7 +670,7 @@ Variables: `--lz-bar-width` · `--lz-gap` · `--lz-wf-min`.
|
|
|
703
670
|
|
|
704
671
|
### Vinyl
|
|
705
672
|
|
|
706
|
-
**What it is:** a spinning record with a gently bobbing tonearm. **Good for:** music apps, retro waits, album screens.
|
|
673
|
+
**What it is:** a spinning record with a light sheen, label, spindle and a gently bobbing tonearm. **Good for:** music apps, retro waits, album screens.
|
|
707
674
|
|
|
708
675
|
```html
|
|
709
676
|
<lz-vinyl accent="#fa114f"></lz-vinyl>
|
|
@@ -719,7 +686,7 @@ Attributes: `size` (default `48`) · `accent` (label/stylus, default `#0a84ff`)
|
|
|
719
686
|
|
|
720
687
|
### Sonar
|
|
721
688
|
|
|
722
|
-
**What it is:** a pulsing core emitting expanding sonar rings. **Good for:**
|
|
689
|
+
**What it is:** a pulsing core emitting expanding sonar rings. **Good for:** radar pings, location detection, motion waits.
|
|
723
690
|
|
|
724
691
|
```html
|
|
725
692
|
<lz-sonar count="4" accent="#30d158"></lz-sonar>
|
|
@@ -736,7 +703,7 @@ Variables: `--lz-sonar-fade`.
|
|
|
736
703
|
|
|
737
704
|
### Music note
|
|
738
705
|
|
|
739
|
-
**What it is:** musical
|
|
706
|
+
**What it is:** drawn musical notes with heads, stems and flags bobbing in a sing-song rhythm. **Good for:** music players, karaoke, playful waits.
|
|
740
707
|
|
|
741
708
|
```html
|
|
742
709
|
<lz-music-note count="3" color="#bf5af2"></lz-music-note>
|