Skip to content

Releases: zainkhalid91/compose-loaders

0.2.0 — 45 loaders, config, accessibility

Choose a tag to compare

@zainkhalid91 zainkhalid91 released this 27 Oct 12:47

45 loaders (25 new), one config object, real accessibility and reduced motion. Shaped by feedback on the launch post.

implementation("com.github.zainkhalid91.compose-loaders:loaders:0.2.0")

with maven("https://jitpack.io") in your repositories.

Highlights

  • 25 new loaders: RadarSweep, Hourglass, PacDots, SlidingBar, FireworkBurst, TypingBubble, WaveText, OrbitingMoons, FoldingCube, SegmentedRing, SkeletonShimmer, SpiralGalaxy, Pendulum, SlidingTiles, BreathingCircle, DominoFall, NeonTrace, BatteryCharge, Rocket, SignalBars, GearPair, YinYang, SpringCoil, GooeyOrbit, HeartPulse.
  • LoaderConfig: speed, pause, reverse, reduced motion, screen reader label and announcements in one immutable object. Set it app-wide with ProvideLoaderDefaults(color, config).
  • More options: strokeWidth, gradient brush, counts (segments, coils, teeth, blobs...), shape options and parts you can switch off.
  • Accessibility: labels, determinate progress that TalkBack reads as a percentage, polite announcements, LoadingAnnouncer for start and finish. A test checks every loader against WCAG 2.3.1 (no more than 3 flashes a second).
  • Reduced motion that never freezes: Auto follows Android's "Remove animations"; loaders hold a pose and gently pulse instead of looking hung.
  • Zero allocations in loader draw code: strokes, paths and brushes are built once per size. CometSpinner went from 887 to 8 bytes per frame on desktop.
  • Playground tab in the gallery app to try every option live.

Source compatible with 0.1.0 (rebuild libraries that depend on it). Full list in CHANGELOG.md.

0.1.0 — first 20 loaders

Choose a tag to compare

@zainkhalid91 zainkhalid91 released this 20 Oct 09:02

First release: 20 loading indicators in pure Compose (Android + desktop).

implementation("com.github.zainkhalid91.compose-loaders:loaders:0.1.0")

with maven("https://jitpack.io") in your repositories. See the README for details.