Changelog

What changed in each release, with migration guides for breaking changes.

What changed in each release, newest first. Versions match the git tags and the published package versions — every package in the monorepo versions together.

Breaking changes link to a migration guide. Those guides are written for the person and the agent doing the upgrade: each one lists every renamed symbol, so a find-and-replace is possible without reading prose.

1.0.0-beta.4 — 2026-10-07

Documented

  • Supported browsers on the installation page, beside the beta notice: the current and previous versions of Chrome, Edge, Firefox and Safari.
  • The README links the security policy and code of conduct, alongside where to open issues and merge requests.

1.0.0-beta.3 — 2026-10-07

Documented

  • The theming page shows every colour. Each colour token has a swatch and its value for both the light and the dark theme, read from the shipped stylesheets at build time, so the page cannot show a colour the theme does not have. The derived tokens (focus rings, backdrop, chart surface) get a live swatch that follows the theme you are viewing.

1.0.0-beta.2 — 2026-10-06

Documented

  • The docs site’s tables were rendering as plain text — every class, attribute, option and prop table, on 67 of 70 pages. A dependency update broke markdown tables in the site’s pages; it is reverted, and the docs build now fails if any page shows markdown syntax instead of rendering it.
  • The docs site has a menu on phones. The sidebar used to sit above every page as a short box with its own scrollbar, so a phone scrolled in two places at once. It is now a full-screen menu behind a button in the header.

1.0.0-beta.1 — 2026-10-06

The first public release, on npmjs.org.

What’s in it

  • A CSS-first component library. 67 components, each one classes first — most work in plain HTML with no JavaScript — then a vanilla create* controller for state, listeners and keyboard handling, then a React component from the same source. React components are Server Component–safe: each one that needs the client carries its own 'use client'.

  • Sixteen packages, all versioned together. Every package depends on its siblings at exactly its own version, so install them at the same one.

    PackageContents
    @corndev/ui, @corndev/ui-reactLayout, forms, typography and data components, and the design tokens
    @corndev/ui-overlays, -reactModal, Drawer, Accordion, Tooltip, Popover, Menu
    @corndev/ui-notifications, -reactAlert and Toast
    @corndev/ui-markdown, -reactMarkdown rendering, safe with untrusted input
    @corndev/ui-icons, -reactTree-shakeable SVG icons
    @corndev/ui-hooksReact hooks: disclosure, debounced callbacks, clipboard, media queries, storage, hotkeys and more
    @corndev/store, @corndev/store-reactA dependency-free, Redux-shaped state container
    @corndev/query, @corndev/query-reactA dependency-free async cache: dedupe, staleness, retries, invalidation
    @corndev/eslint-pluginLint rules for props a component does not read and values it does not accept
  • Strings are text. A string handed to a component — a modal’s or popover’s content, a toast’s message — is shown as text and never parsed as HTML; markup is passed as an element (or, in React, as children). Untrusted markdown goes through @corndev/ui-markdown, which drops raw HTML.

  • Typed. Every package ships TypeScript declarations generated from its JSDoc.

  • A CDN build with Subresource Integrity hashes, for pages with no build step: see the CDN page.

  • Docs for people and agents at cornui.com, with a generated llms.txt.

What beta means

The API is close to what 1.0 will ship, but a beta release can still make a breaking change. When one does, it is listed here under Breaking, with a migration guide. Pin an exact version if you need nothing to move under you.

Supported browsers are the current and previous versions of Chrome, Edge, Firefox and Safari.