Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 2.66 KB

README.md

File metadata and controls

64 lines (44 loc) · 2.66 KB

IdenticonSvg

An Elixir library to generate identicons in SVG format, so they can be inlined in HTML.

Features

  • Github-style square identicon sizes from 4x4 to 10x10. The hashing function is automatically chosen based on the requested size. The foreground color choice is automatic based on the hash.
  • Optional (integer) padding.
  • Optional background color, manually defined or automatically set as basic or split complementary.
  • Transparent background (also on the padding) if no background color specified.
  • Optionally non-100% opacity.
  • Small SVG file size makes it great for inlining in HTML.
  • No external dependencies.

Installation

The package is available in Hex and can be installed by adding identicon_svg to your list of dependencies in mix.exs:

def deps do
  [
    {:identicon_svg, "~> 0.9.4"}
  ]
end

Recent changes

New since v0.9.0

  • (Since v0.9.4) Set the squircle curvature factor with the :squircle_curvature keyword option to a float to crop the identicon to a squircle.
  • (Since v0.9.3) The mask id is now randomly generated to avoid clashes between multiple SVG identicons on the same page.
  • Setting padding to a positive integer sets the padding to the identicon to that value. If bg_color is non-nil, it will also be applied to the padding area with the with the default (1.0) or requested opacity, which is also applied on the foreground and the background.
  • The size of the generated SVG code is greatly reduced.

New since v0.8.0

Setting bg_color to one of the following 3 atom values sets the color of the background squares to the corresponding RGB-complementary color of the automatically-defined foreground color, with the default (1.0) or requested opacity:

  • :basic: the complementary color, i.e. the opposite color of fg_color on the color wheel.
  • :split1: the first adjacent tertiary color of the complement of fg_color on the color wheel.
  • :split2: the second adjacent tertiary color of the complement of fg_color on the color wheel.

Configuration

No configuration required.

Documentation

The docs can be found at https://hexdocs.pm/identicon_svg.

There's also a discussion thread on elixirforum.com.

TODO (maybe, one day)

  • Implement core functionality
  • Publish on hex.pm
  • Add background color functionality (split-complementary for automatic color-matching)
  • Add padding
  • Reduce generated SVG file size
  • Implement testing functions
  • Set up CI