A responsive, production-minded Tally Counter web application built with vanilla HTML, CSS, and JavaScript.
This project provides an interactive tally counting experience with:
- Multiple counters (up to 3) with active pinning
- Single and bulk tally operations
- Animated tally group creation/removal
- Persistent user state (counters + settings)
- Theme settings (dark/light) and configurable group size
- Structured settings panel with future-ready language section
- One counter always exists by default
- Create and pin up to 3 counters
- Active counter workspace with real-time updates
- Add/Delete by 1
- Add/Delete by custom bulk amount
- Dynamic tally grouping from 2 to 10 marks per group
- Lateral group-enter animation (copy-like effect)
- Inverse group-exit animation when complete groups are removed
- Smooth container grow/shrink transition based on content changes
- Top-right settings access
- Animated open/close transitions
- Auto-close when clicking outside
- Theme toggle via slider
- Group size slider (2-10)
- Language selector scaffold for next phase
- Local storage persistence for app state and settings
- Storage notice with acknowledgment and dismiss animation
.
├── index.html
├── README.md
├── assets/
│ ├── css/
│ │ └── styles.css
│ ├── js/
│ │ └── app.js
│ └── images/
└── docs/
└── images/
- Clone the repository.
- Open the project folder in VS Code.
- Run
index.htmlwith Live Server (or open directly in a modern browser).
- Tallies per group: configurable from
2to10in Settings. - Counters: hard limited to
3by application rules. - State persistence: uses browser localStorage.
Screenshots are stored in assets/images:
desktopView.pngmobileView.png
Then they will be rendered here:
- Complete i18n text switching using the existing language selector
- Add keyboard shortcuts and accessibility refinements
- Add automated tests for state and rendering logic

