A tool for building custom Tailwind CSS CLI binaries with integrated plugins like DaisyUI.
The requirements dependencies can be managed via mix.
mix tailwind.install_deps # Installs Tailwind CLI build dependencies
mix tailwind.uninstall_deps # Uninstalls Tailwind CLI build dependencies
# Version 3.x
alias Defdo.TailwindBuilder
# Download Tailwind source
{:ok, _} = TailwindBuilder.download("/path/to/working/dir", "3.4.17")
# Add DaisyUI plugin
TailwindBuilder.add_plugin("daisyui", "3.4.17", "/path/to/working/dir")
# Build the CLI
{:ok, result} = TailwindBuilder.build("3.4.17", "/path/to/working/dir")
# Deploy to R2 (optional)
TailwindBuilder.deploy_r2("3.4.17", "/path/to/working/dir", "your-bucket-name")
# Version 4.x
alias Defdo.TailwindBuilder
# For Tailwind v4 with DaisyUI v5
daisyui_v5 = %{
"version" => ~s["daisyui": "^5.0.0"]
}
{:ok, _} = TailwindBuilder.download("/path/to/working/dir", "4.0.9")
TailwindBuilder.add_plugin(daisyui_v5, "4.0.9", "/path/to/working/dir")
{:ok, result} = TailwindBuilder.build("4.0.9", "/path/to/working/dir")
custom_plugin = %{
"version" => ~s["my-plugin": "^1.0.0"],
"statement" => ~s['my-plugin': require('my-plugin')]
}
TailwindBuilder.add_plugin(custom_plugin, "3.4.17", "/path/to/working/dir")
Uploading to r2 requires the following environment variables to be set:
config :ex_aws,
access_key_id: System.fetch_env!("AWS_ACCESS_KEY_ID"),
secret_access_key: System.fetch_env!("AWS_SECRET_ACCESS_KEY"),
region: "auto",
s3: [
host: "your-account.r2.cloudflarestorage.com"
]
Add the package to your dependencies:
def deps do
[
{:tailwind_cli_builder, "~> 0.1.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/tailwind_builder.
Feel free to submit issues and pull requests.
git clone https://github.com/defdo-dev/tailwind_builder.git
cd tailwind_builder
mix deps.get
Run tests:
mix test