# Identicon Identicon renders symmetrical pixel-grid patterns in a single color on a tinted background, the classic identicon look popularized by developer tools and version control hosts. Each pattern is deterministically derived from its seed, so it works well for technical profile icons and identicon API use cases. - **Style name:** `identicon` - **Category:** Minimalist - **Animated:** no - **Creator:** DiceBear (https://www.dicebear.com) - **Source:** https://www.dicebear.com - **License:** CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/) ## Usage Every library below produces the same SVG for the same seed and options. HTTP API: ``` https://api.dicebear.com/10.x/identicon/svg?seed=John ``` JavaScript: ``` npm install @dicebear/core @dicebear/styles --save ``` ```js import { Style, Avatar } from '@dicebear/core'; import definition from '@dicebear/styles/identicon.json' with { type: 'json' }; const style = new Style(definition); const avatar = new Avatar(style, { seed: 'John' }); const svg = avatar.toString(); ``` PHP: ``` composer require dicebear/core dicebear/styles ``` ```php 'John']); $svg = (string) $avatar; ``` Python: ``` pip install dicebear-core dicebear-styles ``` ```python from importlib.resources import files from dicebear import Avatar, Style style = Style.from_json( files("dicebear_styles").joinpath("identicon.json").read_text("utf-8") ) avatar = Avatar(style, {"seed": "John"}) svg = avatar.to_string() ``` Rust: ``` cargo add dicebear-core serde_json cargo add dicebear-styles --features identicon ``` ```rust use dicebear_core::{Avatar, Style}; use serde_json::json; let style = Style::from_str(dicebear_styles::IDENTICON)?; let avatar = Avatar::new(&style, json!({ "seed": "John" }))?; let svg = avatar.to_svg(); ``` Go: ``` go get github.com/dicebear/dicebear-go/v10 go get github.com/dicebear/styles/v10 ``` ```go import ( dicebear "github.com/dicebear/dicebear-go/v10" "github.com/dicebear/styles/v10" ) style, _ := dicebear.NewStyle([]byte(styles.Identicon)) avatar, _ := dicebear.NewAvatar(style, map[string]any{"seed": "John"}) svg := avatar.SVG() ``` Dart: ``` dart pub add dicebear_core dicebear_styles ``` ```dart import 'package:dicebear_core/dicebear_core.dart'; import 'package:dicebear_styles/identicon.dart'; final style = Style.parse(identicon); final avatar = Avatar(style, {'seed': 'John'}); final svg = avatar.svg; ``` CLI: ``` npm install --global dicebear ``` ``` dicebear identicon ``` ## Presets 8 ready-made option sets for this style. Each is a plain set of render options: pass it to any of the libraries or send it as HTTP-API query parameters. You do not need to install anything for them, and any option a preset leaves out keeps varying with the seed. - **Sepia:** A warm brown grid on tanned paper. - **Greyscale:** Four steps of grey. - **Duotone:** One indigo on a pale indigo ground. - **Muted:** Dusty tones instead of the full spectrum. - **Electric:** Acid grid on near black. - **Pastel Wall:** Soft backgrounds, the grid untouched. - **Bold Pop:** Saturated backgrounds, loud on purpose. - **Sunrise:** A warm gradient behind the shapes. The full option set of each one is at https://www.dicebear.com/styles/identicon/presets/index.md. ## Options Every option below works in all libraries and as a query parameter of the HTTP API. The ones built from a component name (`Variant`, `Probability`) or from a color group (`Color`, `ColorFill`, `ColorFillStops`, `ColorAngle`, `ColorOrder`) belong to this style; the rest are [core options](https://www.dicebear.com/guides/core-options/) that every style accepts. | Option | Type | Values | | --- | --- | --- | | `seed` | string | | | `size` | number | 1 to 4096 | | `idRandomization` | boolean | | | `title` | string | | | `flip` | enum (array allowed) | `none`, `horizontal`, `vertical`, `both` | | `fontFamily` | string (array allowed) | | | `fontWeight` | number (array allowed) | 1 to 1000 | | `scale` | range | 0 to 10 | | `borderRadius` | range | 0 to 50 | | `rotate` | range | -360 to 360 | | `translateX` | range | -1000 to 1000 | | `translateY` | range | -1000 to 1000 | | `rowVariant` | enum (array allowed) | `ooxoo`, `oxoxo`, `oxxxo`, `xooox`, `xoxox`, `xxoxx`, `xxxxx` | | `rowProbability` | number | 0 to 100 | | `rowColor` | color (array allowed) | Hex color, `#` optional | | `rowColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `rowColorFillStops` | range | | | `rowColorAngle` | range | -360 to 360 | | `rowColorOrder` | enum | `random`, `fixed` | | `backgroundColor` | color (array allowed) | Hex color, `#` optional | | `backgroundColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `backgroundColorFillStops` | range | | | `backgroundColorAngle` | range | -360 to 360 | | `backgroundColorOrder` | enum | `random`, `fixed` | The same table is available as JSON at `https://api.dicebear.com/10.x/identicon/options.json`, and the raw definition at `https://api.dicebear.com/10.x/identicon/definition.json`.