From 9adcf74889430164db8f727c5a79a92d124c7cd9 Mon Sep 17 00:00:00 2001 From: devxb <dlwnsdud205@naver.com> Date: Sun, 16 Jun 2024 08:28:48 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20DESSERT=5FFOX=5FCOLLABORATOAR=EB=A5=BC?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + docs/dessert-fox-collaborator.svg | 191 ++++++++ docs/dessert-fox.svg | 3 +- .../gitanimals/render/domain/PersonaType.kt | 17 +- .../org/gitanimals/render/domain/Svgs.kt | 4 + .../animal/dessert-fox-collaborator.svg | 240 +++++++++++ .../resources/persona/animal/dessert-fox.svg | 408 +++++++++--------- 7 files changed, 656 insertions(+), 208 deletions(-) create mode 100644 docs/dessert-fox-collaborator.svg create mode 100644 src/main/resources/persona/animal/dessert-fox-collaborator.svg diff --git a/README.md b/README.md index 8612349..3ae8a8f 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ _새로운 contribution은 반영은 최대 1시간이 소요될 수 있어요._ | slime_green <br> <img src="docs/slime-green.svg" width="50px" height="40px"/> | 0.1 | | | slime_blue <br> <img src="docs/slime-blue.svg" width="50px" height="40px"/> | 0.1 | | | cheese_cat_collaborator <br> <img src="docs/cheese-cat-collaborator.svg" width="100px" height="70px"/> | 0.0 | Pet made for collaborator [devxb](https://github.com/devxb) | +| dessert_fox_collaborator <br> <img src="docs/dessert-fox-collaborator.svg" width="80px" height="65px"/> | 0.0 | Pet made for collaborator [sumi-001](https://github.com/sumi-0011) | | white_cat_collaborator <br> <img src="docs/white-cat-collaborator.svg" width="100px" height="70px"/> | 0.0 | Pet made for collaborator [Ha youna](https://www.behance.net/hyn991022a6be) | | pig_collaborator <br> <img src="docs/pig-collaborator.svg" width="120px" height="90px"/> | 0.0 | Pet made for collaborator [hyesungoh](https://github.com/hyesungoh) | diff --git a/docs/dessert-fox-collaborator.svg b/docs/dessert-fox-collaborator.svg new file mode 100644 index 0000000..108c575 --- /dev/null +++ b/docs/dessert-fox-collaborator.svg @@ -0,0 +1,191 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" overflow="visible"> + <style> + @keyframes dessert-fox-14-leg-left-move { + 0% { + transform: translate(5px, 7.5px); + } + 50% { + transform: translate(5px, 7.5px) rotate(10deg); + } + 100% { + transform: translate(5px, 7.5px); + } + } + + @keyframes dessert-fox-14-leg-right-move { + 0% { + transform: translate(8px, 7.5px); + } + 50% { + transform: translate(8px, 7.5px) rotate(-10deg); + } + 100% { + transform: translate(8px, 7.5px); + } + } + + @keyframes dessert-fox-14-head-move { + 0% { + transform: translate(0px, -2.5px) rotate(0deg); + } + 50% { + transform: translate(2px, -3.5px) rotate(10deg); + } + 100% { + transform: translate(0px, -2.5px) rotate(0deg); + } + } + + @keyframes dessert-fox-14-obj-move { + 0% { + transform: translate(0, 0px); + } + 15% { + transform: translate(0, -2.5px); + } + 30% { + transform: translate(0, 0px); + } + 100% { + transform: translate(0, 0px); + } + } + + @keyframes dessert-fox-14-shadow-move { + 0% { + transform: translate(3px, 9.5px) scaleX(1); + } + 15% { + transform: translate(3px, 9.5px) scaleX(1.2); + } + 30% { + transform: translate(3px, 9.5px) scaleX(1); + } + 100% { + transform: translate(3px, 9.5px) scaleX(1); + } + } + + #dessert-fox-14-shadow { + animation-name: dessert-fox-14-shadow-move; + animation-duration:2s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-14-obj { + animation-name: dessert-fox-14-obj-move; + animation-duration:2s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-14-leg-left { + animation-name: dessert-fox-14-leg-left-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-14-leg-right { + animation-name: dessert-fox-14-leg-right-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-14-head { + animation-name: dessert-fox-14-head-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + </style> + + <g id="dessert-fox-14" transform="translate(10, 30)"> + <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible"> + <g id="dessert-fox-14-shadow" transform="translate(3, 12)"> + <rect width="8" height="1" transform="matrix(-1 0 0 1 8 0.5)" fill="#2B4447" fill-opacity="0.1"/> + <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 0.25)" fill="#2B4447" fill-opacity="0.1"/> + <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 1.5)" fill="#2B4447" fill-opacity="0.1"/> + <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 0)" fill="#2B4447" fill-opacity="0.1"/> + <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 1.75)" fill="#2B4447" fill-opacity="0.1"/> + </g> + <g id="dessert-fox-14-obj"> + <g id="dessert-fox-14-leg-left" transform="translate(5, 10)"> + <rect width="2" height="3" fill="#DDD7B5"/> + </g> + <g id="dessert-fox-14-leg-right" transform="translate(8, 10)"> + <rect width="2" height="3" fill="#DDD7B5"/> + </g> + <g id="dessert-fox-14-body" transform="translate(-2, 4.5)"> + <rect x="2" y="2" width="3" height="1" fill="#F5F5F7"/> + <rect x="3" y="3" width="3" height="1" fill="#F5F5F7"/> + <rect y="3" width="2" height="1" fill="#F5F5F7"/> + <rect x="3" y="2" width="8" height="1" fill="#DDD7B5"/> + <rect x="7" width="6" height="4" fill="#DDD7B5"/> + <rect x="7" y="2" width="6" height="2" fill="#DDD7B5"/> + <rect x="4" y="2" width="8" height="2" fill="#DDD7B5"/> + <rect x="6" y="1" width="7" height="3" fill="#DDD7B5"/> + <rect x="6" y="3" width="7" height="2" fill="#DDD7B5"/> + <rect x="9" y="2" width="3" height="3" fill="#F5F5F7"/> + <rect x="8" y="3" width="3" height="2" fill="#F5F5F7"/> + <rect x="7" y="4" width="3" height="1" fill="#F5F5F7"/> + <rect x="2" y="1" width="2" height="1" fill="#DDD7B5"/> + <rect x="1" y="2" width="1" height="1" fill="#DDD7B5"/> + <rect y="3" width="1" height="1" fill="#DDD7B5"/> + <rect x="4" y="3" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="6" y="4" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="3" y="2" width="1" height="1" fill="black" fill-opacity="0.1"/> + </g> + <g id="dessert-fox-14-head" transform="translate(0, 0)"> + <rect x="7" y="2" width="4" height="5" fill="#DDD7B5"/> + <rect x="9" y="5" width="2" height="2" fill="#F5F5F7"/> + <rect x="6" y="3" width="6" height="4" fill="#DDD7B5"/> + <rect x="8" y="6" width="4" height="1" fill="#F5F5F7"/> + <rect x="8" y="6" width="3" height="2" fill="#F5F5F7"/> + <rect x="6" y="3" width="6" height="1" fill="#DDD7B5"/> + <rect x="3" y="4" width="12" height="1" fill="#DDD7B5"/> + <rect x="5" y="3" width="8" height="3" fill="#DDD7B5"/> + <rect x="7" y="7" width="4" height="1" fill="#DDD7B5"/> + <rect x="1" y="2" width="4" height="1" fill="#DDD7B5"/> + <rect y="1" width="4" height="1" fill="#DDD7B5"/> + <rect x="1" width="2" height="3" fill="#DDD7B5"/> + <rect x="1" y="1" width="2" height="1" fill="#FBB3BE"/> + <rect x="2" y="1" width="1" height="2" fill="#FBB3BE"/> + <rect x="2" y="2" width="2" height="2" fill="#FBB3BE"/> + <rect x="3" y="3" width="2" height="2" fill="#FBB3BE"/> + <rect x="3" y="4" width="3" height="1" fill="#FBB3BE"/> + <rect x="13" y="2" width="4" height="1" fill="#DDD7B5"/> + <rect x="14" y="1" width="4" height="1" fill="#DDD7B5"/> + <rect x="15" width="2" height="3" fill="#DDD7B5"/> + <rect x="15" y="1" width="2" height="1" fill="#FBB3BE"/> + <rect x="15" y="1" width="1" height="2" fill="#FBB3BE"/> + <rect x="14" y="2" width="2" height="2" fill="#FBB3BE"/> + <rect x="13" y="3" width="2" height="2" fill="#FBB3BE"/> + <rect x="12" y="4" width="3" height="1" fill="#FBB3BE"/> + <rect x="10" y="6" width="1" height="1" fill="black"/> + <rect x="8" y="4" width="1" height="2" fill="black"/> + <rect x="7" y="7" width="4" height="1" fill="#F5F5F7"/> + <rect x="9" y="5" width="3" height="1" fill="#F5F5F7"/> + <rect x="11" y="4" width="1" height="2" fill="black"/> + <rect x="7" y="7" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="6" y="6" width="1" height="1" fill="black" fill-opacity="0.1"/> + </g> + </g> + <g id="dessert-fox-14-notebook" transform="translate(8, 4.5)"> + <rect width="4.66667" height="3.33333" transform="matrix(-1 0 0 1 6.6665 0)" fill="#E4E4E4"/> + <rect width="6" height="3.33333" transform="matrix(-1 0 0 1 7.33325 0.666687)" fill="#E4E4E4"/> + <rect width="6" height="1.33333" transform="matrix(-1 0 0 1 6.6665 2.66669)" fill="#E4E4E4"/> + <rect width="6" height="0.666667" transform="matrix(-1 0 0 1 6 3.33331)" fill="#E4E4E4"/> + <rect width="0.666667" height="1.33333" transform="matrix(-1 0 0 1 1.33325 2.66669)" fill="black" fill-opacity="0.1"/> + <rect width="0.666667" height="0.666667" transform="matrix(-1 0 0 1 0.666504 3.33331)" fill="black" fill-opacity="0.1"/> + <rect width="6" height="0.666667" transform="matrix(-1 0 0 1 7.33325 3.33331)" fill="black" fill-opacity="0.1"/> + <rect x="5.33325" y="2.33331" width="0.666667" height="0.333333" transform="rotate(180 5.33325 2.33331)" fill="#242427"/> + <rect width="0.666667" height="0.333333" transform="matrix(-1 0 0 1 5 1.66669)" fill="#242427"/> + <rect width="0.333333" height="1.33333" transform="matrix(-1 0 0 1 5.33325 1.33331)" fill="#242427"/> + <rect width="1" height="0.333333" transform="matrix(-1 0 0 1 5.33325 2.33331)" fill="#242427"/> + </g> + </svg> + </g> +</svg> diff --git a/docs/dessert-fox.svg b/docs/dessert-fox.svg index 93292cd..9e3f622 100644 --- a/docs/dessert-fox.svg +++ b/docs/dessert-fox.svg @@ -1,4 +1,4 @@ -<svg xmlns="http://www.w3.org/2000/svg" fill="none" overflow="visible"><svg xmlns="http://www.w3.org/2000/svg" fill="none" overflow="visible"> +<svg xmlns="http://www.w3.org/2000/svg" fill="none" overflow="visible"> <style> @keyframes dessert-fox-14-leg-left-move { 0% { @@ -176,4 +176,3 @@ </svg> </g> </svg> -</svg> diff --git a/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt b/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt index 9b92133..86398c9 100644 --- a/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt +++ b/src/main/kotlin/org/gitanimals/render/domain/PersonaType.kt @@ -1165,7 +1165,22 @@ enum class PersonaType(val weight: Double, private var dropRate: String? = null) override fun act(id: Long): String = StringBuilder().moveRandomly("dessert-fox", id, 40, "180s", 5, 26.0) .toString() - } + }, + DESSERT_FOX_COLLABORATOR(0.0) { + override fun loadSvg(user: User, persona: Persona, mode: Mode): String { + return dessertFoxCollaboratorSvg.replace("*{act}", act(persona.id)) + .replace("*{id}", persona.id.toString()) + .replace("*{level}", persona.level.value.toSvg(14.0, 2.0)) + .replace( + "*{levelx}", + (-3 + (-1 * (persona.level.value.toString().length))).toString() + ) + } + + override fun act(id: Long): String = + StringBuilder().moveRandomly("dessert-fox", id, 40, "180s", 5, 26.0) + .toString() + }, ; init { diff --git a/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt b/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt index 3fbc7c5..1fbbcf3 100644 --- a/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt +++ b/src/main/kotlin/org/gitanimals/render/domain/Svgs.kt @@ -208,6 +208,10 @@ val whiteCatCollaboratorSvg: String = ClassPathResource("persona/animal/white-ca val dessertFoxSvg: String = ClassPathResource("persona/animal/dessert-fox.svg") .getContentAsString(Charset.defaultCharset()) +val dessertFoxCollaboratorSvg: String = ClassPathResource("persona/animal/dessert-fox-collaborator.svg") + .getContentAsString(Charset.defaultCharset()) + + val largeTextSvgs = lazy { val map = mutableMapOf<String, String>() for (i in 'A'..'Z') { diff --git a/src/main/resources/persona/animal/dessert-fox-collaborator.svg b/src/main/resources/persona/animal/dessert-fox-collaborator.svg new file mode 100644 index 0000000..dec1add --- /dev/null +++ b/src/main/resources/persona/animal/dessert-fox-collaborator.svg @@ -0,0 +1,240 @@ +<style> + *{act} + + @keyframes dessert-fox-*{id}-leg-left-move { + 0% { + transform: translate(5px, 7.5px); + } + 50% { + transform: translate(5px, 7.5px) rotate(10deg); + } + 100% { + transform: translate(5px, 7.5px); + } + } + + @keyframes dessert-fox-*{id}-leg-right-move { + 0% { + transform: translate(8px, 7.5px); + } + 50% { + transform: translate(8px, 7.5px) rotate(-10deg); + } + 100% { + transform: translate(8px, 7.5px); + } + } + + @keyframes dessert-fox-*{id}-head-move { + 0% { + transform: translate(0px, -2.5px) rotate(0deg); + } + 50% { + transform: translate(2px, -3.5px) rotate(10deg); + } + 100% { + transform: translate(0px, -2.5px) rotate(0deg); + } + } + + @keyframes dessert-fox-*{id}-obj-move { + 0% { + transform: translate(0, 0px); + } + 15% { + transform: translate(0, -2.5px); + } + 30% { + transform: translate(0, 0px); + } + 100% { + transform: translate(0, 0px); + } + } + + @keyframes dessert-fox-*{id}-shadow-move { + 0% { + transform: translate(3px, 9.5px) scaleX(1); + } + 15% { + transform: translate(3px, 9.5px) scaleX(1.2); + } + 30% { + transform: translate(3px, 9.5px) scaleX(1); + } + 100% { + transform: translate(3px, 9.5px) scaleX(1); + } + } + + #dessert-fox-*{id}-shadow { + animation-name: dessert-fox-*{id}-shadow-move; + animation-duration:2s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-*{id}-obj { + animation-name: dessert-fox-*{id}-obj-move; + animation-duration:2s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-*{id}-leg-left { + animation-name: dessert-fox-*{id}-leg-left-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-*{id}-leg-right { + animation-name: dessert-fox-*{id}-leg-right-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } + + #dessert-fox-*{id}-head { + animation-name: dessert-fox-*{id}-head-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } +</style> + +<g id="dessert-fox-*{id}" transform="translate(100, 100)"> +<g id="contributions-wrap-*{id}"> + <g id="contributions" transform="translate(-11, -37.5)" style="display:*{contribution-display};"> + <g id="contribution-tag" transform="translate(-3, -1)"> + <rect x="3" width="77" height="19" fill="white"/> + <rect x="1" y="1.26669" width="81" height="16.4667" fill="white"/> + <rect y="2.53333" width="83" height="13.9333" fill="white"/> + </g> + <path + d="M1 2.75H4V3.5H4.75V4.25H3.25V3.5H1.75V7.25H3.25V6.5H4.75V7.25H4V8H1V7.25H0.25V3.5H1V2.75ZM7 2.75H10V3.5H10.75V7.25H10V8H7V7.25H6.25V3.5H7V2.75ZM9.25 7.25V3.5H7.75V7.25H9.25ZM16 3.5H16.75V8H15.25V3.5H13.75V8H12.25V2.75H16V3.5ZM19 1.25H20.5V2.75H22.75V3.5H20.5V7.25H22.75V8H19.75V7.25H19V3.5H18.25V2.75H19V1.25ZM24.25 2.75H25.75V4.25H26.5V5H25.75V8H24.25V2.75ZM28.75 2.75V4.25H26.5V3.5H27.25V2.75H28.75ZM33.25 2H31.75V0.5H33.25V2ZM33.25 7.25H34.75V8H30.25V7.25H31.75V3.5H30.25V2.75H33.25V7.25ZM40 3.5H40.75V7.25H40V8H36.25V1.25H37.75V2.75H40V3.5ZM39.25 7.25V3.5H37.75V7.25H39.25ZM45.25 2.75H46.75V8H43V7.25H42.25V2.75H43.75V7.25H45.25V2.75ZM49 1.25H50.5V2.75H52.75V3.5H50.5V7.25H52.75V8H49.75V7.25H49V3.5H48.25V2.75H49V1.25ZM57.25 2H55.75V0.5H57.25V2ZM57.25 7.25H58.75V8H54.25V7.25H55.75V3.5H54.25V2.75H57.25V7.25ZM61 2.75H64V3.5H64.75V7.25H64V8H61V7.25H60.25V3.5H61V2.75ZM63.25 7.25V3.5H61.75V7.25H63.25ZM70 3.5H70.75V8H69.25V3.5H67.75V8H66.25V2.75H70V3.5ZM73 5H72.25V3.5H73V2.75H76.75V3.5H73.75V5H76V5.75H76.75V7.25H76V8H72.25V7.25H75.25V5.75H73V5Z" + fill="black"/> + <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible" + xmlns="http://www.w3.org/2000/svg"> + <g id="contribution" transform="translate(*{contributionx}, 3.5)"> + *{contribution} + </g> + </svg> + </g> +</g> +<g id="level-tag-wrap-*{id}"> + <g id="level-tag" transform="translate(-14, -16.5)" style="display:*{level-tag-display};"> + <rect x="3" width="77" height="9" fill="white"/> + <rect x="1" y="0.600006" width="81" height="7.8" fill="white"/> + <rect y="1.20001" width="83" height="6.6" fill="white"/> + </g> +</g> + +<g id="level-wrap-*{id}"> + <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible" + xmlns="http://www.w3.org/2000/svg"> + <g id="level" transform="translate(*{levelx}, -4.8)"> + <g transform="translate(10, -0.05)"> + <path + d="M0.21875 0.03125H0.65625V1.78125H1.53125V2H0.21875V0.03125ZM2.1875 1.5625H1.96875V0.46875H2.40625V1.5625H2.84375V0.46875H3.28125V1.5625H3.0625V1.78125H2.84375V2H2.40625V1.78125H2.1875V1.5625Z" + fill="black"/> + </g> + *{level} + </g> + </svg> +</g> +<svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible"> + <g id="dessert-fox-*{id}-shadow" transform="translate(3, 12)"> + <rect width="8" height="1" transform="matrix(-1 0 0 1 8 0.5)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 0.25)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 1.5)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 0)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 1.75)" fill="#2B4447" + fill-opacity="0.1"/> + </g> + <g id="dessert-fox-*{id}-obj"> + <g id="dessert-fox-*{id}-leg-left" transform="translate(5, 10)"> + <rect width="2" height="3" fill="#DDD7B5"/> + </g> + <g id="dessert-fox-*{id}-leg-right" transform="translate(8, 10)"> + <rect width="2" height="3" fill="#DDD7B5"/> + </g> + <g id="dessert-fox-*{id}-body" transform="translate(-2, 4.5)"> + <rect x="2" y="2" width="3" height="1" fill="#F5F5F7"/> + <rect x="3" y="3" width="3" height="1" fill="#F5F5F7"/> + <rect y="3" width="2" height="1" fill="#F5F5F7"/> + <rect x="3" y="2" width="8" height="1" fill="#DDD7B5"/> + <rect x="7" width="6" height="4" fill="#DDD7B5"/> + <rect x="7" y="2" width="6" height="2" fill="#DDD7B5"/> + <rect x="4" y="2" width="8" height="2" fill="#DDD7B5"/> + <rect x="6" y="1" width="7" height="3" fill="#DDD7B5"/> + <rect x="6" y="3" width="7" height="2" fill="#DDD7B5"/> + <rect x="9" y="2" width="3" height="3" fill="#F5F5F7"/> + <rect x="8" y="3" width="3" height="2" fill="#F5F5F7"/> + <rect x="7" y="4" width="3" height="1" fill="#F5F5F7"/> + <rect x="2" y="1" width="2" height="1" fill="#DDD7B5"/> + <rect x="1" y="2" width="1" height="1" fill="#DDD7B5"/> + <rect y="3" width="1" height="1" fill="#DDD7B5"/> + <rect x="4" y="3" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="6" y="4" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="3" y="2" width="1" height="1" fill="black" fill-opacity="0.1"/> + </g> + <g id="dessert-fox-*{id}-head" transform="translate(0, 0)"> + <rect x="7" y="2" width="4" height="5" fill="#DDD7B5"/> + <rect x="9" y="5" width="2" height="2" fill="#F5F5F7"/> + <rect x="6" y="3" width="6" height="4" fill="#DDD7B5"/> + <rect x="8" y="6" width="4" height="1" fill="#F5F5F7"/> + <rect x="8" y="6" width="3" height="2" fill="#F5F5F7"/> + <rect x="6" y="3" width="6" height="1" fill="#DDD7B5"/> + <rect x="3" y="4" width="12" height="1" fill="#DDD7B5"/> + <rect x="5" y="3" width="8" height="3" fill="#DDD7B5"/> + <rect x="7" y="7" width="4" height="1" fill="#DDD7B5"/> + <rect x="1" y="2" width="4" height="1" fill="#DDD7B5"/> + <rect y="1" width="4" height="1" fill="#DDD7B5"/> + <rect x="1" width="2" height="3" fill="#DDD7B5"/> + <rect x="1" y="1" width="2" height="1" fill="#FBB3BE"/> + <rect x="2" y="1" width="1" height="2" fill="#FBB3BE"/> + <rect x="2" y="2" width="2" height="2" fill="#FBB3BE"/> + <rect x="3" y="3" width="2" height="2" fill="#FBB3BE"/> + <rect x="3" y="4" width="3" height="1" fill="#FBB3BE"/> + <rect x="13" y="2" width="4" height="1" fill="#DDD7B5"/> + <rect x="14" y="1" width="4" height="1" fill="#DDD7B5"/> + <rect x="15" width="2" height="3" fill="#DDD7B5"/> + <rect x="15" y="1" width="2" height="1" fill="#FBB3BE"/> + <rect x="15" y="1" width="1" height="2" fill="#FBB3BE"/> + <rect x="14" y="2" width="2" height="2" fill="#FBB3BE"/> + <rect x="13" y="3" width="2" height="2" fill="#FBB3BE"/> + <rect x="12" y="4" width="3" height="1" fill="#FBB3BE"/> + <rect x="10" y="6" width="1" height="1" fill="black"/> + <rect x="8" y="4" width="1" height="2" fill="black"/> + <rect x="7" y="7" width="4" height="1" fill="#F5F5F7"/> + <rect x="9" y="5" width="3" height="1" fill="#F5F5F7"/> + <rect x="11" y="4" width="1" height="2" fill="black"/> + <rect x="7" y="7" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="6" y="6" width="1" height="1" fill="black" fill-opacity="0.1"/> + </g> + </g> + <g id="dessert-fox-*{id}-notebook" transform="translate(8, 4.5)"> + <rect width="4.66667" height="3.33333" transform="matrix(-1 0 0 1 6.6665 0)" fill="#E4E4E4"/> + <rect width="6" height="3.33333" transform="matrix(-1 0 0 1 7.33325 0.666687)" fill="#E4E4E4"/> + <rect width="6" height="1.33333" transform="matrix(-1 0 0 1 6.6665 2.66669)" fill="#E4E4E4"/> + <rect width="6" height="0.666667" transform="matrix(-1 0 0 1 6 3.33331)" fill="#E4E4E4"/> + <rect width="0.666667" height="1.33333" transform="matrix(-1 0 0 1 1.33325 2.66669)" + fill="black" fill-opacity="0.1"/> + <rect width="0.666667" height="0.666667" transform="matrix(-1 0 0 1 0.666504 3.33331)" + fill="black" fill-opacity="0.1"/> + <rect width="6" height="0.666667" transform="matrix(-1 0 0 1 7.33325 3.33331)" fill="black" + fill-opacity="0.1"/> + <rect x="5.33325" y="2.33331" width="0.666667" height="0.333333" + transform="rotate(180 5.33325 2.33331)" fill="#242427"/> + <rect width="0.666667" height="0.333333" transform="matrix(-1 0 0 1 5 1.66669)" fill="#242427"/> + <rect width="0.333333" height="1.33333" transform="matrix(-1 0 0 1 5.33325 1.33331)" + fill="#242427"/> + <rect width="1" height="0.333333" transform="matrix(-1 0 0 1 5.33325 2.33331)" fill="#242427"/> + </g> +</svg> +</g> diff --git a/src/main/resources/persona/animal/dessert-fox.svg b/src/main/resources/persona/animal/dessert-fox.svg index 9b059de..e81e0a9 100644 --- a/src/main/resources/persona/animal/dessert-fox.svg +++ b/src/main/resources/persona/animal/dessert-fox.svg @@ -1,224 +1,222 @@ -<svg xmlns="http://www.w3.org/2000/svg" fill="none" overflow="visible"> - <style> - *{act} +<style> + *{act} - @keyframes dessert-fox-*{id}-leg-left-move { - 0% { - transform: translate(5px, 7.5px); - } - 50% { - transform: translate(5px, 7.5px) rotate(10deg); - } - 100% { - transform: translate(5px, 7.5px); - } - } + @keyframes dessert-fox-*{id}-leg-left-move { + 0% { + transform: translate(5px, 7.5px); + } + 50% { + transform: translate(5px, 7.5px) rotate(10deg); + } + 100% { + transform: translate(5px, 7.5px); + } + } - @keyframes dessert-fox-*{id}-leg-right-move { - 0% { - transform: translate(8px, 7.5px); - } - 50% { - transform: translate(8px, 7.5px) rotate(-10deg); - } - 100% { - transform: translate(8px, 7.5px); - } - } + @keyframes dessert-fox-*{id}-leg-right-move { + 0% { + transform: translate(8px, 7.5px); + } + 50% { + transform: translate(8px, 7.5px) rotate(-10deg); + } + 100% { + transform: translate(8px, 7.5px); + } + } - @keyframes dessert-fox-*{id}-head-move { - 0% { - transform: translate(0px, -2.5px) rotate(0deg); - } - 50% { - transform: translate(2px, -3.5px) rotate(10deg); - } - 100% { - transform: translate(0px, -2.5px) rotate(0deg); - } - } + @keyframes dessert-fox-*{id}-head-move { + 0% { + transform: translate(0px, -2.5px) rotate(0deg); + } + 50% { + transform: translate(2px, -3.5px) rotate(10deg); + } + 100% { + transform: translate(0px, -2.5px) rotate(0deg); + } + } - @keyframes dessert-fox-*{id}-obj-move { - 0% { - transform: translate(0, 0px); - } - 15% { - transform: translate(0, -2.5px); - } - 30% { - transform: translate(0, 0px); - } - 100% { - transform: translate(0, 0px); - } - } + @keyframes dessert-fox-*{id}-obj-move { + 0% { + transform: translate(0, 0px); + } + 15% { + transform: translate(0, -2.5px); + } + 30% { + transform: translate(0, 0px); + } + 100% { + transform: translate(0, 0px); + } + } - @keyframes dessert-fox-*{id}-shadow-move { - 0% { - transform: translate(3px, 9.5px) scaleX(1); - } - 15% { - transform: translate(3px, 9.5px) scaleX(1.2); - } - 30% { - transform: translate(3px, 9.5px) scaleX(1); - } - 100% { - transform: translate(3px, 9.5px) scaleX(1); - } - } + @keyframes dessert-fox-*{id}-shadow-move { + 0% { + transform: translate(3px, 9.5px) scaleX(1); + } + 15% { + transform: translate(3px, 9.5px) scaleX(1.2); + } + 30% { + transform: translate(3px, 9.5px) scaleX(1); + } + 100% { + transform: translate(3px, 9.5px) scaleX(1); + } + } - #dessert-fox-*{id}-shadow { - animation-name: dessert-fox-*{id}-shadow-move; - animation-duration:2s; - animation-iteration-count:infinite; - animation-timing-function: ease-in-out; - } + #dessert-fox-*{id}-shadow { + animation-name: dessert-fox-*{id}-shadow-move; + animation-duration:2s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } - #dessert-fox-*{id}-obj { - animation-name: dessert-fox-*{id}-obj-move; - animation-duration:2s; - animation-iteration-count:infinite; - animation-timing-function: ease-in-out; - } + #dessert-fox-*{id}-obj { + animation-name: dessert-fox-*{id}-obj-move; + animation-duration:2s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } - #dessert-fox-*{id}-leg-left { - animation-name: dessert-fox-*{id}-leg-left-move; - animation-duration:1s; - animation-iteration-count:infinite; - animation-timing-function: ease-in-out; - } + #dessert-fox-*{id}-leg-left { + animation-name: dessert-fox-*{id}-leg-left-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } - #dessert-fox-*{id}-leg-right { - animation-name: dessert-fox-*{id}-leg-right-move; - animation-duration:1s; - animation-iteration-count:infinite; - animation-timing-function: ease-in-out; - } + #dessert-fox-*{id}-leg-right { + animation-name: dessert-fox-*{id}-leg-right-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } - #dessert-fox-*{id}-head { - animation-name: dessert-fox-*{id}-head-move; - animation-duration:1s; - animation-iteration-count:infinite; - animation-timing-function: ease-in-out; - } - </style> + #dessert-fox-*{id}-head { + animation-name: dessert-fox-*{id}-head-move; + animation-duration:1s; + animation-iteration-count:infinite; + animation-timing-function: ease-in-out; + } +</style> - <g id="dessert-fox-*{id}" transform="translate(100, 100)"> - <g id="contributions-wrap-*{id}"> - <g id="contributions" transform="translate(-11, -37.5)" style="display:*{contribution-display};"> - <g id="contribution-tag" transform="translate(-3, -1)"> - <rect x="3" width="77" height="19" fill="white"/> - <rect x="1" y="1.26669" width="81" height="16.4667" fill="white"/> - <rect y="2.53333" width="83" height="13.9333" fill="white"/> - </g> +<g id="dessert-fox-*{id}" transform="translate(100, 100)"> +<g id="contributions-wrap-*{id}"> + <g id="contributions" transform="translate(-11, -37.5)" style="display:*{contribution-display};"> + <g id="contribution-tag" transform="translate(-3, -1)"> + <rect x="3" width="77" height="19" fill="white"/> + <rect x="1" y="1.26669" width="81" height="16.4667" fill="white"/> + <rect y="2.53333" width="83" height="13.9333" fill="white"/> + </g> + <path + d="M1 2.75H4V3.5H4.75V4.25H3.25V3.5H1.75V7.25H3.25V6.5H4.75V7.25H4V8H1V7.25H0.25V3.5H1V2.75ZM7 2.75H10V3.5H10.75V7.25H10V8H7V7.25H6.25V3.5H7V2.75ZM9.25 7.25V3.5H7.75V7.25H9.25ZM16 3.5H16.75V8H15.25V3.5H13.75V8H12.25V2.75H16V3.5ZM19 1.25H20.5V2.75H22.75V3.5H20.5V7.25H22.75V8H19.75V7.25H19V3.5H18.25V2.75H19V1.25ZM24.25 2.75H25.75V4.25H26.5V5H25.75V8H24.25V2.75ZM28.75 2.75V4.25H26.5V3.5H27.25V2.75H28.75ZM33.25 2H31.75V0.5H33.25V2ZM33.25 7.25H34.75V8H30.25V7.25H31.75V3.5H30.25V2.75H33.25V7.25ZM40 3.5H40.75V7.25H40V8H36.25V1.25H37.75V2.75H40V3.5ZM39.25 7.25V3.5H37.75V7.25H39.25ZM45.25 2.75H46.75V8H43V7.25H42.25V2.75H43.75V7.25H45.25V2.75ZM49 1.25H50.5V2.75H52.75V3.5H50.5V7.25H52.75V8H49.75V7.25H49V3.5H48.25V2.75H49V1.25ZM57.25 2H55.75V0.5H57.25V2ZM57.25 7.25H58.75V8H54.25V7.25H55.75V3.5H54.25V2.75H57.25V7.25ZM61 2.75H64V3.5H64.75V7.25H64V8H61V7.25H60.25V3.5H61V2.75ZM63.25 7.25V3.5H61.75V7.25H63.25ZM70 3.5H70.75V8H69.25V3.5H67.75V8H66.25V2.75H70V3.5ZM73 5H72.25V3.5H73V2.75H76.75V3.5H73.75V5H76V5.75H76.75V7.25H76V8H72.25V7.25H75.25V5.75H73V5Z" + fill="black"/> + <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible" + xmlns="http://www.w3.org/2000/svg"> + <g id="contribution" transform="translate(*{contributionx}, 3.5)"> + *{contribution} + </g> + </svg> + </g> +</g> +<g id="level-tag-wrap-*{id}"> + <g id="level-tag" transform="translate(-14, -16.5)" style="display:*{level-tag-display};"> + <rect x="3" width="77" height="9" fill="white"/> + <rect x="1" y="0.600006" width="81" height="7.8" fill="white"/> + <rect y="1.20001" width="83" height="6.6" fill="white"/> + </g> +</g> + +<g id="level-wrap-*{id}"> + <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible" + xmlns="http://www.w3.org/2000/svg"> + <g id="level" transform="translate(*{levelx}, -4.8)"> + <g transform="translate(10, -0.05)"> <path - d="M1 2.75H4V3.5H4.75V4.25H3.25V3.5H1.75V7.25H3.25V6.5H4.75V7.25H4V8H1V7.25H0.25V3.5H1V2.75ZM7 2.75H10V3.5H10.75V7.25H10V8H7V7.25H6.25V3.5H7V2.75ZM9.25 7.25V3.5H7.75V7.25H9.25ZM16 3.5H16.75V8H15.25V3.5H13.75V8H12.25V2.75H16V3.5ZM19 1.25H20.5V2.75H22.75V3.5H20.5V7.25H22.75V8H19.75V7.25H19V3.5H18.25V2.75H19V1.25ZM24.25 2.75H25.75V4.25H26.5V5H25.75V8H24.25V2.75ZM28.75 2.75V4.25H26.5V3.5H27.25V2.75H28.75ZM33.25 2H31.75V0.5H33.25V2ZM33.25 7.25H34.75V8H30.25V7.25H31.75V3.5H30.25V2.75H33.25V7.25ZM40 3.5H40.75V7.25H40V8H36.25V1.25H37.75V2.75H40V3.5ZM39.25 7.25V3.5H37.75V7.25H39.25ZM45.25 2.75H46.75V8H43V7.25H42.25V2.75H43.75V7.25H45.25V2.75ZM49 1.25H50.5V2.75H52.75V3.5H50.5V7.25H52.75V8H49.75V7.25H49V3.5H48.25V2.75H49V1.25ZM57.25 2H55.75V0.5H57.25V2ZM57.25 7.25H58.75V8H54.25V7.25H55.75V3.5H54.25V2.75H57.25V7.25ZM61 2.75H64V3.5H64.75V7.25H64V8H61V7.25H60.25V3.5H61V2.75ZM63.25 7.25V3.5H61.75V7.25H63.25ZM70 3.5H70.75V8H69.25V3.5H67.75V8H66.25V2.75H70V3.5ZM73 5H72.25V3.5H73V2.75H76.75V3.5H73.75V5H76V5.75H76.75V7.25H76V8H72.25V7.25H75.25V5.75H73V5Z" + d="M0.21875 0.03125H0.65625V1.78125H1.53125V2H0.21875V0.03125ZM2.1875 1.5625H1.96875V0.46875H2.40625V1.5625H2.84375V0.46875H3.28125V1.5625H3.0625V1.78125H2.84375V2H2.40625V1.78125H2.1875V1.5625Z" fill="black"/> - <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible" - xmlns="http://www.w3.org/2000/svg"> - <g id="contribution" transform="translate(*{contributionx}, 3.5)"> - *{contribution} - </g> - </svg> </g> + *{level} </g> - <g id="level-tag-wrap-*{id}"> - <g id="level-tag" transform="translate(-14, -16.5)" style="display:*{level-tag-display};"> - <rect x="3" width="77" height="9" fill="white"/> - <rect x="1" y="0.600006" width="81" height="7.8" fill="white"/> - <rect y="1.20001" width="83" height="6.6" fill="white"/> - </g> + </svg> +</g> +<svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible"> + <g id="dessert-fox-*{id}-shadow" transform="translate(3, 12)"> + <rect width="8" height="1" transform="matrix(-1 0 0 1 8 0.5)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 0.25)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 1.5)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 0)" fill="#2B4447" + fill-opacity="0.1"/> + <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 1.75)" fill="#2B4447" + fill-opacity="0.1"/> + </g> + <g id="dessert-fox-*{id}-obj"> + <g id="dessert-fox-*{id}-leg-left" transform="translate(5, 10)"> + <rect width="2" height="3" fill="#DDD7B5"/> </g> - - <g id="level-wrap-*{id}"> - <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible" - xmlns="http://www.w3.org/2000/svg"> - <g id="level" transform="translate(*{levelx}, -4.8)"> - <g transform="translate(10, -0.05)"> - <path - d="M0.21875 0.03125H0.65625V1.78125H1.53125V2H0.21875V0.03125ZM2.1875 1.5625H1.96875V0.46875H2.40625V1.5625H2.84375V0.46875H3.28125V1.5625H3.0625V1.78125H2.84375V2H2.40625V1.78125H2.1875V1.5625Z" - fill="black"/> - </g> - *{level} - </g> - </svg> + <g id="dessert-fox-*{id}-leg-right" transform="translate(8, 10)"> + <rect width="2" height="3" fill="#DDD7B5"/> + </g> + <g id="dessert-fox-*{id}-body" transform="translate(-2, 4.5)"> + <rect x="2" y="2" width="3" height="1" fill="#F5F5F7"/> + <rect x="3" y="3" width="3" height="1" fill="#F5F5F7"/> + <rect y="3" width="2" height="1" fill="#F5F5F7"/> + <rect x="3" y="2" width="8" height="1" fill="#DDD7B5"/> + <rect x="7" width="6" height="4" fill="#DDD7B5"/> + <rect x="7" y="2" width="6" height="2" fill="#DDD7B5"/> + <rect x="4" y="2" width="8" height="2" fill="#DDD7B5"/> + <rect x="6" y="1" width="7" height="3" fill="#DDD7B5"/> + <rect x="6" y="3" width="7" height="2" fill="#DDD7B5"/> + <rect x="9" y="2" width="3" height="3" fill="#F5F5F7"/> + <rect x="8" y="3" width="3" height="2" fill="#F5F5F7"/> + <rect x="7" y="4" width="3" height="1" fill="#F5F5F7"/> + <rect x="2" y="1" width="2" height="1" fill="#DDD7B5"/> + <rect x="1" y="2" width="1" height="1" fill="#DDD7B5"/> + <rect y="3" width="1" height="1" fill="#DDD7B5"/> + <rect x="4" y="3" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="6" y="4" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="3" y="2" width="1" height="1" fill="black" fill-opacity="0.1"/> + </g> + <g id="dessert-fox-*{id}-head" transform="translate(0, 0)"> + <rect x="7" y="2" width="4" height="5" fill="#DDD7B5"/> + <rect x="9" y="5" width="2" height="2" fill="#F5F5F7"/> + <rect x="6" y="3" width="6" height="4" fill="#DDD7B5"/> + <rect x="8" y="6" width="4" height="1" fill="#F5F5F7"/> + <rect x="8" y="6" width="3" height="2" fill="#F5F5F7"/> + <rect x="6" y="3" width="6" height="1" fill="#DDD7B5"/> + <rect x="3" y="4" width="12" height="1" fill="#DDD7B5"/> + <rect x="5" y="3" width="8" height="3" fill="#DDD7B5"/> + <rect x="7" y="7" width="4" height="1" fill="#DDD7B5"/> + <rect x="1" y="2" width="4" height="1" fill="#DDD7B5"/> + <rect y="1" width="4" height="1" fill="#DDD7B5"/> + <rect x="1" width="2" height="3" fill="#DDD7B5"/> + <rect x="1" y="1" width="2" height="1" fill="#FBB3BE"/> + <rect x="2" y="1" width="1" height="2" fill="#FBB3BE"/> + <rect x="2" y="2" width="2" height="2" fill="#FBB3BE"/> + <rect x="3" y="3" width="2" height="2" fill="#FBB3BE"/> + <rect x="3" y="4" width="3" height="1" fill="#FBB3BE"/> + <rect x="13" y="2" width="4" height="1" fill="#DDD7B5"/> + <rect x="14" y="1" width="4" height="1" fill="#DDD7B5"/> + <rect x="15" width="2" height="3" fill="#DDD7B5"/> + <rect x="15" y="1" width="2" height="1" fill="#FBB3BE"/> + <rect x="15" y="1" width="1" height="2" fill="#FBB3BE"/> + <rect x="14" y="2" width="2" height="2" fill="#FBB3BE"/> + <rect x="13" y="3" width="2" height="2" fill="#FBB3BE"/> + <rect x="12" y="4" width="3" height="1" fill="#FBB3BE"/> + <rect x="10" y="6" width="1" height="1" fill="black"/> + <rect x="8" y="4" width="1" height="2" fill="black"/> + <rect x="7" y="7" width="4" height="1" fill="#F5F5F7"/> + <rect x="9" y="5" width="3" height="1" fill="#F5F5F7"/> + <rect x="11" y="4" width="1" height="2" fill="black"/> + <rect x="7" y="7" width="2" height="1" fill="black" fill-opacity="0.1"/> + <rect x="6" y="6" width="1" height="1" fill="black" fill-opacity="0.1"/> </g> - <svg width="600" height="300" viewBox="0 0 200 100" fill="none" overflow="visible"> - <g id="dessert-fox-*{id}-shadow" transform="translate(3, 12)"> - <rect width="8" height="1" transform="matrix(-1 0 0 1 8 0.5)" fill="#2B4447" - fill-opacity="0.1"/> - <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 0.25)" fill="#2B4447" - fill-opacity="0.1"/> - <rect width="6.76923" height="0.25" transform="matrix(-1 0 0 1 7.38452 1.5)" fill="#2B4447" - fill-opacity="0.1"/> - <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 0)" fill="#2B4447" - fill-opacity="0.1"/> - <rect width="5.53846" height="0.25" transform="matrix(-1 0 0 1 6.76929 1.75)" fill="#2B4447" - fill-opacity="0.1"/> - </g> - <g id="dessert-fox-*{id}-obj"> - <g id="dessert-fox-*{id}-leg-left" transform="translate(5, 10)"> - <rect width="2" height="3" fill="#DDD7B5"/> - </g> - <g id="dessert-fox-*{id}-leg-right" transform="translate(8, 10)"> - <rect width="2" height="3" fill="#DDD7B5"/> - </g> - <g id="dessert-fox-*{id}-body" transform="translate(-2, 4.5)"> - <rect x="2" y="2" width="3" height="1" fill="#F5F5F7"/> - <rect x="3" y="3" width="3" height="1" fill="#F5F5F7"/> - <rect y="3" width="2" height="1" fill="#F5F5F7"/> - <rect x="3" y="2" width="8" height="1" fill="#DDD7B5"/> - <rect x="7" width="6" height="4" fill="#DDD7B5"/> - <rect x="7" y="2" width="6" height="2" fill="#DDD7B5"/> - <rect x="4" y="2" width="8" height="2" fill="#DDD7B5"/> - <rect x="6" y="1" width="7" height="3" fill="#DDD7B5"/> - <rect x="6" y="3" width="7" height="2" fill="#DDD7B5"/> - <rect x="9" y="2" width="3" height="3" fill="#F5F5F7"/> - <rect x="8" y="3" width="3" height="2" fill="#F5F5F7"/> - <rect x="7" y="4" width="3" height="1" fill="#F5F5F7"/> - <rect x="2" y="1" width="2" height="1" fill="#DDD7B5"/> - <rect x="1" y="2" width="1" height="1" fill="#DDD7B5"/> - <rect y="3" width="1" height="1" fill="#DDD7B5"/> - <rect x="4" y="3" width="2" height="1" fill="black" fill-opacity="0.1"/> - <rect x="6" y="4" width="2" height="1" fill="black" fill-opacity="0.1"/> - <rect x="3" y="2" width="1" height="1" fill="black" fill-opacity="0.1"/> - </g> - <g id="dessert-fox-*{id}-head" transform="translate(0, 0)"> - <rect x="7" y="2" width="4" height="5" fill="#DDD7B5"/> - <rect x="9" y="5" width="2" height="2" fill="#F5F5F7"/> - <rect x="6" y="3" width="6" height="4" fill="#DDD7B5"/> - <rect x="8" y="6" width="4" height="1" fill="#F5F5F7"/> - <rect x="8" y="6" width="3" height="2" fill="#F5F5F7"/> - <rect x="6" y="3" width="6" height="1" fill="#DDD7B5"/> - <rect x="3" y="4" width="12" height="1" fill="#DDD7B5"/> - <rect x="5" y="3" width="8" height="3" fill="#DDD7B5"/> - <rect x="7" y="7" width="4" height="1" fill="#DDD7B5"/> - <rect x="1" y="2" width="4" height="1" fill="#DDD7B5"/> - <rect y="1" width="4" height="1" fill="#DDD7B5"/> - <rect x="1" width="2" height="3" fill="#DDD7B5"/> - <rect x="1" y="1" width="2" height="1" fill="#FBB3BE"/> - <rect x="2" y="1" width="1" height="2" fill="#FBB3BE"/> - <rect x="2" y="2" width="2" height="2" fill="#FBB3BE"/> - <rect x="3" y="3" width="2" height="2" fill="#FBB3BE"/> - <rect x="3" y="4" width="3" height="1" fill="#FBB3BE"/> - <rect x="13" y="2" width="4" height="1" fill="#DDD7B5"/> - <rect x="14" y="1" width="4" height="1" fill="#DDD7B5"/> - <rect x="15" width="2" height="3" fill="#DDD7B5"/> - <rect x="15" y="1" width="2" height="1" fill="#FBB3BE"/> - <rect x="15" y="1" width="1" height="2" fill="#FBB3BE"/> - <rect x="14" y="2" width="2" height="2" fill="#FBB3BE"/> - <rect x="13" y="3" width="2" height="2" fill="#FBB3BE"/> - <rect x="12" y="4" width="3" height="1" fill="#FBB3BE"/> - <rect x="10" y="6" width="1" height="1" fill="black"/> - <rect x="8" y="4" width="1" height="2" fill="black"/> - <rect x="7" y="7" width="4" height="1" fill="#F5F5F7"/> - <rect x="9" y="5" width="3" height="1" fill="#F5F5F7"/> - <rect x="11" y="4" width="1" height="2" fill="black"/> - <rect x="7" y="7" width="2" height="1" fill="black" fill-opacity="0.1"/> - <rect x="6" y="6" width="1" height="1" fill="black" fill-opacity="0.1"/> - </g> - </g> - </svg> </g> </svg> +</g>