hollow 1.0.0
hollow: ^1.0.0 copied to clipboard
Skeleton loading screens for Flutter. Generates pixel-perfect shimmer placeholders from your real RenderObject tree.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2026-04-05 #
Breaking Changes #
-
HollowSkeletonrenamed toSkeleton. Update all imports and widget references. -
fixtureparameter removed. In v0.x, a separatefixturewidget was required for the CLI capture phase. In v1.0.0, thechildwidget is captured directly — no duplication. If you were usingfixture, simply remove it;childnow serves both roles. -
loadingsemantics are direct. The boolean controls skeleton vs. child display. There is nofixture ?? childfallback behavior.
Added #
-
Independent border radius per corner via
BorderRadiusData. Each bone can have distincttl,tr,bl, andbrradius values instead of a single uniform value:Bone( x: 0, y: 0, w: 100, h: 80, borderRadius: BorderRadiusData(tl: 16, tr: 4, bl: 4, br: 16), ) -
SnapshotConfig.excludeTypesfor surgically excludingRenderObjecttypes from bone extraction. Pass a list ofTypes to skip during capture. -
Skeleton.nameis now optional at runtime. Required only when runningdart run hollow:build. Inline skeletons registered manually viaHollowRegistrywork without a name.
Changed #
-
CLI rebuilt with
package:analyzer(AST). The build CLI now uses a proper Dart AST scanner (AstHollowScanner) instead of heuristics, making skeleton detection significantly more robust across code patterns and Flutter versions. -
Shimmer animation is globally synchronized — all bones share the same
AnimationControllerviaBonePainter. -
HollowRunner.run()now usesfixturesdifferently. Thefixturesparameter still accepts skeleton declarations, butfixtureis no longer aSkeletonprop —childis captured directly.
Fixed #
- Container bones (
isContainer: true) are rendered with a lighter gradient so child bones stand out clearly. - Border radius on
RenderClipRRectandRenderPhysicalModelis extracted and applied to bones correctly.
0.2.1 - 2025-03-10 #
- Simplified example app to a single self-contained file for pub.dev.
0.2.0 - 2025-02-20 #
- Added
HollowRunner.run()— replacesregisterAllBones()+runApp()with a single entry point. - Added
fixturesparameter toHollowRunner.run()for declaring all skeletons in one place. - Added
--nameflag to CLI for targeting specific skeletons. - Removed auto device detection —
dart run hollow:buildnow requires-d <device-id>.
0.1.4 - 2025-02-10 #
- Added
topicsto pubspec for pub.dev discoverability. - Improved package description for search indexing.
0.1.3 - 2025-01-28 #
- Added screenshots section to pubspec for pub.dev gallery.
- Added demo GIF to README.
- Added features section and improved example app.
0.1.2 - 2025-01-15 #
- Added example skeleton assets and screenshots.
0.1.1 - 2025-01-10 #
- Removed inline comments and fixed device detection.
0.1.0 - 2025-01-01 #
- Initial release —
Skeletonwidget, RenderObject tree walker, CLI, andHollowRegistry.
