Level Up Coding

Coding tutorials and news. The developer homepage gitconnected.com && skilled.dev && levelup.dev

Follow publication

Tiny JavaScript Design Pattern Project — Canvas Text Effects

Rajesh Pillai
Level Up Coding
Published in
7 min readNov 5, 2024

--

This article will take you through building an interactive canvas text effect using HTML, CSS, and JavaScript. We’ll break down the entire process, explaining each step, and highlighting the design patterns used to achieve the desired effect. Let’s dive in!

Overview

Our goal is to create an animated text effect where text particles respond to user interactions. The JavaScript code provides four different effects (Color Change, Size Variation, Pulse, Repel), allowing you to create dynamic visuals. We’ll discuss the Strategy, Factory, and Decorator design patterns used to implement these effects, providing a better understanding of the underlying structure.

Step 1: Setting Up the HTML

First, create a simple HTML file that includes buttons to switch between different effects and a canvas element for rendering the particle animations. This will allow us to interact with the effects and see the output on the canvas.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Canvas Text Effect</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="controls">
<button onclick="setEffect('colorChange')">Color Change</button>
<button onclick="setEffect('sizeVariation')">Size Variation</button>
<button onclick="setEffect('pulse')">Pulse Effect</button>
<button onclick="setEffect('repel')">Repel Effect</button>
</div>
<canvas id="particleCanvas"></canvas>
<script src="script.js"></script>
</body>
</html>

Explanation

  • Controls: The buttons allow users to switch between different effects.
  • Canvas: This element is where all the magic happens — particles are drawn and animated in response to the selected effect.

Step 2: Adding CSS for Styling

Create a styles.css file to style the canvas and control buttons. This makes the page look clean and polished.

canvas {
display: block;
margin: 0 auto;
background-color: black;
}
#controls {
text-align: center;
margin: 10px;
}
button {
margin: 5px

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

--

--

Written by Rajesh Pillai

Co-Founder, Software Engineer and CTO @Algorisys Technologies - Building Products and Upskilling upcoming generations

Responses (1)

Write a response