How to set the color of a selection area on a canvas using FabricJS?

In this article, we are going to learn how to set the color of a selection area on a canvas using FabricJS. We can adjust the color using the selectionColor property.

Syntax

new fabric.Canvas(element: HTMLElement|String, { selectionColor: String }: Object)

Parameters

  • element ? This parameter is the <canvas> element itself which can be derived using document.getElementById() or the id of the <canvas> element itself. The FabricJS canvas will be initialized on this element.

  • options (optional) ? This parameter is an Object which provides additional customizations to our canvas. Using this parameter, properties such as color, cursor, border width and a lot of other properties can be changed related to the canvas, of which selectionColor is a property with which we can indicate the color of the selection. The default value of selectionColor is rgba(100,100,255,0.3).

Example 1: Using RGBA Value

Passing the selectionColor key to the class

The selectionColor property accepts a String which determines the color of the selection. We can use an RGBA value which stands for: red, blue, green and alpha. The alpha parameter specifies the opacity of a color. Let's see a code example of how we can set the color of a selection area in canvas using FabricJS.

<!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>Setting the color of a selection area using FabricJs</h2>
   <p>Select an area around the object to see the color of the selection area.</p>
   <canvas id="canvas"></canvas>
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas", {
         selectionColor: "rgba(0,0,0,0.4)",
      });
      // Creating an instance of the fabric.Rect class
      var rect = new fabric.Rect({
         left: 170,
         top: 90,
         width: 60,
         height: 80,
         fill: "#006400",
         angle: 90,
      });
      // Adding it to the canvas
      canvas.add(rect);
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
   </script>
</body>
</html>

Example 2: Using Color Name

Using a color name instead of an RGBA value

We can also use a specific color instead of using an RGBA value. In this example, the selectionColor property has been set to the color "red".

<!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>Setting the color of a selection area using FabricJs</h2>
   <p>Select an area around the object to see the color of the selection area.</p>
   <canvas id="canvas"></canvas>
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas", {
         selectionColor: "red",
      });
      // Creating an instance of the fabric.Rect class
      var rect = new fabric.Rect({
         left: 170,
         top: 90,
         width: 60,
         height: 80,
         fill: "#006400",
         angle: 90,
      });
      // Adding it to the canvas
      canvas.add(rect);
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
   </script>
</body>
</html>

Key Points

  • The selectionColor property controls the color of the selection area when dragging to select objects
  • Accepts both RGBA values for custom transparency and standard color names
  • Default value is rgba(100,100,255,0.3) which provides a light blue semi-transparent selection
  • The selection area appears when you click and drag on the canvas to select multiple objects

Conclusion

The selectionColor property in FabricJS allows you to customize the appearance of the selection area. You can use RGBA values for precise control over transparency or simple color names for basic styling.

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

943 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements