cool_animation_flutter ✨

πŸ‡ΊπŸ‡Έ English | πŸ‡°πŸ‡· ν•œκ΅­μ–΄


πŸ‡ΊπŸ‡Έ English

A package that helps you apply cool animations in Flutter very easily and concisely. You don't need to create complex AnimationController and StatefulWidget every time; just wrap your widget to implement smooth and natural interactions. From simple appearance effects to advanced sequential list animations, create the coolest UX with the least code.


Feature

  • Easily apply sequential animations to lists or group elements using delay and buildSequentialAnimations.
  • Configure animations to start when the widget scrolled into view (triggerOnVisible).
  • Freely adjust direction, duration, curve, animation start offset, etc.
  • Check the example for usage.
  • For more details on SlideFadeIn, refer to the tech blog post.

Install

Add the following to your pubspec.yaml file:

dependencies:
  cool_animation_flutter: ^0.0.2

Usage

1️⃣ Use SlideFadeIn

The most basic form, appearing from bottom to top with a fade-in.

import 'package:cool_animation_flutter/cool_animation_flutter.dart';

SlideFadeIn(
  child: Text('Hello!'),
)

2️⃣ Custom Direction & Offset

Use SlideDirection to appear from 8 different directions, or use beginOffset for precise control.

SlideFadeIn(
  direction: SlideDirection.fromLeft, // Appears from left to right
  duration: Duration(milliseconds: 800),
  curve: Curves.elasticOut,
  child: MyWidget(),
)

3️⃣ Sequential Animation

Use buildSequentialAnimations when you want multiple elements to appear with a time difference.

Column(
  children: buildSequentialAnimations(
    children: [
      Text('First Item'),
      Text('Second Item'),
      Text('Third Item'),
    ],
    builder: (child, delay) => SlideFadeIn(
      delay: delay,
      child: child,
    ),
  ),
)

Reference

SlideDirection

  • fromBottom, fromTop, fromLeft, fromRight
  • fromBottomLeft, fromBottomRight, fromTopLeft, fromTopRight
  • none (Fade effect only)

SlideFadeIn Properties

Property Type Description
child Widget Target widget for animation (Required)
direction SlideDirection Slide start direction preset
beginOffset Offset Custom start position (Prioritized over direction)
duration Duration Animation duration (Default: 400ms)
delay Duration Delay before animation starts
triggerOnVisible bool Whether to start when visible on screen (Default: false)



πŸ‡°πŸ‡· ν•œκ΅­μ–΄

Flutterμ—μ„œ λ©‹μ§„ μ• λ‹ˆλ©”μ΄μ…˜μ„ μ•„μ£Ό 쉽고 κ°„κ²°ν•˜κ²Œ μ μš©ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€. λ³΅μž‘ν•œ AnimationController와 StatefulWidget을 맀번 λ§Œλ“€ ν•„μš” 없이, μœ„μ ―μ„ κ°μ‹ΈλŠ” κ²ƒλ§ŒμœΌλ‘œ λΆ€λ“œλŸ½κ³  μžμ—°μŠ€λŸ¬μš΄ μΈν„°λž™μ…˜μ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹¨μˆœν•œ λ“±μž₯ νš¨κ³ΌλΆ€ν„° λ¦¬μŠ€νŠΈκ°€ 순차적으둜 μ˜¬λΌμ˜€λŠ” κ³ κΈ‰ μ—°μΆœκΉŒμ§€, κ°€μž₯ 적은 μ½”λ“œλ‘œ κ°€μž₯ λ©‹μ§„ UXλ₯Ό λ§Œλ“€μ–΄λ³΄μ„Έμš”.


Feature

  • delay와 buildSequentialAnimationsλ₯Ό μ‚¬μš©ν•˜μ—¬ λ¦¬μŠ€νŠΈλ‚˜ κ·Έλ£Ή μš”μ†Œμ— 순차적인 μ• λ‹ˆλ©”μ΄μ…˜μ„ μ‰½κ²Œ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν™”λ©΄ 밖에 μžˆλŠ” μœ„μ ―μ΄ μŠ€ν¬λ‘€λ˜μ–΄ 화면에 보일 λ•Œ μ• λ‹ˆλ©”μ΄μ…˜μ΄ μ‹œμž‘λ˜λ„λ‘ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€ (triggerOnVisible).
  • λ°©ν–₯, 지속 μ‹œκ°„, 곑선, μ• λ‹ˆλ©”μ΄μ…˜ μ‹œμž‘ μ˜€ν”„μ…‹ 등을 자유둭게 쑰절 κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • ν™œμš© μ˜ˆμ‹œλŠ” 예제λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”
  • SlideFadeIn에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ κΈ°μˆ λΈ”λ‘œκ·Έ ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•΄μ£Όμ„Έμš”

Install

pubspec.yaml νŒŒμΌμ— λ‹€μŒμ„ μΆ”κ°€ν•˜μ„Έμš”:

dependencies:
  cool_animation_flutter: ^0.0.2

Usage

1️⃣ SlideFadeIn

κ°€μž₯ 기본적인 ν˜•νƒœλ‘œ, ν•˜λ‹¨μ—μ„œ μœ„λ‘œ νŽ˜μ΄λ“œ 인되며 λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

import 'package:cool_animation_flutter/cool_animation_flutter.dart';

SlideFadeIn(
  child: Text('μ•ˆλ…•ν•˜μ„Έμš”!'),
)

2️⃣ λ°©ν–₯ 및 μ˜€ν”„μ…‹ μ»€μŠ€ν…€

SlideDirection을 μ‚¬μš©ν•˜μ—¬ 8κ°€μ§€ λ°©ν–₯μ—μ„œ λ“±μž₯ν•˜κ²Œ ν•˜κ±°λ‚˜, beginOffset으둜 μ •λ°€ν•œ μ œμ–΄κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€.

SlideFadeIn(
  direction: SlideDirection.fromLeft, // μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ λ“±μž₯
  duration: Duration(milliseconds: 800),
  curve: Curves.elasticOut,
  child: MyWidget(),
)

3️⃣ 순차 μ• λ‹ˆλ©”μ΄μ…˜

μ—¬λŸ¬ μš”μ†Œλ₯Ό μ‹œκ°„ μ°¨λ₯Ό 두고 λ‚˜νƒ€λ‚˜κ²Œ ν•˜κ³  싢을 λ•Œ buildSequentialAnimationsλ₯Ό μ‚¬μš©ν•˜λ©΄ νŽΈλ¦¬ν•©λ‹ˆλ‹€.

Column(
  children: buildSequentialAnimations(
    children: [
      Text('첫 번째 ν•­λͺ©'),
      Text('두 번째 ν•­λͺ©'),
      Text('μ„Έ 번째 ν•­λͺ©'),
    ],
    builder: (child, delay) => SlideFadeIn(
      delay: delay,
      child: child,
    ),
  ),
)

Reference

SlideDirection

  • fromBottom, fromTop, fromLeft, fromRight
  • fromBottomLeft, fromBottomRight, fromTopLeft, fromTopRight
  • none (νŽ˜μ΄λ“œ 효과만 적용)

SlideFadeIn Properties

속성 νƒ€μž… μ„€λͺ…
child Widget μ• λ‹ˆλ©”μ΄μ…˜μ„ μ μš©ν•  λŒ€μƒ (ν•„μˆ˜)
direction SlideDirection μŠ¬λΌμ΄λ“œ μ‹œμž‘ λ°©ν–₯ 프리셋
beginOffset Offset μ»€μŠ€ν…€ μ‹œμž‘ μœ„μΉ˜ (direction보닀 μš°μ„ ν•¨)
duration Duration μ• λ‹ˆλ©”μ΄μ…˜ μž¬μƒ μ‹œκ°„ (κΈ°λ³Έ 400ms)
delay Duration μ• λ‹ˆλ©”μ΄μ…˜ μ‹œμž‘ μ „ μ§€μ—° μ‹œκ°„
triggerOnVisible bool 화면에 보일 λ•Œ μ‹œμž‘ μ—¬λΆ€ (κΈ°λ³Έ false)

⬆️ μœ„λ‘œ 이동

Libraries

cool_animation_flutter
A package that provides various animation widgets and controllers. As of January 26, 2026, only the SlideFadeIn animation is available.