The core kit.
Loaders, spinners, text effects, buttons, cards, indicators, tooltips, micro-interactions — the building blocks every UI needs. a11y baseline and reduced-motion enforced from day one.
Your stack doesn't need another npm install.
We got tired of importing 200kb for a spinner.
NudaUI is a collection of framework-agnostic animations — pure HTML, CSS, and a sprinkle of vanilla JS. No build step. No config. Works with Laravel, Django, Rails, Go, or a plain .html file.
Works with everything
The numbers
dependencies
No npm install. No node_modules. Just code.
build steps
No webpack. No vite config. Copy, paste, done.
to integrate
From our gallery to your production app.
The kit
Weightless
Single-file snippets with no runtime. Drop them in and forget the bundle size conversation.
Portable
React, Vue, Svelte, Astro, Blade, Jinja, plain HTML. If it renders markup, it runs NudaUI.
Accessible
Semantic HTML, ARIA attributes and prefers-reduced-motion shipped by default, not added later.
Readable
No transpiled blobs, no minified monsters. The source is the same code you paste.
Unopinionated
Tokens, not themes. Restyle anything with CSS variables — we don't ship a brand for you.
Crafted
Every animation is hand-tuned. No bouncing for the sake of bouncing. No motion for motion's sake.
What's shipped
Real numbers from the repo. Every component ships with the same baseline: zero dependencies, semantic markup, and reduced-motion handling.
How it works
← That's it. Just paste it.
Playground
Eight micro-interactions — hover, move your cursor, let the grid do its thing. All under 1kb each, all without a runtime.
Gallery
Ring Spinner
Loaders
Dot Wave
Loaders
Glitch Text
Text Effects
Gradient Spinner
Loaders
Progress Bar
Indicators
Typing
Indicators
Morph Blob
Loaders
Skeleton
Placeholders
↓ keep scrolling
The flow
Most UI libraries ask you to read docs, run migrations, and learn a new dialect. We ask you to copy something.
A curated gallery — not 400 variations of the same spinner. Preview, tweak speed, compare side by side.
→ nudaui.dev/componentsOne file, zero imports, one click. What you copy is what you ship. No hidden peer deps, no build configuration.
⌘ Copy to clipboardNext, Nuxt, Laravel, Django, a <script> tag on a static page — it doesn't matter. It works on the first try.
<div class="nuda-pulse" />Manifesto
Every animation library ties you to React, Vue, or whatever's trending. Switch frameworks? Rewrite everything. NudaUI animations are just HTML and CSS — they outlive your framework choices.
Most animation libraries ship entire runtime engines. Our components are typically under 1kb each. No JavaScript runtime. No bundle size anxiety. Just CSS keyframes that browsers already know how to optimize.
If you write Go, PHP, Python, or Rust — you've been left out of the animation conversation. Server-rendered templates don't need React. Blade, Jinja, ERB can all use NudaUI with zero configuration.
Every component ships with ARIA attributes, prefers-reduced-motion support, and semantic HTML. Accessibility isn't a feature — it's the baseline.
Roadmap
Scroll to travel through the quarters. No wizards, no pricing tiers — just a tiny library growing on purpose.
Five quarters, five checkpoints.
Keep scrolling to move the timeline sideways. Shipped items glow; in-flight work pulses.
Loaders, spinners, text effects, buttons, cards, indicators, tooltips, micro-interactions — the building blocks every UI needs. a11y baseline and reduced-motion enforced from day one.
Charts, sparklines, gauges, KPI cards, particle systems (confetti, fireflies, snow, rain), image effects (Ken Burns, glitch, mask reveal), counters, empty states.
AI / chat UI primitives (streaming dots, prompt composer, citations), drag & drop with native events, command palette with kbd hints, theme toggles.
Hero sections, pricing tables with billing toggles, video player UI, onboarding spotlights and checklists, code & terminal snippets — the full landing-page surface area.
A small CLI to copy components into your repo (still no runtime), and a tokens.css system so a single CSS variables override can rebrand the whole catalog.
Frequently asked
Still curious? The source is the docs — every component ships with inline comments explaining the why.
Yes. Components are pure HTML and CSS, with a tiny sprinkle of vanilla JS only when a component genuinely needs interactivity. You'll never see peerDependencies, a runtime engine, or a mandatory bundler step.
They care that the button felt good to press. That the page loaded fast. That the spinner didn't make them question their internet. Give them that — without the overhead.