A simple React component to create typing animations with multiple sentences.
I you need a typing effect on your app this package may be what you need :)
npm install react-text-typist --save
import React from 'react';
import Typist from 'react-text-typist';
export default App() => {
return (
<Typist sentences={['First Sentence', 'Second Sentence', 'Third Sentence']} loop={false} />
);
}
Typist accepts some props to customize the component behaviour:
Property | Type | Default | Description | Required |
---|---|---|---|---|
sentences | string[] | Array of sentences to type | yes | |
className | string | Classname to customize component | no | |
cursorClassName | string | Classname to customize cursor | no | |
cursorBlinkSpeed | string | 700 (ms) | Duration of cursor blink animation | no |
cursorColor | string | Color of cursor | no | |
cursorSmooth | boolean | false | Cursor smooth animation | no |
showCursor | boolean | true | Hide or show cursor | no |
typingSpeed | number | 80 (ms) | Typing speed (ms between each character) | no |
deletingSpeed | number | 30 (ms) | Deleting speed (ms between each character) | no |
pauseTime | number | 1000(ms) | Pause between sentences | no |
startDelay | number | 0(ms) | Delay before start typing | no |
cursorDelay | number | same as startDelay | Delay before showing cursor for first time | no |
loop | boolean | true | Choose if you want infinite loop | no |
style | CSSProperties | {} | Inline CSS to apply to the component | no |
defaultText | string | '' | Default text to render, useful with SSR | no |
onTypeFinish | Function | Callback when finished typing | no |
You can apply your own class to the text and the cursor using the 'className' prop. Also you can select the cursor in CSS via the 'typist-cursor' class or you can apply your own class just to the cursor using the 'cursorClassName' prop.
export default App() => {
return (
<Typist className={'myTypist'} cursorClassName={'myCursor'} sentences={['First Sentence', 'Second Sentence', 'Third Sentence']} loop={false} />
);
}
/* Default cursor class */
.typist-cursor {
font-size: 16px;
color: red;
}
/* This will apply to text and cursor */
.myTypist {
font-size: 16px;
color: red;
}
/* This will apply only to cursor */
.myCursor {
font-size: 16px;
color: red;
}
The component is also compatible with libraries like 'styled-components':
import React from 'react';
import Typist from 'react-text-typist';
import styled, { createGlobalStyle } from 'styled-components';
const StyledTypist = styled(Typist)`
font-size: 4rem;
color: blue;
`;
export default App() => {
return (
<StyledTypist sentences={['First Sentence', 'Second Sentence', 'Third Sentence']} loop={false} />
);
}