Last Updated : 19 Jun, 2025
Over 70% of beginners start with interactive projects like counters to learn JavaScript. In this article, you'll create a simple counter app that lets users increase, decrease, and reset values—while also tracking clicks and resetting after a set limit.
What we are going to createWe will build a simple web application with the following features:
<html>
<head></head>
<body>
<div class="container">
<div class="counter">
<p id="count">0</p>
</div>
<div>
<button onclick="dec()">Decrement</button>
<button onclick="inc()">Increment</button>
</div>
<div class="clicks">
<p>Clicks on Increment: <span id="incCount">0</span></p>
<p>Clicks on Decrement: <span id="decCount">0</span></p>
</div>
</div>
</body>
</html>
In this example:
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f4f8;
}
.container {
text-align: center;
padding: 20px;
border: 1px solid #ccc;
border-radius: 10px;
background-color: #fff;
}
.counter {
font-size: 2em;
margin-bottom: 20px;
}
button {
padding: 10px 20px;
font-size: 1em;
margin: 5px;
cursor: pointer;
}
.clicks {
font-size: 1.1em;
margin-top: 10px;
}
Code Overview:
The JavaScript for the counter application handles the logic for incrementing and decrementing the counter value. It updates the displayed counter and tracks the number of clicks on the increment and decrement buttons.
script.js
function inc() {
c = (c >= 10) ? 0 : c + 1;
ci = (ci >= 10) ? 0 : ci + 1;
update();
}
function dec() {
c = c > 0 ? c - 1 : 0;
cd = (cd >= 10) ? 0 : cd + 1;
update();
}
function update() {
incCount.textContent = ci;
decCount.textContent = cd;
count.textContent = c;
}
Code Overview:
<html>
<head>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f4f8;
}
.container {
text-align: center;
padding: 20px;
border: 1px solid #ccc;
border-radius: 10px;
background-color: #fff;
}
.counter {
font-size: 2em;
margin-bottom: 20px;
}
button {
padding: 10px 20px;
font-size: 1em;
margin: 5px;
cursor: pointer;
}
.clicks {
font-size: 1.1em;
margin-top: 10px;
}
</style>
</head>
<body>
<div class="container">
<div class="counter">
<p id="count">0</p>
</div>
<div>
<button onclick="dec()">Decrement</button>
<button onclick="inc()">Increment</button>
</div>
<div class="clicks">
<p>Clicks on Increment: <span id="incCount">0</span></p>
<p>Clicks on Decrement: <span id="decCount">0</span></p>
</div>
</div>
<script>
let c = 0, ci = 0, cd = 0;
const count = document.getElementById("count");
const incCount = document.getElementById("incCount");
const decCount = document.getElementById("decCount");
function inc() {
c++;
ci = (ci >= 10) ? 0 : ci + 1;
update();
}
function dec() {
c = c > 0 ? c - 1 : 0;
cd = (cd >= 10) ? 0 : cd + 1;
update();
}
function update() {
count.textContent = c;
incCount.textContent = ci;
decCount.textContent = cd;
}
</script>
</body>
</html>
Conclusion
This counter application is a simple and effective way to demonstrate how HTML, CSS, and JavaScript work together. It allows users to increment and decrement a counter while tracking the number of times each button is clicked. With clear functionality and a user-friendly interface, it's a great starting point for learning basic web development concepts.
Design a simple counter using HTML CSS and JavaScript
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4