snow_fall_animation 0.0.1+3 
snow_fall_animation: ^0.0.1+3 copied to clipboard
A Flutter plugin that creates beautiful snowfall animations and effects
❄️ Snow Fall Plugin ❄️ #
Transform your Flutter app into a winter wonderland
• Realistic snow animations • Custom emoji support • Smooth performance • Easy implementation • Full customization
Table of Contents #
- Features
 - Demo Examples
 - Getting Started
 - Configuration Properties
 - Presets & Effects
 - Emoji Groups
 - Advanced Usage
 - Performance
 - Example App
 - Contributing
 - License
 
Features #
- 🌨️ Realistic snow fall animation
 - 🎄 Support for custom emojis (snowflakes, Christmas-themed, etc.)
 - ⚡ Smooth performance with multiple animation styles
 - 🎮 Customizable controls for speed, density, and wind effects
 - 🏔️ Optional snow accumulation at the bottom
 - 🎯 Easy to implement with minimal setup
 - 📱 Works on all Flutter platforms
 
Demo Examples #
![]()  | 
![]()  | 
![]()  | 
|---|---|---|
'Default Snow' | 
'Christmas Magic' | 
'Winter Wonderland' | 
Getting Started #
Installation #
Add snow_fall_animation to your pubspec.yaml:
dependencies:
  snow_fall_animation: ^0.0.1+2
Or install via command line:
flutter pub add snow_fall_animation
Basic Usage #
import 'package:snow_fall_animation/snow_fall_animation.dart';
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          // Your background
          Container(
            decoration: BoxDecoration(
              gradient: LinearGradient(
                begin: Alignment.topCenter,
                end: Alignment.bottomCenter,
                colors: [
                  Colors.blue[900]!,
                  Colors.blue[700]!,
                ],
              ),
            ),
          ),
          // Snow fall animation
          SnowFallAnimation(
            config: SnowfallConfig(
              numberOfSnowflakes: 200,
              speed: 1.0,
              useEmoji: true,
              customEmojis: ['❄️', '❅', '❆'],
            ),
          ),
          // Your content
          YourContent(),
        ],
      ),
    );
  }
}
Configuration Properties #
SnowfallConfig Properties #
| Property | Type | Default | Range/Values | Description | 
|---|---|---|---|---|
numberOfSnowflakes | 
int | 
200 | 50-500 | Number of snowflakes displayed on screen | 
speed | 
double | 
1.0 | 0.1-3.0 | Base falling speed of the snowflakes | 
useEmoji | 
bool | 
true | true/false | Whether to use emojis or basic shapes | 
customEmojis | 
List<String> | 
['❄️', '❅', '❆'] | Any emoji list | List of emojis to use as snowflakes | 
snowColor | 
Color | 
Colors.white | Any Color | Color of non-emoji snowflakes | 
holdSnowAtBottom | 
bool | 
true | true/false | Whether snow accumulates at bottom | 
cleanupDuration | 
Duration | 
3 seconds | Any Duration | Time taken for cleanup animation | 
accumulationDuration | 
Duration | 
10 seconds | Any Duration | Time between cleanup cycles | 
minSnowflakeSize | 
double | 
2.0 | 1.0-10.0 | Minimum size of snowflakes | 
maxSnowflakeSize | 
double | 
8.0 | 1.0-20.0 | Maximum size of snowflakes | 
swingRange | 
double | 
1.0 | 0.0-2.0 | Horizontal swing amplitude | 
rotationSpeed | 
double | 
1.0 | 0.0-3.0 | Rotation speed of snowflakes | 
maxSnowHeight | 
double | 
50.0 | 0.0-100.0 | Maximum height of accumulated snow | 
enableSnowDrift | 
bool | 
true | true/false | Enable horizontal drifting | 
windForce | 
double | 
0.0 | -2.0-2.0 | Horizontal wind force (negative = left) | 
enableRandomSize | 
bool | 
true | true/false | Randomize snowflake sizes | 
enableRandomOpacity | 
bool | 
true | true/false | Randomize snowflake opacity | 
minOpacity | 
double | 
0.5 | 0.0-1.0 | Minimum snowflake opacity | 
maxOpacity | 
double | 
1.0 | 0.0-1.0 | Maximum snowflake opacity | 
Presets & Effects #
Animation Effects #
| Effect | Properties | Values | Description | 
|---|---|---|---|
| Heavy Snow | numberOfSnowflakesspeed | 
300-500 1.5-2.0  | 
Dense, fast-falling snow | 
| Light Snow | numberOfSnowflakesspeed | 
50-100 0.5-0.8  | 
Sparse, gentle snow | 
| Blizzard | windForcespeed | 
1.5-2.0 2.0-3.0  | 
Strong sideways wind | 
| Gentle Drift | windForceswingRange | 
0.2-0.5 0.5-1.0  | 
Slight drifting motion | 
Preset Configurations #
// Christmas Magic
SnowfallConfig
(
numberOfSnowflakes: 200,
speed: 1.0,
customEmojis: ['❄️', '🎅', '🎄', '🎁', '⭐'],
windForce: 0.5,
)
// Winter Wonderland
SnowfallConfig(
numberOfSnowflakes: 250,
speed: 1.2,
customEmojis: ['❄️', '⛄', '🦌', '✨', '⭐'],
windForce: 1.0,
)
// Cozy Christmas
SnowfallConfig(
numberOfSnowflakes: 120,
speed: 0.5,
customEmojis: ['❄️', '🕯️', '🧦', '🍪', '🥛'],
windForce:
0.2
,
)
Emoji Groups #
Available Emojis #
| Category | Emojis | Purpose | 
|---|---|---|
| Snow | ❄️ ❅ ❆ ✻ ✼ | Basic snow effects | 
| Christmas | 🎅 🤶 🎄 🎁 ⭐ 🔔 | Christmas theme | 
| Winter | ⛄ 🧣 🧤 🎿 🦌 | Winter activities | 
| Decorations | 🎄 ⭐ 🔔 🧦 🕯️ | Holiday decorations | 
| Treats | 🍪 🥛 🍷 | Holiday treats | 
Advanced Usage #
Customization Bottom Sheet #
showCustomizationBottomSheet
(
context: context,
config: currentConfig,
onConfigChanged: (newConfig) {
setState(() {
config = newConfig;
});
},
);
Dynamic Configuration #
class _MyHomePageState extends State<MyHomePage> {
  late SnowfallConfig _config;
  @override
  void initState() {
    super.initState();
    _config = const SnowfallConfig(
      numberOfSnowflakes: 200,
      speed: 1.0,
      customEmojis: ['❄️', '🎅', '🎄'],
    );
  }
  void _updateConfig(SnowfallConfig newConfig) {
    setState(() {
      _config = newConfig;
    });
  }
// ... rest of the implementation
}
Performance #
Optimization Tips #
- Keep 
numberOfSnowflakesbetween 100-300 for best performance - Disable unnecessary effects (
enableRandomOpacity,enableSnowDrift) if not needed - Use basic shapes instead of emojis for better performance
 - Adjust cleanup cycle timing based on your needs
 
Platform-Specific Notes #
- Web: Keep number of snowflakes lower for better performance
 - Mobile: Works well with default settings
 - Desktop: Can handle higher numbers of snowflakes
 
Example App #
The plugin includes a complete example app. To run:
- Clone the repository
 - Navigate to example directory:
 
cd example
- Run the app:
 
flutter run
The example app demonstrates:
- Different preset configurations
 - Custom emoji selection
 - Animation controls
 - Bottom sheet customization
 - Preset switching
 
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup #
- Fork the repository
 - Clone your fork
 - Create a new branch
 - Make your changes
 - Submit a pull request
 



