@dicebear/personas 9.2.2 → 9.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/body.js +4 -4
- package/lib/components/eyes.js +6 -6
- package/lib/components/facialHair.js +6 -6
- package/lib/components/hair.js +20 -20
- package/lib/components/mouth.js +7 -7
- package/lib/components/nose.js +3 -3
- package/lib/index.js +1 -1
- package/lib/schema.js +159 -191
- package/lib/utils/getColors.js +3 -4
- package/lib/utils/getComponents.d.ts +1 -1
- package/lib/utils/getComponents.js +9 -8
- package/lib/utils/pickComponent.d.ts +1 -1
- package/lib/utils/pickComponent.js +1 -1
- package/package.json +6 -6
package/lib/components/body.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { escape } from '@dicebear/core';
|
|
8
8
|
export const body = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
squared: (components, colors) => `<path d="M16 5v3a5 5 0 0 0 10 0V5l6.65 2.05a9 9 0 0 1 6.35 8.6V20H3v-4.35a9 9 0 0 1 6.35-8.6L16 5Z" fill="${escape.xml(`${colors.clothing}`)}"/>`,
|
|
10
|
+
rounded: (components, colors) => `<path d="M16 7v.47a5 5 0 1 0 10 0V7c7.06 1.52 12.93 6.74 16 13H0C3.07 13.74 8.94 8.52 16 7Z" fill="${escape.xml(`${colors.clothing}`)}"/>`,
|
|
11
|
+
small: (components, colors) => `<path d="M32 20H10v-8a11 11 0 0 1 6-9.8V4a5 5 0 0 0 10 0V2.2a11 11 0 0 1 6 9.8v8Z" fill="${escape.xml(`${colors.clothing}`)}"/><mask id="bodySmall-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="10" y="2" width="22" height="18"><path d="M32 20H10v-8a11 11 0 0 1 6-9.8V4a5 5 0 0 0 10 0V2.2a11 11 0 0 1 6 9.8v8Z" fill="#fff"/></mask><g mask="url(#bodySmall-a)"><path opacity=".14" d="M20.62 8.25 22 8l1.2.5L10 15l10.62-6.75Z" fill="#000"/><path d="M21 1h11v47H10V15l13.34-6.58L21 1Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
|
|
12
|
+
checkered: (components, colors) => `<path d="M16 5v3a5 5 0 0 0 10 0V5l6.65 2.05a9 9 0 0 1 6.35 8.6V20H3v-4.35a9 9 0 0 1 6.35-8.6L16 5Z" fill="${escape.xml(`${colors.clothing}`)}"/><path d="m11 6.54-1.65.5A9 9 0 0 0 7 8.17V20h4V6.54ZM15 20h4v-5.29a7.02 7.02 0 0 1-4-3.1V20ZM23 20h4v-8.4a7.02 7.02 0 0 1-4 3.11v5.3ZM31 20h4V8.16a9 9 0 0 0-2.35-1.12L31 6.55V20Z" style="mix-blend-mode:overlay" opacity=".4" fill="#000"/><path d="M3.4 13a9.01 9.01 0 0 1 2.53-4h8.14a6.98 6.98 0 0 0 2.03 4H3.4ZM39 17v3H3v-3h36ZM36.07 9a9.01 9.01 0 0 1 2.53 4H25.9a6.98 6.98 0 0 0 2.03-4h8.14Z" style="mix-blend-mode:lighten" opacity=".17" fill="#fff"/>`,
|
|
13
13
|
};
|
package/lib/components/eyes.js
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
7
|
export const eyes = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
open: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M4 4.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm13 0a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Z" fill="#1B0640"/>`,
|
|
9
|
+
sleep: (components, colors) => `<path d="M3.63 4A1 1 0 0 0 4 5.37 4.5 4.5 0 0 0 6.25 6a4.5 4.5 0 0 0 2.25-.63 1 1 0 0 0-1-1.74c-.43.25-.85.37-1.25.37S5.43 3.88 5 3.63A1 1 0 0 0 3.63 4ZM15.63 4A1 1 0 0 0 16 5.37a4.5 4.5 0 0 0 2.25.63 4.5 4.5 0 0 0 2.25-.63 1 1 0 0 0-1-1.74 2.5 2.5 0 0 1-1.25.37c-.4 0-.82-.12-1.25-.37a1 1 0 0 0-1.37.37Z" fill="#1B0640"/>`,
|
|
10
|
+
wink: (components, colors) => `<path d="M4 4.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0ZM21.24 3.9a.75.75 0 0 0-.83-.64l-4 .5a.75.75 0 0 0 .18 1.48l4-.5c.41-.05.7-.42.65-.83Z" fill="#1B0640"/>`,
|
|
11
|
+
glasses: (components, colors) => `<path d="M6 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM18 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" fill="#1B0640"/><path d="M9 2H3v6h6V2ZM21 2h-6v6h6V2Z" opacity=".3" fill="#fff"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11 1.05h2c.65 0 1.21-.2 1.84-.42C15.66.33 16.6 0 18 0c1.67 0 3.33.35 5 1.05l1 .53v1.58l-1 .52v3.16A3.08 3.08 0 0 1 20 10h-4c-1.66 0-3-1.41-3-3.16V3.16h-2v3.68A3.08 3.08 0 0 1 8 10H4c-1.66 0-3-1.41-3-3.16V3.68l-1-.52V1.58l1-.53A12.8 12.8 0 0 1 6 0c1.4 0 2.34.33 3.16.63.63.22 1.19.42 1.84.42ZM8.24 2.52A6.1 6.1 0 0 0 6 2.11c-1 0-2 .14-3 .44v4.3c0 .57.45 1.04 1 1.04h4c.55 0 1-.47 1-1.05V2.8l-.76-.27ZM15 2.8l.76-.27A6.1 6.1 0 0 1 18 2.11c1 0 2 .14 3 .44v4.3c0 .57-.45 1.04-1 1.04h-4c-.55 0-1-.47-1-1.05V2.8Z" fill="#1B0640"/>`,
|
|
12
|
+
happy: (components, colors) => `<path d="M3.76 6.21c.4.13.82-.08.95-.47.23-.7.62-1 1.3-1 .66 0 1.05.3 1.28 1a.75.75 0 1 0 1.42-.48c-.43-1.3-1.38-2.01-2.7-2.01-1.34 0-2.29.71-2.72 2.01-.13.4.08.82.47.95ZM15.76 6.21c.4.13.82-.08.95-.47.23-.7.62-1 1.29-1s1.06.3 1.29 1a.75.75 0 1 0 1.42-.48c-.43-1.3-1.38-2.01-2.71-2.01s-2.28.71-2.71 2.01c-.13.4.08.82.47.95Z" fill="#1B0640"/>`,
|
|
13
|
+
sunglasses: (components, colors) => `<g fill="#1B0640"><path d="M6 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM18 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"/><path d="M9 2H3v6h6V2ZM21 2h-6v6h6V2Z" opacity=".8"/><path fill-rule="evenodd" clip-rule="evenodd" d="M13 1.05c.65 0 1.21-.2 1.84-.42C15.66.33 16.6 0 18 0c1.67 0 3.33.35 5 1.05l1 .53v1.58l-1 .52v3.16A3.08 3.08 0 0 1 20 10h-4c-1.66 0-3-1.41-3-3.16V3.16h-2v3.68A3.08 3.08 0 0 1 8 10H4c-1.66 0-3-1.41-3-3.16V3.68l-1-.52V1.58l1-.53A12.8 12.8 0 0 1 6 0c1.4 0 2.34.33 3.16.63.63.22 1.19.42 1.84.42h2ZM8.24 2.52A6.1 6.1 0 0 0 6 2.11c-1 0-2 .14-3 .44v4.3c0 .57.45 1.04 1 1.04h4c.55 0 1-.47 1-1.05V2.8l-.76-.27ZM15 2.8l.76-.27A6.1 6.1 0 0 1 18 2.11c1 0 2 .14 3 .44v4.3c0 .57-.45 1.04-1 1.04h-4c-.55 0-1-.47-1-1.05V2.8Z"/></g>`,
|
|
14
14
|
};
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { escape } from '@dicebear/core';
|
|
8
8
|
export const facialHair = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
beardMustache: (components, colors) => `<path d="m12.47 9.46 2.43-.83A2.5 2.5 0 0 1 18 10a2.5 2.5 0 0 1 3.1-1.37l2.43.83A18.65 18.65 0 0 0 32 2.7V9A14 14 0 1 1 4 9V2.7c2.05 2.94 5 5.43 8.47 6.76Z" fill="${escape.xml(`${colors.hair}`)}"/><mask id="facialHairBeardMustache-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="4" y="2" width="28" height="21"><path d="m12.47 9.46 2.43-.83A2.5 2.5 0 0 1 18 10a2.5 2.5 0 0 1 3.1-1.37l2.43.83A18.65 18.65 0 0 0 32 2.7V9A14 14 0 1 1 4 9V2.7c2.05 2.94 5 5.43 8.47 6.76Z" fill="#fff"/></mask><g mask="url(#facialHairBeardMustache-a)"><path d="M32 9V2.7c-2.05 2.94-5 5.43-8.47 6.76l2.8.96a1 1 0 0 1-.07 1.91l-5.08 1.3A2.71 2.71 0 0 1 18 12.05a2.72 2.72 0 0 1-3.18 1.58l-5.08-1.3a1 1 0 0 1-.08-1.91l2.81-.96A18.65 18.65 0 0 1 4 2.7V9a14 14 0 1 0 28 0Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/><path d="M22 13.42v.08a3 3 0 0 1-3 3h-2a3 3 0 0 1-3-3.08l.82.21A2.71 2.71 0 0 0 18 12.05a2.72 2.72 0 0 0 3.18 1.58l.82-.2Z" fill="#FFFEFD"/></g>`,
|
|
10
|
+
pyramid: (components, colors) => `<path d="M18.02 12.05a2.72 2.72 0 0 1-3.19 1.59l-5.08-1.3a1 1 0 0 1-.07-1.92l5.23-1.79a2.5 2.5 0 0 1 3.1 1.37 2.5 2.5 0 0 1 3.11-1.37l5.24 1.8a1 1 0 0 1-.08 1.9l-5.08 1.3a2.72 2.72 0 0 1-3.18-1.58Z" fill="${escape.xml(`${colors.hair}`)}"/>`,
|
|
11
|
+
walrus: (components, colors) => `<path d="M10 14a5 5 0 0 1 5-5h6a5 5 0 0 1 5 5H10Z" fill="${escape.xml(`${colors.hair}`)}"/>`,
|
|
12
|
+
goatee: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M13.61 10.67a3.61 3.61 0 0 0-2.6 3.57v4.67c0 1 .48 1.93 1.37 2.4 1.39.72 3.63 1.7 5.78 1.7 2.14 0 4.26-.96 5.56-1.7A2.62 2.62 0 0 0 25 18.99v-4.74a3.61 3.61 0 0 0-2.61-3.57 18.05 18.05 0 0 0-4.4-.67c-1.45 0-3.07.33-4.39.67Zm.3 1.41c-.8.22-1.32.97-1.32 1.8v2.67c0 1.07.56 2.06 1.54 2.48 1.08.46 2.59.97 3.97.97 1.39 0 2.85-.5 3.9-.97.96-.42 1.5-1.4 1.5-2.44v-2.7c0-.83-.52-1.58-1.33-1.8a16.72 16.72 0 0 0-4.17-.63c-1.51 0-3.05.33-4.1.62Z" fill="${escape.xml(`${colors.hair}`)}"/>`,
|
|
13
|
+
shadow: (components, colors) => `<path opacity=".2" d="M32 3v4A14 14 0 1 1 4 7V2.7c2.05 2.94 4.53 6.97 8 8.3 2-1 4-1.5 6-1.5s4 .5 6 1.5c3.47-1.33 5.95-5.36 8-8.3V3Z" fill="${escape.xml(`${colors.hair}`)}"/>`,
|
|
14
|
+
soulPatch: (components, colors) => `<path d="M16 17.5h4l-.68 2.05a1.39 1.39 0 0 1-2.63 0l-.7-2.05Z" fill="${escape.xml(`${colors.hair}`)}"/>`,
|
|
15
15
|
};
|
package/lib/components/hair.js
CHANGED
|
@@ -6,24 +6,24 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { escape } from '@dicebear/core';
|
|
8
8
|
export const hair = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
9
|
+
long: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm2 8.24v6.6c0 7.32-4.61 13.52-11 15.68V44.08A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76Zm-32 6.6c0 7.37 4.68 13.6 11.13 15.73a1073 1073 0 0 0-.13-7.02v-5.47A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v6.6Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M40.03 18.53A18.47 18.47 0 0 0 44 26v.03c.73.08 1.42.34 2 .73V25.5C46 16.39 38.84 9 30 9s-16 7.39-16 16.5v1.26c.58-.4 1.27-.65 2-.73V25c0-1.88.37-3.68 1.05-5.32 4.13 2.5 9.12 3.43 14.95 2.82 3.48-.37 6.16-1.7 8.03-3.97Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
|
|
10
|
+
sideShave: (components, colors) => `<path d="M35 11.92A14 14 0 0 1 44 25v1s-1.33-3.1-3.16-4.93c-1.84-1.82-3.34-.7-4.53-2.52-1.2-1.83-1.31-6.63-1.31-6.63Z" fill="${escape.xml(`${colors.hair}`)}" opacity=".3"/><path d="M30.65 23.09c-1.6 1.26-4.4 1.88-7.24 2.5-4.62 1.02-9.4 2.07-9.4 5.98V25.5C14 16.39 21.16 9 30 9c4.84 0 5.68 2.65 5.46 6.23-.2 3-.62 4.55-4.8 7.86ZM25 47a9.4 9.4 0 0 1-9.44 9.53L7.5 56.5s4-8.23 5-11.11l.06-.2c-.84.51-1.84.81-2.92.81H8.5s4.1-3.74 5.35-9.69c.1-1.23.15-2.07.15-2.07a4.48 4.48 0 0 0 2.58.76A14.04 14.04 0 0 0 25 44.08V47Z" fill="${escape.xml(`${colors.hair}`)}"/>`,
|
|
11
|
+
shortCombover: (components, colors) => `<path d="M40.26 12.63a7.93 7.93 0 0 1 4.6 8.35L44 27c-2.83-1.7-4.7-5.55-5.6-11.56a9.24 9.24 0 0 1-5.7 2.77c-1.82.2-3.39.29-4.7.29-3 0-5.67-.5-8-1.5 0 3.67-1.33 7.17-4 10.5l-.92-8.53A9 9 0 0 1 24.03 9H41c0 1.28-.26 2.51-.74 3.63Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M40.26 12.63c.48-1.12.74-2.35.74-3.63H24.03a9 9 0 0 0-8.95 9.97L16 27.5c2.67-3.33 4-6.83 4-10.5 2.33 1 5 1.5 8 1.5 1.31 0 2.88-.1 4.7-.29a9.24 9.24 0 0 0 7.56-5.58ZM44.88 20.84a7.91 7.91 0 0 0-2.42-6.73 9.29 9.29 0 0 1-3.45 4.5c1.04 4.22 2.7 7.01 5 8.39l.85-6.02.02-.14Z" style="mix-blend-mode:overlay" opacity=".26" fill="#fff"/>`,
|
|
12
|
+
curlyHighTop: (components, colors) => `<path d="M31.8 7a2 2 0 0 1 3.8 0h.57a2 2 0 0 1 3.83.67l.22.1a2 2 0 0 1 3.13 2.3l.15.17a2 2 0 0 1 1.77 3.41c.05.16.09.31.12.47a2 2 0 0 1 .02 3.75l-.05.32a2 2 0 0 1-.02 3.63 2 2 0 0 1 .16.85 1.8 1.8 0 0 1-1.22 2.92L44 27.5c-.44-.66-.84-1.48-1.2-2.46a1.8 1.8 0 0 1-.45-.8 2 2 0 0 1-.56-2.68l-.02-.1a2 2 0 0 1-.96-2.94 2 2 0 0 1-2.44-.32 2 2 0 0 1-3.72.06l-.31.03a2 2 0 0 1-3.58.2h-.23a2 2 0 0 1-3.52-.1l-.4-.03a2 2 0 0 1-3.68-.17 2 2 0 0 1-3.04-.22l-.03.16a2 2 0 0 1-.7 3.35 2 2 0 0 1-1.4 3.1c-.5.97-1.09 1.94-1.76 2.9l-.19-1.92a1.8 1.8 0 0 1-.34-3.47V22a2 2 0 0 1-.39-3.9l-.01-.14a2 2 0 0 1 .07-3.92c0-.06.02-.12.04-.17a2 2 0 0 1 1.46-3.63A2 2 0 0 1 19.7 7.9v-.1a2 2 0 0 1 3.84-.8h.05a2 2 0 0 1 3.82 0h.18a2 2 0 0 1 3.82 0h.38Z" fill="${escape.xml(`${colors.hair}`)}"/><mask id="hairCurlyHighTop-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="13" y="5" width="34" height="23"><path d="M31.8 7a2 2 0 0 1 3.8 0h.57a2 2 0 0 1 3.83.67l.22.1a2 2 0 0 1 3.13 2.3l.15.17a2 2 0 0 1 1.77 3.41c.05.16.09.31.12.47a2 2 0 0 1 .02 3.75l-.05.32a2 2 0 0 1-.02 3.63 2 2 0 0 1 .16.85 1.8 1.8 0 0 1-1.22 2.92L44 27.5c-.44-.66-.84-1.48-1.2-2.46a1.8 1.8 0 0 1-.45-.8 2 2 0 0 1-.56-2.68l-.02-.1a2 2 0 0 1-.96-2.94 2 2 0 0 1-2.44-.32 2 2 0 0 1-3.72.06l-.31.03a2 2 0 0 1-3.58.2h-.23a2 2 0 0 1-3.52-.1l-.4-.03a2 2 0 0 1-3.68-.17 2 2 0 0 1-3.04-.22l-.03.16a2 2 0 0 1-.7 3.35 2 2 0 0 1-1.4 3.1c-.5.97-1.09 1.94-1.76 2.9l-.19-1.92a1.8 1.8 0 0 1-.34-3.47V22a2 2 0 0 1-.39-3.9l-.01-.14a2 2 0 0 1 .07-3.92c0-.06.02-.12.04-.17a2 2 0 0 1 1.46-3.63A2 2 0 0 1 19.7 7.9v-.1a2 2 0 0 1 3.84-.8h.05a2 2 0 0 1 3.82 0h.18a2 2 0 0 1 3.82 0h.38Z" fill="#fff"/></mask><g mask="url(#hairCurlyHighTop-a)"><path fill="#fff" d="M13 5h34v23H13z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
|
|
13
|
+
bobCut: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26a17.63 17.63 0 0 1-3.35-5.6A32.92 32.92 0 0 1 30 22.04c-4.85 0-9.14-.83-12.9-2.5A13.95 13.95 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73v-1.38C14 16.33 21.16 9 30 9s16 7.33 16 16.38v1.38a4.47 4.47 0 0 0-2-.73V26Zm-9 20.06v-1.98A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76v6.38c0 .47-.02.95-.06 1.41A34.63 34.63 0 0 1 35 46.06Zm-20.94-4.03A34.63 34.63 0 0 0 25 46.06v-1.98A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v6.38c0 .47.02.95.06 1.41Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M30 9c-8.84 0-16 7.33-16 16.38v1.38c.58-.4 1.27-.65 2-.73V25c0-1.94.4-3.8 1.1-5.47a31.35 31.35 0 0 0 12.9 2.5c3.9 0 7.46-.54 10.65-1.62A17.63 17.63 0 0 0 44 26v.03c.73.08 1.42.34 2 .73v-1.38C46 16.33 38.84 9 30 9Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
|
|
14
|
+
curly: (components, colors) => `<path d="m44 26-.02-.02-.3.02a2 2 0 0 1-1.8-2.88 2 2 0 0 1-2.73-2.1 2 2 0 0 1-3.3.56h-.02a1.99 1.99 0 0 1-2 2.05 2 2 0 0 1-1.75-1.04 2 2 0 0 1-3.92.33 2 2 0 0 1-3.87-.6c-.04 0-.09 0-.13-.02a2 2 0 0 1-3.67-.98c-.3-.1-.57-.2-.85-.32.02.09.02.17.02.26a2 2 0 0 1-2.74 1.86A2 2 0 0 1 16 25.8v.23a4.5 4.5 0 0 0 .58 8.97A14.04 14.04 0 0 0 25 44.08v3.06c-.25-.2-.47-.42-.65-.68-.49-.13-.96-.29-1.43-.46a3.46 3.46 0 0 1-4.54-2.3 20.9 20.9 0 0 1-.98-.7 3.46 3.46 0 0 1-3.83-3.8c-.17-.21-.34-.43-.5-.66a3.46 3.46 0 0 1-2.66-5.07l-.14-.39a3.47 3.47 0 0 1-1.08-5.96v-.01a3.47 3.47 0 0 1 .47-6.2 3.47 3.47 0 0 1 2.28-5.79 3.47 3.47 0 0 1 3.87-4.86 3.47 3.47 0 0 1 5.15-3.5 3.47 3.47 0 0 1 5.94-1.83 3.47 3.47 0 0 1 6.22 0 3.47 3.47 0 0 1 5.94 1.83 3.47 3.47 0 0 1 5.14 3.5 3.47 3.47 0 0 1 3.87 4.86 3.47 3.47 0 0 1 2.28 5.8 3.47 3.47 0 0 1 .47 6.19 3.47 3.47 0 0 1-1.08 5.97l-.14.4a3.47 3.47 0 0 1-2.66 5.06c-.16.23-.33.45-.5.66A3.46 3.46 0 0 1 42.6 43l-.98.7a3.46 3.46 0 0 1-4.54 2.3c-.47.17-.94.33-1.43.46-.18.26-.4.49-.65.68v-3.06A14.04 14.04 0 0 0 43.42 35h.08a4.5 4.5 0 0 0 .5-8.97V26Z" fill="${escape.xml(`${colors.hair}`)}"/><mask id="hairCurly-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="7" y="3" width="46" height="45"><path d="m44 26-.02-.02-.3.02a2 2 0 0 1-1.8-2.88 2 2 0 0 1-2.73-2.1 2 2 0 0 1-3.3.56h-.02a1.99 1.99 0 0 1-2 2.05 2 2 0 0 1-1.75-1.04 2 2 0 0 1-3.92.33 2 2 0 0 1-3.87-.6c-.04 0-.09 0-.13-.02a2 2 0 0 1-3.67-.98c-.3-.1-.57-.2-.85-.32.02.09.02.17.02.26a2 2 0 0 1-2.74 1.86A2 2 0 0 1 16 25.8v.23a4.5 4.5 0 0 0 .58 8.97A14.04 14.04 0 0 0 25 44.08v3.06c-.25-.2-.47-.42-.65-.68-.49-.13-.96-.29-1.43-.46a3.46 3.46 0 0 1-4.54-2.3 20.9 20.9 0 0 1-.98-.7 3.46 3.46 0 0 1-3.83-3.8c-.17-.21-.34-.43-.5-.66a3.46 3.46 0 0 1-2.66-5.07l-.14-.39a3.47 3.47 0 0 1-1.08-5.96v-.01a3.47 3.47 0 0 1 .47-6.2 3.47 3.47 0 0 1 2.28-5.79 3.47 3.47 0 0 1 3.87-4.86 3.47 3.47 0 0 1 5.15-3.5 3.47 3.47 0 0 1 5.94-1.83 3.47 3.47 0 0 1 6.22 0 3.47 3.47 0 0 1 5.94 1.83 3.47 3.47 0 0 1 5.14 3.5 3.47 3.47 0 0 1 3.87 4.86 3.47 3.47 0 0 1 2.28 5.8 3.47 3.47 0 0 1 .47 6.19 3.47 3.47 0 0 1-1.08 5.97l-.14.4a3.47 3.47 0 0 1-2.66 5.06c-.16.23-.33.45-.5.66A3.46 3.46 0 0 1 42.6 43l-.98.7a3.46 3.46 0 0 1-4.54 2.3c-.47.17-.94.33-1.43.46-.18.26-.4.49-.65.68v-3.06A14.04 14.04 0 0 0 43.42 35h.08a4.5 4.5 0 0 0 .5-8.97V26Z" fill="#fff"/></mask><g mask="url(#hairCurly-a)"><path fill="#fff" d="M7 3h46v44H7z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
|
|
15
|
+
pigtails: (components, colors) => `<path d="M39 11.84A5 5 0 0 1 44.04 7a4.99 4.99 0 0 1 5.03 5.18c.02 3.2.7 7.08 1.93 9.82a20.56 20.56 0 0 1-6.22-2.9A16.67 16.67 0 0 1 46 25.38v1.38a4.47 4.47 0 0 0-2-.73V26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73v-1.38c0-2.22.43-4.35 1.22-6.28A20.56 20.56 0 0 1 9 22a26.57 26.57 0 0 0 1.92-10.06A4.99 4.99 0 0 1 15.96 7 5 5 0 0 1 21 11.84a15.67 15.67 0 0 1 18 0Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M39.01 11.58c4.2 2.96 7 8.19 7 14.13v1.05a4.47 4.47 0 0 0-2-.73V26c-1.82-2-3.14-4.5-3.98-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.7c0-5.94 2.79-11.17 6.99-14.13v.26a15.67 15.67 0 0 1 18 0l.01-.26Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/><path fill-rule="evenodd" clip-rule="evenodd" d="M21 9a5 5 0 0 0-4.39 7.4 16.14 16.14 0 0 1 7.55-6.27A4.98 4.98 0 0 0 21 9Zm23 5a5 5 0 0 0-8.16-3.87 16.14 16.14 0 0 1 7.55 6.27c.39-.7.6-1.53.6-2.4Z" fill="#F55D81"/>`,
|
|
16
|
+
curlyBun: (components, colors) => `<path d="M30 2.5a2 2 0 0 0-1.8 1.11 2 2 0 0 0-3.42 1.06 2 2 0 0 0-2.96 2.02 2 2 0 0 0-2.23 2.8 2 2 0 0 0-1.31 3.33A2 2 0 0 0 18 16.4a2 2 0 0 0-.55 2.38 14 14 0 0 1 25.08 0A2 2 0 0 0 42 16.4a2 2 0 0 0-.27-3.58 2 2 0 0 0-1.3-3.33 2 2 0 0 0-2.24-2.8 2 2 0 0 0-2.96-2.02 2 2 0 0 0-3.43-1.06A2 2 0 0 0 30 2.51Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M43.93 23.63A14 14 0 0 0 31 15h-2a14 14 0 0 0-12.93 8.63 14 14 0 0 1 27.86 0Z" fill="#F55D81"/>`,
|
|
17
|
+
buzzcut: (components, colors) => `<path d="M44 25v3c-1.33-1.67-2.67-4.67-4-9-2.66 1.33-6 2-10 2s-7.34-.67-10-2c-1.33 3.67-2.67 6.33-4 8v-2a14 14 0 1 1 28 0Z" style="mix-blend-mode:multiply" opacity=".2" fill="${escape.xml(`${colors.hair}`)}"/>`,
|
|
18
|
+
bobBangs: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-2.18-2.42-3.65-5.54-4.42-9.36a19.6 19.6 0 0 1-9.08 7.86c-4.67 2-9.5 2.33-14.5 1v.53c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm-9 21.31v-3.23A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76V45a38.74 38.74 0 0 1-11 2.31ZM14 45a38.74 38.74 0 0 0 11 2.31v-3.23A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76V45Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M30 9c-8.84 0-16 7.39-16 16.5v1.26c.58-.4 1.27-.65 2-.73v-.53c5 1.33 9.83 1 14.5-1a19.6 19.6 0 0 0 9.08-7.86c.77 3.82 2.24 6.94 4.42 9.36v.03c.73.08 1.42.34 2 .73V25.5C46 16.39 38.84 9 30 9Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
|
|
19
|
+
bald: (components, colors) => `<path d="M26.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM19.38 21.77c.37.19.82.04 1-.33a15.05 15.05 0 0 1 2-3.06c.76-.88 1.63-1.62 2.63-2.2a.75.75 0 0 0-.75-1.3 11.86 11.86 0 0 0-3 2.52c-.85.99-1.58 2.11-2.2 3.37a.75.75 0 0 0 .33 1Z" style="mix-blend-mode:overlay" opacity=".2" fill="#fff"/>`,
|
|
20
|
+
balding: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="m16.97 25.55 2.7-8.55H18a3 3 0 0 0-2.98 3.31l.65 6.2c.6 0 1.12-.39 1.3-.95ZM41.34 17h-1.67l2.7 8.55c.18.56.7.95 1.3.95l.65-6.19a3 3 0 0 0-2.98-3.3Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M26.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM19.38 21.77c.37.19.82.04 1-.33a15.05 15.05 0 0 1 2-3.06c.76-.88 1.63-1.62 2.63-2.2a.75.75 0 0 0-.75-1.3 11.86 11.86 0 0 0-3 2.52c-.85.99-1.58 2.11-2.2 3.37a.75.75 0 0 0 .33 1Z" style="mix-blend-mode:overlay" opacity=".2" fill="#fff"/>`,
|
|
21
|
+
cap: (components, colors) => `<path opacity=".2" d="M30 17c3.88 0 7.55-.37 11 4.22l-1.9 6.5c-.61 1.22-1.64 1.55-2.46.79-2.1-1.92-4.3-2.88-6.64-2.88-2.33 0-4.55.96-6.64 2.89-.82.76-1.85.43-2.46-.8L19 21.22c3.45-4.6 7.12-4.22 11-4.22Z" fill="#000"/><path d="M27.3 11.2a3 3 0 0 1 5.4 0c6.1.96 10.82 5.24 11.3 12.72a27.7 27.7 0 0 0-3.96-1.3l-.94.6a2 2 0 0 1-2.46.46 13.86 13.86 0 0 0-13.28 0 2 2 0 0 1-2.46-.46l-.94-.6c-1.4.35-2.72.78-3.96 1.3.48-7.48 5.2-11.76 11.3-12.71Z" fill="#F29C65"/><path d="M19.96 22.62c-1.4.35-2.72.78-3.96 1.3C16.55 15.37 22.63 11 30 11s13.45 4.37 14 12.92a27.7 27.7 0 0 0-3.96-1.3L41 22c-3.45-2.67-7.12-4-11-4s-7.55 1.33-11 4l.96.62Z" fill="#000" style="mix-blend-mode:overlay" opacity=".28"/><path d="m39.45 23-.35.22a2 2 0 0 1-2.46.46 13.86 13.86 0 0 0-13.28 0 2 2 0 0 1-2.46-.46l-.35-.23c.87.07 2.19-.47 2.81-.81a13.86 13.86 0 0 1 13.28 0c.62.34 1.94.88 2.8.81Z" fill="#fff" style="mix-blend-mode:lighten" opacity=".2"/>`,
|
|
22
|
+
bunUndercut: (components, colors) => `<circle cx="30" cy="12" r="4" fill="#5A45FF"/><path fill-rule="evenodd" clip-rule="evenodd" d="m33.72 12.84-.05 7.66c3.72-.75 5.83-1.25 6.33-1.5 1.33 4.33 2.67 7.33 4 9v-3a14 14 0 0 0-7.06-12.16c0-.02-1.08-.02-3.22 0ZM20 19c.5.25 2.6.75 6.33 1.5v-7.66h-3.27A14 14 0 0 0 16 25v3c1.33-1.67 2.67-4.67 4-9Z" fill="${escape.xml(`${colors.hair}`)}" opacity=".3"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 6c-2.1 0-3.81 2.01-3.99 4.57-.72.41-1.44.94-2.14 1.58a3 3 0 0 0-.96 1.93l-.21 2.2a3.87 3.87 0 0 0 3.02 4.14c1.73.39 3.16.58 4.29.58 1.12 0 2.5-.18 4.17-.55a4 4 0 0 0 3.13-4.09l-.1-2.17a3 3 0 0 0-1.04-2.14 12.1 12.1 0 0 0-2.18-1.5C33.8 7.98 32.08 6 30 6Zm0 3.5a8 8 0 0 0-3.67.9 4 4 0 0 1 7.33-.03A8.25 8.25 0 0 0 30 9.5Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M26.02 10.56C26.19 8 27.9 6 30 6c2.07 0 3.77 1.96 3.98 4.47a11 11 0 0 0-.36-.17 4 4 0 0 0-7.28.09l-.32.17Z" fill="#000" style="mix-blend-mode:overlay" opacity=".22"/>`,
|
|
23
|
+
fade: (components, colors) => `<mask id="hairFade-b" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="16" y="12" width="28" height="15"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 27v-2a14 14 0 0 1 7.5-12.4v.14c.09 1.68.16 3.3-.4 4.53-.7 1.57-1.78 2.45-2.72 3.21l-.62.52c-.7.61-2.44 2.49-3.76 6Zm28 0v-2a14 14 0 0 0-7.5-12.4v.14c-.09 1.68-.16 3.3.4 4.53.7 1.57 1.78 2.45 2.72 3.21l.62.52c.7.61 2.44 2.49 3.76 6Z" fill="url(#hairFade-a)"/></mask><g mask="url(#hairFade-b)"><path fill-rule="evenodd" clip-rule="evenodd" d="m16 27-.2-14.4h7.7l.06 14.4H16Zm20.72 0H44l-.07-14.4H36.5l.22 14.4Z" fill="${escape.xml(`${colors.hair}`)}"/></g><path d="M22.3 17.95c0-3.6 2.72-6.63 6.3-7L38 10a6.84 6.84 0 0 1-6.49 9h-8.15c-.58 0-1.05-.47-1.05-1.05Z" fill="${escape.xml(`${colors.hair}`)}"/><defs><linearGradient id="hairFade-a" x1="16" y1="12.6" x2="16" y2="27" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-opacity=".01"/></linearGradient></defs>`,
|
|
24
|
+
beanie: (components, colors) => `<path d="M17 19.8a14 14 0 0 1 26 0l.24.2a1 1 0 0 1 .34.54l.62 2.64a.5.5 0 0 1-.77.52C38.99 20.57 34.5 19 30 19S21 20.57 16.58 23.7a.5.5 0 0 1-.77-.52l.62-2.64a1 1 0 0 1 .34-.55l.24-.19Z" fill="#E15C66"/><path d="M30 15c6.45 0 12.01 4.04 13.25 5 .16.14.28.32.33.53l.62 2.6c.1.46-.44.83-.83.57C41.06 22.18 35.57 19 30 19c-5.57 0-11.05 3.18-13.36 4.7-.4.26-.93-.1-.82-.56l.6-2.6c.05-.21.17-.4.34-.53 1.23-.96 6.8-5 13.24-5Z" fill="#000" style="mix-blend-mode:overlay" opacity=".26"/>`,
|
|
25
|
+
straightBun: (components, colors) => `<path d="M20.2 15a10 10 0 1 1 19.6 0c-2.53-2.47-5.98-4-9.8-4-3.82 0-7.27 1.53-9.8 4Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M43.93 23.63A14 14 0 0 0 31 15h-2a14 14 0 0 0-12.93 8.63 14 14 0 0 1 27.86 0Z" fill="#F55D81"/>`,
|
|
26
|
+
extraLong: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M44 26c-1.8-2-3.13-4.5-3.97-7.47-1.87 2.28-4.55 3.6-8.03 3.97-5.83.61-10.82-.33-14.95-2.82A13.96 13.96 0 0 0 16 25v1.03c-.73.08-1.42.34-2 .73V25.5C14 16.39 21.16 9 30 9s16 7.39 16 16.5v1.26a4.47 4.47 0 0 0-2-.73V26Zm2 8.24v22.28H35V44.08A14.04 14.04 0 0 0 43.42 35h.08c.93 0 1.78-.28 2.5-.76ZM14 56.57h11.13L25 49.55v-5.47A14.04 14.04 0 0 1 16.58 35h-.08c-.93 0-1.79-.28-2.5-.76v22.33Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M40.03 18.53A18.47 18.47 0 0 0 44 26v.03c.73.08 1.42.34 2 .73V25.5C46 16.39 38.84 9 30 9s-16 7.39-16 16.5v1.26c.58-.4 1.27-.65 2-.73V25c0-1.88.37-3.68 1.05-5.32 4.13 2.5 9.12 3.43 14.95 2.82 3.48-.37 6.16-1.7 8.03-3.97Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
|
|
27
|
+
shortComboverChops: (components, colors) => `<path d="m15.79 25.56-.71-6.6A9 9 0 0 1 24.03 9H41c0 1.28-.26 2.51-.74 3.63a7.93 7.93 0 0 1 4.6 8.35L44 27v4.22a14 14 0 0 1-.48 3.42l-2.52.54A1 1 0 0 1 39.8 34l1.9-9.12c-1.57-2.09-2.68-5.24-3.31-9.44a9.24 9.24 0 0 1-5.7 2.77c-1.82.2-3.39.29-4.7.29-3 0-5.67-.5-8-1.5 0 2.6-.67 5.1-2 7.52L19.98 34a1 1 0 0 1-1.2 1.18l-2.51-.54a14 14 0 0 1-.48-3.42v-5.66Z" fill="${escape.xml(`${colors.hair}`)}"/><path fill-rule="evenodd" clip-rule="evenodd" d="M19.98 34 18 24.52c1.33-2.42 2-4.93 2-7.52 2.33 1 5 1.5 8 1.5 1.31 0 2.88-.1 4.7-.29A9.24 9.24 0 0 0 41 9H24.03a9 9 0 0 0-8.95 9.97l.7 6.59v5.66a14 14 0 0 0 .49 3.42l2.52.54A1 1 0 0 0 19.98 34ZM44 31.22V27l.86-6.02.02-.14a7.91 7.91 0 0 0-2.42-6.73 9.29 9.29 0 0 1-3.45 4.5 17.22 17.22 0 0 0 2.7 6.27L39.8 34A1 1 0 0 0 41 35.18l2.52-.54a14 14 0 0 0 .48-3.42Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
|
|
28
|
+
mohawk: (components, colors) => `<path d="M30.03 8a6.51 6.51 0 0 1 4.85 2.05c.56.54.96 1.32 1.1 2.14l.67 4.16c.35 1.94-.7 3.67-2.53 4.09-1.62.37-3 .55-4.12.55-1.13 0-2.55-.2-4.24-.58-1.84-.42-2.84-2.2-2.38-4.14l.79-4.2c.16-.74.53-1.43 1.03-1.93C25.83 9.5 27.3 8 30.03 8Z" fill="${escape.xml(`${colors.hair}`)}"/><path d="M34.88 10.05c.56.54.96 1.32 1.1 2.14l.67 4.16c.35 1.94-.7 3.67-2.53 4.09-1.62.37-3 .55-4.12.55-1.13 0-2.55-.2-4.24-.58-1.84-.42-2.84-2.2-2.38-4.14l.79-4.2c.16-.74.53-1.43 1.03-1.93.26-.27.67-.69 1.25-1.08-.31.48-1.45.98-1.45 2.43V15a3.06 3.06 0 0 0 2.02 3.51c1.18.34 2.18.5 2.98.5.79 0 1.76-.16 2.9-.47 1.28-.35 2.35-1.89 2.1-3.53v-3c0-1.5-1.1-2.54-1.5-3l-.14-.14c.73.42 1.22.9 1.52 1.2Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".26"/>`,
|
|
29
29
|
};
|
package/lib/components/mouth.js
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
7
|
export const mouth = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
smile: (components, colors) => `<path d="M5 5.87a1 1 0 1 1 1-1.74A6 6 0 0 0 9 5a6 6 0 0 0 3-.87 1 1 0 1 1 1 1.74A8 8 0 0 1 9 7a8 8 0 0 1-4-1.13Z" fill="#1B0640"/>`,
|
|
9
|
+
frown: (components, colors) => `<path d="M5 4.13a1 1 0 1 0 1 1.74A6 6 0 0 1 9 5a6 6 0 0 1 3 .87 1 1 0 1 0 1-1.74A8 8 0 0 0 9 3a8 8 0 0 0-4 1.13Z" fill="#1B0640"/>`,
|
|
10
|
+
surprise: (components, colors) => `<ellipse cx="9" cy="5" rx="2" ry="2.5" fill="#1B0640"/>`,
|
|
11
|
+
pacifier: (components, colors) => `<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2c-.76 0-1.51-.14-2.27-.41A2.03 2.03 0 0 0 4 3.5c0 1.4.82 2.6 2 3.17a3 3 0 0 0 6 0 3.5 3.5 0 0 0 2-3.17 2.03 2.03 0 0 0-2.73-1.91C10.51 1.86 9.76 2 9 2ZM7.59 7h2.82A1.5 1.5 0 0 1 7.6 7Z" fill="#456DFF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M12 6.5v.17a3.5 3.5 0 0 0 2-3.17 2.03 2.03 0 0 0-2.73-1.91 6.61 6.61 0 0 1-4.54 0A2.03 2.03 0 0 0 4 3.5c0 1.4.82 2.6 2 3.17V6.5a3 3 0 1 1 6 0ZM7.59 7h2.82A1.5 1.5 0 1 0 7.6 7Z" fill="#fff" fill-opacity=".3" style="mix-blend-mode:lighten"/><circle cx="9" cy="4.5" r="1.5" fill="#fff"/>`,
|
|
12
|
+
bigSmile: (components, colors) => `<path d="M6 3h6v1a3 3 0 0 1-6 0V3Z" fill="#fff"/>`,
|
|
13
|
+
smirk: (components, colors) => `<path d="M7.32 5.73a.75.75 0 0 1 .36-1.46c2.44.61 4.17.32 5.29-.8a.75.75 0 1 1 1.06 1.06c-1.54 1.54-3.81 1.92-6.71 1.2Z" fill="#1B0640"/>`,
|
|
14
|
+
lips: (components, colors) => `<path d="M5 5h8s-1 2.5-4 2.5S5 5 5 5Z" fill="#DC5C7A"/><path d="M5.39 4.22A2.1 2.1 0 0 1 9 4a2.1 2.1 0 0 1 3.61.22l.4.78H4.99l.39-.78Z" fill="#F57B98"/>`,
|
|
15
15
|
};
|
package/lib/components/nose.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
7
|
export const nose = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
mediumRound: (components, colors) => `<path d="M4.25 5a.75.75 0 0 1 1.5 0c0 .84.91 1.75 2.25 1.75 1.34 0 2.25-.91 2.25-1.75a.75.75 0 0 1 1.5 0c0 1.66-1.59 3.25-3.75 3.25S4.25 6.66 4.25 5Z" fill="#000" style="mix-blend-mode:overlay" opacity=".36"/>`,
|
|
9
|
+
smallRound: (components, colors) => `<path d="M5.29 6.24a.75.75 0 1 1 1.42-.48c.23.7.62 1 1.3 1 .66 0 1.05-.3 1.28-1a.75.75 0 1 1 1.42.48c-.42 1.3-1.37 2.01-2.7 2.01S5.72 7.54 5.3 6.24Z" fill="#000" style="mix-blend-mode:overlay" opacity=".36"/>`,
|
|
10
|
+
wrinkles: (components, colors) => `<path opacity=".12" fill-rule="evenodd" clip-rule="evenodd" d="M11.72 5.3c.21.73.27 1.38.2 1.95a20.24 20.24 0 0 1 2.12 4.41.5.5 0 1 0 .94-.32 21.23 21.23 0 0 0-3.4-6.3c.07.07.11.16.14.25Zm-7.44 0a.75.75 0 0 1 .11-.24 28.75 28.75 0 0 0-2.07 3.22c-.48.89-.9 1.9-1.3 3.06a.5.5 0 0 0 .94.32 20.24 20.24 0 0 1 2.12-4.4 4.77 4.77 0 0 1 .19-1.97Z" fill="#000"/><path d="M5.2 4.78a.75.75 0 0 0-.92.51c-.21.75-.27 1.4-.2 1.97.23 1.6 1.6 2.49 3.92 2.49 2.33 0 3.7-.89 3.92-2.5.07-.57.01-1.22-.2-1.96a.75.75 0 1 0-1.44.42c.52 1.83-.09 2.54-2.28 2.54-2.2 0-2.8-.71-2.28-2.54a.75.75 0 0 0-.51-.93Z" fill="#000" style="mix-blend-mode:overlay" opacity=".36"/>`,
|
|
11
11
|
};
|
package/lib/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export const create = ({ prng, options }) => {
|
|
|
25
25
|
attributes: {
|
|
26
26
|
viewBox: '0 0 64 64',
|
|
27
27
|
fill: 'none',
|
|
28
|
-
'shape-rendering': 'auto'
|
|
28
|
+
'shape-rendering': 'auto',
|
|
29
29
|
},
|
|
30
30
|
body: `<path d="M37 46.08V52a5 5 0 0 1-10 0v-5.92A14.04 14.04 0 0 1 18.58 37h-.08a4.5 4.5 0 0 1-.5-8.97V27a14 14 0 1 1 28 0v1.03a4.5 4.5 0 0 1-.58 8.97A14.04 14.04 0 0 1 37 46.08Z" fill="${escape.xml(`${colors.skin}`)}"/><mask id="personas-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="14" y="13" width="36" height="44"><path d="M37 46.08V52a5 5 0 0 1-10 0v-5.92A14.04 14.04 0 0 1 18.58 37h-.08a4.5 4.5 0 0 1-.5-8.97V27a14 14 0 1 1 28 0v1.03a4.5 4.5 0 0 1-.58 8.97A14.04 14.04 0 0 1 37 46.08Z" fill="#fff"/></mask><g mask="url(#personas-a)"><path d="M32 13a14 14 0 0 1 14 14v6a14 14 0 1 1-28 0v-6a14 14 0 0 1 14-14Z" fill="#fff" style="mix-blend-mode:overlay" opacity=".36"/></g><g transform="translate(20 24)">${(_b = (_a = components.eyes) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''}</g><g transform="translate(2 2)">${(_d = (_c = components.hair) === null || _c === void 0 ? void 0 : _c.value(components, colors)) !== null && _d !== void 0 ? _d : ''}</g><g transform="translate(11 44)">${(_f = (_e = components.body) === null || _e === void 0 ? void 0 : _e.value(components, colors)) !== null && _f !== void 0 ? _f : ''}</g><g transform="translate(23 36)">${(_h = (_g = components.mouth) === null || _g === void 0 ? void 0 : _g.value(components, colors)) !== null && _h !== void 0 ? _h : ''}</g><g transform="translate(24 28)">${(_k = (_j = components.nose) === null || _j === void 0 ? void 0 : _j.value(components, colors)) !== null && _k !== void 0 ? _k : ''}</g><g transform="translate(14 26)">${(_m = (_l = components.facialHair) === null || _l === void 0 ? void 0 : _l.value(components, colors)) !== null && _m !== void 0 ? _m : ''}</g>`,
|
|
31
31
|
extra: () => ({
|
package/lib/schema.js
CHANGED
|
@@ -5,213 +5,181 @@
|
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
7
|
export const schema = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"squared",
|
|
16
|
-
"rounded",
|
|
17
|
-
"small",
|
|
18
|
-
"checkered"
|
|
19
|
-
]
|
|
8
|
+
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
9
|
+
properties: {
|
|
10
|
+
body: {
|
|
11
|
+
type: 'array',
|
|
12
|
+
items: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
enum: ['squared', 'rounded', 'small', 'checkered'],
|
|
20
15
|
},
|
|
21
|
-
|
|
22
|
-
"squared",
|
|
23
|
-
"rounded",
|
|
24
|
-
"small",
|
|
25
|
-
"checkered"
|
|
26
|
-
]
|
|
16
|
+
default: ['squared', 'rounded', 'small', 'checkered'],
|
|
27
17
|
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
clothingColor: {
|
|
19
|
+
type: 'array',
|
|
20
|
+
items: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
pattern: '^(transparent|[a-fA-F0-9]{6})$',
|
|
33
23
|
},
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
]
|
|
24
|
+
default: [
|
|
25
|
+
'456dff',
|
|
26
|
+
'54d7c7',
|
|
27
|
+
'7555ca',
|
|
28
|
+
'6dbb58',
|
|
29
|
+
'e24553',
|
|
30
|
+
'f3b63a',
|
|
31
|
+
'f55d81',
|
|
32
|
+
],
|
|
43
33
|
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"open",
|
|
50
|
-
"sleep",
|
|
51
|
-
"wink",
|
|
52
|
-
"glasses",
|
|
53
|
-
"happy",
|
|
54
|
-
"sunglasses"
|
|
55
|
-
]
|
|
34
|
+
eyes: {
|
|
35
|
+
type: 'array',
|
|
36
|
+
items: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
enum: ['open', 'sleep', 'wink', 'glasses', 'happy', 'sunglasses'],
|
|
56
39
|
},
|
|
57
|
-
|
|
58
|
-
"open",
|
|
59
|
-
"sleep",
|
|
60
|
-
"wink",
|
|
61
|
-
"glasses",
|
|
62
|
-
"happy",
|
|
63
|
-
"sunglasses"
|
|
64
|
-
]
|
|
40
|
+
default: ['open', 'sleep', 'wink', 'glasses', 'happy', 'sunglasses'],
|
|
65
41
|
},
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
]
|
|
42
|
+
facialHair: {
|
|
43
|
+
type: 'array',
|
|
44
|
+
items: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
enum: [
|
|
47
|
+
'beardMustache',
|
|
48
|
+
'pyramid',
|
|
49
|
+
'walrus',
|
|
50
|
+
'goatee',
|
|
51
|
+
'shadow',
|
|
52
|
+
'soulPatch',
|
|
53
|
+
],
|
|
78
54
|
},
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
]
|
|
55
|
+
default: [
|
|
56
|
+
'beardMustache',
|
|
57
|
+
'pyramid',
|
|
58
|
+
'walrus',
|
|
59
|
+
'goatee',
|
|
60
|
+
'shadow',
|
|
61
|
+
'soulPatch',
|
|
62
|
+
],
|
|
87
63
|
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
64
|
+
facialHairProbability: {
|
|
65
|
+
type: 'integer',
|
|
66
|
+
minimum: 0,
|
|
67
|
+
maximum: 100,
|
|
68
|
+
default: 10,
|
|
93
69
|
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
]
|
|
70
|
+
hair: {
|
|
71
|
+
type: 'array',
|
|
72
|
+
items: {
|
|
73
|
+
type: 'string',
|
|
74
|
+
enum: [
|
|
75
|
+
'long',
|
|
76
|
+
'sideShave',
|
|
77
|
+
'shortCombover',
|
|
78
|
+
'curlyHighTop',
|
|
79
|
+
'bobCut',
|
|
80
|
+
'curly',
|
|
81
|
+
'pigtails',
|
|
82
|
+
'curlyBun',
|
|
83
|
+
'buzzcut',
|
|
84
|
+
'bobBangs',
|
|
85
|
+
'bald',
|
|
86
|
+
'balding',
|
|
87
|
+
'cap',
|
|
88
|
+
'bunUndercut',
|
|
89
|
+
'fade',
|
|
90
|
+
'beanie',
|
|
91
|
+
'straightBun',
|
|
92
|
+
'extraLong',
|
|
93
|
+
'shortComboverChops',
|
|
94
|
+
'mohawk',
|
|
95
|
+
],
|
|
120
96
|
},
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
]
|
|
97
|
+
default: [
|
|
98
|
+
'long',
|
|
99
|
+
'sideShave',
|
|
100
|
+
'shortCombover',
|
|
101
|
+
'curlyHighTop',
|
|
102
|
+
'bobCut',
|
|
103
|
+
'curly',
|
|
104
|
+
'pigtails',
|
|
105
|
+
'curlyBun',
|
|
106
|
+
'buzzcut',
|
|
107
|
+
'bobBangs',
|
|
108
|
+
'bald',
|
|
109
|
+
'balding',
|
|
110
|
+
'cap',
|
|
111
|
+
'bunUndercut',
|
|
112
|
+
'fade',
|
|
113
|
+
'beanie',
|
|
114
|
+
'straightBun',
|
|
115
|
+
'extraLong',
|
|
116
|
+
'shortComboverChops',
|
|
117
|
+
'mohawk',
|
|
118
|
+
],
|
|
143
119
|
},
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
120
|
+
hairColor: {
|
|
121
|
+
type: 'array',
|
|
122
|
+
items: {
|
|
123
|
+
type: 'string',
|
|
124
|
+
pattern: '^(transparent|[a-fA-F0-9]{6})$',
|
|
149
125
|
},
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
]
|
|
126
|
+
default: [
|
|
127
|
+
'362c47',
|
|
128
|
+
'6c4545',
|
|
129
|
+
'e15c66',
|
|
130
|
+
'e16381',
|
|
131
|
+
'f27d65',
|
|
132
|
+
'f29c65',
|
|
133
|
+
'dee1f5',
|
|
134
|
+
],
|
|
159
135
|
},
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
]
|
|
136
|
+
mouth: {
|
|
137
|
+
type: 'array',
|
|
138
|
+
items: {
|
|
139
|
+
type: 'string',
|
|
140
|
+
enum: [
|
|
141
|
+
'smile',
|
|
142
|
+
'frown',
|
|
143
|
+
'surprise',
|
|
144
|
+
'pacifier',
|
|
145
|
+
'bigSmile',
|
|
146
|
+
'smirk',
|
|
147
|
+
'lips',
|
|
148
|
+
],
|
|
173
149
|
},
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
]
|
|
150
|
+
default: [
|
|
151
|
+
'smile',
|
|
152
|
+
'frown',
|
|
153
|
+
'surprise',
|
|
154
|
+
'pacifier',
|
|
155
|
+
'bigSmile',
|
|
156
|
+
'smirk',
|
|
157
|
+
'lips',
|
|
158
|
+
],
|
|
183
159
|
},
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
"mediumRound",
|
|
190
|
-
"smallRound",
|
|
191
|
-
"wrinkles"
|
|
192
|
-
]
|
|
160
|
+
nose: {
|
|
161
|
+
type: 'array',
|
|
162
|
+
items: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
enum: ['mediumRound', 'smallRound', 'wrinkles'],
|
|
193
165
|
},
|
|
194
|
-
|
|
195
|
-
"mediumRound",
|
|
196
|
-
"smallRound",
|
|
197
|
-
"wrinkles"
|
|
198
|
-
]
|
|
166
|
+
default: ['mediumRound', 'smallRound', 'wrinkles'],
|
|
199
167
|
},
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
168
|
+
skinColor: {
|
|
169
|
+
type: 'array',
|
|
170
|
+
items: {
|
|
171
|
+
type: 'string',
|
|
172
|
+
pattern: '^(transparent|[a-fA-F0-9]{6})$',
|
|
205
173
|
},
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
]
|
|
215
|
-
}
|
|
216
|
-
}
|
|
174
|
+
default: [
|
|
175
|
+
'eeb4a4',
|
|
176
|
+
'e7a391',
|
|
177
|
+
'e5a07e',
|
|
178
|
+
'd78774',
|
|
179
|
+
'b16a5b',
|
|
180
|
+
'92594b',
|
|
181
|
+
'623d36',
|
|
182
|
+
],
|
|
183
|
+
},
|
|
184
|
+
},
|
|
217
185
|
};
|
package/lib/utils/getColors.js
CHANGED
|
@@ -8,9 +8,8 @@ import { convertColor } from './convertColor.js';
|
|
|
8
8
|
export function getColors({ prng, options }) {
|
|
9
9
|
var _a, _b, _c;
|
|
10
10
|
return {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
hair: convertColor(prng.pick((_a = options.hairColor) !== null && _a !== void 0 ? _a : [], 'transparent')),
|
|
12
|
+
clothing: convertColor(prng.pick((_b = options.clothingColor) !== null && _b !== void 0 ? _b : [], 'transparent')),
|
|
13
|
+
skin: convertColor(prng.pick((_c = options.skinColor) !== null && _c !== void 0 ? _c : [], 'transparent')),
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
7
|
import { pickComponent } from './pickComponent.js';
|
|
8
|
-
export function getComponents({ prng, options }) {
|
|
8
|
+
export function getComponents({ prng, options, }) {
|
|
9
9
|
const eyesComponent = pickComponent({
|
|
10
10
|
prng,
|
|
11
11
|
group: 'eyes',
|
|
@@ -37,12 +37,13 @@ export function getComponents({ prng, options }) {
|
|
|
37
37
|
values: options.facialHair,
|
|
38
38
|
});
|
|
39
39
|
return {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
eyes: eyesComponent,
|
|
41
|
+
hair: hairComponent,
|
|
42
|
+
body: bodyComponent,
|
|
43
|
+
mouth: mouthComponent,
|
|
44
|
+
nose: noseComponent,
|
|
45
|
+
facialHair: prng.bool(options.facialHairProbability)
|
|
46
|
+
? facialHairComponent
|
|
47
|
+
: undefined,
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
|
-
;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
7
|
import * as components from '../components/index.js';
|
|
8
|
-
export function pickComponent({ prng, group, values = [] }) {
|
|
8
|
+
export function pickComponent({ prng, group, values = [], }) {
|
|
9
9
|
const componentCollection = components;
|
|
10
10
|
const key = prng.pick(values);
|
|
11
11
|
if (key && componentCollection[group][key]) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dicebear/personas",
|
|
3
|
-
"version": "9.2.
|
|
3
|
+
"version": "9.2.4",
|
|
4
4
|
"description": "Avatar style for DiceBear",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dicebear"
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"test": "uvu tests"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@dicebear/core": "9.2.
|
|
33
|
-
"@tsconfig/recommended": "^1.0.
|
|
34
|
-
"del-cli": "^
|
|
35
|
-
"typescript": "^5.
|
|
32
|
+
"@dicebear/core": "9.2.4",
|
|
33
|
+
"@tsconfig/recommended": "^1.0.10",
|
|
34
|
+
"del-cli": "^6.0.0",
|
|
35
|
+
"typescript": "^5.8.3",
|
|
36
36
|
"uvu": "^0.5.6"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "b19e1a8e417d6cdaffbc46ca6dee3522bb266b29"
|
|
48
48
|
}
|