fix(deps): update dependency @dicebear/core to v10 - #48
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ❌ Deployment failed View logs |
wycey-blog | 7005412 | Sep 02 2026, 11:12 PM |
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
2 times, most recently
from
June 5, 2026 23:59
756b75e to
be8d3bb
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
4 times, most recently
from
June 16, 2026 17:39
79f876e to
8682380
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
4 times, most recently
from
July 7, 2026 09:12
b6633d9 to
16e313f
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
4 times, most recently
from
July 17, 2026 17:01
4b5a0dc to
9ba41e1
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
2 times, most recently
from
July 24, 2026 15:05
bde5603 to
074123c
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
3 times, most recently
from
August 4, 2026 17:06
13058d2 to
203f6cb
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
2 times, most recently
from
August 16, 2026 11:10
f42f2d0 to
fdc8df5
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
3 times, most recently
from
August 26, 2026 13:02
0c8d8c6 to
f8937b1
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
from
August 29, 2026 21:54
f8937b1 to
97b9804
Compare
renovate
Bot
force-pushed
the
renovate/dicebear-core-10.x
branch
from
September 2, 2026 23:10
97b9804 to
7005412
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^9.4.3→^10.0.0Release Notes
dicebear/dicebear (@dicebear/core)
v10.7.0Compare Source
Changed
Styles: Bumped
@dicebear/stylesto10.6.0for the CLI, the docs, andthe editor. The release adds
cameo,gaze,marbles,shadows,slice,and
stack, which take the collection from 55 to 61 styles.gazeisanimated, which takes that count from 18 to 19. Each of the six has a style
page with its own preview row and a preset gallery, and the four the docs list
under Characters are in the editor too.
Editor: Option labels can now differ per style. They are one flat map per
language, because an option key almost always means the same thing wherever it
appears. German was the exception: it gave the head and the piece sitting on
top of it the same word, "Kopf", in
botttsandcroodles, which put twoidentical tabs in one strip, while English and Portuguese already told the two
apart. A style that needs a different word now overrides that one label under
styles.<styleName>in the message file, and only the language that deviatescarries an override.
marblesandcameotook one too, for a highlight thatGerman and Portuguese called a flower and for a body color on a style that
draws no body.
npm run validate:messagesnow fails the build on a missinglabel, on two keys resolving to the same word inside one style, and on an
override whose key or style is gone.
Fixed
Core (C#): Validation and rendering now agree with the other cores in
several places where 10.7.0-rc.1 did not. Schema patterns are rewritten before
they are compiled, because .NET reads
$as matching before a trailingnewline and narrows
\sto ASCII, which let a trailing newline through everyanchored pattern and let non-ASCII whitespace past the
javascript:andurl()filters. A seed or title holding an unpaired surrogate keeps itinstead of becoming U+FFFD, which used to produce a different avatar. The JSON
envelope writes supplementary-plane characters literally.
Avatar.FromJsonrejects JSON that is not an object. A component that references itself raises
CircularComponentReferenceExceptioninstead of overflowing the stack.The color helpers are no longer public.
DiceBear.Colorcollided withGodot.Color,UnityEngine.ColorandSystem.Drawing.Color, so a file withusing DiceBear;stopped compiling. This is a breaking change for anyone on10.7.0-rc.1 who called them.
v10.6.1Compare Source
Fixed
optional component that came up empty left its wrapper behind, and in
notioniststhat wrapper sits inside a mask. A masked group without contenthas no bounding box, and AndroidSVG takes the mask size from that box, so the
whole file fails to render. Gallery apps on Android showed such avatars as
corrupted while browsers drew them fine. Every file reported as broken has
such a wrapper, and the working ones from the same download do not. A wrapper
is now left out when nothing inside it renders, unless it carries an id that
something may point at.
bottts-neutral,clay,critters,notionists,and
squircleswere affected,bottts-neutralin about half of all seeds.The rendered image does not change.
v10.6.0Compare Source
Added
OptionsDescriptornow carrynotEqualTo, the listof color groups a group must differ from, next to the existing
contrastTo,in all six core implementations (JavaScript, PHP, Python, Rust, Go, and Dart).
Tooling that picks colors itself needs both constraints, because one explicit
color per group leaves the renderer nothing to sort or filter. The descriptor
parity fixtures and the guide on accessing all available options cover the new
property.
Changed
@dicebear/stylesto10.5.0for the CLI, the docs, andthe editor. The release adds
cutouts,line-faceandpatchwork, whichtake the collection from 52 to 55 styles, and exposes the dark color nine
existing styles draw with as a color group:
inkColoron seven of them,outlineColoronlorelei, andstrokeColorontoon-head. The CLI wasstill on
^10.4.0, a range that never matched the prerelease, so it had beenshipping 52 definitions while the docs and the editor were already on 55.
Fixed
contrastToand
notEqualToconstraints from the style definition. Inthumbsthat gavethe shape the background color in about one of five shuffles, where it then
vanished, and picked the worse of black and white for eyes and mouth about
half the time.
clay,critters,micah,voxel-art, andvoxel-botwereaffected too. Shuffle now resolves colors in dependency order and applies the
same constraints as the renderer.
v10.5.0Compare Source
Added
*ColorOrderwith the valuesrandomandfixed, in all six core implementations (JavaScript, PHP, Python, Rust, Go,and Dart).
randomis the previous behavior: the PRNG shuffles the colorsbefore use. With
fixed, colors passed via*Colorkeep exactly the givenorder; gradient fills apply them as stops from first to last, solid fills
always use the first color, and the number of gradient stops defaults to the
number of given colors. Without user-supplied colors,
fixedonly skips theshuffle and uses the style's palette in sorted order;
contrastToandnotEqualToconstraints still apply, so referenced color groups can keep theresult seed-dependent. Existing avatars are unaffected, since
randomstaysthe default. Requested in discussion
#549 for building
gradients with a fixed color sequence, such as flag colors.
@dicebear/schema1.4.0 validates the option, and two new parity fixture cases per style pin its
behavior across the ports. The core options guide and the implementation
specification cover the details.
voxel-artandvoxel-bot, the two styles new in@dicebear/styles10.4.0. The animated-avatars page now fills its style countfrom the definitions at build time, through the same token mechanism the
overall count already uses; the hardcoded number it replaces had gone stale
at 15.
clay,critters,moods,pixelbot,sprouts,thumbs,voxel-art, andvoxel-bot. Its style list now matches the docs' Characters category exactly,and the new option labels are translated into English, German, and Portuguese.
The animation option stays hidden in the editor, since its export writes
static files; an avatar without an explicit
animationVariantnever animates,because every animated variant carries weight 0.
Changed
@exodus/schemasafeinsteadof Ajv. The published package still has no runtime dependencies, and the
validator code shrinks from 164 KB to 114 KB minified, so browser bundles of
@dicebear/coreshrink by the same amount. Both compilers accept and rejectthe same inputs: every published style definition and a set of deliberately
broken samples produced identical verdicts. Error messages change, however.
schemasafe reports JSON pointers without prose, so the message is now derived
from the failing keyword (
/size is smaller than allowed), and everyValidationErrorDetailcarries two new optional fields,schemaPathandkeyword, that name the schema rule behind a failure. When an object violatesa named property and a pattern property at the same time, the error list only
reports the first group; the verdict is not affected.
ajvdependency, which makes a CLI install about2.7 MB smaller.
render size and mirroring
mask-typedeclarations now run on the nativeDOMParserandXMLSerializer, which every browser ships. The XML dependencystack (fast-xml-parser and friends) made up nine tenths of the browser bundle;
it stays in the Node build, where no native XML machinery exists. A browser
bundle of
@dicebear/convertershrinks from 26 kB to 1.4 kB gzipped. Twoedges change with the parser: a malformed SVG now fails with a clear error
instead of a parser-specific one, and when
normalizeMaskTyperewrites adocument in the browser, empty elements come back self-closing. Both helpers
are covered by new jsdom-based tests.
@dicebear/stylesto10.4.0for the CLI, the docs, andthe editor. The release adds
voxel-artandvoxel-bot, which take thecollection from 50 to 52 styles. Both ship the opt-in
animationcomponent,so 18 of the 52 styles can now animate.
Deprecated
*ColorOrder: 'fixed'applies whenno
*Coloroption is set. In DiceBear 10, this case deduplicates andcode-point sorts the style palette, so palettes keep their canonical order and
only the shuffle is skipped. DiceBear 11 will use the palette in its
definition order instead, the same verbatim rule that already applies to
user-supplied colors. That removes the user-colors/palette distinction from
the resolvers and makes
fixedmean the same thing for both sources. The sortsite in each of the six ports carries a matching deprecation comment.
Fixed
one minified bundle per package, gzipped as a whole. It previously gzipped
every published file on its own without minification, which showed
@dicebear/coreat 58 kB instead of 26 kB and@dicebear/converterat 8 kBinstead of 26 kB, since the converter's browser build pulls its XML
dependencies into the bundle. The converter hint also claimed PDF output; the
package converts to PNG, JPEG, WebP, and AVIF.
v10.4.0Compare Source
Changed
@dicebear/stylesto10.3.0. The release adds thirteenstyles:
blobs,clay,constellation,critters,landscape,loops,moods,pixelbot,planets,sprouts,squircles,waves, andweave.It also gives
shapes,glass,thumbs,initial-face, and every new styleexcept
weavean opt-inanimationcomponent, which stays off until theanimationVariantortagsrender option turns it on.v10.3.2Compare Source
Fixed
trip that sets the output size trimmed whitespace and converted
numeric-looking text, so
<text>0123</text>rendered as123and1e3as1000in every raster format, including through the HTTP API. Text nodes andCDATA sections now survive the round trip unchanged. Previously the converter
unwrapped a CDATA section into raw text, which could turn a valid SVG into
ill-formed XML.
elements. The XML parser's default nesting cap made
toPng()and friendsthrow on valid documents that resvg renders fine. The cap is now 1024 levels.
mask-typedeclarations the way abrowser does. It strips a trailing
!importantinstead of copying it into thepresentation attribute, where resvg would reject the value and silently fall
back to
luminance. It ignores invalid values, and when astyleattributerepeats the declaration, the last valid one wins.
Changed
normalizeMaskType()now works on the parsed XML tree insteadof rewriting the markup with regular expressions, and the raster entry points
apply it in the same parser pass that sets the output size. Input that needs
no fix comes back byte-identical. So does input the XML parser cannot read,
where the old version attempted a partial rewrite. When a mask does need
fixing, the function re-emits the SVG from the parsed tree, which can
normalize formatting details such as quote style or self-closing tags and
drops a
<!DOCTYPE>declaration. The rendered image stays the same.XMLBuilderexport of
fast-xml-parserto its successor packagefast-xml-builder. Theoutput is byte-identical. The only visible change for consumers is the new
package in the dependency tree.
v10.3.1Compare Source
Fixed
mask-type: alphain astyleattributenow rasterize correctly. resvg reads
mask-typeonly as a presentationattribute, and without one it falls back to the
luminancedefault, whichturns a mask drawn in black into a mask that hides its subject. Seven styles
ship such masks:
bottts-neutral,disco,glyphs,lorelei,micah,personasandtoon-head. Onloreleia bearded avatar lost its mouth inthe PNG while the SVG rendered fine. The HTTP API converts through this
package and was affected the same way. The normalization is also exported as
normalizeMaskType()for callers that drive resvg directly.v10.3.0Compare Source
Added
<!-- Generated by DiceBear (https://dicebear.com) -->as the first child ofthe root
<svg>element. The comment is byte-identical across the JavaScript,PHP, Python, Rust, Go, and Dart libraries. The byte output of every avatar
changes as a result, including data URIs and content hashes, so consumers that
compare rendered SVGs against stored snapshots need to update them. SVG
optimizers that strip comments (e.g. SVGO with default settings) remove it
again.
dicebear_corepackage) thatproduces identical output to the JavaScript library when given the same styles
and options. It validates style definitions and options against the shared
schemas (via
dicebear_schema) and pairs with thedicebear_stylespackage.Style::fromJson()(PHP) andStyle.from_json()(Python) to build a style from a raw JSON string without aseparate
json_decode(..., true)/json.loads(...)call. Malformed JSONraises the language's native parse error (
JsonException/json.JSONDecodeError); an invalid definition raises the usualStyleValidationError. MirrorsStyle::from_str(Rust) andStyle.parse(Dart); the existing array/dict constructor is unchanged.
Deprecated
Avatarisdeprecated; pass a
Styleinstead(
new Avatar(new Style(definition), options)), which also lets you reuse oneparsed style across many avatars. The definition still works for now and
renders identically, but emits a deprecation warning (a one-time
console.warnin JS,E_USER_DEPRECATEDin PHP,DeprecationWarninginPython) and will be removed in v11. The Dart, Rust and Go libraries already
require a
Style, so this brings every port to the sameAvatar(style, …)call.
v10.2.0Compare Source
Added
github.com/dicebear/dicebear-go/v10module) that produces identical outputto the JavaScript library when given the same styles and options.
Fixed
Color.luminance()now derives the sRGB linearization from aprecomputed lookup table (one entry per 8-bit channel value) instead of
calling
powat runtime.powis not required to be correctly rounded andproduced last-ULP differences between JS engines (V8 vs. others), the C math
library (PHP, Python, Rust), and Go's pure-Go implementation, so luminance
values, and in contrived cases contrast-based color ordering, could diverge
across languages and even across browsers. The table holds the values the
JavaScript reference produces today, so JavaScript output is unchanged; the
other libraries move by at most one ULP. The Go library additionally forces
intermediate rounding in the weighted sum, which the compiler could otherwise
fuse into FMA instructions on arm64. Rendered SVGs are unaffected.
Avatar::toDataUri()now percent-encodes exactly likeJavaScript's
encodeURIComponent. Previously the PHP library used plainrawurlencode, which additionally escapes!*'(), characters that occur inevery rendered SVG (e.g.
url(#…)references andtranslate(…)transforms),so the data URI diverged byte-wise from the JavaScript, Python, Rust, and Go
libraries. The decoded SVG was unaffected.
initialstyle variable now resolves to the full firstcode point of the initials. Previously the JavaScript library emitted a lone
UTF-16 surrogate (ill-formed XML) when the initials started with a character
outside the Basic Multilingual Plane (e.g. an emoji). The PHP, Python, Rust,
and Go libraries already returned the full character; all libraries are now
byte-identical for such seeds.
Avatar.to_json()now recordssizebeforetitlein theresolved-options snapshot, matching the JavaScript, PHP, and Python libraries.
The rendered SVG was unaffected; only consumers comparing or hashing the
serialized options JSON across languages were affected.
Avatar.to_json()now serializes whole-number floats inthe resolved-options snapshot as integers (
1, not1.0), matching theJavaScript, Rust, and PHP libraries. Previously snapshot values such as
scale,rotate,translateX/translateY,borderRadius, color angles,and per-component transforms were emitted as
1.0/0.0, so the serializedJSON diverged from the other ports. The rendered SVG was unaffected. The
values were already numerically equal, so only consumers comparing or hashing
the serialized options JSON across languages were affected.
v10.1.0Compare Source
Changed
@dicebear/schemato1.1.0across theJavaScript, PHP, and Python libraries. It adds an upper bound of
1000000tothe canvas and component
width/height, preventing the language ports'number-to-string formatting from diverging at extreme values. Official styles
use ~100, so no real avatar is affected.
@dicebear/stylesto10.1.0. Lorelei's mouth is nowvisible through
beardvariants (the overlaying mask was previously renderedat
0opacity), and all style definitions now reference@dicebear/schema@1.1.0.v10.0.2Compare Source
Fixed
most 5 decimal places, so the JavaScript and PHP libraries produce
byte-identical output for every input. Previously, fractional or very
small/large values (e.g. a fractional
borderRadiusortranslateX,component transforms, or gradient stop offsets) could be stringified
differently between languages (scientific notation, differing precision).
Avatars built from whole-number options are unaffected.
Prng::floatnow rounds halves toward +Infinity (matching theJavaScript reference's
Math.round) instead of PHP's nativeround(), whichrounds halves away from zero. The two diverged for negative values landing
exactly on a
.5boundary, so a PHP-rendered avatar could differ from theJavaScript one by
0.0001in a rotate/translate transform or color angle forcertain seeds. Output is now byte-identical across languages.
multibyte letters such as
üorô. The quote-stripping step was missing the/u(Unicode) flag, so it removed raw UTF-8 bytes and corrupted thoseletters: e.g.
überandcôtéproduced wrong or empty initials instead ofÜB/CÔ. The PHP output now matches the JavaScript reference.scale,borderRadius,rotate,translateX/translateY, and per-color angle/fill-stops) given as asingle-element array
[n]are now treated as the fixed valuen(identicalto the scalar
n), and an empty array[]falls back to the option'sdefault. Both forms are permitted by the schema. Previously the behavior
diverged: the JavaScript library emitted
NaN(e.g.scale(NaN)), while PHPdropped
[n]to the default. All three now agree.v10.0.1Compare Source
Fixed
dicebear --versionanddicebear --helpno longer fail by tryingto read a file named
--version/--help. The definition path is now resolvedvia the argument parser, so flags (and the values they consume) before the
path are handled correctly, e.g.
dicebear --json my-style.jsonanddicebear --count 2 my-style.json.v10.0.0Compare Source
See the
v10.0.0 release notes.
Added
Triangles.
the JavaScript library when given the same styles and options.
definition, e.g.
dicebear ./path/to/style.json --seed test --format svg.frequently each appears.
parameter.
download avatars, and view the number of possible combinations.
previews.
Changed
JavaScript code, separating licensing concerns from implementation.
@dicebear/stylesas JSON definitions.StyleandAvatarclasses together withdefinition imports.
Variant(e.g.eyesVariantinstead ofeyes).Removed
@dicebear/initials) have beenremoved in favor of
@dicebear/styles.Configuration
📅 Schedule: (in timezone Asia/Tokyo)
* 0-3 * * *)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.