Skip to content

Comparison

How Airframe compares to two popular CSS systems. Tailwind notes reflect v4.

This is a positioning guide, not a scorecard. Each tool wins for different teams.

AirframeBootstrap 5.3+Tailwind v4
Pre-built UICSS patterns (buttons, cards, forms, overlays…)Full component library (many need JS)None in core (ecosystem kits fill this)
Markup styleIntent classes (af-stack, af-card)Component classes (btn, card)Utility classes (flex, gap-4, rounded-lg)
SetupImport CSSImport CSS (or Sass)Build step (PostCSS / Vite plugin)
AccessibilityPatterns aim for solid defaults; you still own AAGenerally strong on componentsMostly manual — you compose a11y yourself
TokensCSS variables (--af-*)CSS variables (--bs-*) + SassCSS variables via @theme
ThemingRuntime token overrides, no rebuildRuntime for many vars; Sass for deeper workRuntime for existing theme vars; rebuild for new
Cascade layersYesNoYes
Layout modelStructural primitivesGrid/flex utilities + componentsUtility-based
Bundle approachFull import or selective pattern CSSFull or partial Sass/CSS buildsOn-demand utilities
AI / toolingShips rules, catalog, class referenceDocs + ecosystemDocs + strong ecosystem

Same dashboard idea in each system. Airframe and Bootstrap read as structure; Tailwind reads as implementation detail.

<div class="af-container">
  <div class="af-stack af-gap-lg">
    <header class="af-spread">
      <h1>
        Dashboard
      </h1>
      <div class="af-inline af-gap-sm">
        <button class="af-btn">
          Export
        </button>
        <button class="af-btn">
          New
        </button>
      </div>
    </header>
    <div class="af-grid-1 af-grid-2@md af-grid-4@lg af-gap-lg">
      <div class="af-card">
        <h3 class="af-card__title">
          Users
        </h3>
        <p class="af-text-h2">
          1,234
        </p>
      </div>
    </div>
  </div>
</div>

# Airframe
npm install @airframeui/core
# @import "@airframeui/core/core.css";

# Tailwind v4 — simpler than v3, still needs a build

npm install tailwindcss @tailwindcss/postcss
# Add the PostCSS plugin, @import "tailwindcss", run your bundler

# Bootstrap

npm install bootstrap
# Import CSS (deeper customization often still uses Sass)

/* Airframe — override tokens at runtime, no rebuild */
:root {
  --af-base-primary: #0066cc;
}

/* Tailwind v4 — @theme tokens become CSS variables */
@import "tailwindcss";
@theme {
  --color-primary: oklch(0.55 0.2 250);
}
/* Runtime override of existing theme vars works */
:root {
  --color-primary: #0066cc;
}
/* Adding new tokens/utilities still needs a rebuild */

/* Bootstrap 5.3+ — many theme vars are runtime CSS variables */
:root {
  --bs-primary: #0066cc;
}
/* Deeper structural changes still often go through Sass */

Airframe, Bootstrap 5.3+, and Tailwind v4 all expose theme values as CSS variables. Airframe’s difference is the whole system is built around that token layer with no required build step.


Airframe — You want readable structure-first markup, CSS-only patterns, layout primitives, and token theming without a build pipeline.

Tailwind — You want maximum compositional freedom, utility-first design, and you’re fine with build tooling and denser markup.

Bootstrap — Your team already knows it, you want a mature component + JS ecosystem, and Bootstrap’s patterns fit the product.


Coming from another system? See the Tailwind cheat sheet or Bootstrap cheat sheet.

Ready to try Airframe? Get started