finds.dev← search

// the find

wire-elements/modal

★ 1,214 · PHP · MIT · updated Feb 2026

Livewire component that provides you with a modal that supports multiple child modals while maintaining state.

A Livewire component that manages a stack of modals, letting you open child modals on top of existing ones while preserving each modal's state. Solves a specific and annoying problem in Livewire apps: the typical single-modal pattern falls apart the moment you need a confirmation dialog inside an edit form. Squarely aimed at Laravel/Livewire shops.

The stacked modal model is genuinely well-thought-out — you get push/pop semantics with skipPreviousModal() for cases where going back doesn't make sense after a destructive action. Model binding works the same way as regular Livewire components, so you're not learning a new pattern. Per-component overrides (closeModalOnEscape, destroyOnClose, etc.) are static methods rather than config soup, which means the behavior lives next to the component that needs it. The closeModalWithEvents() pattern for notifying parent components is a clean way to handle the 'refresh the list after saving' case without coupling.

Hard dependency on TailwindCSS — the fallback is a bundled CSS file that you can opt into, but it's an afterthought and you'll be fighting the styles if your project uses anything else. The JavaScript is compiled and checked in as a build artifact (public/modal.js, mix-manifest.json) rather than distributed as source, which is a maintenance smell. No accessibility story visible in the README — no mention of focus trapping, aria-modal, or keyboard navigation beyond escape-to-close. Last meaningful activity is early 2026, and with Livewire v3 having been out for a while, the issue backlog likely has edge cases nobody is fixing.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →