README
react-type-animation
Customizable React typing animation component.
Install
npm install react-type-animation
Requires a react
and react-dom
version of at least 15.0.0.
Live Demo
A live demo can be found at: https://react-type-animation.vercel.app/
Usage
import TypeAnimation from 'react-type-animation';
const ExampleComponent = () => {
return (
<TypeAnimation
cursor={false}
sequence={['React typing animation based on typical', 1000, '']}
wrapper="h2"
/>
);
};
Important Usage Notes ⚠
Hot-Reload Bug
When using hot-reload, the type animation will most likely be bugged until you hard-reload the page. Until this issue is resolved, you need to hard-reload the page after ever code change in order to see the animation in a non-bugged state.
Layout-shift
In order to prevent layout shift caused by the type animation's text HTML-element expanding, you need to either wrap the TextAnimation component in a div that has a fixed width/height which is wider than the maximum expansion of the TypeAnimation element, or make that wrapper div's position absolute
.
Props
Prop | Required | Type | Example | Description |
---|---|---|---|---|
sequence |
yes | array[] | ['One', 1000, 'Two'] |
Animation sequence: TEXT followed by DELAY-IN-MS |
wrapper |
no | string | p ,h2 ,div |
HTML elements that Animation is wrapped around |
repeat |
no | number | 3 , Infinity |
Amount of animation repetitions |
cursor |
no | boolean | false , true |
Display blinking cursor css-animation |
className |
no | string | custom-class-name |
HTML class name applied to the wrapper to style the text |
Custom Cursor Animation
If you want to apply a custom cursor animation, set the cursor
prop to false
(which prevents any default css-styles from being applied) and set a custom className
prop to the TypeAnimation component with your own css styles.
These are the base styles for the cursor animation:
.type::after {
content: '|';
animation: cursor 1.1s infinite step-start;
}
@keyframes cursor {
50% {
opacity: 0;
}
}
If you want to modify the styles, simply make a styles.css file, copy and modify the styles and pass the prop className="type"
to apply the custom styles.
If you would like the cursor to stop after a specific time, consider using a JSX styling library which lets you define CSS dynamically within your JSX Component, or simply replace infnite
with a static finite number (like 2s
) inside your custom css file.