This is a calculator I built using HTML, CSS and vanilla JS.
It has keyboard support.
I ran into some issues during developing this, mainly ones related to the mathmatics. Values beyond a certain range would not respond properly to calculations (that is, they would be slightly wrong).
To fix this, I have made the calculator throw an error if the value is too high or attempting to be precise beyond what the calculator can handle.
The calculator doesn't support entering in your own negative numbers because I didn't want to add another button.