Skip to content

Changelog

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.

v0.2.0MinorCurrent

Optional @airframeui/build and ESLint plugin on npm, button borders, file dropzones

Section titled “Optional @airframeui/build and ESLint plugin on npm, button borders, file dropzones”

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.

TypeDescription
featOptional filled af-btn borders via --af-btn-border / --af-btn-border-auto (off by default).
feata.af-card, a.af-pill, a.af-link-button, and a.af-btn opt out of underline through --af-link-decoration.
featNative file input as a CSS-only dropzone (af-is-dropzone); hover and drag-over share the same highlight.
featExport buildResponsiveCss as @airframeui/core/generate-responsive (the generator @airframeui/build calls).
fixDefault full-width af-col-span no longer beats an explicit span, including @md variants (:where()).
fixBody p spacing uses 0.9lh instead of a fixed space token.
TypeDescription
feat--af-link-decoration and --af-link-hover-decoration (underline by default; patterns that are <a> override).
featFilled-button border tokens — --af-btn-border, --af-btn-border-auto, plus per-variant / hover / focus. Ghost stays independent.
TypeDescription
featemitConfigTokenCss — config breakpoints as an @layer af.tokens stylesheet (same mapping as declsFromConfig).
TypeDescription
featFirst npm release. PostCSS plugin inlines @import, compiles @af bp() / @af-apply, and replaces inlined --af-bp-* and @layer af.responsive.
feataf CLI — build, doctor, init, init --agents, and theme (facade over @airframeui/theme).
feataf doctor checks Airframe package versions and agent-file freshness against installed core.
feataf init --agents writes AGENTS.md from @airframeui/core/catalog and can add a package.json "af" script.
TypeDescription
featFirst npm release. Same version as core.
featRecommended rules — leftover Tailwind/Bootstrap, unknown af-*, layout recipes, redundant defaults/width, field-error ARIA. Autofix where the mapping is deterministic.
featBuild-time catalog snapshot from classes.json and catalog.json. Installed @airframeui/core / @airframeui/tokens win when present so lint matches the CSS you ship.
v0.1.4Patch

ESLint plugin joins the fixed version group

Section titled “ESLint plugin joins the fixed version group”

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.

TypeDescription
featJoin the fixed version group; catalog snapshot from classes.json and catalog.json.
v0.1.0Minor

Product-app primitives, MCP, CDN bundle, token catalog

Section titled “Product-app primitives, MCP, CDN bundle, token catalog”

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.

TypeDescription
featApp shell, settings nav, action rows, extra button styles, vertical divider, and full-page loader.
feat--af-drawer-width for overlay drawer panels (default 20rem).
featSeparate color scheme (data-theme) from named palettes (data-brand).
featSelf-contained dist/airframe.min.css for jsDelivr, unpkg, and static HTML.
TypeDescription
featToken catalog (catalog.json) with descriptions and default colours per mode.
TypeDescription
featTheme lint reads @airframeui/tokens/catalog.json instead of a copied allowlist.
TypeDescription
featCatalog-backed search, examples, markup validation, and Airframe rules as MCP resources.
featPattern catalog related / useWhen / avoidWhen hints.
v0.0.1Patch

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>.
TypeDescription
featLayouts, patterns, utilities, and AI catalogs.
featSteps — semantic <ol>, CSS counters.
TypeDescription
featCSS custom properties, JSON, and TypeScript.

Package CHANGELOG.md files still ship on npm. This page is the system view — one version, updates listed per package.