Packages
pui
1.0.0-beta.6
1.0.0
1.0.0-beta.18
retired
1.0.0-beta.17
retired
1.0.0-beta.16
retired
1.0.0-beta.15
retired
1.0.0-beta.14
retired
1.0.0-beta.13
retired
1.0.0-beta.12
retired
1.0.0-beta.11
retired
1.0.0-beta.10
retired
1.0.0-beta.9
retired
1.0.0-beta.8
retired
1.0.0-beta.7
retired
1.0.0-beta.6
retired
1.0.0-beta.5
retired
1.0.0-beta.4
retired
1.0.0-beta.3
retired
1.0.0-beta.1
retired
1.0.0-alpha.32
retired
1.0.0-alpha.31
retired
1.0.0-alpha.30
retired
1.0.0-alpha.29
retired
1.0.0-alpha.28
retired
1.0.0-alpha.27
retired
1.0.0-alpha.26
retired
1.0.0-alpha.25
retired
1.0.0-alpha.24
retired
1.0.0-alpha.23
retired
1.0.0-alpha.22
retired
1.0.0-alpha.21
retired
1.0.0-alpha.19
retired
1.0.0-alpha.18
retired
1.0.0-alpha.17
retired
1.0.0-alpha.16
retired
1.0.0-alpha.15
retired
1.0.0-alpha.14
retired
1.0.0-alpha.13
retired
1.0.0-alpha.12
retired
1.0.0-alpha.11
retired
A Phoenix LiveView UI toolkit
Retired package: Deprecated - Superseded by 1.0.0 stable release
Current section
Files
Jump to
Current section
Files
README.md
<p align="center">
<img src="demo/assets/pui-hook.png" alt="PUI Logo" width="200"/>
</p>
# PUI Components
## Headless Components
PUI supports three usage levels:
**Level 1: Low-level Hooks** - Direct Floating UI access
```elixir
<.popover_base phx-hook="PUI.Popover">
<.button>Trigger</.button>
<:popup class="custom">Content</:popup>
</.popover_base>
```
**Level 2: Unstyled Components** - Behavior without styles
```elixir
<.menu_button variant="unstyled" class="my-btn">
Open
<:item class="my-item">Profile</:item>
</.menu_button>
```
**Level 3: Styled Components** - Ready-to-use defaults
```elixir
<.menu_button variant="secondary">
Open
<:item>Profile</:item>
</.menu_button>
```
See [Headless Usage Guide](guides/headless-usage.md) for details.