defmodule Mix.Tasks.Skua.Themes do
@shortdoc "List the prepackaged Skua themes (for `mix skua.install --theme <name>`)"
@moduledoc """
Lists every prepackaged theme you can bake in with `mix skua.install --theme <name>`.
mix skua.themes
A theme writes its token overrides (dark + light) into your `assets/css/app.css`,
so it's fully editable afterward. The default `mix skua.install` (no `--theme`)
keeps Skua's built-in look — themes are opt-in.
"""
use Mix.Task
@impl Mix.Task
def run(_args) do
names = Skua.Themes.names()
Mix.shell().info([
:cyan,
"\n #{length(names)} Skua themes — apply with ",
:reset,
"mix skua.install --theme <name>",
:cyan,
":\n",
:reset
])
Enum.each(names, fn n ->
Mix.shell().info([" ", :bright, String.pad_trailing(n, 18), :reset, Skua.Themes.title(n)])
end)
Mix.shell().info([
:faint,
"\n Default `mix skua.install` keeps Skua's built-in palette — themes are opt-in.\n",
:reset
])
end
end