Back to results for “Set”
Flutter › App Theming & Dark Mode

How can you smoothly animate the transition between light and dark theme when a user toggles the setting, rather than having the entire app's colors change instantly and abruptly?

Advanced

Answer

By default, switching a Flutter app's theme mode causes an instant, abrupt change in every color throughout the app, but wrapping your app or specific widgets with an AnimatedTheme widget instead smoothly interpolates every themed color and style over a specified duration whenever the underlying ThemeData changes, producing a noticeably more polished, professional feeling transition when a user toggles between light and dark mode compared to the jarring default instant switch.
AnimatedTheme(
  data: isDarkMode ? ThemeData.dark() : ThemeData.light(),
  duration: Duration(milliseconds: 300),
  child: MyHomePage(),
)
Real-world example A premium feeling productivity app wraps its main content in an AnimatedTheme widget, giving users a smooth, gradual color fade whenever they toggle between light and dark mode instead of an abrupt, jarring instant switch.

Common follow-ups: Does AnimatedTheme animate every single themed property, or only specific ones?;What is the performance impact of using AnimatedTheme across a very large, complex widget tree?