typewriter-text-effect
Version:
Simple typewriter text animation in JS/TS
133 lines (92 loc) âĸ 3.49 kB
Markdown
# ⨠typewrite-text-effect
A lightweight, zero-dependency TypeScript library for creating typewriter-style text animations in the browser. Supports pause/resume, hover controls, random speed typing, and more!
## Features
- đ Looping and backspacing animation
- đ¯ Custom typing/deleting speed
- đšī¸ Pause on hover
- đ Random speed typing effect
- đ Manual control (pause/resume/reset)
- âąī¸ Delays and start timers
- đ¨ Custom CSS class for styled text
- đąī¸ Cursor animation support
- â
Fully typed (TypeScript)
## Installation
Install my-project with npm
```bash
npm install typewrite-text-effect
```
## Usage/Examples with all Options
```typescript
import { Typewriter } from 'typewrite-text-effect';
const writer = new Typewriter(document.getElementById('demo')!, {
text: ['Welcome đ', 'Typewriter effect in TypeScript!'],
speed: 100,
deleteSpeed: 50,
delayBetween: 1000,
pauseBetweenLoops: 2000,
loop: true,
cursor: true,
cursorChar: '|',
startDelay: 500,
pauseOnHover: true,
randomSpeed: true,
autoStart: true,
textStyleClass: 'type-text',
onComplete: () => console.log('Finished!')
});
```
## đ§Š API Reference
#### Constructor
```http
new Typewriter(el: HTMLElement, options: TypewriterOptions)
```
#### TypewriterOptions Interface
```typescript
interface TypewriterOptions {
text: string[]; // Text array to type
speed?: number; // Typing speed (ms)
deleteSpeed?: number; // Deleting speed (ms)
delayBetween?: number; // Delay before deleting
pauseBetweenLoops?: number; // Delay before next text
loop?: boolean; // Loop through texts
cursor?: boolean; // Show cursor
cursorChar?: string; // Cursor character
startDelay?: number; // Delay before starting
pauseOnHover?: boolean; // Pause on hover
randomSpeed?: boolean; // Randomized speed
autoStart?: boolean; // Auto start typing
textStyleClass?: string; // Class for styled text
onComplete?: () => void; // Callback on finish (if loop: false)
}
```
## đ§ Methods
| Method | Description |
|--------------|------------------------------------------|
| `start()` | Start the typewriter effect |
| `pause()` | Pause the typing |
| `resume()` | Resume from paused state |
| `stop()` | Stop completely and clear timeouts |
| `reset()` | Reset typing state to initial |
| `updateText()` | Update text array dynamically |
| `isRunning()` | Returns whether typing is currently active |
| `destroy()` | Cleanup DOM, remove listeners, etc. |
## đī¸ Cursor Blink Animation (CSS)
To enable the blinking cursor effect, include the following CSS(Optional):
```css
.typewriter-cursor {
display: inline-block;
animation: blink 1s step-start infinite;
}
@keyframes blink {
50% { opacity: 0; }
}
```
## đ License
[MIT](https://choosealicense.com/licenses/mit/)
## Authors
- [Rajat Singh](https://github.com/RajatSinghrs)
## Contributing
Contributions are always welcome!
Please adhere to this project's `code of conduct`.
- 