Fabric.js Textbox editable Property

In this article, we are going to see how to set the edit mode of a Textbox canvas using Fabric.js. The Textbox in Fabric.js is movable and can be stretched according to requirements. Further, the Textbox can be customized when it comes to initial stroke color, height, width, fill color, or stroke width.

To make it possible we are going to use a JavaScript library called Fabric.js. After importing the library using CDN, we will create a canvas block in the body tag which will contain the Textbox. After this, we will initialize instances of Canvas and Textbox provided by Fabric.js, set the edit mode by using the editable property, and render the Textbox on the Canvas as given in the example below.

Syntax:

fabric.Textbox('text', {
    editable: boolean
});

Parameters: This property accepts a single parameter as mentioned above and described below:

  • editable: It specifies the edit mode of the Textbox. A value of true makes the Textbox editable and a value of false disables editing.

Example: This example uses Fabric.js to set the edit mode of the Textbox.

HTML




<html>
<head>
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.3.0/fabric.min.js">
    </script>
</head>
<body>
    <h1 style="color: green;">
        w3wiki
    </h1>
    <h3>
        Fabric.js | Textbox editable Property
    </h3>
    <canvas id="canvas" width="600" height="300"
            style="border:1px solid #000000">
    </canvas>
    <script>
        // Initiate a Canvas instance 
        var canvas = new fabric.Canvas("canvas");
  
        // Create new Textbox instances 
        var textEditable = new fabric.Textbox(
            'Editable Textbox', {
            width: 500,
            editable: true
        });
  
        var textNonEditable = new fabric.Textbox(
            'Non Editable Textbox', {
            width: 500,
            editable: false
        });
  
        // Render the Textbox in canvas 
        canvas.add(textEditable);
        canvas.add(textNonEditable);
  
        canvas.centerObject(textNonEditable);
        canvas.centerObjectH(textEditable);
    </script>
</body>
</html>


Output: