skeletonizer_plus 1.2.0 copy "skeletonizer_plus: ^1.2.0" to clipboard
skeletonizer_plus: ^1.2.0 copied to clipboard

Skeleton loading states for Flutter with shimmer animations, theme-aware colours, automatic tree analysis, and Sliver support.

Changelog #

1.2.0 - 2026-05-19 #

Fixed #

  • Shimmer is now actually visible. Previously ShimmerPainter painted the gradient behind the bones and the opaque bones covered it. Rewrote the animation to use a ShaderMask so the moving gradient is the fill of the bones — the way every other shimmer package on pub.dev works.
  • RenderFlex overflow on every render. The bone layout used Column(MainAxisSize.min) inside a fixed-height Positioned.fill, which overflowed when the bones plus inter-bone padding didn't fit. Replaced with a non-scrollable ListView.separated so bones lay out without overflowing.
  • SliverSkeletonizerPlus.custom threw "Stack requires bounded constraints" at runtime — the Stack had no Opacity child to size it. Refactored the sliver to delegate to a regular SkeletonizerPlus inside a SliverToBoxAdapter, removing the unbounded Stack entirely.
  • SkeletonIgnore no longer renders its child twice. The old layout kept the original widget inside a hidden Opacity(0) overlay and in the visible BoneWidget. Removed the hidden overlay entirely; BoneWidget renders the real child once.
  • SkeletonUnite now produces a usable bone. The previous implementation emitted a generic BoneRect with no size, which fell back to a 20 px tall placeholder. Now emits a properly-sized rounded rectangle.
  • BoneRect dead branch removed. shape: customShape != null ? BoxShape.rectangle : BoxShape.rectangle was always rectangle.
  • AnimationConfig.copyWith missing type parameter added in 1.1.0 but you couldn't actually .copyWith(type: …) it. Added the field plus a clearLoopCount: true flag for resetting back to an infinite loop.

Changed #

  • Tree analyser is broader. Now recurses into Padding, Center, Align, Expanded, Flexible, SizedBox, DecoratedBox, and Wrap, and handles CircleAvatar explicitly. Recursion also descends into Container.child so wrapped widgets aren't lost.
  • All bones use a single kBoneFillColor that the parent recolours, so the ShaderMask has a uniform target.
  • Bumped flutter_lints to ^5.0.0.
  • Added topics: (skeleton, loading, shimmer, placeholder, ui) and issue_tracker: to pubspec.yaml for pub.dev scoring.
  • Removed unused library skeletonizer_plus; directive flagged by the current lint set.

Removed #

  • Internal scratchpad documents (PACKAGE_SUMMARY.md, PUB_DEV_CHECKLIST.md, VALIDATION.md) that were shipped to pub.dev but only duplicated README content or claimed completion of items that weren't done.
  • Obsolete shimmer_painter.dart (replaced by ShaderMask).
  • Bone.customShape field — was plumbed but never used by any bone.

1.1.1 #

  • Documentation improvements: added visual showcase of features.
  • Minor maintenance updates.

1.1.0 #

  • Added SkeletonIgnore to keep widgets visible and interactive.
  • Added SkeletonUnite to group multiple widgets into a single bone.
  • Added AnimationType.pulse for a smoother fading animation.
  • Added fontSize and style support to BoneText for better auto-sizing.
  • Added BoneWidget to render real widgets inside the bone tree (used by SkeletonIgnore).

1.0.0 #

  • Initial release of skeletonizer_plus.
4
likes
160
points
167
downloads

Documentation

API reference

Publisher

verified publishergodfreylebo.dev

Weekly Downloads

Skeleton loading states for Flutter with shimmer animations, theme-aware colours, automatic tree analysis, and Sliver support.

Repository (GitHub)
View/report issues

Topics

#skeleton #loading #shimmer #placeholder #ui

License

MIT (license)

Dependencies

flutter

More

Packages that depend on skeletonizer_plus