/surface-boxicon

Surface component library that wraps the amazing boxicons library.

Primary LanguageElixir

Boxicon

Boxicon is surface component library that wraps the amazing boxicons library.

Hex pm build

Usage

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

Configuration

Default values

Default values let you write your boxicons using less code.

config :surface_boxicon,
  default_type: "regular",
  default_size: 24,
  default_class: "icon"

Icons

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.

Installation

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.