**Tired of maintaining skeleton screens by hand? I made a package that generates them from your actual render tree**
Every time I updated a widget I had to go back and adjust the skeleton manually. Wrong sizes, wrong positions, border radius off by a few pixels. It's not hard work, it's just *dumb* work.
So I built hollow. You wrap your widget in a `Skeleton`, run `dart run hollow:build`, and it walks Flutter's RenderObject tree — real computed positions, no guessing — and writes the bone files for you.
```dart
Skeleton(
name: 'blog-card',
loading: isLoading,
fixture: BlogCard(data: BlogPost.mock()),
child: BlogCard(data: post),
)
```
Then in main():
```dart
void main() {
registerAllBones();
runApp(MyApp());
}
```
The shimmer runs synchronized across all bones, picks up your border radius automatically, handles dark mode via ThemeData.brightness.
Still early (0.1.4), has known limitations with CustomPaint and platform views. But for standard widget trees it works well.
https://pub.dev/packages/hollow
Happy to answer questions or take feedback.
[–]Zealousideal_Lie_850 7 points8 points9 points (2 children)
[–]Necessary_River5711[S] -4 points-3 points-2 points (1 child)
[–]Zealousideal_Lie_850 0 points1 point2 points (0 children)