A smart-bar unit converter, live-currency tool, and unit-aware calculator — one input that understands conversions, expressions, and plain arithmetic. Ships as a statically prerendered, installable PWA with no backend.
- Smart bar —
12 km to mi,5 ft 10 in to cm,2 lakh inr to usd,15% of 240,1250 * 1.08,sqrt(16). Live results as you type, with a swap button (⇄) to flip direction and unit autocomplete afterto. - Compound-unit math —
100 km / 2 h to mph,60 W * 3 h to kWh; full unit algebra through the lazy math engine. - Multi-target —
10 km to mi, ft, mstacks every target in one card. - Number bases —
255 to hex, bin, oct,0xff to dec,0b1010 to hex/dec. - Numerals — integer ↔ words (English and Indian lakh/crore) and Roman
numerals (1–3999) in a cross-filling tab; also in the smart bar via
1234 to words,2026 to roman,mcmxcix to number,2500000 to crore. - Encode tab — text ↔ Base64, URL-encoding, and hex, Unicode-safe (emoji round-trip); edit any cell to decode and re-derive the rest.
- Type-once-fill-all grid — 16 categories including regional units (bigha, tola, gaj, maund…). Pin favourites to the top.
- Live currency — 35 currencies in the grid (160+ recognised in the smart bar), fetched keyless with a cached + bundled offline fallback; the grid shows the upstream timestamp and flags stale rates. Works in expressions too.
- Date tab — days between dates, add/subtract durations, timezone conversion across major zones, and Unix-epoch ↔ calendar (UTC).
- Notation — Auto / Decimal / Fraction / Indian / Scientific / Engineering, plus an adjustable significant-digits precision (2–10); INR results also show a lakh/crore hint.
- Fractions — a notation, not a tab, so it applies everywhere at once:
5.375 inreads5 3/8 inacross the smart bar, the grid and the sibling chips. Exact wherever an exact fraction exists under the cap (all the binary denominators imperial work needs, plus friendly ones like 1/3); otherwise it snaps to the nearest 1/64 and says≈, never a fraction pretending to be exact. The precision stepper becomes the denominator cap (1/4 … 1/1024). One-off via0.375 to fraction. - Keyboard-first — type anywhere to focus,
/to focus,↑↓through suggestions,Entercopies and logs to history,Escclears. - Shareable URLs — every result mirrors to
?q=…for copy-paste sharing. - History — persisted, re-runnable, copyable, clearable.
- Dark "night almanac" theme — auto / light / dark toggle.
SvelteKit (adapter-static) · Svelte 5 runes · TypeScript · Bun · mathjs (lazy) · Vitest · Playwright.
Pure-TS logic modules (registry, parser, format, currency, date) power
the grid and date math instantly with zero framework or math-library
dependencies; mathjs is lazy-loaded only for smart-bar expressions.
Fonts are self-hosted (static/fonts) so the offline PWA keeps its typography —
the service worker only caches same-origin assets. The help panel is a native
<dialog>, so its focus trap, Esc handling and focus restore come from the
platform rather than from app code.
bun install
bun run dev # dev server
bun run check # svelte-check (types)
bun run test # unit tests (Vitest)
bun run test:e2e # end-to-end (Playwright)
bun run build # static site -> build/
bun run preview # preview the production build