fillTextBox()
fillTextBox()v4.0.57
Part of the @remotion/layout-utils
package.
Calculate whether the text exceeds the box and wraps within the container. Only works in the browser, not in Node.js or Bun.
API
The function takes the following options:
maxBoxWidth
Required number
The max box width, unit px
.
maxLines
Required number
The max lines of the box.
Return value
An object with an add()
method, which can be used to add words to the text box.
Arguments
text
Required string
Any string.
fontFamily
Required string
Same as CSS style font-family
.
fontSize
Required number
Same as CSS style font-size
. Only numbers allowed, unit px
.
fontWeight
string
Same as CSS style font-weight
.
fontVariantNumeric
string
Same as CSS style font-variant-numeric
.
Return value
The add method returns an object with two properties:
exceedsBox
: Boolean, whether adding the word would cause the text to exceed the width of the box.newLine
: Boolean, whether adding the word would require starting a new line in the text box.
Example
tsx
import {fillTextBox } from "@remotion/layout-utils";constfontFamily = "Arial";constfontSize = 12;constbox =fillTextBox ({maxLines : 4,maxBoxWidth : 100 });box .add ({text : "Hello",fontFamily ,fontSize }); // {exceedsBox: false, newLine: false}box .add ({text : "World!",fontFamily ,fontSize }); // {exceedsBox: false, newLine: false}// Doesn't fit on the previous line anymorebox .add ({text : "How",fontFamily ,fontSize }); // {exceedsBox: false, newLine: true}// ...// Doesn't fix in the box anymorebox .add ({text : "the end",fontFamily ,fontSize }); // {exceedsBox: true, newLine: false}
tsx
import {fillTextBox } from "@remotion/layout-utils";constfontFamily = "Arial";constfontSize = 12;constbox =fillTextBox ({maxLines : 4,maxBoxWidth : 100 });box .add ({text : "Hello",fontFamily ,fontSize }); // {exceedsBox: false, newLine: false}box .add ({text : "World!",fontFamily ,fontSize }); // {exceedsBox: false, newLine: false}// Doesn't fit on the previous line anymorebox .add ({text : "How",fontFamily ,fontSize }); // {exceedsBox: false, newLine: true}// ...// Doesn't fix in the box anymorebox .add ({text : "the end",fontFamily ,fontSize }); // {exceedsBox: true, newLine: false}