seasonal_decor 1.2.1
seasonal_decor: ^1.2.1 copied to clipboard
Seasonal Flutter animations and festive particle overlays for Ramadan, Eid, Christmas, Valentine, Halloween, and New Year.
seasonal_decor #
[Live Demo]
Add beautiful seasonal animations and festive overlays to your Flutter app with one line of code.
Bring Ramadan vibes, Christmas magic, Valentine effects, New Year celebrations, and more instantly.
Install with one command: flutter pub add seasonal_decor
โจ Features #
- ๐ Christmas snow and festive decorations
- ๐ Ramadan lanterns and crescents
- ๐ Eid balloons and sparkles
- ๐ Halloween particles and spooky mood
- โค๏ธ Valentine hearts
- ๐ New Year fireworks and confetti
- ๐ Sports celebration mode
- ๐ Light and dark theme adaptation
- ๐ฑ Android, iOS, Web, Windows, macOS, Linux
- ๐ Control intensity, speed, size, and backdrop layers
- ๐ฌ Animated greeting text (
showText,text,textOpacity)
๐ Quick Start #
SeasonalDecor(
preset: SeasonalPreset.ramadan(),
intensity: DecorIntensity.medium,
child: const HomeScreen(),
);
That is it. Instant festive UI.
โ Recommended Setup #
SeasonalDecor(
preset: SeasonalPreset.ramadan(),
intensity: DecorIntensity.high,
playDuration: const Duration(seconds: 8),
repeatEvery: const Duration(minutes: 2),
showBackdrop: true,
showText: true,
textOpacity: 0.5,
particleSpeedMultiplier: 1.1,
adaptColorsToTheme: true,
child: const HomeScreen(),
);
Recommended defaults for most apps:
- Keep
respectReduceMotion: true(default) - Keep
pauseWhenInactive: true(default) - Use
intensity: DecorIntensity.medium/highfor daily screens - Use
high/extraHigh/maxonly for short celebration moments
๐ฎ Interactive Demo Controls #
In the example app, users can interact with:
- Preset picker and intensity controls
repeatEveryand play duration- Backdrop visibility by layer (background/decorative)
- Greeting text toggle, text input, and text animation controls
- Reduce-motion behavior and simulation
๐จ Available Presets #
SeasonalPreset.ramadan()SeasonalPreset.eid()SeasonalPreset.christmas()SeasonalPreset.newYear()SeasonalPreset.valentine()SeasonalPreset.halloween()SeasonalPreset.sportEvent()SeasonalPreset.none()
๐ฌ Preset GIF Previews #
If GIFs do not render in your mirror/CDN, open files directly from assets/gif/.
| Ramadan | Eid al-Fitr | Eid al-Adha |
|---|---|---|
| [Ramadan] | [Eid al-Fitr] | [Eid al-Adha] |
| Christmas | Valentine | New Year |
|---|---|---|
| [Christmas] | [Valentine] | [New Year] |
๐ Customization #
SeasonalDecor(
preset: SeasonalPreset.christmas(),
intensity: DecorIntensity.high,
particleSpeedMultiplier: 1.2,
particleSizeMultiplier: 1.1,
showBackdrop: true,
showBackgroundBackdrops: true,
showDecorativeBackdrops: true,
showText: true,
textOpacity: 0.5,
repeatEvery: const Duration(minutes: 2),
child: const HomeScreen(),
);
โ๏ธ Why Not Just Confetti ? #
| Feature | seasonal_decor |
confetti-style package |
|---|---|---|
| Seasonal presets | Yes | No |
| Decorative backdrops | Yes | No |
| One-line setup | Yes | Limited |
| Theme adaptive | Yes | No |
| Greeting text overlay | Yes | No |
| Layer-level backdrop control | Yes | No |
๐ Live Demo #
๐ฆ Installation #
Add this to your pubspec.yaml:
dependencies:
seasonal_decor: ^1.2.1
Then run:
flutter pub get
Or simply:
flutter pub add seasonal_decor
๐งช Quick Recipes #
Confetti only (disable fireworks in New Year):
SeasonalDecor(
preset: SeasonalPreset.newYear(),
presetEnableFireworks: false,
child: const HomeScreen(),
);
Backdrop only:
SeasonalDecor(
preset: SeasonalPreset.ramadan(),
presetShapes: const <ParticleShape>[],
showBackdrop: true,
child: const HomeScreen(),
);
Greeting text with default seasonal message:
SeasonalDecor(
preset: SeasonalPreset.ramadan(),
showText: true,
textOpacity: 0.5, // default
child: const HomeScreen(),
);
Custom message:
SeasonalDecor(
preset: SeasonalPreset.eid(variant: EidVariant.adha),
showText: true,
text: 'Eid Mubarak',
textStyle: const TextStyle(
fontSize: 36,
fontWeight: FontWeight.w700,
),
textDisplayDuration: const Duration(seconds: 2),
textAnimationDuration: const Duration(milliseconds: 550),
child: const HomeScreen(),
);
Custom background backdrop widget:
SeasonalDecor(
preset: SeasonalPreset.ramadan(),
showBackdrop: true,
backgroundBackdrop: Align(
alignment: const Alignment(0.85, -0.7),
child: Icon(Icons.nightlight_round, size: 180, color: Color(0x66FFE2A6)),
),
child: const HomeScreen(),
);
โ๏ธ Core Options (Quick Table) #
| Option | Default | Description |
|---|---|---|
enabled |
true |
Show/hide overlay. |
intensity |
medium |
Particle count and base speed profile. |
opacity |
1.0 |
Global overlay opacity. |
showBackdrop |
true |
Render backdrop graphics. |
showBackgroundBackdrops |
true |
Toggle built-in background backdrop layer. |
showDecorativeBackdrops |
true |
Toggle decorative backdrop layer. |
backgroundBackdrop |
null |
Custom widget replacing built-in background backdrops. |
showText |
false |
Show animated greeting text. |
textOpacity |
0.5 |
Greeting text opacity multiplier. |
particleSpeedMultiplier |
1.0 |
Runtime speed scale. |
particleSizeMultiplier |
1.0 |
Runtime size scale. |
decorativeBackdropDensityMultiplier |
1.0 |
Decorative backdrop detail density scale. |
playDuration |
5s |
Playback duration per cycle. |
repeatEvery |
null |
Optional replay interval. |
๐งช Example #
Run example app:
flutter run -t example/lib/main.dart
Run advanced demo:
flutter run -t example/lib/advanced_main.dart
๐ License #
MIT License. See LICENSE.