How to set the vertical scale factor of Textbox using FabricJS?

In this tutorial, we are going to learn how to set the vertical scale factor of a Textbox using FabricJS. We can customize, stretch or move around the text written in a textbox. In order to create a textbox, we will have to create an instance of fabric.Textbox class and add it to the canvas. Just as we can specify the position, colour, opacity and dimension of a textbox object in the canvas, we can also set the vertical scale factor of a textbox object. This can be done by using the scaleY property.

Syntax

new fabric.Textbox(text: String, { scaleY : Number }: Object)

Parameters

  • text ? This parameter accepts a String which is the text string that we want to display inside our textbox.

  • options (optional) ? This parameter is an Object which provides additional customizations to our textbox. Using this parameter, properties such as colour, cursor, stroke width and a lot of other properties can be changed related to the object of which scaleY is a property.

scaleY Property

The scaleY property accepts a Number value that determines the vertical object scale factor. Its default value is 1. This property controls the transformation that resizes an object along the Y-axis.

Example 1: Default Appearance

Default appearance when scaleY is not used

Let's see a code example that displays the appearance of our textbox object when the scaleY property is not used. By default, the vertical scale factor of the textbox object is 1.

<!DOCTYPE html>
<html>
<head>
    <!-- Adding the Fabric JS Library-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
    <h2>Default appearance when "scaleY" is not used</h2>
    <p>You can see that there is no resizing along the Y-axis</p>
    <canvas id="canvas"></canvas>
    <script>
        // Initiate a canvas instance
        var canvas = new fabric.Canvas("canvas");
        canvas.setWidth(document.body.scrollWidth);
        canvas.setHeight(250);
        
        // Initiate a textbox object
        var textbox = new fabric.Textbox("Politicians and diapers must be changed often, and for the same reason.", {
            backgroundColor: "#fffff0",
            width: 400,
            left: 50,
            top: 20,
            fill: "violet",
            strokeWidth: 2,
            stroke: "blue",
            textAlign: "center",
        });
        
        // Add it to the canvas
        canvas.add(textbox);
    </script>
</body>
</html>

Example 2: Using scaleY Property

Passing scaleY property as key

In this example, we are passing the scaleY property as a key with a value of 2. This means that the textbox object's scale factor in the vertical direction is doubled.

<!DOCTYPE html>
<html>
<head>
    <!-- Adding the Fabric JS Library-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
    <h2>Passing scaleY property as key</h2>
    <p>You can see that the object's vertical height has doubled</p>
    <canvas id="canvas"></canvas>
    <script>
        // Initiate a canvas instance
        var canvas = new fabric.Canvas("canvas");
        canvas.setWidth(document.body.scrollWidth);
        canvas.setHeight(450);
        
        // Initiate a textbox object
        var textbox = new fabric.Textbox("Politicians and diapers must be changed often, and for the same reason.", {
            backgroundColor: "#fffff0",
            width: 400,
            left: 50,
            top: 20,
            fill: "violet",
            strokeWidth: 2,
            stroke: "blue",
            textAlign: "center",
            scaleY: 2,
        });
        
        // Add it to the canvas
        canvas.add(textbox);
    </script>
</body>
</html>

Key Points

  • The scaleY property controls vertical scaling of the textbox
  • Default value is 1 (normal size)
  • Values greater than 1 increase vertical size
  • Values between 0 and 1 decrease vertical size

Conclusion

The scaleY property in FabricJS allows you to control the vertical scaling of textbox objects. By setting different values, you can stretch or compress the textbox vertically to achieve the desired visual effect.

Updated on: 2026-03-15T23:19:00+05:30

297 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements