A beautifully designed, fully-featured scientific calculator built with React + TypeScript + Vite. Features glass-morphism UI, smooth animations, calculation history, and keyboard support.
Built by Huncho.Dev
✨ Modern UI Design
- Glass-morphism aesthetic with backdrop blur effects
- Smooth Framer Motion animations
- Gradient backgrounds with dark/light theme support
- Responsive design that works on all devices
🧮 Full Calculator Functionality
- Basic arithmetic operations (+, −, ×, ÷)
- Decimal support
- Memory functions (MC, MR, M+, M−, MS)
- Percentage calculations
- Error handling with visual feedback
🔬 Scientific Mode
- Trigonometric functions (sin, cos, tan)
- Logarithmic functions (log, ln)
- Power and root operations (√, x², x³, x!, 1/x)
- Mathematical constants (π, e)
📱 User Experience
- Full keyboard support (0-9, +, −, ×, ÷, =, Backspace, Escape)
- Calculation history with persistent storage
- Sound effects (toggleable)
- Responsive button interactions
- Real-time expression display
- Node.js 18+
- npm or yarn
# Clone or download the project
cd app
# Install dependencies
npm install
# Start development server
npm run devThe calculator will be available at http://localhost:3000/
npm run buildThe optimized build will be in the dist/ directory.
src/
├── App.tsx # Root component with theme management
├── main.tsx # Application entry point
├── index.css # Global styles & glass utilities
├── components/
│ ├── Calculator.tsx # Main calculator interface
│ ├── CalculatorButton.tsx # Reusable button component
│ ├── CalculatorDisplay.tsx # Display & expression output
│ └── HistoryPanel.tsx # History sidebar panel
├── hooks/
│ ├── useCalculator.ts # Calculator logic & state
│ └── useSound.ts # Audio feedback system
└── lib/
└── utils.ts # Utility helpers
- Framework: React 19 + TypeScript
- Build Tool: Vite 7
- Animations: Framer Motion
- Styling: Tailwind CSS + Custom utilities
- Icons: Lucide React
- Dev Tools: ESLint, TypeScript
npm run dev- Start dev server with HMRnpm run build- Build for productionnpm run lint- Run ESLint checksnpm run preview- Preview production build locally
- Bundle Size: ~150KB (gzipped)
- Load Time: <1s on 4G
- 60 FPS animations on all modern browsers
- Optimized with code splitting and lazy loading
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile browsers (iOS Safari, Chrome Mobile)
| Key | Action |
|---|---|
0-9 |
Input digits |
. |
Decimal point |
+, −, ×, ÷ |
Operations |
Enter / = |
Calculate |
Backspace |
Delete last digit |
Escape |
Clear all |
% |
Percentage |
MIT License - Built by Huncho.Dev
- Icons by Lucide React
- Animations powered by Framer Motion
- Styling with Tailwind CSS
Website: huncho.dev
Built with ❤️ by Huncho.Dev