POC  ·  v1.1.0  ·  zero stylesheets

Utility-class
engine.
Zero builds.

Drop one script. Write chai-* classes. Styles inject inline at runtime - no stylesheet, no bundler, no config.

Designed around runtime.

01

No build step

No webpack, no Vite, no PostCSS pipeline. Drop the script tag and start writing classes. Works in any HTML file - instantly.

02

DOM scanning

On init, querySelectorAll walks every element. Each classList is checked against the style registry.

03

Inline injection

Styles land on element.style via setProperty(). Open DevTools and you'll see style="..." on every element.

04

Live watching

A MutationObserver with RAF batching watches for new and modified elements - dynamic content gets styled automatically, no re-init needed.

Three steps. That's the whole engine.

Drop the script

Add <script src="chai-wind.js"></script> to your page. Call ChaiWind.init() and the engine starts.

Add classes

Write chai-* classes on any HTML element - same intuition as Tailwind. No config, no purge step.

Styles applied

ChaiWind scans the DOM and injects inline styles. Every matched class becomes a style="..." attribute on the element.

Try it. Right now. No install.

Enter chai-* classes
Try:
Preview
Hello, chai-wind!
Installation

Up and running in 30 seconds.

Via CDN
<script
  src="https://cdn.jsdelivr.net/npm/chaiwindjs/chai-wind.js"
></script>
<script>
  ChaiWind.init();
</script>
Via bun / npm
bun add chaiwindjs
// or: npm install chaiwindjs

import 'chaiwindjs';
ChaiWind.init();

Same idea. Different execution.

chai-wind is a proof-of-concept - not a production Tailwind replacement. It proves runtime injection is viable. Here's how the two differ technically.

Feature chai-wind Tailwind CSS
Build step None needed JIT compiler required
Generates a stylesheet Never - zero CSS files One optimised CSS file
How styles apply Inline via element.style CSS class rules
Specificity Highest (inline beats all) Normal CSS cascade
Dynamic runtime classes Always supported Build-time only
Configuration needed None - drop & go tailwind.config.js
Production-grade Proof of concept Battle-tested