v1.0 · Zero dependencies ~8 KB gzipped

UI that doesn't
cost the Earth.

Sprout is a lightweight, sustainable component library. One CSS file. One JS file. No build tools. No frameworks. Just semantic HTML that looks exceptional.

g CO2/view
~8 KB gzip
27 components
0 dependencies

Live page audit

Real browser metrics — measured right now on this page.

Transfer size
🌿
DOM nodes
🧠
JS heap used
🎨
CSS rules
🌱
CO2 per view
Sustainability
Calculating…

27 components. One file.

Everything you need — nothing you don't.

Buttons
Badges
Default Success Warning Danger Info Outline
Alerts
Inputs
Toggle & Range
Progress & Meter
Uploading…72%
Storage used4.1 / 10 GB
Cards
Project Sprout Active

Zero-dependency UI library. 27 components. ~8 KB gzip.

Tabs
Overview Settings Logs

Project overview content.

Accordion
What is Sprout UI?

A lightweight, zero-dependency UI library for the modern web.

Does it need a build step?

No. Drop in two files — CSS and JS. That's it.

Is it accessible?

Yes. Semantic HTML, ARIA, and keyboard nav throughout.

Modal
Toast
Avatars
AB JD XY
M K R +5
Dropdown
Edit project Duplicate Archive Delete
Spinner & Skeleton
Stats
8 KB
Bundle size
↓ 94% vs avg
0
Dependencies
✦ Zero
27
Components
Ready
Code Block
HTML
<button class="danger">Delete</button>
<div role="alert" class="success">
  Saved!
</div>

Start in 30 seconds.

Three ways to get Sprout into your project.

Drop two tags into your <head>. Nothing else required.

HTML
<link rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/@akhildesai20/sprout-ui@latest/dist/sprout.min.css" />
<script defer
  src="https://cdn.jsdelivr.net/npm/@akhildesai20/sprout-ui@latest/dist/sprout.min.js"></script>

Then use any component:

HTML
<!-- Button -->
<button class="danger">Delete</button>

<!-- Alert -->
<div role="alert" class="success">Saved successfully.</div>

<!-- Modal trigger -->
<button data-modal-open="my-modal">Open</button>
<dialog id="my-modal">
  <div class="modal-header">…</div>
  <div class="modal-body">…</div>
</dialog>

<!-- Toast -->
<script>
  Sprout.toast('Saved!', { type: 'success' });
</script>