defmodule Skua do
@moduledoc """
Skua — headless-first, token-driven UI components for Phoenix LiveView.
Behavior is built on browser-native primitives (the Popover API, the top
layer, native `<dialog>`) and ships as one first-party hooks bundle — zero
third-party JavaScript. Every overlay (select, menu, dialog, drawer, date
picker, tooltip) renders in the top layer and is viewport-aware. Styling is
100% CSS tokens, so the whole app re-skins from one place.
> #### Early release {: .info}
>
> 0.1.x — the component set is broad and browser-tested, but APIs may still
> shift. See `PLAN.md` for the roadmap and `usage-rules.md` for the styling
> rules (also great context for AI agents working in a Skua app).
## Usage
# lib/my_app_web.ex (added by `mix skua.install`)
use Skua
# assets/js/app.js
import { hooks as skuaHooks } from "skua"
const liveSocket = new LiveSocket("/live", Socket, {
hooks: { ...skuaHooks, ...appHooks }
})
Theme by overriding the `--skua-*` tokens in your `app.css` `:root` — see
`assets/css/skua.css`.
"""
@doc false
defmacro __using__(_opts) do
quote do
import Skua.Components.Form
import Skua.Components.Overlay
import Skua.Components.Menu
import Skua.Components.Select
import Skua.Components.Phone
import Skua.Components.Toast
import Skua.Components.Date
import Skua.Components.Theme
import Skua.Components.Display
import Skua.Components.Table
import Skua.Components.Tabs
import Skua.Components.Tooltip
end
end
end