Boxicon is surface component library that wraps the amazing boxicons library.
defmodule MyComponent do
use Surface.Component
@impl true
def render(assigns) do
~F"""
<Boxicon
type="regular"
name="calendar"
size="64"
class="icon green"
/>
"""
end
end
Default values let you write your boxicons using less code.
config :surface_boxicon,
default_type: "regular",
default_size: 24,
default_class: "icon"
By default Boxicon will compile all the 1500+ icons, which can take a while and will make you runtime unnecessarily bloated. To fix this, you can specify the icons you want or an entire category.
This are some possible configurations:
Two regular icons, all the logos and none of the solid ones.
config :surface_boxicon,
icons: [
regular: ["calendar", "chvron-down"],
logos: :all,
solid: nil
]
Just the icons you need (recommended)
config :surface_boxicon,
icons: [
regular: ["calendar", "chvron-down"],
solid: ["hand", "file-md"],
logos: ["docker"]
]
Compile all the icons (default config)
config :surface_boxicon,
icons: :all
For the complete list of available icons visit the boxicons wesite.
Add boxicons to your dependencies in your mix.exs
file
def deps do
[
{:surface_boxicon, "~> 0.4.0"}
]
end
Then run
mix deps.get
and that's pretty much it.