Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
thiagomajesk committed Mar 23, 2023
1 parent 39f0f48 commit 21063e3
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
# Swish

Swish is a UI toolkit for busy developers and a "no frills" replacement for the standard Phoenix 1.7 core components.
This project aims to provide unstyled component primitives that you can use directly to speed up your development workflow.
Swish is a UI toolkit for busy developers that provides a set unstyled component primitives, also know as "headless components", that you can to speed up your development workflow.

# Goals of this project
# The project

Phoenix 1.7 introduces a set of pre-generated core components in your project which brings more flexibility but puts the burden of maintenance on the developer. This lib aims to reduce the amount of work necessary to use and customize components while supporting similar helpers like the (legacy!?) Phoenix.HTML lib.
Phoenix 1.7 introduces a set of pre-generated core components which brings some flexibility. However, we've found that the work necessary to maintain those components in each project your work on is a little taxing for most developers.

- ✅ Provide a terse API compatible with the existing Phoenix.HTML helpers (with and without forms)
- ✅ Provide base components that work out of the box and also allow easy reuse and customization
- ❌ Provide a full component set that follows a strict design system¹
This library aims to reduce the amount of work necessary to maintain and reuse components by providing the expected behaviors through a terse API that you can use to build, customize and style your own components.

> It's important to notice that there's many different needs regarding UI markup and this library is not meant to solve them all. As soon as you identify that your app is growing beyond what we can provide out of the box, we recommend that you create your own implementations. Hopefully by then, you will have the time and experience necessary to do, as well as the source code of this library that you can use as inspiration.

### Goals

> ¹If this is what you want that take a look at [Surface UI](https://surface-ui.org/), [Primer Live](https://github.com/ArthurClemens/primer_live) or [Sprout UI](https://github.com/TunkShif/sprout_ui)
- ✅ Provide a API somewhat compatible with the existing Phoenix.HTML helpers
- ✅ Provide set of components with built-in behaviors that you can style to create complete UIs on your own
- ✅ Provide a bare minimum degree of accessibility that you are most likely not going to implement by yourself
- ✅ Allow the customization of component behaviors through a easy-to-use and well documented API

Before using this library, it's important to understand that there are many different chalenges regarding UI design and this library is not meant to solve all of them. So, it's essential to identify your app's specific needs and if this library falls short on meeting them, don't worry. You can create the necessary abstractions when the time comes, and we're confident that by then, you'll have the experience and inspiration to do so with our source code as a helpful reference.

## Installation

Expand All @@ -28,7 +31,8 @@ def deps do
end
```

Add the following to your application's `package.json`:
If you are using a different building mechanism than the default esbuild configuration...
Add the following line to your application's `package.json` to make the js dependency available:

```json
"dependencies": {
Expand Down

0 comments on commit 21063e3

Please sign in to comment.