Changelog
This page documents the current state of Earthling UI and ongoing development.
v1.1.0-alpha.42
A library and documentation refresh focused on consistent design, source ownership, and reliable component discovery.
Library
- Refined spacing, typography, borders, focus treatment, and semantic color defaults across the component library.
- Made frequent hover and selection feedback immediate while keeping short, origin-aware spatial motion with reduced-motion fallbacks.
- Standardized floating surfaces with viewport-aware scrolling, nested radii, logical-direction spacing, and larger accessible controls.
- Improved contracts for loading buttons, directional drawers, delayed tooltips, range sliders, indeterminate progress, numeric tables, and vertically resizing text areas.
Documentation and tooling
- Rebuilt component pages around statically imported, typed examples with live controls, complete anatomy, accessibility notes, and source-derived API information.
- Expanded package, CLI, setup, template, theming, and agent guidance to match current import and eject workflows.
- Added source-derived catalog metadata for reliable discovery of component exports, dependencies, declarations, and ejectable files.
v1.1.0-alpha.41
A focused release: the cn utility now runs on a single, faster dependency.
Improvements
cnis now powered by cnfast, replacing theclsx+tailwind-mergepair — same class-merging behavior, one smaller and faster dependency- Ejected components now pull in
cnfastinstead ofclsxandtailwind-merge
v1.1.0-alpha.40
A polish pass across the whole library — a new neutral default scheme, tactile motion, and a token consistency sweep.
Improvements
- New
defaultscheme (foreground-on-background neutral) available on badge, button, checkbox, chip, input, pagination, progress, radio, slider, switch, tabs, textarea, toggle group, and tooltip; textarea now defaults to it instead ofprimary - Tactile press feedback: buttons and checkboxes scale down slightly on press, and slider thumbs scale up while dragging — buttons can opt out via the new
staticprop - Motion polish: checkbox indicators animate in, accordion content animates height with
motion-reducesupport, progress bars ease their fill, and components transition only the properties they need instead oftransition-all(via the newtw-animate-cssdependency) - Token consistency: menus, dropdowns, menubar, select, dialogs, and navigation menu now use Earthling tokens (
muted,background,bad) instead of leftover shadcn-style tokens (accent,popover,destructive) - Visual details: avatar images get a subtle outline ring, dialog and card titles use
text-balance, descriptions usetext-pretty, and focus rings are standardized onring-outline - Docs sandbox: scheme controls for slider and tooltip, and a
statictoggle for button
Fixes
- Docs component info now lists the correct
TextAreaexport name
v1.1.0-alpha.39
The "ready for the world" release — packaging correctness, a Node-compatible CLI, six new components, and a consistency pass across the whole library.
New Components
- Label — accessible form-control label
- Kbd — keyboard key and shortcut display
- Spinner — animated loading indicator with full scheme support
- Pagination — page navigation with previous/next and ellipsis
- Menubar — persistent menu bar with nested dropdown menus
- Navigation Menu — site navigation with expandable content panels
This brings the library to 40 components, all importable à la carte or ejectable into your project.
Improvements
- Full scheme coverage: alert, checkbox, input, progress, radio, tabs, textarea, toast, and toggle-group now support the complete scheme set (
primary,secondary,tertiary,neutral,muted,good,caution,bad) - Color Picker is now exported from the package root alongside its subpath import
- Breadcrumbs supports
aria-current="page"via the newcurrentprop
Fixes
- Toggle group items now correctly receive their scheme colors (previously the scheme classes were silently dropped)
TextArea.displayNamecorrected to"TextArea"- Breadcrumbs ships its
"use client"directive in source (matters for ejected copies)
Packaging & Compatibility
- Vite support: stylesheet subpath exports (
earthling-ui/index.css,earthling-ui/themes/dark.css) work with plain JS imports in any bundler - CommonJS consumers:
require("earthling-ui/...")now resolves correctly under Node, with proper CJS-flavored type declarations - CLI runs under Node:
npx earthling-uiworks without Bun — the CLI ships pre-built with a proper shebang sideEffectsnow correctly preserves CSS imports under aggressive tree-shaking- The unfinished
copycommand was removed
Earlier Releases
v1.1.0-alpha.25 → alpha.38
- Component ejection (
earthling-ui eject) and config wizard (earthling-ui init) shipped - Color picker (rough draft), dropdown menu, scroll area, context menu, dialog improvements (
DialogForm,DialogExitButton, better SSR) - Docs site: radial gradient background, component sandbox improvements
v1.1.0-alpha (initial)
- Initial component library with the CVA + scheme-variable design system
- Light and dark themes via CSS custom properties
- Project templates: Next.js, Vite, Tauri, Electron kiosk, database (Drizzle), library, CLI, and monorepo
createcommand for scaffolding projects from templates
Development Philosophy
Earthling UI is being developed with these principles in mind:
- Accessibility: Components should be accessible to all users
- Customization: Easy to customize to match your brand
- Developer Experience: Simple API and clear documentation
- Performance: Minimal bundle size and optimal runtime performance
Project Status
Earthling UI is in public alpha. The API is stabilizing, but minor changes may still occur before the stable release.
If you encounter any issues or have suggestions, please file an issue on the GitHub repository.