PackageTrack
Sign in Get early access

auto_skeleton

Auto-generate skeleton shimmer loading placeholder from your widget tree. Zero fake data, theme-aware, async builder support.

0.4.1 VaibhavTambe-FlutterDev/auto_skeleton

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 2026
Release Pre-release

Releases

latest 7
  1. 0.4.1 20 Apr 2026
    Release notes

    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: skeletonItem still 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_skeleton vs skeletonizer vs shimmer.
    • Feature comparison table expanded with reduce-motion and debug-overlay rows.
    Open source →
  2. 0.4.0 20 Apr 2026
    Release notes

    DX — stop silent failures

    • Debug-mode warning when scan produces 0 bones. If your skeletonItem template has no introspectable leaves (plain Containers with no Text/Icon/Image/etc inside), AutoSkeleton now prints an actionable warning instead of rendering a blank rectangle.
    • debugShowBones: true flag on AutoSkeleton — 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 #2A2A2A to #3F3F3F so the first-frame block is visible against pure-black (#0A0A0A) scaffolds.
    Open source →
  3. 0.3.0 17 Apr 2026
    Release notes

    List Skeleton — template-based bones (no fake data)

    • skeletonItem + skeletonItemCount on AutoSkeleton — 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 _boneCache map; 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 + themeBrightness instead of object-identity hashCode, eliminating false misses on structurally identical rebuilds.

    UX

    • First-frame flash eliminated — added fallbackColor() to PlaceholderEffect; the pre-scan frame now paints a solid shimmer-base rectangle instead of invisible content.
    Open source →
  4. 0.2.0 17 Apr 2026
    Release notes

    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, IntrinsicHeight via 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 automatically
    • AutoSkeletonAppController — programmatic startLoading() / stopLoading() / toggle()
    • controller.observerNavigatorObserver that auto-shows skeleton during route transitions
    • Works with ValueNotifier<bool> for simple reactive control
    Open source →
  5. 0.1.2 30 Mar 2026
    Release notes
    • Added screenshots field to pubspec.yaml for pub.dev gallery
    • Updated flutter_lints to v5.0.0 for latest analysis rules
    • Improved pub.dev scoring compliance
    Open source →
  6. 0.1.1 30 Mar 2026
    Release notes
    • AutoSkeletonBuilder — async data loading with automatic skeleton display
      • Supports Future and Stream data sources
      • Zero setState needed — skeleton shown while loading, content when done
      • Built-in errorBuilder for error states
      • onData / onError callbacks
    • Added tests for builder (13 total tests passing)
    Open source →
  7. 0.1.0 30 Mar 2026
    Release notes
    • Initial release
    • AutoSkeleton widget — wrap any widget tree to auto-generate skeleton placeholders
    • SliverAutoSkeleton — 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()
    • AutoSkeletonConfig for global configuration via InheritedWidget
    • Switch animation (skeleton → content) with configurable duration and curve
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive