auto_skeleton
Auto-generate skeleton shimmer loading placeholder from your widget tree. Zero fake data, theme-aware, async builder support.
What this package is like to depend on
Last release 4 months ago
20 Apr 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
4 months old
7 releases · first in 2026
7 releases in the last 12 months
see the full history below
Release timeline
7 releases · Mar 2026 to Apr 2026Releases
latest 7-
0.4.120 Apr 2026Release notes
Open source →Accessibility
- Respects
MediaQuery.disableAnimations(WCAG 2.3.3 / EU EN 301 549). When the user has "reduce motion" enabled at the OS level, shimmer/pulse animations automatically drop to a solid block. No opt-in needed — required for EU and government deployments.
Docs / positioning
- README rewritten to be honest about the list case:
skeletonItemstill requires a template widget, but maintains it in widgets not mock data. - New "When to pick what" section with honest guidance about when to use
auto_skeletonvsskeletonizervsshimmer. - Feature comparison table expanded with reduce-motion and debug-overlay rows.
- Respects
-
0.4.020 Apr 2026Release notes
Open source →DX — stop silent failures
- Debug-mode warning when scan produces 0 bones. If your
skeletonItemtemplate has no introspectable leaves (plainContainers with noText/Icon/Image/etc inside), AutoSkeleton now prints an actionable warning instead of rendering a blank rectangle. debugShowBones: trueflag onAutoSkeleton— overlays each detected bone with a red outline and type label. Instantly answers "did the scanner find my widgets?"- Visible pre-scan fallback on dark themes. Dark fallback color bumped from
#2A2A2Ato#3F3F3Fso the first-frame block is visible against pure-black (#0A0A0A) scaffolds.
- Debug-mode warning when scan produces 0 bones. If your
-
0.3.017 Apr 2026Release notes
Open source →List Skeleton — template-based bones (no fake data)
skeletonItem+skeletonItemCountonAutoSkeleton— pass one template widget and the package repeats it N times to generate the skeleton. Solves the "empty list = nothing to scan" problem.skeletonScrollable— wraps the template column in a non-scrolling viewport when items exceed available height.
Performance & Correctness
- Memory leak fixed — removed the global
_boneCachemap; each widget now owns its cache and releases it on dispose.AutoSkeleton.clearCache()is deprecated (no-op). - Cache hits without a
Key— previously, widgets without an explicit key re-scanned on every rebuild. Cache is now per-state and always active. - Theme change auto-invalidation — switching light ↔ dark now rebuilds bones with the correct colors (previously stuck with stale colors until manual
clearCache()). - Cache fingerprint is now
size + themeBrightnessinstead of object-identityhashCode, eliminating false misses on structurally identical rebuilds.
UX
- First-frame flash eliminated — added
fallbackColor()toPlaceholderEffect; the pre-scan frame now paints a solid shimmer-base rectangle instead of invisible content.
-
0.2.017 Apr 2026Release notes
Open source →ListView / GridView / CustomScrollView support
- Fixed widget tree scanner to handle scrollable widgets correctly
- Safe coordinate transforms for sliver-based layouts (no more overflow/wrong sizing)
- Bones are clipped to visible viewport bounds — offscreen items are skipped
- Handles
Stack,Wrap,IntrinsicHeightvia improved render tree traversal
Bone caching
- Skeleton layout is cached and reused across rebuilds
- Cache invalidates automatically when widget size or child changes
AutoSkeleton.clearCache()for manual invalidation
App-level wrapper (zero per-widget wrapping)
AutoSkeletonApp.builder()— wrap entire app, every screen gets skeleton automaticallyAutoSkeletonAppController— programmaticstartLoading()/stopLoading()/toggle()controller.observer—NavigatorObserverthat auto-shows skeleton during route transitions- Works with
ValueNotifier<bool>for simple reactive control
-
0.1.230 Mar 2026Release notes
Open source →- Added
screenshotsfield to pubspec.yaml for pub.dev gallery - Updated
flutter_lintsto v5.0.0 for latest analysis rules - Improved pub.dev scoring compliance
- Added
-
0.1.130 Mar 2026Release notes
Open source →AutoSkeletonBuilder— async data loading with automatic skeleton display- Supports
FutureandStreamdata sources - Zero
setStateneeded — skeleton shown while loading, content when done - Built-in
errorBuilderfor error states onData/onErrorcallbacks
- Supports
- Added tests for builder (13 total tests passing)
-
0.1.030 Mar 2026Release notes
Open source →- Initial release
AutoSkeletonwidget — wrap any widget tree to auto-generate skeleton placeholdersSliverAutoSkeleton— sliver variant for CustomScrollView- Theme-aware colors — auto-derives from your app's
ColorScheme(light & dark) - 3-layer color control — theme auto-detect → global config → per-widget override
- Effects:
ShimmerEffect,PulseEffect,SolidEffect - Annotations:
PlaceholderIgnore,PlaceholderReplace,PlaceholderLeaf,PlaceholderShape - Extension:
.withSkeleton(loading: bool)on any Widget - Presets:
SkeletonPresets.listTile(),.productCard(),.foodCard(),.horizontalCardRow() AutoSkeletonConfigfor global configuration via InheritedWidget- Switch animation (skeleton → content) with configurable duration and curve