What you will use in this project
- CSS Grid for button layouts
- Stateful expression evaluation
- Event delegation
- Touch-friendly button sizing
Complete each step in the editor and watch the result as your page takes shape.
Create a polished mobile calculator app.
Add advanced functions and a history list.
Easy · +100 XP · HTML CSS JavaScript
Check code when you’re ready. We grade your work against the step’s rubric and tell you exactly what passed and what still needs work.
This project is broken into 9 steps. Each one has its own pass criterion. Click Check code on every step to verify your progress and earn the full +100 XP.
| # | Step & pass criterion | Weight |
|---|---|---|
| 1 | Markup shell Display, keypad, history present | 15 pts |
| 2 | Digit buttons Ten digit buttons present | 15 pts |
| 3 |
Operator buttons
|
15 pts |
| 4 | Keypad grid Keypad laid out with grid or flex | 5 pts |
| 5 | Wire digit clicks Click handler updates the display | 15 pts |
| 6 | Operators and clear Operator buttons wired | 5 pts |
| 7 | Evaluate on equals Code handles arithmetic | 10 pts |
| 8 | Advanced ops Percent and sqrt implemented | 10 pts |
| 9 | Show history History rendered | 10 pts |
Sign in to your W3Schools account to unlock this project, earn XP, and track your progress.
Sign in Create accountIf you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com
If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com