Announcing Stimulus FX

Recently I published an article about custom action options in Stimulus. It explains how you can use these to build more advanced actions with custom JavaScript. It’s pretty neat, check out the article if you want to know more!

While writing the article and reviewing my own apps for examples, I noticed I frequently repeated the same custom action options. As a developer, that kind of repetition started to make me uneasy. So I decided what every sane developer would decide: package them up! 📦 😬

So here is: Stimulus FX. It’s also on GitHub and NPM.

Usage is simple. After adding the package using your favorite tool, all you need is:

// Import everything
import { registerActionOptions } from "stimulus-fx";
registerActionOptions(application);

// Or import specific actions
import { whenOutside } from "stimulus-fx/actions";
application.registerActionOption("whenOutside", whenOutside);

Then, for the whenOutside option, in your HTML you can use it like this:

<div data-controller="dropdown">
  <ul data-dropdown-target="menu" data-action="click@window->dropdown#hide:whenOutside">
  </ul>
</div>

Stimulus FX has currently a cute 4 action options, but I plan to add more soon (and build it into a package with other “fx” for Stimulus).

It is also OSS, so please ⭐ and create a PR with your improvement! ❤️

Get UI & Product Engineering Insights for Rails Apps (and product updates!)

Published at . Have suggestions or improvements on this content? Do reach out.

UI components Library for Ruby on Rails apps

$ 99 one-time
payment

Explore
  • One-time Payment

  • Access to the Entire Library

  • Built using ViewComponent

  • Designed with Tailwind CSS

  • Enhanced with Hotwire

Fractional Rails UI Product Engineer

$ 2k month

Hire
  • UI Modernization

  • Fractional UI and feature improvement

  • JavaScript untaming

  • No full-time commitment

Launch a Rails SaaS app in a month

$ 15k one-time

Book a call
  • Modern Rails app

  • Ready for paying customers in one month

  • 2 - 3 core features

  • You own every line of code