ViserCulator is a high-performance, fully responsive web-based calculator built with Vite and TypeScript. It features a realistic "Neumorphism" 2D UI, tactile sound feedback, advanced history tracking, and day/night themes. Designed to work seamlessly across desktops, tablets, and mobile devices.
- Realistic 2D Design: Neumorphism style buttons with soft shadows and pressed states.
- Responsive Layout: Automatically adapts to Mobile, Tablet, and Desktop screens.
- Theme Support: Toggle between Dark Mode and Light Mode instantly.
- Tactile Sound Effects:
- Soft Click for numbers.
- Mechanical Click for operators.
- Built using the Web Audio API (No external audio files required).
- Standard Operations: Addition, Subtraction, Multiplication, Division.
- Advanced Math: Square Root (
√), Power (x²), Percentage (%). - Chain Calculation: Supports continuous operations (e.g.,
12 + 10 - 5 * 2). - Smart Formatting:
- Handles large numbers efficiently (Auto-formatting with commas).
- Prevents overflow for long digits.
- Error Handling: Prevents "Divide by Zero" and invalid inputs.
- Persistent History: Saves calculations in browser
localStorage. - Detailed Log: Shows date, time, expression, and result.
- Interactive History:
- Delete individual history items.
- Clear All button to wipe data.
- Slide-up panel animation for mobile/desktop.
- Core: Vite (Vanilla TypeScript Template)
- Language: TypeScript
- Styling: CSS3 (Variables, Flexbox, Grid, Media Queries)
- Storage: LocalStorage API
- Audio: Web Audio API
Follow these steps to run the project locally on your machine.
Make sure you have Node.js installed.
git clone [https://github.com/visernic/viserCulator.git](https://github.com/visernic/viserCulator.git)
cd viserCulatornpm installnpm run devOpen your browser and visit: http://localhost:5173
npm run buildviserCulator/
├── public/
│ ├── demo-preview-image.jpg # Preview Image
│ └── visernic.svg
├── src/
│ ├── main.ts # Core Logic (Calculator Class, Sound, History)
│ ├── style.css # Styling (Responsive, Dark Mode, Neumorphism)
│ └── vite-env.d.ts
├── index.html # HTML Structure
├── package.json
├── tsconfig.json
└── README.md
| Light Mode | Dark Mode | History Panel |
|---|---|---|
![]() |
![]() |
![]() |
Contributions are welcome! If you have any suggestions to make ViserCulator better:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Visernic Limited - GitHub: @visernic
- Website: visernic.com
This project is licensed under the MIT License.


