API reference@evolu/commonIdenticon › createIdenticon

function createIdenticon(
  id: string & Brand<"Id">,
  style?: IdenticonStyle,
): Identicon;

Defined in: packages/common/src/Identicon.ts:58

Creates a deterministic identicon SVG from an Id.

Works with any Id including branded IDs like OwnerId, etc.

Available styles:

  • "github" (default): 5x5 grid with horizontal mirroring (GitHub-style)
  • "quadrant": 2x2 grid with direct RGB color mapping from bytes
  • "gradient": Diagonal stripes with smooth color gradients
  • "sutnar": Three compositional variants with adaptive colors

Example

import {
  assertEqual,
  assertTrue,
  createIdFromString,
  createIdenticon,
} from "@evolu/common";

const id = createIdFromString("identicon-example");
const svg = createIdenticon(id);
const styles = ["quadrant", "gradient", "sutnar"] as const;
const alternativeSvgs = styles.map((style) => createIdenticon(id, style));

// Branded IDs work too.
const todoId = createIdFromString<"Todo">("todo-1");
const todoSvg = createIdenticon(todoId);

assertTrue(svg.startsWith("<svg"));
assertEqual(new Set([svg, ...alternativeSvgs]).size, 4);
assertTrue(todoSvg.startsWith("<svg"));