src/docs/transition-duration.mdx
import { ApiTable } from "@/components/api-table.tsx"; import { Example } from "@/components/example.tsx"; import { Figure } from "@/components/figure.tsx"; import { ResponsiveDesign, UsingACustomValue } from "@/components/content.tsx";
export const title = "transition-duration"; export const description = "Utilities for controlling the duration of CSS transitions.";
<ApiTable rows={[ ["duration-<number>", "transition-duration: <number>ms;"], ["duration-initial", "transition-duration: initial;"], ["duration-(<custom-property>)", "transition-duration: var(<custom-property>);"], ["duration-[<value>]", "transition-duration: <value>;"], ]} />
Use utilities like duration-150 and duration-700 to set the transition duration of an element in milliseconds:
<!-- [!code classes:duration-150,duration-300,duration-700] -->
<button class="transition duration-150 ease-in-out ...">Button A</button>
<button class="transition duration-300 ease-in-out ...">Button B</button>
<button class="transition duration-700 ease-in-out ...">Button C</button>
For situations where the user has specified that they prefer reduced motion, you can conditionally apply animations and transitions using the motion-safe and motion-reduce variants:
<!-- [!code classes:motion-reduce:duration-0] -->
<button type="button" class="duration-300 motion-reduce:duration-0 ...">
<!-- ... -->
</button>
<ResponsiveDesign element="button" property="transition-duration" defaultClass="duration-0" featuredClass="duration-150" />