Every release of the Airframe fixed group. Core, tokens, theme, MCP, build, the ESLint plugin,
and IntelliSense for Airframe share one version. Updates under each version are grouped by
package. Follow along via
RSS.
Latest release
v0.2.0 · Optional @airframeui/build and ESLint plugin on npm, button borders, file dropzones
August 18, 2026
Most apps still only install core. @airframeui/build is now on npm for custom breakpoint pixels and @af directives. @airframeui/eslint-plugin is on npm too, at the same version as core. Filled buttons can take optional borders. File inputs get a CSS-only dropzone.
core · tokens · theme · mcp · build · eslint-plugin · intellisense
Most apps still only install core. @airframeui/build is now on npm for custom breakpoint pixels and @af directives. @airframeui/eslint-plugin is on npm too, at the same version as core. Filled buttons can take optional borders. File inputs get a CSS-only dropzone.
Dev dependency, not the CSS runtime. The PostCSS plugin inlines @import "@airframeui/core/core.css" and rewrites breakpoints in memory. Do not import generated responsive.css on top of core.
@airframeui/eslint-plugin publishes with the same version as core. Catch leftover Tailwind/Bootstrap, unknown af-* classes, and redundant defaults.
Filled af-btn borders stay transparent. Set --af-btn-border to a color, or to var(--af-btn-border-auto), to paint them.
| Type | Description |
|---|
| feat | Optional filled af-btn borders via --af-btn-border / --af-btn-border-auto (off by default). |
| feat | a.af-card, a.af-pill, a.af-link-button, and a.af-btn opt out of underline through --af-link-decoration. |
| feat | Native file input as a CSS-only dropzone (af-is-dropzone); hover and drag-over share the same highlight. |
| feat | Export buildResponsiveCss as @airframeui/core/generate-responsive (the generator @airframeui/build calls). |
| fix | Default full-width af-col-span no longer beats an explicit span, including @md variants (:where()). |
| fix | Body p spacing uses 0.9lh instead of a fixed space token. |
| Type | Description |
|---|
| feat | --af-link-decoration and --af-link-hover-decoration (underline by default; patterns that are <a> override). |
| feat | Filled-button border tokens — --af-btn-border, --af-btn-border-auto, plus per-variant / hover / focus. Ghost stays independent. |
| Type | Description |
|---|
| feat | emitConfigTokenCss — config breakpoints as an @layer af.tokens stylesheet (same mapping as declsFromConfig). |
| Type | Description |
|---|
| feat | First npm release. PostCSS plugin inlines @import, compiles @af bp() / @af-apply, and replaces inlined --af-bp-* and @layer af.responsive. |
| feat | af CLI — build, doctor, init, init --agents, and theme (facade over @airframeui/theme). |
| feat | af doctor checks Airframe package versions and agent-file freshness against installed core. |
| feat | af init --agents writes AGENTS.md from @airframeui/core/catalog and can add a package.json "af" script. |
| Type | Description |
|---|
| feat | First npm release. Same version as core. |
| feat | Recommended rules — leftover Tailwind/Bootstrap, unknown af-*, layout recipes, redundant defaults/width, field-error ARIA. Autofix where the mapping is deterministic. |
| feat | Build-time catalog snapshot from classes.json and catalog.json. Installed @airframeui/core / @airframeui/tokens win when present so lint matches the CSS you ship. |
eslint-plugin
@airframeui/eslint-plugin now versions with core, tokens, theme, MCP, build, and IntelliSense for Airframe. Catalog snapshot is generated from classes.json and catalog.json at build time.
The ESLint plugin is still private (not on npm yet). It tracks the same version as the published set so rules and catalogs cannot drift from the CSS you install.
| Type | Description |
|---|
| feat | Join the fixed version group; catalog snapshot from classes.json and catalog.json. |
core · tokens · theme · mcp
App shell and related product primitives. Color scheme (data-theme) is separate from named palettes (data-brand). The token catalog ships with descriptions and default colours per mode. Static HTML can load one minified file. Coding agents get an MCP server on the same version as core.
App shell, settings nav, action rows, extra button styles, vertical divider, and a full-page loader. Overlay drawers get --af-drawer-width (default 20rem), distinct from --af-sidebar-width.
data-theme is light/dark. data-brand is a named palette. Light, dark, and high-contrast resolve from stored --light / --dark / --hc-* suffixes so multiple brands can coexist in CSS variables.
catalog.json lists every --af-* token with descriptions and default colours per mode. The Tokens full list docs page is generated from it.
dist/airframe.min.css is the jsDelivr / unpkg / static HTML entry. core.css stays the modular @import graph for bundlers. Do not link core.css from a CDN.
@airframeui/mcp ships with core and tokens: catalog-backed search, examples, markup validation, and Airframe rules as MCP resources.
Theme lint and MCP validate_markup both read @airframeui/tokens/catalog.json for known --af-* names.
| Type | Description |
|---|
| feat | App shell, settings nav, action rows, extra button styles, vertical divider, and full-page loader. |
| feat | --af-drawer-width for overlay drawer panels (default 20rem). |
| feat | Separate color scheme (data-theme) from named palettes (data-brand). |
| feat | Self-contained dist/airframe.min.css for jsDelivr, unpkg, and static HTML. |
| Type | Description |
|---|
| feat | Token catalog (catalog.json) with descriptions and default colours per mode. |
| Type | Description |
|---|
| feat | Theme lint reads @airframeui/tokens/catalog.json instead of a copied allowlist. |
| Type | Description |
|---|
| feat | Catalog-backed search, examples, markup validation, and Airframe rules as MCP resources. |
| feat | Pattern catalog related / useWhen / avoidWhen hints. |
core · tokens
Airframe goes public. A CSS-first structural UI system: layout primitives, a full token layer, accessible patterns, and a readable af-* DOM. No runtime JavaScript. Any framework.
@import "@airframeui/core/core.css" — tokens, reset, layouts (af-stack, af-inline, af-grid), patterns, and utilities. Brand with --af-* at runtime.
@airframeui/tokens is the CSS / JSON / TypeScript view. Core depends on it. Light, dark, and high-contrast ship built-in.
af-step-connector — steps use CSS counters on a semantic <ol>.
| Type | Description |
|---|
| feat | Layouts, patterns, utilities, and AI catalogs. |
| feat | Steps — semantic <ol>, CSS counters. |
| Type | Description |
|---|
| feat | CSS custom properties, JSON, and TypeScript. |