An Elixir library to generate identicons in SVG format, so they can be inlined in HTML.
- 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.
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
- (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. Ifbg_color
is non-nil, it will also be applied to the padding area with the with the default (1.0) or requestedopacity
, which is also applied on the foreground and the background. - The size of the generated SVG code is greatly reduced.
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 offg_color
on the color wheel.:split1
: the first adjacent tertiary color of the complement offg_color
on the color wheel.:split2
: the second adjacent tertiary color of the complement offg_color
on the color wheel.
No configuration required.
The docs can be found at https://hexdocs.pm/identicon_svg.
There's also a discussion thread on elixirforum.com.
- 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