Changelog
What changed in each version, and what to do when you update.
Versions
Before 1.0.0, a minor version can change behaviour, and says how to update; a patch version only fixes. The package's own copy of this page is CHANGELOG.md.
0.1.0 — 2026-10-04
The first public release.
- 43 components, each imported from its own entry (
@booleanpress/ui/<component>) and typed for TypeScript, with a.d.tsfor every entry: Alert, Alert dialog, Avatar, Badge, Breadcrumb, Button, Button group, Calendar, Card, Chart, Checkbox, Collapsible, Command, Dialog, Dropdown menu, Empty, Field, Input, Input group, Item, Kbd, Label, Native select, Pagination, Password input, Popover, Progress, Radio group, Scroll area, Select, Separator, Sheet, Sidebar, Skeleton, Spinner, Switch, Table, Tabs, Textarea, Toast (@booleanpress/ui/sonner), Toggle, Toggle group and Tooltip. They come from the shadcn/ui CLI 4.21.1 (new-york) on Radix; every change from stock is inPATCHES.md. - Server rendering. The built files keep
"use client"on every module that needs the browser, so a Next.js App Router app renders them on the server and hydrates them. - Optional peers. Chart needs
recharts3, Calendarreact-day-picker10 and Toastsonner2. They are optional peer dependencies: an app that does not import those entries installs and builds without them. Command bringscmdkas a dependency. BooleanUIProvider: 19 translatable strings with English defaults, the text direction, the tooltip timing and the sidebar's storage key. No component writes English of its own.theme.css: shadcn/ui's token names with neutral defaults, plus--controlfor the edge of a form control; the motion tokens; overlays that fade out over 100 ms, opacity only (<html data-bui-exits="off">closes them at once); reduced motion; and resets that keep WordPress's admin styles off portalled overlays.- Right-to-left. Every component uses logical classes (
ms-*,ps-*,start-*,text-start), so layouts mirror in an RTL page; sheets slide in from the edge they sit on, chevrons turn round, the calendar's arrow keys follow the provider's direction, and a shortcut in Kbd keeps its written order. bui-contrast: a command for a product's lint that fails when a text colour the components draw drops below 4.5:1 on its surface, or a form control's edge below 3:1, in the light or the dark theme.- Documentation: https://ui.booleanpress.com, with a page for every component and 12 guides, and the same pages as
Markdown inside the package (
dist/docs/, indexed bydist/docs/llms.txt), matched to the installed version. - AI assistant plugin for Claude Code, Codex, GitHub Copilot, Cursor and Gemini CLI, installed from this repository's marketplace. Its seven skills read the Markdown documentation in the installed package.
- MIT licence.
NOTICEkeeps shadcn/ui's MIT notice.
Beyond stock shadcn/ui:
- Dialog, Alert dialog and Sheet: the panel uses the floating-surface tokens; dialogs fit below the WordPress admin
bar, with a scrolling
DialogBody; Dialog hassize(sm,md,lg); the × is named from the provider; and focus never falls to<body>on close: it returns to the element that opened the overlay, or toreturnFocusTowhen that element is gone. - Form controls you can see: the edge of Checkbox, Radio group, Input, Textarea, Select, Native select, Input group
and Calendar's menus, and Switch's off track, is
--control, at least 3:1 against every surface it sits on, WordPress's admin grey included (WCAG 1.4.11). Stock draws them with--input, about 1.3:1. - Select opens below its field; Tooltip waits 500 ms; Tabs' inactive labels pass AA in every palette; Checkbox's mixed state shows a dash on a filled box.
- Accessibility: Command's hidden title sits inside its dialog and names its search field, and its separator no longer
breaks the list; Item's group drops an invalid
role="list"; a Scroll area or a wide Table that scrolls content with nothing focusable is reachable by keyboard; Password input's button keeps one name and reports its state witharia-pressed. - Sidebar keeps its state in local storage under the provider's
sidebarStorageKey, not in a cookie, and a menu button's tooltip stays closed unless the sidebar is collapsed to its icons. - Chart draws after hydration, so a server-rendered page logs no hydration error. Toast takes its status colours from the status tokens and its theme as a prop.
Moving from a pre-release build
BooleanSMTP and BooleanDesk used pre-release builds of this package from packed tarballs, never published to npm. To move to this release:
- install
@booleanpress/ui@0.1.0from npm, pinned exactly, in place of the tarball; - replace each local copy in
components/ui/with its package entry (@/components/ui/sidebar→@booleanpress/ui/sidebar), and installrecharts,react-day-pickerorsonnerif you use Chart, Calendar or Toast; - Sidebar: pass
sidebarStorageKeyto the provider (one per product) and, to keep starting collapsed,defaultOpen={false}. The oldsidebar_statecookie is no longer read; - Toast: pass your theme,
<Toaster theme={dark ? "dark" : "light"} />, instead of a local theme-provider import; - Translations: add the provider's newer keys to your strings map (
pagination,breadcrumb,more,suggestions,showPassword,notificationsandcloseNotification); until then they read in English; - Brand palettes: run
bui-contraston yourbrand.css. If your palette changes--background,--card,--popover,--mutedor--sidebar, set--controlin:rootand.darkso it stays at 3:1 on each of them; the default isoklch(0.6 0 0)light andoklch(0.58 0 0)dark; - TypeScript now checks props: an invalid value, such as
size="xl"onDialogContent, is an error; - remove
disableAnimationfrom anyPopoverContent.