Changelog
What's new in Koala UI, day by day: new components, improvements and fixes.
October 19, 2026#
- Fixed
Textarea: The resize grip sits in the bordered box's corner, level with the counter, instead of floating above the footer, and is drawn with the new
NotchesKoala icon. - Improved
Dialog: Clearer rhythm: the header stands apart from the body (and drops that margin when the footer follows), the icon sits closer to the title, the close button centres on the first row, and the bordered footer gets more room.
- Improved
Expandable Search: The docs header search is now an Expandable Search: it rests as a magnifier, opens on click and lists matches right under the field. ⌘K still opens the command palette.
- Fixed
Accordion: Every disclosure panel (Accordion, Collapsible, Tool, Plan, Tree, Sidebar groups) keeps its children's edge and focus rings painted while it opens and closes.
- Fixed
Paper: A section band no longer doubles the rule above it.
- Improved
Paper: A
SignaturePadinsidePaperSignaturedrops its own box and guide and signs on the sheet's line, scaled with the sheet. - New
Input:
InputFloatingField: the label rests as the placeholder and floats to the top edge on focus, value or autofill. - Improved
Radio Group: RadioCard states no longer compete: every state is one ink, keyboard focus adds a soft ink halo, a click shows the ink selection straight away, and hover is a quieter hint.
- Fixed
Floating Window: A minimized window no longer shows a stray hairline under its bar.
- Improved
Floating Window: Dragging lifts the window from the grab point with a deeper shadow, and the cursor holds while the pointer leaves the bar.
- Fixed
Tool: The first section's top hairline no longer vanishes while the card opens.
- Fixed
Voice Roster: A group mark before the avatar keeps the full gap, and the header and overflow line align with the row text at each density.
- New
Field:
infoonFieldLabelandFieldGroupLabelputs the help behind an info icon with a tooltip; it still describes the control for screen readers. - New
Empty State:
layout="inline"puts the parts on one left-aligned line, for an empty list inside a sheet or a panel. - New
Rich Text Editor:
imageLinksshows the picture under any block that links to an image file; the saved HTML keeps just the link.
October 18, 2026#
- Fixed
Layout: The
dockedcontent keeps its top hairline under a topbar: it sits 1px lower, so the sticky bar no longer paints over the ring. - Improved
TeamMember: Name and role sit closer together in every layout, so the pair reads as one label.
October 17, 2026#
- Improved
Koala Icons: Every component, section and page now draws Koala Icons: 117 new icons bring the set to 487, and
@phosphor-icons/reactis no longer a dependency. - New
Brand logos:
@/lib/brand-logosholds the monochrome brand marks (GitHub, X, LinkedIn, Dribbble, TikTok and more) with the samesize,colorandtitleprops as an icon.
October 16, 2026#
- Improved
Motion: No control scales down on press anymore: Button, inputs, pickers, toggles and every other control answer a press with the focus ring and color alone, and
staticstays for compatibility. - Improved
SplitButton: Takes a
menuClassNamefor the menu, never shrinks in a flex row, and now drives the docs Copy page menu. - Improved
VoiceRoster: Speaks Koala now: rounded rows on the elevation floor, a soft green fill instead of the spine and wash, body type instead of mono, round group dots, the supervisor star after the name, and
panelrows sit on the page's own ground like a List. - Improved
Hero Section 1: A
rotatelist turns the end of the headline into a rotating highlight, the same wash asHeroHighlight. - Fixed
HeroHighlight: A rotating highlight now server-renders only its first phrase, so search engines read a clean headline instead of every phrase run together.
- Improved
SwatchGrid: Swatches are round now, the selection ring takes the swatch's own color, kept opaque and readable on either theme, and hover hints in that color.
- New
ease-lift: A motion token for physical objects being picked up or selected: a gentle 10% overshoot, softer than
ease-spring. - Improved
Ink Tray: The tool in hand now lifts on
ease-liftwith a growing shadow, hover only hints at the lift, and the chosen colour rises slightly. - Fixed
cnand every recipe now letease-drawer,ease-spring,ease-liftandease-sineinclassNameoverride a component's own easing.
October 15, 2026#
- New
Toast:
appearance: "minimal"for a compact one-row toast,countdownfor a hairline that drains with the timer, andprogressfor a determinate bar you advance by raising the sameid; the first two can be set app-wide on<Toaster />. - New
Ink Tray: A whiteboard pen tray: pen, marker, pencil and eraser rise from behind the bar when picked up, and each tool keeps its own colour and stroke size.
- Improved
Fields: Input, InputGroup, Select, MultiSelect, NativeSelect, CountrySelect and DatePicker are rounded rectangles instead of pills (12, 14 and 16 by size), and Textarea steps down to
rounded-lg. - Improved
Button: A Button inside a
<form>takes the field corner for its size, so a submit matches the inputs beside it; everywhere else, a Popover form included, it stays a pill. - Improved
OTPInput: Slots follow the field corners, 12, 14 and 16 by size, so a code entry matches the inputs and the Verify button beside it.
October 13, 2026#
- Improved
No comments left in the code you install: components, sections, page examples, templates and the shared
libhelpers all ship as plain code. - New
Icons: Koala Icons grows to 370 glyphs, and every example in the docs now draws with them instead of Phosphor.
- Improved
Rating:
icontakes any icon component, Koala Icons or Phosphor, and so do the icon props of CookieConsent categories and Toolbar overflow items. - Improved
Terminal: A Windows window now: 8px corners, square seams, a
TerminalTabthat merges into the screen andTerminalCaptionbuttons with close going red on hover. - Improved
PromptInput: One size now: the
sizeprop is gone, and every composer is the tighter default, with one 32px control height and 16px icons across the toolbar, send included. - New
PromptInput:
PromptInputBannerAppsandPromptInputBannerApp: a row of app logos in the banner under the composer, each a button with a tooltip, for a "connect your apps" strip. - Improved
PromptInput: The banner takes a muted tint so it reads as tucked behind the composer, and its content wraps on narrow screens instead of overflowing.
- Improved
ModelSelector: Capability glyphs are smaller and quieter, and each explains itself in a tooltip on hover through a new
descriptionprop. - Fixed
Command: The sliding highlight no longer covers a group heading or separator as it glides from one group into the next.
- Fixed
Tool: Opening or closing a call no longer shows its sheets cut flat by the height animation; they fade in step with it.
- Fixed
Citation: A chip no longer wraps alone onto the next line, and no longer crops the first message of a Chat conversation.
October 12, 2026#
- New
Citation: A chip in an answer that previews its sources on hover and goes to them on click.
- New
Tool: One call an agent makes to a tool: its arguments, the result and an approval step when a person has to say yes.
- New
ModelSelector: A searchable model picker grouped by provider, with each model's capabilities and context window.
- New
ContextMeter: A small ring for how much of the context window a conversation has used, opening onto what fills it.
- New
EventCalendar: Month, week and day views where events drag between slots and resize, from the mouse or the keyboard.
- New
CompareSlider: Two pictures in one frame with a divider to drag between them, for a redesign, a retouch or a grade.
- New
Button: A split button: the main action stays visible and its alternatives sit in an attached menu.
- New
Chat: An agent trace of reasoning steps, with an
ink-sweeppass across the step still in progress. - Improved
Tabs:
segmentedis now the default variant, with a tighter track. - Improved
EmptyState: Illustrated states: a small object that belongs to the job for each empty moment.
- Improved
DataTable: An AI generation example that fills an insight column row by row.
- Improved
ActivityFeed: A workflow example with a compact phase bar for the total time.
- Improved
Leaner component source: the long explanatory comments are gone from every component, so the files you copy read as plain code. One-line prop docs stay for editor hints.
October 11, 2026#
- New
Combobox: A text field you type into to filter a list, then pick one option.
- New
Meter: A measurement inside a known range, like storage used or a plan quota.
- New
NumberField: A numeric input with minus and plus steppers.
- New
Terminal: A command-line surface whose title bar doubles as a drag handle.
- New
StatusBar: The thin strip of status items along the edge of an app shell.
- New
TabStrip: The browser-style row of open documents across the top of an app shell.
- New
DotMatrix: A 5×5 dot-matrix loader with a light running through it.
- New
TabletFrame: A device that floats over a game, a map or another full-bleed canvas.
- New
SwatchGrid: A grid of pickable samples: a color, or a glyph over a color.
- New
FloatingWindow: A small movable, resizable window over the app.
- New
Tabs:
variant="segmented", the pill-on-track look for switching views. - Improved
Tabs: The line and folder indicators sit on the bottom edge of the list and stay fully visible.
- Improved
DropdownMenu: The exit animation is interruptible: reopening mid-close picks up where it was.
- Improved
Map: Map pins merge the collapsible chip with the new dispatch, fleet and incident symbols.
- Improved
API tables and anatomy on the docs pages of every component merged this week, including AI panel, Chat, Prompt Input and Rich Text Editor.
- Fixed
DotMatrix: Keyframes that were left open no longer break the animation.
- Fixed
Button: An icon-only
size="xs"button stays round like every other size.
October 10, 2026#
- New
ChannelChat: A many-person channel log for team chat or a radio net.
- New
VoiceRoster: Who is on a voice channel, lit as they talk.
variant="panel"sets it inside a page column. - New
Chip: A small pill you act on, the interactive sibling of Badge.
- New
Dot: A status light or color swatch.
- New
HoldButton: Press and hold to confirm a destructive or final action, with controlled holding and keyboard support.
- New
Receipt: A slip of thermal paper with a torn edge.
- New
HandheldDevice: The shell of a handheld gadget, with an LCD, keys and a printer.
- New
Button:
size="xs", a 28px tier for dense interfaces. - New
Progress: A timed mode: pass
durationand the bar runs itself, like an auto-dismiss countdown. - New
Typography:
eyebrowandeyebrow-monolabel roles. - Improved
Badge: Takes any color, not only the preset variants.
- Improved
PushToTalk:
size="sm",variant="outline"and aliveprop for a hotkey handled elsewhere. - Improved
NotebookPage: A red margin, a spiral binding and fields that sit on the rules. Focus shows only the caret unless
focusTintis set. - Improved
AI panel: Works inside a container, with jump to latest, prompt limits, quick actions and mentions.
- Improved
Chat: The conversation keeps following the latest message through resizes.
- Improved
List: A
bleedoption andcurrentStylefor the active row. - Improved
Banner: A
sizeprop. - Improved
Tabs: A trailing badge sits concentric with its tab.
- Improved
Focus rings use one brand color everywhere and are never clipped by a scroll container.
- Fixed
Dialog: Focus returns to the opener when there is no trigger, including a menu item that opened it.
- Fixed
Tooltip: Automatic hints stand down under an explicit Tooltip, so you never get two bubbles.
- Fixed
TabStrip: A sortable tab no longer breaks the tab stop.
- Fixed
PushToTalk: A hold interrupted by unmounting or disabling still ends through
onTalkEnd. - Fixed
PromptInput: Growing with its text no longer moves the thread above it.
October 4, 2026#
- New
Koala UI for React 1.0: 125 free components, four themes and the CLI.
- New
Paper: A printed document on screen that scales as a whole.
- New
NotebookPage: A sheet of notebook paper behind what someone writes.
- New
Existing members: The access guide for buyers from the old site.
- Improved
RichTextEditor: Opt-in text alignment,
starterKitandextensionsprops, quote and code styles, and translatable labels. - Improved
Lightbox: A
loopprop and translatable labels. - Improved
Carousel: A
peeklayout that shows the neighbouring slides. - Improved
Navbar:
collapseAt="xl"collapses it at the wider breakpoint. - Improved
Chart: Translucent stacked areas.
- Fixed
RichTextEditor: No longer calls
onChangeon mount.