How to set the alignment of text in a Textbox using FabricJS?

In this tutorial, we are going to learn how to set the alignment of text in 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. Similarly, we can also set its text alignment by using the textAlign property.

Syntax

new fabric.Textbox(text: String, { textAlign : String }: 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, border width and a lot of other properties can be changed related to the object of which textAlign is a property.

textAlign Property Values

  • textAlign ? This property accepts a String as a value which allows us to control the text alignment. Its default value is "left". The possible values are:

    • left ? Aligns the text to the left (default)

    • center ? Aligns the text at the center

    • right ? Aligns the text to the right

    • justify ? Stretches the lines such that each line has same distance from both left and right edges of the textbox

    • justify-left ? Stretches the lines such that each line has same distance from the left-edge of the textbox

    • justify-center ? Centers each line leaving different distance from both right and left edges of the textbox

    • justify-right ? Stretches the lines such that each line has same distance from the right-edge of the textbox

Example 1: Default Text Alignment

Let's see a code example to see how our textbox object looks like when the textAlign property is not used. In this case, our text will be aligned towards the left.

<!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 of the text in Textbox object</h2>
    <p>You can see that the text alignment is towards left</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("If you're too open-minded; your brains will fall out.", {
            width: 400,
            left: 50,
            top: 30,
            fill: "orange",
            strokeWidth: 2,
            stroke: "green"
        });

        // Add it to the canvas
        canvas.add(textbox);
    </script>
</body>
</html>

Example 2: Using textAlign Property

In this example, we will see how assigning a value to the textAlign property changes the alignment of the text inside the textbox object in our canvas. Since we have passed the value as "right", the text will now be aligned towards right.

<!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 the textAlign property as key with a value</h2>
    <p>You can see that the text alignment is towards right</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("If you're too open-minded; your brains will fall out.", {
            width: 400,
            left: 50,
            top: 70,
            fill: "orange",
            strokeWidth: 2,
            stroke: "green",
            textAlign: "right"
        });

        // Add it to the canvas
        canvas.add(textbox);
    </script>
</body>
</html>

Example 3: Center and Justify Alignment

Here's an example demonstrating center and justify alignment options:

<!DOCTYPE html>
<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
    <canvas id="canvas"></canvas>
    <script>
        var canvas = new fabric.Canvas("canvas");
        canvas.setWidth(600);
        canvas.setHeight(400);

        // Center aligned textbox
        var centerTextbox = new fabric.Textbox("This text is center aligned in the textbox.", {
            width: 300,
            left: 50,
            top: 50,
            fill: "blue",
            textAlign: "center"
        });

        // Justify aligned textbox
        var justifyTextbox = new fabric.Textbox("This text is justified, meaning it stretches to fill the width of the textbox evenly.", {
            width: 300,
            left: 50,
            top: 200,
            fill: "purple",
            textAlign: "justify"
        });

        canvas.add(centerTextbox);
        canvas.add(justifyTextbox);
    </script>
</body>
</html>

Conclusion

The textAlign property in FabricJS provides flexible text alignment options for Textbox objects. Use "left", "center", "right", or "justify" values to control how text appears within your textbox, enhancing the visual presentation of your canvas elements.

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

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements