How to set the padding of Textbox using FabricJS?

In this tutorial, we are going to learn how to set the padding of a Textbox using FabricJS. Textbox is one of the various shapes provided by FabricJS. 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 padding of a textbox object. This can be done by using the padding property.

Syntax

new fabric.Textbox(text: String, { padding : 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 padding is a property.

Options Keys

  • padding ? This property accepts a Number value. The value that is assigned determines the distance in pixels between the textbox object and its controlling borders.

Example 1: Default Appearance Without Padding

Let's see a code example that displays the appearance of our textbox object when the padding property is not used. As we can see, there is no space between the object and its surrounding controlling borders. This means that there is zero padding between the textbox and its controlling borders.

<!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 padding is not used</h2>
    <p>You can select the textbox to see there is no space between the object and its controlling borders</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("Keep a smile on your face. Keep a spring in your step.", {
            left: 110,
            top: 45,
            fill: "orange",
            stroke: "green",
            width: 400,
        });
        
        // Add it to the canvas
        canvas.add(textbox);
    </script>
</body>
</html>

Example 2: Using the Padding Property

In this example, we are passing the padding property as key with a value of 7. This indicates that there will be a 7px distance between the textbox object and all of its controlling borders. We've also added a background color to make the padding effect more visible.

<!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 padding property as key</h2>
    <p>You can select the textbox to see the padding between the object and its controlling borders</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("Keep a smile on your face. Keep a spring in your step.", {
            left: 110,
            top: 45,
            fill: "orange",
            stroke: "green",
            width: 400,
            padding: 7,
            backgroundColor: "#f5f5dc",
        });
        
        // Add it to the canvas
        canvas.add(textbox);
    </script>
</body>
</html>

Key Points

  • The padding property creates uniform spacing around all sides of the textbox

  • Padding affects the distance between the text content and the selection borders

  • The value is specified in pixels as a number

  • Adding a background color helps visualize the padding effect

Conclusion

The padding property in FabricJS textbox provides control over the spacing between text content and selection borders. Use it to improve text readability and visual appearance in your canvas applications.

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

761 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements