-
Notifications
You must be signed in to change notification settings - Fork 3
Description
I’d love to request a return of the classic HTML-only UI Blocks, as they were previously available in Tailwind UI before the introduction of @tailwindplus/elements
.
Why this matters
The new components rely entirely on @tailwindplus/elements
, including:
<el-popover>
,<el-dialog>
,<el-disclosure>
, etc.- Attributes like
popover
,anchor
,command
,commandfor
- Dynamic state classes like
data-open:*
,in-aria-expanded:*
While this is a clean and modern solution, it comes with some trade-offs:
Current Challenges
-
No alternative version available
It’s no longer possible to get a raw HTML version of a component and add your own interactivity (via Vanilla JS, Alpine, etc.). -
Unstable behavior in some browsers
For example, we've experienced positioning bugs in Safari 18 due to Popover API issues (see: #1733 -
Less flexibility
For many developers, it was helpful to have full control over behavior and lifecycle. That’s now more difficult due to the abstraction. -
Increased friction
To implement something with custom interactivity today, we need to:- Remove all
@tailwindplus/elements
logic and markup - Rebuild behavior from scratch
- Remove all
What would help
It would be great to have a HTML-only version of each UI Block (no custom elements or magic attributes)
Why this isn’t just nostalgia
Many of us prefer or require:
- More direct control over behavior
- Full transparency in markup and logic
- Incremental enhancement strategies that work reliably across browsers and environments