@dicebear/personas 5.0.2 → 5.0.3
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/facialHair.js +6 -6
- package/lib/components/hair.js +17 -17
- package/lib/index.js +1 -5
- package/lib/schema.js +3 -3
- package/lib/{hooks/onPreCreate.js → utils/convertColor.d.ts} +1 -3
- package/lib/{hooks/onPostCreate.js → utils/convertColor.js} +5 -2
- package/lib/utils/getColors.js +4 -3
- package/package.json +3 -3
- package/lib/hooks/onPostCreate.d.ts +0 -16
- package/lib/hooks/onPreCreate.d.ts +0 -14
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
|
-
'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(
|
|
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(
|
|
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(
|
|
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(
|
|
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}`)}"/><mask id="bodyCheckered-a" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="3" y="5" width="36" height="15"><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="#fff"/></mask><g mask="url(#bodyCheckered-a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M7 20h4V6.54l-1.65.5A9 9 0 0 0 7 8.17V20ZM32.65 7.05 31 6.54V20h4V8.16a9 9 0 0 0-2.35-1.11ZM23 20h4v-8.4a7.02 7.02 0 0 1-4 3.11v5.3Zm-4 0h-4v-8.4a7.02 7.02 0 0 0 4 3.11v5.3Z" fill="#000" style="mix-blend-mode:overlay" opacity=".4"/></g><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=".18" fill="#fff"/><mask id="bodyCheckered-b" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="9" width="36" height="11"><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" fill="#fff"/></mask>`,
|
|
13
13
|
};
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { escape } from '@dicebear/core';
|
|
8
8
|
export const facialHair = {
|
|
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(
|
|
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(
|
|
11
|
-
'walrus': (components, colors) => `<path d="M10 14a5 5 0 0 1 5-5h6a5 5 0 0 1 5 5H10Z" fill="${escape.xml(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
'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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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}`)}"/><mask id="hairLong-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="48"><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="#362C47"/></mask><g mask="url(#hairLong-a)"><path fill="#fff" d="M14 9h32v18H14z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
|
|
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}`)}"/><mask id="hairBobCut-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="38"><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="#362C47"/></mask><g mask="url(#hairBobCut-a)"><path fill="#fff" d="M13 9h34v18H13z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
|
|
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}`)}"/><mask id="hairBobBangs-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="39"><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="#362C47"/></mask><g mask="url(#hairBobBangs-a)"><path fill="#fff" d="M13 9h34v18H13z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
|
|
19
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(
|
|
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
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(
|
|
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(
|
|
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
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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}`)}"/><mask id="hairExtraLong-a" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="14" y="9" width="32" height="48"><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="#362C47"/></mask><g mask="url(#hairExtraLong-a)"><path fill="#fff" d="M14 9h32v18H14z" style="mix-blend-mode:overlay" opacity=".26"/></g>`,
|
|
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/index.js
CHANGED
|
@@ -7,8 +7,6 @@
|
|
|
7
7
|
import { escape } from '@dicebear/core';
|
|
8
8
|
import { getComponents } from './utils/getComponents.js';
|
|
9
9
|
import { getColors } from './utils/getColors.js';
|
|
10
|
-
import { onPreCreate } from './hooks/onPreCreate.js';
|
|
11
|
-
import { onPostCreate } from './hooks/onPostCreate.js';
|
|
12
10
|
export const meta = {
|
|
13
11
|
title: 'Personas by Draftbit',
|
|
14
12
|
creator: 'Draftbit - draftbit.com',
|
|
@@ -21,17 +19,15 @@ export const meta = {
|
|
|
21
19
|
};
|
|
22
20
|
export const create = ({ prng, options }) => {
|
|
23
21
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
24
|
-
onPreCreate({ prng, options });
|
|
25
22
|
const components = getComponents({ prng, options });
|
|
26
23
|
const colors = getColors({ prng, options });
|
|
27
|
-
onPostCreate({ prng, options, components, colors });
|
|
28
24
|
return {
|
|
29
25
|
attributes: {
|
|
30
26
|
viewBox: '0 0 64 64',
|
|
31
27
|
fill: 'none',
|
|
32
28
|
'shape-rendering': 'auto'
|
|
33
29
|
},
|
|
34
|
-
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(
|
|
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>`,
|
|
35
31
|
};
|
|
36
32
|
};
|
|
37
33
|
export { schema } from './schema.js';
|
package/lib/schema.js
CHANGED
|
@@ -29,7 +29,7 @@ export const schema = {
|
|
|
29
29
|
"type": "array",
|
|
30
30
|
"items": {
|
|
31
31
|
"type": "string",
|
|
32
|
-
"pattern": "^[a-fA-F0-9]{6}$"
|
|
32
|
+
"pattern": "^(transparent|[a-fA-F0-9]{6})$"
|
|
33
33
|
},
|
|
34
34
|
"default": [
|
|
35
35
|
"456dff",
|
|
@@ -145,7 +145,7 @@ export const schema = {
|
|
|
145
145
|
"type": "array",
|
|
146
146
|
"items": {
|
|
147
147
|
"type": "string",
|
|
148
|
-
"pattern": "^[a-fA-F0-9]{6}$"
|
|
148
|
+
"pattern": "^(transparent|[a-fA-F0-9]{6})$"
|
|
149
149
|
},
|
|
150
150
|
"default": [
|
|
151
151
|
"362c47",
|
|
@@ -201,7 +201,7 @@ export const schema = {
|
|
|
201
201
|
"type": "array",
|
|
202
202
|
"items": {
|
|
203
203
|
"type": "string",
|
|
204
|
-
"pattern": "^[a-fA-F0-9]{6}$"
|
|
204
|
+
"pattern": "^(transparent|[a-fA-F0-9]{6})$"
|
|
205
205
|
},
|
|
206
206
|
"default": [
|
|
207
207
|
"eeb4a4",
|
|
@@ -4,6 +4,4 @@
|
|
|
4
4
|
* Plugin: https://www.figma.com/community/plugin/1005765655729342787
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
|
-
export function
|
|
8
|
-
// Write your modifications here
|
|
9
|
-
}
|
|
7
|
+
export declare function convertColor(color: string): string;
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* Plugin: https://www.figma.com/community/plugin/1005765655729342787
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
|
-
export function
|
|
8
|
-
|
|
7
|
+
export function convertColor(color) {
|
|
8
|
+
if ('transparent' === color) {
|
|
9
|
+
return color;
|
|
10
|
+
}
|
|
11
|
+
return `#${color}`;
|
|
9
12
|
}
|
package/lib/utils/getColors.js
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
* Plugin: https://www.figma.com/community/plugin/1005765655729342787
|
|
5
5
|
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
6
|
*/
|
|
7
|
+
import { convertColor } from './convertColor.js';
|
|
7
8
|
export function getColors({ prng, options }) {
|
|
8
9
|
var _a, _b, _c, _d, _e, _f;
|
|
9
10
|
return {
|
|
10
|
-
'hair': (_b = prng.pick((_a = options.hairColor) !== null && _a !== void 0 ? _a : [])) !== null && _b !== void 0 ? _b : 'transparent',
|
|
11
|
-
'clothing': (_d = prng.pick((_c = options.clothingColor) !== null && _c !== void 0 ? _c : [])) !== null && _d !== void 0 ? _d : 'transparent',
|
|
12
|
-
'skin': (_f = prng.pick((_e = options.skinColor) !== null && _e !== void 0 ? _e : [])) !== null && _f !== void 0 ? _f : 'transparent',
|
|
11
|
+
'hair': convertColor((_b = prng.pick((_a = options.hairColor) !== null && _a !== void 0 ? _a : [])) !== null && _b !== void 0 ? _b : 'transparent'),
|
|
12
|
+
'clothing': convertColor((_d = prng.pick((_c = options.clothingColor) !== null && _c !== void 0 ? _c : [])) !== null && _d !== void 0 ? _d : 'transparent'),
|
|
13
|
+
'skin': convertColor((_f = prng.pick((_e = options.skinColor) !== null && _e !== void 0 ? _e : [])) !== null && _f !== void 0 ? _f : 'transparent'),
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dicebear/personas",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.3",
|
|
4
4
|
"description": "Avatar style for DiceBear",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dicebear"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"test": "uvu tests"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@dicebear/core": "^5.0.
|
|
32
|
+
"@dicebear/core": "^5.0.3",
|
|
33
33
|
"@tsconfig/recommended": "^1.0.1",
|
|
34
34
|
"del-cli": "^4.0.1",
|
|
35
35
|
"typescript": "^4.6.3",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "14f86eb4ad8c481902d505c838c26420370d232c"
|
|
48
48
|
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
|
|
3
|
-
*
|
|
4
|
-
* Plugin: https://www.figma.com/community/plugin/1005765655729342787
|
|
5
|
-
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
|
-
*/
|
|
7
|
-
import { Prng, StyleOptions } from "@dicebear/core";
|
|
8
|
-
import { Options, ColorPickCollection, ComponentPickCollection } from "../types.js";
|
|
9
|
-
type Props = {
|
|
10
|
-
prng: Prng;
|
|
11
|
-
options: StyleOptions<Options>;
|
|
12
|
-
components: ComponentPickCollection;
|
|
13
|
-
colors: ColorPickCollection;
|
|
14
|
-
};
|
|
15
|
-
export declare function onPostCreate({ prng, options, components, colors }: Props): void;
|
|
16
|
-
export {};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
|
|
3
|
-
*
|
|
4
|
-
* Plugin: https://www.figma.com/community/plugin/1005765655729342787
|
|
5
|
-
* File: https://www.figma.com/file/oa0iScDLrh1tVFzSud2Dwc
|
|
6
|
-
*/
|
|
7
|
-
import { Prng, StyleOptions } from "@dicebear/core";
|
|
8
|
-
import { Options } from "../types.js";
|
|
9
|
-
type Props = {
|
|
10
|
-
prng: Prng;
|
|
11
|
-
options: StyleOptions<Options>;
|
|
12
|
-
};
|
|
13
|
-
export declare function onPreCreate({ prng, options }: Props): void;
|
|
14
|
-
export {};
|