Changelog
Consumer-facing changes to the stable raft-ui package surface.
GitHub
v0.5.11
v0.5.1
LatestFixed
- Removed the duplicate inset outline from Elegant dark
ThreadPanelContenton large screens, leaving the header/content seam with a single visual owner. (#213)
v0.5.0
Breaking Changes
- Brutal `SidebarItem` active styling is neutral by default. Active items now use a white surface instead of pink. Pass
variant="accent"to preserve the previous pink treatment, orvariant="primary"for yellow. (#207) - Elegant `PanelHeaderIcon` now owns its container treatment. It renders as a 36px rounded muted surface instead of a bare auto-sized slot. Remove redundant consumer wrappers and update layouts that relied on the previous intrinsic size. (#208)
Added
- Graduated the composable
ActivityInboxshell, sidebar, selection toolbar, and standaloneInboxItemparts to the stable package entry point. (#209) - Graduated the Search shell and entity, message, and thread result primitives to the stable package entry point. (#210)
- Graduated
PickerTriggerButtonfor compact Select and Combobox filter triggers. (#208, 0fef4c1) - Added
beam={false}toLiveAgentActivityBarto disable the Elegant animated border and glow while preserving enter and exit transitions. (#211)
Changed
- Icon-only
MessageFooterSavedIndicatorcontrols now receive dedicated compact sizing and theme interaction styling. (#209)
v0.4.0
Breaking Changes
- Layer tokens renamed.
--layer-pageand--color-layer-pageare removed in favor of--layer-canvas/--layer-canvas-muted(plus new--color-layer-canvasand--color-layer-canvas-muted). Update any custom CSS or utility classes that referencedlayer-page. (2b9b5b2) - Invalid-state styling now keys off `data-invalid` instead of `aria-invalid`.
Input,Textarea, and form controls style the error visual fromdata-invalidand mirror it toaria-invalid; passingaria-invalidalone no longer shows the error style. Update callers to passdata-invalid. (b3786da) - `CopyableCodeAction` label props removed.
ariaLabelandcopiedAriaLabelare gone; use the standardaria-labelprop instead. The default label still swaps between "Copy code" and "Copied code". (b3786da) - `PanelHeaderIcon` no longer sizes its icon. The slot dropped the
[&_svg]sizing (brutal 18px / elegant 14px stroke 2.5); consumers must now size icons themselves, e.g. with asize-*class or thesizeattribute. (0295c2e)
Changed
- AppShell no longer draws column dividers.
AppShellRailSlotandAppShellSidebarSlotdropped their border classes in both themes. The rail|sidebar divider now lives onAppRailRoot(brutal); seam borders the shell used to own (e.g. sidebar|main with an inset main panel) must be added by the caller. (e219fd8) - Button press feedback unified. Buttons now always apply the active press scale, including when they act as popup triggers; size variants use a consistent
rounded-smcorner radius. Select, Combobox, and DropdownMenu share the same press model. (7295b34) - Brutal polish: the active AppRail item received its hard shadow (eedc270) and the inline thread replies surface was aligned with the source app's wash style (4974cfc).
Fixed
- Switch dark mode. The unchecked thumb resolved to near-white in dark scope (
--inkis "white ink" there) and is now a mid-dark warm gray; disabled thumbs are desaturated versions of their normal-state colors in both light and dark; the dark disabled track uses a black ring instead of the bright--line-mutedhairline. (7c81bd3)
v0.3.0
Breaking Changes
- Replaced the previous surface, line, state, shadow, and motion CSS names with the semantic token contract used by the completed Elegant dark theme. Migrate
layer-muted/layer-strongtofill-muted/fill-strong,line-subtletoline-muted, lighter borders toline-hairline,state-<tone>-*to the corresponding semantic tone family,shadow-*toshadow-raft-*, andease-sheettoease-slide. Thesafe-top,safe-bottom,safe-left, andsafe-rightutilities are no longer provided. (#178) - Renamed
PanelHeaderFrametoPanelHeaderRootand updated the corresponding type anddata-slotfrompanel-header-frametopanel-header-root. Panel header parts remain available from the package root and are now owned by the shared Panel vocabulary. (#175) - Renamed
MessageForwardedBundleToggletoMessageForwardedBundleFooterAction, including its props type anddata-slot. (#189)
Added
- Completed Elegant dark mode across the component library, with dark-aware page, panel, inset, card, popover, backdrop, and HUD surfaces; semantic text, border, state, and interaction colors; elevated shadows; native color-scheme integration; and correct nested theme-scope behavior. Dialogs, menus, form controls, messages, task surfaces, navigation, search, activity, and multi-panel layouts now adapt consistently when rendered in dark mode. (#178, #180, #181, #195, #196, #204)
- Added the composable
Cardcomponent withdefaultandinsetvariants and the finalCardHeader,CardLeading,CardTitle,CardDescription,CardTrailing,CardContent, andCardFooterparts. (#184, #202) - Graduated
ProfilePanelandToggleGroupto the stable package entry point. (#197) - Added
AppShellPanelSlotandAppShellOverlaySlot, overlay-aware main slots, attached/inset Panel edges, and the sharedPanelActivityheader part for composable multi-panel layouts. (#175, #198, #199) - Included the raft-ui guide and critique agent skills in the published package. (#127, #193)
Changed
Fixed
- Normalized Button sizing and focus treatments and restored the Brutal danger-outline lift interaction. (#174, #183)
- Restored component-owned Combobox input styling and corrected Select, Combobox, Input, Textarea, RadioGroup, and Switch interaction states across light and dark themes. (679de8a, ef814f9, #179, #186)
- Preserved message attachment order and spacing and improved reference and avatar alignment in message rows. (c9118b7, #194)
- Restored App Rail state contrast, opaque Avatar group rings, panel resizing behavior, and Toast dismiss styling. (#180, #188, #196, fcf0d14)
v0.2.1
Fixed
- Restored the Brutal Toast action and close button treatment. (#173)
v0.2.0
Breaking Changes
- Renamed the stable
ChatSidebar*compound API toSidebar*. Replace eachChatSidebar-prefixed component and prop type with itsSidebarcounterpart, and update selectors fromchat-sidebar-*tosidebar-*. (#167) - Generalized panel chrome: replace
PanelHeaderwithPanelHeaderFrame, and replaceConversationPanelActions,ConversationPanelHeader*,ConversationPanelHeading,ConversationPanelMeta,ConversationPanelSectionHeader,ConversationPanelStatus, andConversationPanelTitlewith theirPanel*counterparts. Update selectors targeting the renameddata-slotvalues. (#169) - Renamed task status values from
in_progressandin_reviewtoin-progressandin-review. (#159)
Added
- Added stable
CodeBlock*and semanticMarkdown*compound primitives. (#132, #133) - Added the stable message core:
MessageItem*, reactions, references, selection toolbars, quoted previews, reply previews, and system messages. (#143, #150, #156, #160, #161, #163) - Graduated the remaining message surfaces to the stable entry: action cards, attachments and media previews, embeds, forwarded bundles, translation parts, and message lists. (3bf4790)
- Graduated
DescriptionList, Files panel primitives, andLiveAgentActivityBarto the stable entry.DescriptionListincludes horizontal layout support. (#120, #131, #168) - Added
TaskChip, named task-status icon exports, andPanelSection. (#159, #169)
Changed
Fixed
v0.1.0
Breaking Changes
- Flattened
CopyableCode: the preset andCopyableCode.Codecompound API are removed. ComposeCopyableCodeRoot,CopyableCode, andCopyableCodeAction;CopyableCodeCodePropsis gone and data-slots were renamed. (#76) - Removed public shadow CSS tokens/utilities:
shadow-soft-popover,shadow-brutal-sm,shadow-brutal, andshadow-brutal-lg. Use theme shadows (shadow-sm…shadow-xl) or inline values. (#98, #104)
Added
- Graduated
AppRail,AppShell(with sidebar collapse trigger),ChatSidebar,Composer(including sortable attachments), andResizable*to the stable entry. (#55, #68, #88) - Added
ConversationPanel,ThreadPanel,Panel,ScrollArea,FilePreview,RaftLogo/ lockup / wordmark, andMobileNav. - Added the task board / card / dnd / list / panel suite and
LegacyTaskPanel. (#99, #100, #101, #102, #103, #115) - Extended
Lightboxwith thumbnail strip and related chrome parts; addedComboboxTriggerCountandContextMenuPopup. (#73, #89) - Added safe-area utilities:
safe-top,safe-bottom,safe-left, andsafe-right.
Changed
- Unified elegant focus rings across inputs and controls. (#114)
AvatarBadgeis auseRendershell for custom indicators; the default dot still inherits parent size. (#94, #107)- Input invalid styling is driven by
data-invalid(still mirrored fromaria-invalid). (#82, #105) - Banner status surfaces and action layout refined. (#77, #106)
- Elegant menu item presentation tuned. (#90)
cnnow merges classes withtailwind-merge(theme shadow-aware). Package dependencies droppedborder-beamand addedtailwind-merge.
Fixed
v0.0.22
v0.0.21
Added
Changed
Removed
- Removed
DrawerSwipeHandleand theshowSwipeHandleprop; the swipe handle now renders automatically when snap points are set. (#39) - Removed
AppShellMobileBar,AppPanelResizeHandle, andChatSidebarResizeGroup/ChatSidebarResizeHandle/ChatSidebarResizePanelin favor of the shared resizable primitives. (#37)
v0.0.20
Added
Changed
- Improved elegant combobox, context-menu, dropdown-menu, and select presentation with roomier variable-height items and consistent label spacing, and removed visible focus rings from combobox, dropdown-menu, and select triggers. (#26)
- Enhanced drawers with directional nested stacking and faster, swipe-aware motion while preserving the existing component API. (#32)
- Refined sortable-tab cursor feedback and elegant underline-tab spacing, and simplified elegant attention-status styling. (#30)
Fixed
- Fixed stacked toasts so top placements animate and swipe from the correct edge and right placements stay right-aligned. (#31)
- Fixed theme-family and explicit light/dark propagation across portaled dialogs, drawers, menus, comboboxes, selects, lightboxes, notifications, popovers, preview cards, toasts, and tooltips. (#36)
v0.0.19
Features
- chat-shell: make elegant panel header title inline (d941a18)
- chat-shell: polish elegant chat sidebar and playground (e8150cb)
- chat-shell: polish elegant dm demos and notif trigger (6a272c4)
- chat-shell: refine elegant workspace experience (bd358d0)
- drawer: add responsive placement and mobile full width (dedfa89)
- status: add elegant attention prop with pulse compose (8d3769e)
- status: polish attention and document trigger glow (cc7dba8)
- theme: add theme-only rendering helpers (#3) (0363ae0)
- ui: add chat main and thread panel parts (db63532)
- ui: add chat page secondary surfaces (08459d1)
- ui: add chat shell app shell parts (eb597a3)
- ui: add message timeline and thread parent parts (cce48c6)
- ui: add resizable chat sidebar (1324892)
- ui: add sortable chat sidebar list primitives (929186e)
- ui: align playground chat, tasks, and files with source (#11) (0b8c9ee)
- ui: refine chat app shell docs parity (a3f808a)
Bug Fixes
- badge: tune soft badge colors (00db53e)
- chat-shell: remove elegant sidebar badge outline (7a15242)
- chat-shell: stabilize elegant sidebar item height (2dc935e)
- doc: scope preview themes and fix source css collisions (55d5f02)
- docs: unblock rsc deploy (d3cb663)
- doc: tighten inline code and lead line height (20dc9ba)
- ui: align message item states with source (ff88cc6)
- ui: align tooltip icons and tidy doc previews (61dfeb9)
- ui: brutal sidebar selected item keeps medium weight to match source (ec0fbe4)
- ui: close 1px seam at resizable sidebar/main divider (01d90f6)
- ui: handle empty tv recipes (#7) (3ee3307)
- ui: import composer data attributes correctly (7f591b7)
- ui: move body↔composer separator from footer to body slot so the composer is self-contained (brutal, visual-identical) (685b3bc)
- ui: refine elegant focus rings (c5b8733)
- ui: restore input focus rings (4c57774)
- ui: scope dark: variant to elegant theme context (a5070b4)
- ui: share composer and align thread footer (8e5d758)
- ui: stable useId dnd context id for SortableTabsList to fix SSR hydration mismatch (9673b22)