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.

Options Keys

  • textAlign − This property accepts a String as a value which allows us to control the possible values of text alignment. Its default value is left. The other possible values are “center”, “right”, “justify”, “justify-left”, justify-center” and “justify-right” which are explained below −

    • 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 the 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 appearance of the text in Textbox object

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

Passing the textAlign property as key with a value

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>

Updated on: 02-Aug-2022

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements