| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| DiceBear 10.5 - Release Notes source code.tar.gz | 2026-08-09 | 5.4 MB | |
| DiceBear 10.5 - Release Notes source code.zip | 2026-08-09 | 5.7 MB | |
| README.md | 2026-08-09 | 8.4 kB | |
| Totals: 3 Items | 11.1 MB | 0 | |
10.4 was the big artwork release. 10.5 is the quiet one that follows it: two more styles, one new color option, and three packages that lost a lot of weight.
🎨 Voxel Art and Voxel Bot
@dicebear/styles 10.4.0 adds two styles and takes the collection from 50 to 52. Both are DiceBear originals under CC0 1.0, so you can use them anywhere, commercial projects included, without attribution.
Voxel Art
Full-body characters stacked out of small cubes, in the look of a voxel game. 21 tops, 10 outfits, 8 eye sets, 10 mouths, and on top of that glasses, beards, eyebrows, noses, and cheeks. Eight color groups, from skin to shoes, are yours to override.
Voxel Bot
The same blocky vocabulary, pointed at small robots: 7 heads, 6 chest plates, 7 eye sets, and 5 mouths on a glowing screen face. The glow is its own color group, so you can tune the screen without touching the body.
Animation
Both ship the opt-in animation component that arrived in 10.4, which brings the count of animated styles to 18 of 52. Switch it on with animationVariant or tags=animation:
Voxel Art |
Voxel Bot |
📋 Colors in the order you wrote them
Until now, every color you passed went through the shuffle. Great for variety, useless when you want a flag on a background and not one of its permutations. Discussion [#549] asked for a way out, and 10.5 has one: the new *ColorOrder option.
:::js
const avatar = new Avatar(style, {
seed: 'Felix',
backgroundColor: ['000000', 'dd0000', 'ffce00'],
backgroundColorFill: 'linear',
backgroundColorAngle: 90,
backgroundColorOrder: 'fixed',
});
https://api.dicebear.com/10.x/initials/svg?seed=Felix&backgroundColor=000000,dd0000,ffce00&backgroundColorFill=linear&backgroundColorAngle=90&backgroundColorOrder=fixed
fixed |
random (default) |
The option exists for every color group in a style, so skinColorOrder, hairColorOrder, and the rest work the same way. With fixed, a gradient uses your colors as stops from first to last, a solid fill always takes the first one, and the number of stops defaults to the number of colors you passed. Without a *Color option, fixed only skips the shuffle and uses the style's own palette in sorted order, where constraints such as contrastTo still apply, so the result can stay seed dependent.
random remains the default, so nothing you have rendered so far changes. The option is in all six cores (JavaScript, PHP, Python, Rust, Go, and Dart) and in the HTTP API, validated by @dicebear/schema 1.4.0 and pinned by two new parity fixture cases per style. See the core options guide for the full rules.
One thing to know for later: the sorted palette fallback is deprecated. In DiceBear 11, fixed without user colors will take the palette in its definition order, the same verbatim rule that already applies to colors you pass yourself.
📦 Smaller packages
The JavaScript core generates its schema validators with schemasafe now instead of Ajv. The package still has zero runtime dependencies, and the validator code drops from 164 KB to 114 KB minified, which your browser bundle inherits. Both compilers accept and reject the same inputs: every published style definition and a pile of deliberately broken ones produced identical verdicts.
Error messages did change, though. schemasafe reports JSON pointers without prose, so the message is now built from the failing keyword (/size is smaller than allowed), and every ValidationErrorDetail carries two new optional fields, schemaPath and keyword. If you match on message strings anywhere, this is the spot to look.
@dicebear/converter lost its XML parser in the browser build. Setting the render size and mirroring mask-type declarations run on the native DOMParser and XMLSerializer instead, which every browser has anyway. That parser stack was nine tenths of the bundle, so a browser build goes from 26 kB to 1.4 kB gzipped. The Node build keeps the parser, since Node has nothing native to swap in. Two edges shift with it: a malformed SVG fails with a clear error rather than a parser-specific one, and normalizeMaskType returns self-closing empty elements in the browser.
The CLI dropped the ajv dependency it no longer used, which makes an install about 2.7 MB smaller.
🧰 Also in 10.5
- Editor: The eight character styles it was missing are in:
clay,critters,moods,pixelbot,sprouts,thumbs,voxel-art, andvoxel-bot. Its list now matches the Characters category on the website exactly, all 32 of them, with the new option labels translated into English, German, and Portuguese. - Docs: The bundle size estimator measures what a bundler actually ships, one minified bundle per package, gzipped as a whole. It used to gzip every published file separately without minifying, which put
@dicebear/coreat 58 kB instead of 26 kB and@dicebear/converterat 8 kB instead of 26 kB. Its converter hint also promised PDF output, which the package has never done. - Docs: Style pages for the two voxel styles, and the animated styles page counts its styles from the definitions at build time. The hardcoded number it replaces had been stuck at 15 for a while.
Everything else is in the changelog.