- Add
salad_uito yourmix.exs
def deps do
[
{:salad_ui, "~> 1.0.0-beta.3"},
]
end- Choose your installation method:
For a quick start with minimal configuration:
mix salad.setupThis sets up SaladUI to use components directly from the library. You can start using components immediately:
defmodule MyAppWeb.PageLive do
use MyAppWeb, :live_view
import SaladUI.Button
import SaladUI.Dialog
def render(_) do
~H"""
<.button>Click me</.button>
<.dialog id="my-dialog">
<.dialog_content>
<p>Hello world!</p>
</.dialog_content>
</.dialog>
"""
end
endFor full customization with local component files:
# Default installation
mix salad.install
# With custom prefix and color scheme
mix salad.install --prefix MyUI --color-scheme slateThis copies all component files to your project under lib/my_app_web/components/ui/ where you can customize them:
defmodule MyAppWeb.PageLive do
use MyAppWeb, :live_view
import MyAppWeb.Components.UI.Button
import MyAppWeb.Components.UI.Dialog
def render(_) do
~H"""
<.button>Click me</.button>
<.dialog id="my-dialog">
<.dialog_content>
<p>Hello world!</p>
</.dialog_content>
</.dialog>
"""
end
end- ✅ Sets up Tailwind CSS and color schemes
- ✅ Configures JavaScript hooks and components
- ✅ Ready to use immediately
- ❌ Components cannot be customized
- ❌ Uses external package dependencies
- ✅ Sets up Tailwind CSS and color schemes
- ✅ Copies all component source code locally
- ✅ Copies all JavaScript files locally
- ✅ Full customization possible
- ✅ No external runtime dependencies
- ✅ Custom module prefixes
- Custom error translate function
config :salad_ui, :error_translator_function, {MyAppWeb.CoreComponents, :translate_error}Here is how to start develop SaladUI on local machine.
- Clone this repo
- Go into storybook folder
- Start storybook
cd storybook
mix phx.server
All v1 component are not covered by UnitTest. Currently I'm working on an important project so I don't have much time for this. If you're interested in this project, please help to add Unit Test if possible. 🙏
| Component | v0 | v1 |
|---|---|---|
| Accordion | ✅ | ✅ |
| Alert | ✅ | ✅ |
| Alert Dialog | ✅ | ✅ |
| Avatar | ✅ | ✅ |
| Badge | ✅ | ✅ |
| Breadcrumb | ✅ | ✅ |
| Button | ✅ | ✅ |
| Card | ✅ | ✅ |
| Carousel | ❌ | |
| Checkbox | ✅ | ✅ |
| Collapsible | ✅ | ✅ |
| Combobox | ❌ | |
| Command | ❌ | ✅ @ilyabayel |
| Context Menu | ❌ | |
| Dialog | ✅ | ✅ |
| Drawer | ❌ | |
| Dropdown Menu | ✅ | ✅ |
| Form | ✅ | ✅ |
| Hover Card | ✅ | ✅ |
| Input | ✅ | ✅ |
| Input OTP | ❌ | |
| Label | ✅ | ✅ |
| Pagination | ✅ | ✅ |
| Popover | ✅ | ✅ |
| Progress | ✅ | ✅ |
| Radio Group | ✅ | ✅ |
| Scroll Area | ✅ | ✅ |
| Select | ✅ | ✅ |
| Separator | ✅ | ✅ |
| Sheet | ✅ | ✅ |
| Skeleton | ✅ | ✅ |
| Slider | ✅ | ✅ |
| Switch | ✅ | ✅ |
| Table | ✅ | ✅ |
| Tabs | ✅ | ✅ |
| Textarea | ✅ | ✅ |
| Tooltip | ✅ | ✅ |
This project could not be available without these awesome works:
tailwind cssan awesome css utility projectturbopropI borrow code from here for merging tailwinds classesshadcn/uiwhich this project is inspired fromPhoenix Frameworkof course