How to add underline in IText using FabricJS?


In this tutorial, we are going to learn how to add underline to IText using FabricJS. The IText class was introduced in FabricJS version 1.4, extends fabric.Text and is used to create IText instances. An IText instance gives us the freedom to select, cut, paste or add new text without additional configurations. There are also various supported key combinations and mouse/touch combinations which make text interactive which are not provided in Text.

Textbox, however, which is based on IText allows us to resize the text rectangle and wraps lines automatically. This is not true for IText as height is not adjusted based on the wrapping of lines. We can manipulate our IText object by using various properties. Similarly, we can also add underline to IText object by using the underline property.

Syntax

new fabric.IText(text: String , { underline: Boolean }: Object)

Parameters

  • text − This parameter accepts a String which is the text string that we want to display.

  • options (optional) − This parameter is an Object which provides additional customizations to our IText object. Using this parameter colour, cursor, border width and a lot of other properties can be changed related to the object of which underline is a property.

Options Keys

  • underline − This property accepts a Boolean value which allows us to add underline to our text.

Example 1

Default appearance of the IText object

Let’s see a code example to see how our IText object looks when underline property is not used. In this case, there is no text decoration underline.

<!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 IText object</h2> <p>You can see that no text decoration underline is present</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 an itext object var itext = new fabric.IText( "Add sample text here.
Lorem ipsum dolor sit amet"
,{ width: 300, left: 50, top: 70, fill: "#d755da", textBackgroundColor: "black", } ); // Add it to the canvas canvas.add(itext); </script> </body> </html>

Example 2

Passing the underline property as key with a true value

In this example, we will see how we can add text decoration underline by using the underline property. The underline property accepts Boolean values and hence we have passed it a true value which will add the underline to our text.

<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 underline property as key with a true value</h2> <p>You can see that text decoration underline is present</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 an itext object var itext = new fabric.IText( "Add sample text here.
Lorem ipsum dolor sit amet"
,{ width: 300, left: 50, top: 70, fill: "#d755da", textBackgroundColor: "black", underline: true, } ); // Add it to the canvas canvas.add(itext); </script> </body> </html>

Updated on: 12-Sep-2022

222 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements