random-text-bg
Version:
Add randomly scattered, selectable text in the background of your web page.
70 lines (49 loc) • 2.21 kB
Markdown
# 📚 Random Text Background (random-text-bg)
Add randomly scattered and selectable text across your webpage as a subtle, dynamic background layer. Great for watermarks, testing overlays, or playful visual effects.
## ✨ Features
- 📌 Random positioning of each word on screen
- 🔄 Optional random rotation of words
- 🖋️ Fully selectable background text (appears in text selection)
- 🎨 Customizable font, color, and word count
- 🚫 Non-intrusive — doesn't block page content
- ⚡ Lightweight and framework-agnostic (pure JavaScript)
## 🚀 Installation
### Using CDN (via jsDelivr)
```html
<script src="https://cdn.jsdelivr.net/npm/random-text-bg@1.0.2/dist/random-text-bg.min.js"></script>
```
## ⚙️ Configuration Options
You can pass an `options` object to the `RandomTextBg()` function to customize how the background text is rendered.
### Options
`text (string, default: '')`
The input string of words to scatter. Words are split by spaces.
`color (string, default: 'rgba(0, 0, 0, 0.05)')`
The color of each word. Use RGBA for transparency.
`fontSize (string, default: '2rem')`
Font size for each word (e.g., '1.5rem', '20px').
`fontFamily (string, default: 'monospace')`
Font family used for rendering the text.
`zIndex (number, default: 0)`
CSS z-index of the background container. Use -1 to push it behind all content.
`randomizeRotation (boolean, default: true)`
Randomly rotate each word. Set to false for no rotation.
`maxWords (number, default: 1000)`
Maximum number of words to display from the input string.
`textSelectable (boolean, default: false)`
Determines whether the scattered text is selectable. Set to true to allow users to highlight and copy the text.
`target (HTMLElement, default: document.body)`
Specifies the DOM element where the randomized background text should be rendered.
## Example
```
RandomTextBg({
text: 'random text that we want to laod in the background',
color: 'rgba(150, 150, 150, 0.5)',
fontSize: '1.5rem',
maxWords: 1000,
textSelectable: true,
target: document.querySelector('some_dom_element'),
zIndex: 1
});
```