Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

91 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

2025-12-12 14:26:25 +09:00
# Transitions
<p class="description">These theme helpers allow you to create custom CSS transitions, you can customize the durations, easings and more.</p>
## API
### `theme.transitions.create(props, options) => transition`
#### Arguments
1. `props` (_string_ | _string[]_): Defaults to `['all']`. Provides a CSS property, or a list of CSS properties that should be transitioned.
2. `options` (_object_ [optional]):
- `options.duration` (_string_ | _number_ [optional]): Defaults to `theme.transitions.duration.standard`. Provides the duration of the transition.
- `options.easing` (_string_ [optional]): Defaults to `theme.transitions.easing.easeInOut`. Provides the easing for the transition.
- `options.delay` (_string_ | _number_ [optional]): Defaults to `0`. Provides the delay for the transition.
#### Returns
`transition`: A CSS transition value, which composes all CSS properties that should be transitioned, together with the defined duration, easing and delay.
Use the <code>theme.transitions.create()</code> helper to create consistent transitions for the elements of your UI.</p>
```js
theme.transitions.create(['background-color', 'transform']);
```
#### Example
{{"demo": "TransitionHover.js", "defaultCodeOpen": false}}
### `theme.transitions.getAutoHeightDuration(height) => duration`
#### Arguments
1. `height` (_number_): The height of the component.
#### Returns
`duration`: The calculated duration based on the height.
## Durations
You can change some or all of the duration values, or provide your own (for use in the `create()` helper). This example shows all the default values (in milliseconds), but you only need to provide the keys you wish to change or add.
```js
const theme = createTheme({
transitions: {
duration: {
shortest: 150,
shorter: 200,
short: 250,
// most basic recommended timing
standard: 300,
// this is to be used in complex animations
complex: 375,
// recommended when something is entering screen
enteringScreen: 225,
// recommended when something is leaving screen
leavingScreen: 195,
},
},
});
```
## Easings
You can change some or all of the easing values, or provide your own, by providing a custom CSS <code>transition-timing-function</code> value.
```js
const theme = createTheme({
transitions: {
easing: {
// This is the most common easing curve.
easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',
// Objects enter the screen at full velocity from off-screen and
// slowly decelerate to a resting point.
easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',
// Objects leave the screen at full velocity. They do not decelerate when off-screen.
easeIn: 'cubic-bezier(0.4, 0, 1, 1)',
// The sharp curve is used by objects that may return to the screen at any time.
sharp: 'cubic-bezier(0.4, 0, 0.6, 1)',
},
},
});
```
## References
Check out the [Transitions](/material-ui/transitions/) page to explore the transition components that are included with Material UI.