Features Examples Playground Changelog ↗ Docs ↗
Introducing v1.0.1 · Now available

Write less.
Ship faster.

Jetflow is a utility-first CSS framework that runs entirely in the browser. Drop in one script tag, write atomic classes in HTML, and ship. No build step. No config required.

<script src="cdn.jsdelivr.net/gh/JetflowJS/Jetflow@v1.0.1/jetflow.min.js"></script>

Everything resolved
at runtime.

Jetflow watches your DOM and generates only the CSS you actually use — in real time, with no compilation step.

01 / UTILITY SYSTEM
Atomic classes,
on demand.
500+ utilities for layout, spacing, color, typography, and effects. Each class maps to a single CSS declaration — composable by design.
flex-centertext-boldp-6gap-4
02 / DARK MODE
Class-based and
media-query both.
Set darkMode: "media" (or "class" / "both") and support manual toggles or system preference simultaneously.
dark:bg-slate-900dark:text-white
03 / THEMING
Extend, don't
replace.
Pass a config or use Jetflow.setTheme() to inject custom colors, spacing, and vars at runtime without reloading.
brand-midspacing-18rounded-4xl
Responsive breakpoints
Five prefixes: sm, md, lg, xl, 2xl. Works on any utility and stacks safely.
md:flex-col lg:grid-cols-3
Arbitrary values
Strict-validated bracket notation for one-off values without custom utilities.
mt-[42px] bg-[#1a1a1a] w-[calc(100%-2rem)]
Scoped mode
Isolate generated CSS specifically to target container boundaries.
jf-scope-[admin-panel]
Runtime Theming
Instantly update color palettes and UI variables on the fly.
Jetflow.setTheme({ colors: ... })
Dev Inspector
Debug DOM elements to see the exact parsed AST and generated CSS.
Jetflow.inspect($0)
MutationObserver powered
Dynamically added elements are automatically styled — perfect for SPAs.
Watches DOM · No re-init needed
index.html
<!-- Via .apply class -->
<button class="btn-primary">
  Get Started
</button>

<!-- Composed from utilities -->
<button class="flex-center gap-2 rounded-md
         bg-brand-mid px-4 py-2 text-sm
         text-bold text-white shadow-sm
         transition hover:bg-brand-dark
         focus:ring-2 focus:ring-brand-mid">
  Save Changes
</button>

<!-- Notice banner -->
<div class="notice">
  ⚠ Session expires in 5 minutes.
</div>
<!-- flex-between (navbar) -->
<header class="flex-between px-6 py-4
         border-b border-gray-200">
  <span class="text-bold">Logo</span>
  <nav class="flex-center gap-6">
    <a>Docs</a> <a>Blog</a>
  </nav>
</header>

<!-- Responsive grid -->
<div class="grid grid-cols-1
         md:grid-cols-2
         lg:grid-cols-3 gap-6">
  <div class="card">Item</div>
</div>

<!-- grid-center -->
<div class="grid-center min-h-screen">
  <p>Perfectly centered.</p>
</div>
<!-- .card apply class -->
<div class="card">
  <h3 class="text-lg text-bold mb-2
              dark:text-white">
    Card Title
  </h3>
  <p class="text-sm text-muted">
    Uses text-muted utility alias.
  </p>
</div>

<!-- box utility -->
<div class="box">
  Simple bordered block
</div>

<!-- box-dark variant -->
<div class="box-dark">
  Dark surface variant
</div>
// jetflow.config.js
export default {
  darkMode: "media",
  reset: true,
  theme: {
    colors: {
      brand: {
        light: "#ffd9d9",
        mid:   "#c91414",
        dark:  "#830d0d"
      }
    }
  },
  apply: {
    ".btn-primary": "flex-center gap-2
       rounded-md bg-brand-mid px-4 py-2
       text-sm text-bold text-white
       transition hover:bg-brand-dark"
  },
  utilities: {
    "flex-center": "flex items-center
       justify-center"
  }
};
Classes in HTML.
CSS in the browser.
Jetflow parses your class attributes at load time, then watches the DOM for changes via MutationObserver. CSS is generated on demand — no output file, no stylesheet to maintain.
Arbitrary values — use mt-[42px] or bg-[#ff6b00] inline.
Responsive modifiers — prefix any class with md:, lg:, etc.
State variantshover:, focus:, active: all supported.
No build step — works in a plain .html file served over any CDN.

Try it without
writing a line.

Toggle utility classes on a live element and see Jetflow resolve them instantly. Switch to Responsive Preview to test breakpoint behavior.

LIVE PREVIEW
Presets:
Alpha
Beta
Gamma
<div class="">...</div>
375 × auto sm breakpoint
jetflow-demo.html
Build interfaces
at runtime speed.

A browser-native CSS framework. Write utility classes, ship instantly. No build step required.

Less CSS.
More shipping.

Stop switching between HTML and a stylesheet. The answer is right there in the attribute.

Without Jetflow Generic CSS approach
/* styles.css */
.button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 16px;
  background: #c91414;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 700;
  color: white;
  transition: background 0.2s;
}
.button:hover { background: #830d0d; }
.button:focus {
  outline: none;
  box-shadow: 0 0 0 2px #c91414;
}

/* index.html */
<button class="button">...</button>
Lines written17 CSS + 1 HTML
Files touched2 (styles.css + index.html)
Build stepRequired
Dark modeManual media queries
With Jetflow Utility-first approach
<!-- index.html -- that's it -->

<button class="btn-primary">
  Get Started
</button>

<!-- or compose freely: -->

<button
  class="flex-center gap-2 rounded-md
         bg-brand-mid px-4 py-2
         text-sm text-bold text-white
         transition hover:bg-brand-dark
         focus:ring-2 focus:ring-brand-mid"
>
  Get Started
</button>
Lines written1 class attribute
Files touched1 (index.html only)
Build stepNone
Dark modedark: prefix, built-in
Ready to start?
One script tag. Zero configuration. Ship today.