@react-md/transition
v5.1.6
Published
A package for working with react-md to use some simple transitions.
Downloads
5,613
Maintainers
Readme
@react-md/transition
Create simple CSS transitions using the provided transition hooks and components utilizing the default transition timing functions. This package also provides a collapse transition, scaling transition, vertical only scaling transition, and a new page transition named cross fade.
Provided components and hooks:
Collapse
oruseCollapseTransition
- transition an element in and out of view based on the height of the elementCrossFade
oruseCrossFadeTransition
- a transition generally used for a full page transition that fades and slightly moves a child component into viewScaleTransition
oruseScaleTransition
- transition an element in and out of view with ascale
transform that can be updated to just bescaleY
useTransition
- a hook implementation of theTransition
component fromreact-transition-group
CSSTransition
oruseCSSTransition
- allows for a CSS transition that was heavily inspired byreact-transition-group
useFixedPositioning
- hooks into theCSSTransition
component from to fix an element to another element within the viewport
The rmd-transition-shadow-transition
mixin allows you to "performantly"
transition between two box shadow values using the
opacity trick. This
mixin automatically creates a pseudo ::before
or ::after
element with the
final box shadow and animates the opacity once one of the $active-selectors
are triggered. The code below will help explain this part a bit more.
Installation
npm install --save @react-md/transition
It is also recommended to install the following packages as they work hand-in-hand with this package:
npm install --save @react-md/theme \
@react-md/utils
Documentation
You should check out the full documentation for live examples and more customization information, but an example usage is shown below.
Usage
import type { useState } from "react";
import { render } from "react-dom";
import { Button } from "@react-md/button";
import { Collapse } from "@react-md/transition";
const App = () => {
const [collapsed, setCollapsed] = useState(true);
return (
<>
<Button onClick={() => setCollapsed(!collapsed)}>Toggle</Button>
<Collapse collapsed={collapsed}>
<div>This is my collapsible content!</div>
</Collapse>
</>
);
};
render(<App />, document.getElementById("root"));