Skip to content

Releases: ruby-ui/ruby_ui

v1.4.0

23 Jun 17:18
957f4fc

Choose a tag to compare

What's new in 1.4.0

Features

  • Dialog: now renders the native <dialog> element — top-layer rendering, real backdrop, built-in focus trapping, Esc-to-close (#435, #343)
  • Generator: ruby_ui:component accepts multiple components at once (#416)
  • DropdownMenuItem can render as a div via as: (#427)
  • TabsTrigger can render as an anchor via as: (#425)

Bug fixes

  • Accordion: closed content is now properly hidden instead of trapped at height: 0, so form errors inside a closed item are reachable (#433, #168)
  • Avatar: lazy-loaded image no longer stays stuck on the fallback (#430, #415)
  • Fix /docs/dropdown_menu 404 (#428, #429)
  • Gem linter: remove redundant keyword_init: true (#426)

Documentation

  • Form: documented Rails form_with integration with a minimal form and a real-world login example (#434, #134)

Dependencies

  • esbuild 0.28.1, tailwindcss 4.3.1, selenium-webdriver 4.45.0, mcp 0.21.0, standard 1.55.0 (docs)

Full changelog: v1.3.0...v1.4.0

v1.3.0

10 Jun 12:52
a9e8e3a

Choose a tag to compare

What's new in 1.3.0

New components

  • Toast — Hotwire-native sonner port, with actions, icons, close/cancel and stacked region (#389)
  • Toggle and ToggleGroup (#392)

Features

  • Sheet: initial open state (#402)
  • Calendar: minimum date support (#351, #388)

Improvements

  • Tooltip: exit animation, no show delay, lazy-mounted content (#393); content width constrained (#384)
  • Combobox: respect minimum popover width when trigger is narrow (#397)

Bug fixes

  • Prevent Command dialog stacking (#386)
  • Avatar image fallback handling (#387)
  • Install tw-animate-css for importmap apps (#385)
  • Typography now installs together with Tooltip (#296, #383)
  • SelectValue placeholder fallback (#292, #382)
  • DatePicker is installable via the component generator (#380)
  • Remove duplicate data_table entry in generator dependencies (#414)

Dependencies

  • rouge 5.0 (#403), tailwind_merge 1.5.1 (#398)

Full changelog: v1.2.0...v1.3.0

v1.2.0

29 Apr 19:52
a3e5c84

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.1.0

09 Feb 15:11
4e84790

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.0.2...v1.1.0

v1.0.0

31 Mar 14:10

Choose a tag to compare

New name

What started as PhlexUI became RBUI, and now it's officially RubyUI.

New paradigm

RubyUI is now a generator-only library—no need to install it in your application! You can simply copy the components or use our generators to set up RubyUI and extract components to your app.

New requirements

RubyUI is compatible with Phlex 2 and Tailwind V4, but you can still adapt its code for older versions if needed.

Compatibility with Phlex::Kit

Including RubyUI module, you can use capital letter methods to use RubyUI components.

Before:

render RubyUI::Alert.new do
  render RubyUI::AlertTitle.new { "Pro tip" }
  render RubyUI::AlertDescription.new { "With RubyUI you'll ship faster." }
end

Now:

Alert do
  AlertTitle { "Pro tip" }
  AlertDescription { "With RubyUI you'll ship faster." }
end

New components

New components were added:

  • Breadcrumb
  • Carousel
  • Checkbox/Radio groups
  • Combobox
  • Form utils
  • Masked input
  • Select
  • Separator
  • Skeleton
  • Switch
  • Textarea

New generators

Now we have a setup generator that install needed config and gems, js packages and configuration, and we have a generator to help generating components into host application.

Importmap support

We tested RubyUI setup and all components on an application using Importmap (and also using esbuild).

RTL support

Several components received support for RTL layout.

Fixes

We've implemented hundreds of fixes—too many to list them here