Packages

PyraUI is a Phoenix LiveView component library delivering production-ready, premium UI building blocks.

Current section

Files

Jump to
pyraui README.md
Raw

README.md

# PyraUI โ€“ Phoenix LiveView Component System
PyraUI is a premium, production-ready component system for Phoenix LiveView. It combines meticulously crafted HEEx components, Tailwind-powered styling, and interactive LiveView demos so teams can ship polished UIs without reinventing basic patterns.
---
## ๐ŸŒŒ Crafting Delightful LiveView Experiences
PyraUI is more than a component libraryโ€”it is a design language shaped for real-time Phoenix apps. Each module embraces:
- Harmonized typography, motion, and spacing that feel at home in modern SaaS.
- Reactive data pipelines powered by LiveView streams and accessible by default.
- Tailwind-first styling tuned for dark surfaces, glassmorphism, and premium gradients.
Whether you are launching dashboards, collaboration tools, or consumer experiences, PyraUI accelerates the journey from prototype to production without sacrificing craft.
---
## โœจ Highlights
- **100+ LiveView-first components** spanning form controls, data viz, overlays, navigation, and layout primitives
- **Zero JS build pipeline** โ€“ most interactivity is delivered via LiveView assigns and hook helpers
- **World-class docs & playground** โ€“ `/docs/*` pages showcase every component with multiple variants
- **Drop-in theming** โ€“ consistent spacing, color tokens, and glassmorphism-inspired effects out of the box
- **Hex-ready** โ€“ available from Hex with API docs on [hexdocs.pm/pyraui](https://hexdocs.pm/pyraui)
---
## ๐Ÿ“ฆ Installation
Add PyraUI to your Phoenix project from Hex:
```elixir
def deps do
[
{:pyraui, "~> 0.1.0"}
]
end
```
Fetch deps:
```bash
mix deps.get
```
Wire PyraUI helpers into your web layer (usually `lib/my_app_web.ex`):
```elixir
defmodule MyAppWeb do
use PyrauiWeb, :html
# ...existing definitions
end
```
You now have every component available inside your HEEx templates:
```heex
<.button variant={:primary} size={:lg}>
Launch Experience
</.button>
<.card class="max-w-md">
<.badge variant={:solid} icon="sparkles">New</.badge>
<h3 class="mt-4 text-xl font-semibold">Glass Panels</h3>
<p class="mt-2 text-sm text-slate-500">
Drag-resizable panels with frosted-glass surfaces and motion accents.
</p>
</.card>
<.alert variant={:celebrate} badge="Ship it!" icon="party-popper">
Your rollout finished with 0 regressions.
<:actions>
<.button variant={:ghost}>Share</.button>
</:actions>
</.alert>
```
---
## ๐Ÿ“š Documentation & Playground
| Resource | Description |
| --- | --- |
| **Component Docs** | [hexdocs.pm/pyraui](https://hexdocs.pm/pyraui) โ€“ API reference generated via ExDoc |
| **Interactive Gallery** | Explore components at [`https://pyraui.onrender.com/docs`](https://pyraui.onrender.com/docs) with live previews |
| **Guides & Recipes** | Coming soon โ€“ will cover theming, component composition, and deployment best practices |
Popular entry points in the playground:
- `/docs/alert` โ€“ richly-styled toast & alert variations with gradients and actions
- `/docs/theme-switch` โ€“ theme toggles with glass, gradient, and pill styles
- `/docs/table` โ€“ dense, outlined, and elevated tables with badges & metrics
- `/docs/live-chat` โ€“ real-time conversation UI with typing indicators & quick replies
---
## ๐Ÿงฉ Component Catalog (Snapshot)
| Category | Components |
| --- | --- |
| **Forms & Inputs** | `button`, `input`, `textarea`, `select`, `checkbox`, `radio`, `toggle`, `slider`, `rating`, `tag_input`, `multi_select`, `password_strength_meter`, `date_picker` |
| **Feedback & Overlays** | `alert`, `toast`, `modal`, `drawer`, `tooltip` (soon), `progress`, `badge`, `badge_card` |
| **Navigation & Layout** | `navbar`, `tabs`, `accordion`, `breadcrumbs`, `drawer`, `dock`, `stepper`, `wizard`, `card`, `skeleton`, `grid`, `masonry_grid`, `resizable_panels`, `filter_panel` |
| **Data Visualization** | `chart` (line, bar, pie, stacked), `animated_chart`, `gauge`, `heatmap`, `map`, `timeline`, `countdown` |
| **Collaboration & Social** | `live_chat`, `live_feed`, `avatar`, `avatar_group`, `connections_widget`, `user_profile_card` |
| **Productivity** | `kanban`, `gantt`, `sortable_list`, `signature_pad`, `file_upload`, `live_data_table` |
Every component ships with:
1. API (`attr`/`slot`) documentation
2. Multiple curated examples in the LiveView docs
3. Tailwind-based styling with extensible class overrides
---
## โšก๏ธ Quick Start (Demo App)
Clone the repo and explore the full playground locally:
```bash
git clone https://github.com/abrshewube/Pyraui.git pyraui
cd pyraui
mix deps.get
mix phx.server
```
Visit [`https://pyraui.onrender.com`](https://pyraui.onrender.com) for the landing page and [`https://pyraui.onrender.com/docs`](https://pyraui.onrender.com/docs) for the interactive component explorer. You can tweak assigns live and see the UI respond instantly thanks to LiveView streams.
---
## ๐ŸŒ Project Links
- GitHub: [abrshewube/Pyraui](https://github.com/abrshewube/Pyraui)
- HexDocs: [hexdocs.pm/pyraui](https://hexdocs.pm/pyraui)
- Issue Tracker: [GitHub Issues](https://github.com/abrshewube/Pyraui/issues)
---
## ๐Ÿค Collaborate With PyraUI
Passionate about elevating LiveView interfaces? Let's build together:
- โœ‰๏ธ [abrhamwube1@gmail.com](mailto:abrhamwube1@gmail.com)
- ๐Ÿ”— [LinkedIn ยท Abrham Gobezie](https://www.linkedin.com/in/abrham-gobezie-148a12247/)
Bring your ideas, showcase your projects, or reach out if you want to sponsor premium components. PyraUI thrives on community energyโ€”your insight shapes the next wave of Phoenix UI.
---
## ๐Ÿ—บ Roadmap
- [ ] Dark mode & tokenized theme support
- [ ] Rich markdown guides published to HexDocs
- [ ] Motion presets & micro-interaction utilities
- [ ] Additional chart renderers (sparkline, radar, area)
- [ ] CLI for scaffolding new components
Follow updates and contribute ideas via [GitHub issues](https://github.com/abrshewube/Pyraui/issues).
---
## ๐Ÿ“„ License
PyraUI is released under the [Apache 2.0 License](LICENSE).