ui_skeleton_factory library
A Flutter package that automatically generates Skeleton Loading UI from any existing Flutter Widget without manually writing skeleton layouts.
Features
- 🎯 Automatic Generation: Convert any widget to skeleton with zero config
- 🎨 Layout Preservation: Maintains original widget sizes and structure
- ✨ Shimmer Animation: Optional smooth shimmer effect
- âš¡ Performance: Optimized for smooth scrolling and minimal overhead
- 🔧 Flexible API: Multiple ways to use (widget, static, extension)
Quick Start
// Method 1: Using SkeletonFactory widget
SkeletonFactory(
isLoading: true,
child: ProductCard(product: product),
)
// Method 2: Using Skeleton.from() static method
Skeleton.from(
ProductCard(product: fakeProduct),
)
// Method 3: Using extension
ProductCard(product: product).skeleton(isLoading: true)
Configuration
SkeletonFactory(
isLoading: true,
config: SkeletonConfig(
shimmer: true,
baseColor: Colors.grey[300],
highlightColor: Colors.grey[100],
shimmerDuration: Duration(milliseconds: 1500),
),
child: MyWidget(),
)
Classes
- AdaptiveSkeltonizer
- A skeltonizer that automatically adapts to Material theme.
- FadeSkeltonizer
- Skeltonizer with fade transition.
- GradientShimmer
- A pure gradient-based shimmer that generates new widget tree.
- ListSkeltonizer
- Skeltonizer for lists with optimization.
- ScaleSkeletonSwitcher
- A skeleton switcher with scale transition.
- ShimmerEffect
- A shimmer loading effect widget using pure widget animation.
- SizeResolver
- Resolves and captures sizes from widgets and render objects.
- Skeleton
- Static API for generating skeletons from widgets.
- SkeletonAvatar
- A circular skeleton avatar.
- SkeletonBox
- A skeleton box that maintains aspect ratio.
- SkeletonBuilderWidget
- A builder-based skeleton wrapper for more control.
- SkeletonCache
- Cache for generated skeleton widgets.
- SkeletonCacheKey
- Cache key for skeleton widgets.
- SkeletonConfig
- Configuration for skeleton loading appearance and behavior.
- SkeletonContainer
- A skeleton placeholder container.
- SkeletonController
- A controller for managing skeleton states and behaviors across your app.
- SkeletonControllerProvider
- Widget that provides a SkeletonController to its descendants.
- SkeletonDebug
- Debug mode configuration for skeleton generation.
- SkeletonDebugEntry
- A debug log entry for skeleton generation.
- SkeletonFactory
- Main widget for automatic skeleton generation.
- SkeletonGenerationContext
- Context passed through skeleton generation process.
- SkeletonLine
- A skeleton line for text placeholders.
- SkeletonParser
- Parses and traverses widget trees to generate skeleton representations.
- SkeletonRegistry
- Registry for custom skeleton builders.
- SkeletonSwitcher
- A widget that smoothly animates between skeleton and actual content.
- SkeletonTheme
- Predefined color themes for skeleton loading.
- SkeletonWrapper
- Wraps a widget with skeleton loading capability.
- Skeltonizer
- Main Skeltonizer widget - Better than the competition!
- SlideSkeletonSwitcher
- A skeleton switcher with slide transition.
- WidgetMapper
- Maps Flutter widgets to their skeleton representations.
Extensions
- CircleAvatarSkeletonExtension on CircleAvatar
- Extension for CircleAvatar widgets.
- IconSkeletonExtension on Icon
- Extension for Icon widgets.
- ImageSkeletonExtension on Image
- Extension for Image widgets.
- SkeletonControllerExtension on BuildContext
- Extension to easily access SkeletonController from BuildContext.
- SkeletonExtension on Widget
- Extension methods for easy skeleton generation.
- SkeletonThemeExtension on SkeletonTheme
- Extension to convert SkeletonTheme to SkeletonConfig.
- SkeltonizeExtension on Widget
- Extension to easily skeltonize any widget.
- TextSkeletonExtension on Text
- Extension for Text widgets.
Typedefs
- SkeletonBuilder = Widget Function(Widget originalWidget, SkeletonConfig config, BuildContext? context)
- Type definition for skeleton builder functions.