# THREE.TextSprite
`class THREE.TextSprite extends THREE.Sprite`
An instance of `TextSprite` automatically computes the optimal font size depending on the distance to the camera and the size of the renderer canvas.
## demo
[Try it out!](https://seregpie.github.io/THREE.TextSprite/)
## dependencies
- [THREE.TextTexture](https://github.com/SeregPie/THREE.TextTexture)
## setup
### npm
```shell
npm install three.textsprite
```
### ES module
```javascript
import TextSprite from 'three.textsprite';
```
### browser
```html
```
The class `TextSprite` will be available under the namespace `THREE`.
## members
```
.constructor({
material,
maxFontSize,
minFontSize,
redrawInterval,
textSize,
texture,
})
```
| argument | description |
| ---: | :--- |
| `material` | The parameters to pass to the constructor of [`SpriteMaterial`](https://threejs.org/docs/index.html#api/materials/SpriteMaterial). |
| `texture` | The parameters to pass to the constructor of [`TextTexture`](https://github.com/SeregPie/THREE.TextTexture). |
```javascript
let sprite = new THREE.TextSprite({
material: {
color: 0xffbbff,
fog: true,
},
redrawInterval: 250,
textSize: 10,
texture: {
text: 'Carpe Diem',
fontFamily: 'Arial, Helvetica, sans-serif',
},
});
scene.add(sprite);
```
---
`.isTextSprite = true`
Used to check whether this is an instance of `TextSprite`.
You should not change this, as it is used internally for optimisation.
---
`.textSize = 1`
The size of the text.
---
`.redrawInterval = 1`
The minimum time that must elapse before the canvas is redrawn. If 0, the canvas is redrawn immediately whenever `TextSprite` is rendered, otherwise the redrawing is deferred.
---
`.minFontSize = 0`
The minimum font size.
---
`.maxFontSize = Infinity`
The maximum font size.
---
`.dispose()`
Disposes the texture and the material.