ranui ships 28+ framework-agnostic r- elements; ranuts packs 90+ tree-shakeable TypeScript helpers. Use them in Vue, React, or plain HTML — no build step required.
npm i ranui ranutsA framework-agnostic Web Components library. Drop 28+ styled r- elements into any stack — Vue, React, or plain HTML.
Browse componentsA utility belt of 90+ typed helpers for strings, objects, color, time, files and the DOM. Tree-shakeable, zero-dependency.
Read the docsField notes and deep dives — rendering engines, functional programming, sorting algorithms and the web platform, written along the way.
Start readingA handful of things you won't find in most libraries.
PostMessageBridgePromise-based RPC over postMessage across iframes, workers & tabs — structured-clone transport, channel isolation.ApplicationA PixiJS-style scene graph with a pluggable WebGPU / WebGL / Canvas renderer backend.h() · init()A snabbdom-style vDOM — hyperscript, patch, pluggable modules and lifecycle hooks.TOTPRFC-6238 one-time passwords, SHA-1 through SHA3-512, with zero crypto dependencies.getMime()A ~1000-entry bidirectional MIME ⇄ file-extension lookup.<r-player>An HLS adaptive-streaming video player with a modular controller core.<r-colorpicker>A full HSV picker with hue + alpha sliders and live HEX / RGBA output.<r-radar>A canvas-drawn radar / ability chart — real data-viz, not a generic widget.<r-math>Renders LaTeX via lazily-loaded KaTeX from a single attribute.<r-scratch>An interactive canvas scratch-to-reveal with a completion threshold.Install both packages, register the elements once, and use them anywhere — no build step or framework required.
$ npm i ranui ranuts // register the <r-*> elements once import 'ranui' import { debounce } from 'ranuts'
<!-- Vue, React, or plain HTML --> <r-button type="primary">Save</r-button> <r-progress percent="66"></r-progress>
Standards-based custom elements run in any framework, or none at all.
Written in TypeScript, shipped with declarations end to end.
The docs themselves are a PWA with a hand-rolled service worker.
Every page maintained in English and 简体中文.