Changelog
View SourceAll notable changes to Aurora UI are documented here. The format follows Keep a Changelog and the project uses Semantic Versioning.
Aurora UI's public API is the set of documented AuroraUI.Components.* function
components, their attributes/slots, the --aui-* CSS custom-property contract,
and the registered JavaScript hook names/DOM contract. Internal modules
(AuroraUI.Internal) may change without notice.
Unreleased
0.1.2 — 2026-07-11
A second visual/interaction QA pass of the component lab. All are backward
compatible (the public component API, --aui-* contract, and hook names are
unchanged; only internal styling and one internal hook data-attribute moved).
Fixed
- Field controls show a single focus ring. The bordered
fieldcontrol now owns the ring on:focus-within(and the inner input's own outline is suppressed). Previously the input drew its base outline inset inside the padded box, so a focused input/textarea rendered two concentric rings. - Horizontal
stepsno longer strike through their labels. The connector ran at the marker's vertical centre, straight across the inline label. The horizontal stepper now stacks the marker over a centred label, with the connector running between markers only. (Vertical steps are unchanged.) icon_buttonat the defaultmdsize is square. It was40×44because the width used--aui-control-mdwhile the sharedmdmin-heightis the 44px touch target; the width now matches at 44px.toastexit animation plays. The CSS matched[data-aui-leaving="true"]but the hook sets the attribute with an empty value; it now matches on presence, so dismissed/expired toasts animate out (and fade out under reduced motion) instead of popping.- Code-block copy button reads “Copied”. The success state appended
"ied"to theCopylabel, producing “Copyied”; it now swaps the whole word. - Interactive
cardshows a visible focus ring. The stretched link's outline was painted outside the card's padding box and clipped by the card'soverflow: hidden. The ring now renders on the card itself (its own outline is not clipped) and the link's clipped outline is suppressed. - Command-palette backdrop dims in both themes. The scrim was keyed to
--aui-text, which inverted to a near-white veil in dark mode; it now uses the same fixed dark scrim as the dialog/drawer backdrops. tiltworks again. The CSS read--aui-rx/--aui-ryunder a[data-aui-tilt-active]state and the markup emitteddata-aui-max-deg, but the hook publishes--aui-tilt-x/-y/-scaleand readsdata-aui-tilt-max. The stylesheet and markup now match the hook contract.- Top/bottom
drawercontent scrolls inside. The box was capped only on the dialog, not the box, so tall content spilled past the 85dvh band; the box now carriesmax-block-size: 85dvhand its body scrolls. - Combobox query text stays clear of the loading spinner. While
loading, the input reserves extra trailing space so a long query can't render beneath the spinner that sits inboard of the clear button.
0.1.1 — 2026-07-11
Interaction and layout fixes found in a full visual/interaction QA pass of the component lab. All are backward compatible.
Fixed
- Overlays now open from a trigger.
dialog,alert_dialog, anddrawerare opened by togglingdata-aui-openwithPhoenix.LiveView.JS.set_attribute— a client-side change that never fires the hook'supdated(). The hooks now observe the attribute (MutationObserver), so triggers work. The drawer also calls the nativeshow()/showModal()so the<dialog>actually renders (and a modal drawer regains its backdrop, top layer, and inert background). - Dialog is centered. Consumer resets (e.g. Tailwind Preflight's
dialog { margin: 0 }) clobbered the UA's centering and pinned the modal to the top-left;.aui-dialognow ownsmargin: auto. - Tooltip renders. The
AuroraTooltiphook was mounted on the tooltip root wrapper and hid it (trigger included). The hook now lives on the bubble, so the trigger stays visible and the bubble shows on hover/focus. - Popover opens. The panel carries the native
popoverattribute (CSS shows it via:popover-open), but the hook toggledhiddenand never calledshowPopover(). It now uses the native popover API (popover="manual", hook owns dismissal). - Command palette opens from its button.
mountCommandPalettenever wired the visible trigger's click (only the ⌘K shortcut). It now does. The listbox gained thedata-aui-command-listmarker the hook queries for. - Combobox hook activates.
phx-hook="AuroraCombobox"moved from the<input>to the root container (wheremountComboboxlooks for the input and list); added thedata-aui-combobox-input/-listmarkers. - Gallery is a grid again.
galleryclaimsinline-size: 100%so its auto-fill grid gets real column space inside flex/inline parents instead of collapsing to one column.
0.1.0 — 2026-07-11
Initial public release.
Added
- 15 component families as
Phoenix.Componentfunction components: Actions, Field, Choices, Selection, Navigation, Tabs & disclosure, Overlays, Floating UI, Feedback, Data display, Data navigation, Loading/progress, Search/command, Media/content, and Experience. - Semantic token system (
assets/css/aurora_ui.css): brand-neutral--aui-*custom properties for color, spacing, type, radii, elevation, layering, and motion, with independent hand-authored light and dark themes and a contrast test. - Core JavaScript hooks (
aurora_uientry) plus lazily-importedcommand,motion, andthreeentry points that stay out of consumer bundles until their component is rendered. - Fully-implemented Three.js scene host with static/semantic fallbacks, capability detection, pause/resize/context-recovery/disposal.
- Docs + component lab (
demo/) and an example application proving the install story end to end. - Accessibility, browser, bundle, and visual-regression evidence under
docs/evidence/. - Governance: MIT license, security policy, contribution guide, code of conduct, support/compatibility policy, third-party notices, and architecture decision records.