Skip to main content

README.md

# Skua

Form-first UI components for Phoenix LiveView (1.1+) on Phoenix 1.8+:
rich select, date picker, OTP input, dialogs, menus, tables, toasts and
top-layer panels — server-authoritative, viewport-aware, themeable from 12 CSS
tokens, with **zero third-party JavaScript** (one JS import, ~9 KB min+gzip).

A daisyUI replacement you install and manage through `mix` tasks built on
Igniter — including `--strip-daisy` to remove Phoenix 1.8's bundled daisyUI.

## Install

**One command** — Igniter adds the dep and wires everything (CSS, JS hooks,
component imports, flash → Skua toasts, strips the default Phoenix navbar, and
scaffolds an editable starter home at `/`):

```bash
mix igniter.install skua                                # existing app
mix igniter.new my_app --with phx.new --install skua    # brand-new app
```

Skua replaces daisyUI, so the installer **removes Phoenix 1.8's bundled daisyUI
by default** — it deletes the vendored files and bridges daisy's color utilities
(`bg-base-100`, `text-error`, …) to Skua tokens so existing markup keeps
resolving. Keep daisyUI instead with `--no-strip-daisy`:

```bash
mix igniter.install skua --no-strip-daisy
```

(If your daisyUI config was customized with nested rules, the installer leaves
it alone and prints a manual step rather than risk mangling it.)

**Without Igniter** — add the dep and run the plain Mix task (Igniter is
optional; the task still works):

```elixir
# mix.exs
{:skua, "~> 0.2.0"}
```

```bash
mix deps.get
mix skua.install            # --strip-daisy optional
mix phx.server              # open /
```

Every step is idempotent — re-run any time after `mix deps.update skua`. The
installer degrades to printed manual steps if your app diverges from the default
layout. Local-testing notes in [guides/local-testing.md](guides/local-testing.md).

## Repository layout

- `PLAN.md` — the full project plan (architecture decisions, installer spec,
  strip-daisy design, release pipeline, roadmap).
- `assets/css/skua.css` — the token + component CSS layer (the stable artifact).
- `lib/` — components, the install mix tasks (`Skua.Install.Patches` holds the
  shared install logic), and supporting modules.
- `_component_defaults/` — reference prototypes the library is being built
  from (styled-layer HTML demo, LiveView hook/component prototypes, and the
  skua.sh brand system). Not shipped in the hex package.

## License

MIT — see [LICENSE.md](LICENSE.md).