search ESC

Searching…

No results for "".

Type at least 2 characters to search.

Docs
You are viewing an older version (1.0.0). Go to the latest.

Transitions

Utilities for controlling the duration and easing of state transitions in Wind.

Basic Usage

Transitions allow you to change property values smoothly over a given duration. In Wind, these are typically paired with state modifiers like hover:, focus:, or active:.

// Smoothly transition background color on hover
WDiv(
  className: 'bg-blue-500 hover:bg-blue-700 duration-300 ease-in-out',
  child: WText('Hover Me', className: 'text-white'),
)

By adding duration-200, the background color shift happens over 200 milliseconds instead of snapping instantly.

Quick Reference

Duration

Class Value Description
duration-75 75ms Very fast transition
duration-100 100ms Fast transition
duration-150 150ms
duration-200 200ms Standard UI transition
duration-300 300ms
duration-500 500ms Noticeable transition
duration-700 700ms
duration-1000 1000ms Slow transition

Easing (Timing Function)

Class Value Description
ease-linear Curves.linear Constant speed
ease-in Curves.easeIn Starts slow, ends fast
ease-out Curves.easeOut Starts fast, ends slow
ease-in-out Curves.easeInOut Slow start and end

Variants

Duration

Use the duration-{ms} utility to set the length of the transition animation.

WDiv(className: 'duration-500 ...')

Easing

Control the rate of change with ease-{curve} utilities. This defines the "feel" of the animation.

WDiv(className: 'ease-out duration-300 ...')

Responsive Design

Apply different transition speeds or curves at different breakpoints using the standard responsive prefixes.

// Slow transition on desktop, fast on mobile
WDiv(className: 'duration-150 lg:duration-500')

Dark Mode

Use the dark: prefix to apply different transition styles when the application is in dark mode.

WDiv(className: 'duration-200 dark:duration-500')

Arbitrary Values

If the standard scale doesn't fit your specific animation needs, use bracket notation to provide a custom millisecond value.

WDiv(className: 'duration-[420ms] ease-[Curves.bounceOut]')

Customizing Theme

To extend or override the default transition scales, modify WindThemeData in your app configuration.

WindTheme(
  data: WindThemeData(
    transitionDurations: {
      'snappy': Duration(milliseconds: 50),
      'lazy': Duration(milliseconds: 2000),
    },
    transitionCurves: {
      'bounce': Curves.bounceOut,
    },
  ),
  child: MyApp(),
)

Usage: duration-snappy, ease-bounce.