Loading...
Loading...
Set up DuskMoon UI system in a Phoenix project — tailwindcss v4, bun bundler, phoenix_duskmoon components, and CLAUDE.md constitution
npx skill4agent add gsmlg-dev/code-agent cmd-setup-phoenix-duskmoon/setup-phoenix-duskmoon{{INPUT}}$1duskmoon-dev-coreduskmoon-dev-css-artduskmoon-elementsphoenix-duskmoon-ui## UI Library./CLAUDE.md## UI Library
This project uses the DuskMoon UI system:
- **`phoenix_duskmoon`** — Phoenix LiveView UI component library (primary web UI)
- **`@duskmoon-dev/core`** — Core Tailwind CSS plugin and utilities
- **`@duskmoon-dev/css-art`** — CSS art utilities
- **`@duskmoon-dev/elements`** — Base web components
- **`@duskmoon-dev/art-elements`** — Art/decorative web components
Do NOT use DaisyUI or other CSS component libraries. Do NOT use `core_components.ex` — use `phoenix_duskmoon` components instead.
Use `@duskmoon-dev/core/plugin` as the Tailwind CSS plugin.
### Reporting issues or feature requests
If you encounter missing features, bugs, or need functionality not yet available in any DuskMoon package, open a GitHub issue in the appropriate repository with the label `internal request`:
- **`phoenix_duskmoon`** — https://github.com/gsmlg-dev/phoenix_duskmoon/issues
- **`@duskmoon-dev/core`** — https://github.com/gsmlg-dev/duskmoon-dev/issues
- **`@duskmoon-dev/css-art`** — https://github.com/gsmlg-dev/duskmoon-dev/issues
- **`@duskmoon-dev/elements`** — https://github.com/gsmlg-dev/duskmoon-dev/issues
- **`@duskmoon-dev/art-elements`** — https://github.com/gsmlg-dev/duskmoon-dev/issues./CLAUDE.md@duskmoon-dev/core/plugin@import "tailwindcss"@duskmoon-dev/core/plugintailwind.config.jstailwind.config.tsphoenix_duskmoonmix.exscore_components.exphoenix_duskmoonphoenix-duskmoon-uicore_components.eximport PhoenixDuskmoon.Componentsphoenix_duskmooninternal requestbunfig.tomlapps/[install]
optional = true
[workspaces]
packages = ["apps/*"]bunfig.toml[install]
optional = truepackage.jsonpackage.json{
"private": true,
"workspaces": ["apps/*"]
}package.jsonassets/mix.exs{:esbuild, ...}{:bun, "~> 1.4", runtime: Mix.env() == :dev},
{:tailwind, "~> 0.2", runtime: Mix.env() == :dev},config/config.exsconfig :esbuildmy_appconfig :bun,
version: "1.3.4",
my_app: [
args: ~w(build assets/js/app.js --outdir=priv/static/assets --external /fonts/* --external /images/*),
cd: Path.expand("../", __DIR__)
]
config :tailwind,
version: "4.1.11",
my_app: [
args: ~w(--input=assets/css/app.css --output=priv/static/assets/app.css),
cd: Path.expand("../", __DIR__)
]Path.expand("../apps/my_app", __DIR__)cd:config/dev.exswatchers: [
tailwind: {Tailwind, :install_and_run, [:my_app, ~w(--watch)]},
bun: {Bun, :install_and_run, [:my_app, ~w(--sourcemap=inline --watch)]}
]mix.exs"assets.deploy": [
"phx.digest.clean",
"tailwind my_app --minify",
"bun my_app --minify",
"phx.digest"
]NODE_PATHdeps/phoenixphoenix_htmlphoenix_live_viewdeps/npm installdevenv.nixenv.NODE_PATH = "${config.git.root}/deps";export NODE_PATH="$(pwd)/deps"npm installconfig/runtime.exsif System.get_env("MIX_BUN_PATH") do
config :bun, path: System.get_env("MIX_BUN_PATH")
end
if System.get_env("MIX_TAILWIND_PATH") do
config :tailwind, path: System.get_env("MIX_TAILWIND_PATH")
endassets/package.jsonpackage.json{
"dependencies": {
"@duskmoon-dev/core": "latest",
"@duskmoon-dev/css-art": "latest",
"@duskmoon-dev/elements": "latest",
"@duskmoon-dev/art-elements": "latest"
}
}esbuilddaisyuimix deps.getbun installinternal requestphoenix_duskmoon@duskmoon-dev/core@duskmoon-dev/css-art@duskmoon-dev/elements@duskmoon-dev/art-elementsduskmoon-dev-coreduskmoon-dev-css-artduskmoon-elementsphoenix-duskmoon-uiesbuildDaisyUICoreComponents