2.0.1 • Published 9 months ago
svelte-typewrite v2.0.1
Svelte Typewriter
Typewriter component for Svelte that actually "types" one character at a time instead of just moving the caret at linear speed.
Installation
npm i svelte-typewrite
Usage
<script>
import { TypeWriter } from 'svelte-typewrite'
</script>
<TypeWriter texts={['lorem ipsum', 'dolor sit amet']} />
Props
Required
Name | Type | Description |
---|---|---|
texts | string[] | Array of strings to be displayed |
Options
Name | Type | Default | Description |
---|---|---|---|
repeat | number | 0 | How many times texts should be looped over (0 for indefinitely) |
endState | EndState | undefined | What to do after typing the very last textRequired if repeat > 0 |
typeSpeed | number | 60 | Speed at which the text is typed (in ms/char ) |
deleteSpeed | number | 40 | Speed at which the text is deleted (in ms/char ) |
blinkDuration | number | 600 | Duration of each "blink" of caret (in ms ) |
blinkCount | number | 3 | Number of blinks after the text is typed |
waitBetweenTexts | number | 150 | How long to wait before starting to type the next text (in ms )Will be ignored if blinksBetweenTexts > 0 |
blinksBetweenTexts | number | undefined | How many times the caret should blink before starting to type the next text |
interface EndState {
/** Whether to leave the text typed or deleted */
text: 'typed' | 'deleted'
/** Whether to leave the caret visible, hidden, or blinking */
caret: 'visible' | 'hidden' | 'blink'
}
Callbacks
Name | Type | Description |
---|---|---|
ontypestart | (index: number) => void | Runs when typing animation starts.Receives the index of the text being typed |
ontypeend | (index: number) => void | Runs when typing animation ends.Receives the index of the text that was just typed |
ondeletestart | (index: number) => void | Runs when deleting animation starts.Receives the index of the text being deleted |
ondeleteend | (index: number) => void | Runs when deleting animation ends.Receives the index of the text that was just deleted |
!TIP Type of
index
parameter will properly be "narrowed down" iftexts
is a tuple (i.e. defined withas const
).
Useful if you havenoUncheckedIndexedAccess
set totrue
in yourtsconfig.json
.