Overview
Payas Reckoner is a fully client-side, multi-mode calculator application that runs entirely in your browser — no server, no build step, no installation. Open index.html and start calculating.
It follows the Payas Design System and includes 10 distinct calculator modes, all with dark/light theme support and full keyboard navigation.
| Property | Value |
|---|---|
| Stack | HTML5 · CSS3 · Vanilla JavaScript ES2022 |
| Styling | Bootstrap 5.3.3 (grid/utilities only) |
| Icons | Material Icons (Google) |
| Persistence | localStorage + Markdown file export |
| Charts | HTML5 Canvas (custom engine, no library) |
| License | GNU General Public License v2.0 |
| Browser support | Chromium-based · Firefox |
| Responsive | Desktop · Tablet · Mobile (≥320px) |
Quick Start
No build or server needed:
# Option 1 — open directly
xdg-open index.html # Linux
open index.html # macOS
start index.html # Windows
# Option 2 — serve locally (recommended for currency fetch)
python3 -m http.server 8080
# Then visit http://localhost:8080/payas-reckoner/
Calculator Modes
| # | Mode | Description |
|---|---|---|
| 1 | Basic | Standard 4-operation calculator with memory (MC/MR/M+/M−/MS) and history |
| 2 | Scientific | Trig, hyperbolic, logarithms, complex entry, angle modes (DEG/RAD/GRAD) |
| 3 | Graphing | Canvas-based function plotter with pan/zoom, 5 traces, regression overlay |
| 4 | Financial | TVM, NPV/IRR, amortization schedule, bond pricing |
| 5 | Programmable | Custom interpreter (LET/FOR/WHILE/IF/PRINT/INPUT), step debugger, save/load |
| 6 | RPN | HP-style reverse Polish notation with 4-level stack, UNDO, full scientific ops |
| 7 | Statistical | Descriptive stats, regression, normal/binomial/Poisson distributions, t-test |
| 8 | Unit/Currency | 12 unit categories, live currency rates, favourites, custom units |
| 9 | Programmer | BIN/OCT/DEC/HEX, bitwise ops, interactive 64-bit grid, two’s complement |
| 10 | Matrix | Up to 8×8 matrices, det, inv, RREF, LU/QR, eigenvalues, cofactor/adjugate |
Features
- Dark / Light theme — toggle with
Ctrl+Dor the toolbar button, persisted to localStorage - Calculation history — last 100 entries, toggle with
Ctrl+H, exportable to.md - Keyboard shortcuts — full keyboard support in every mode
- Responsive — mobile (≥320px), tablet, desktop
- No external JS frameworks — vanilla JavaScript + Bootstrap CSS only
- Offline-capable — all modules load without a server; currency rates cached in localStorage
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| 0–9, . | Number entry |
| + - * / | Basic operators |
| Enter / = | Calculate / push (RPN) |
| Escape | Clear / AC |
| Backspace | Delete last character |
| Ctrl+Z | Undo (where supported) |
| Ctrl+H | Toggle history panel |
| Ctrl+M | Open mode drawer |
| Ctrl+D | Toggle dark/light theme |
| F1 | Open documentation |
| Tab | Next input field |
Project Structure
payas-reckoner/
├── index.html
├── assets/
│ ├── css/
│ │ ├── payas-theme.css
│ │ └── calculator.css
│ └── js/
│ ├── app.js
│ ├── calculators/
│ │ ├── basic.js
│ │ ├── scientific.js
│ │ ├── graphing.js
│ │ ├── financial.js
│ │ ├── programmable.js
│ │ ├── rpn.js
│ │ ├── statistical.js
│ │ ├── unit-conversion.js
│ │ ├── programmer.js
│ │ └── matrix.js
│ └── utils/
│ ├── math-engine.js
│ ├── storage.js
│ └── exporter.js
├── data/
│ ├── history.md
│ ├── memory.md
│ ├── programs.md
│ └── custom-units.md
├── docs/
│ └── documentation.md
├── LICENSE
└── README.md
Get Payas Reckoner
| Resource | Link |
|---|---|
| GitLab Repository | gitlab.com/samanscode/payas-reckoner |
| Download ZIP | payas-reckoner-main.zip |
License
Payas Reckoner is released under the GNU General Public License v2.0 (Open Source).
© 2025 Saman Udayanga Wijesinghe
