AshFormBuilder.Themes
(AshFormBuilder v0.4.0)
View Source
Pluggable theme registry.
Themes can be referenced anywhere in the library by either:
- A theme module —
AshFormBuilder.Themes.Default - A short atom —
:default,:shadcn,:glassmorphism,:mishka, or any user-registered name.
Built-in shortnames
| atom | module |
|---|---|
:default | AshFormBuilder.Themes.Default |
:shadcn | AshFormBuilder.Themes.Shadcn |
:glassmorphism | AshFormBuilder.Themes.Glassmorphism |
:mishka | AshFormBuilder.Theme.MishkaTheme |
Registering your own theme
# config/config.exs
config :ash_form_builder, :themes,
my_brand: MyAppWeb.Themes.MyBrand,
retro: MyAppWeb.Themes.RetroThen reference by short name from the DSL:
forms do
form :create do
theme :my_brand
end
endImplement the AshFormBuilder.Theme behaviour and you're done — no
module-name conventions or path tricks required.
Summary
Functions
All registered theme names (built-in + user).
Returns true if the given atom is a registered theme name.
Resolve a theme reference to a module.
Functions
@spec list() :: [atom()]
All registered theme names (built-in + user).
Returns true if the given atom is a registered theme name.
Resolve a theme reference to a module.
Accepts a module (returned as-is), a known short atom, or a
user-registered atom. Raises KeyError if the atom is unknown so
typos surface immediately at compile time when used from a DSL.
Examples
iex> AshFormBuilder.Themes.resolve(:default)
AshFormBuilder.Themes.Default
iex> AshFormBuilder.Themes.resolve(AshFormBuilder.Themes.Shadcn)
AshFormBuilder.Themes.Shadcn