Skip to content

Numora

Handle decimal inputs with precision in financial/DeFi apps

Why Numora?

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.

Installation


Svelte/Pure JS

Terminal window
npm install numora
# or
yarn add numora
# or
pnpm add numora

React

Terminal window
npm install numora-react
# or
yarn add numora-react
# or
pnpm add numora-react

Quick Start


Svelte/Pure JS

import { NumericInput } from 'numora';
// Get your container element
const container = document.querySelector('#my-input');
// Create a numeric input
const numericInput = new NumericInput(container, {
maxDecimals: 2,
onChange: (value) => console.log('Value:', value)
});

React example

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,
)}
/>

Framework Support

Vanilla JS

Native JS support - numora

React

React adapter - numora-react

Vue

Vue adapter in progress - numora-vue

Svelte

Native Svelte support - numora