Zero Dependencies
Minimal footprint for your bundle with no external dependencies, keeping your application lightweight.
Zero Dependencies
Minimal footprint for your bundle with no external dependencies, keeping your application lightweight.
Type Safety
Built with TypeScript for enhanced developer experience and robust type checking.
Framework Agnostic
Use with any framework or vanilla JavaScript - works seamlessly with React (numora-react
), Vue (numora-vue
), Svelte (numora
), or plain JS(numora
).
Financial/DeFi Focus
Specifically designed for handling currency and decimal inputs in financial/DeFi applications.
npm install numora# oryarn add numora# orpnpm add numora
npm install numora-react# oryarn add numora-react# orpnpm add numora-react
import { NumericInput } from 'numora';
// Get your container elementconst container = document.querySelector('#my-input');
// Create a numeric inputconst numericInput = new NumericInput(container, { maxDecimals: 2, onChange: (value) => console.log('Value:', value)});
import { NumericInput } from 'numora-react';
<NumericInput {...props} maxDecimals={CURRENCY_DECIMALS} onChange={onChange} data-slot="input" className={cn( 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive', className, )}/>
Vanilla JS
Native JS support - numora
React
React adapter - numora-react
Vue
Vue adapter in progress - numora-vue
Svelte
Native Svelte support - numora