Board artwork: one component draws the game, the hall's still, and the share card, with gradients on the pieces, plank joins and inlaid corners on the oak, and the stone as it was

npm run art renders the standalone SVGs and the 1200 by 630 card through
Sharp, a development dependency only.
This commit is contained in:
Eric Wagoner committed 2026-09-23 19:32:15 -04:00
1 parent 145667ea0d
commit a213a238d3
12 files changed
+1089 -382

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="630" viewBox="0 0 1200 630">
<rect width="1200" height="630" fill="#14181a"/>
<image x="62" y="80" width="470" height="470" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJhcnR3b3JrIHN2ZWx0ZS0xNHhzejljIGNhbG0iIGRhdGEtc2V0PSJjb3BlbmhhZ2VuIiB2aWV3Qm94PSIwIDAgNDUyIDQ1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJDb3BlbmhhZ2VuIGJvYXJkIGluIGl0cyBvcGVuaW5nIHBvc2l0aW9uIj48c3R5bGU+LmFydHdvcmsuc3ZlbHRlLTE0eHN6OWMgewoJCS8qIENvcGVuaGFnZW46IGEgY3JhZnRlZCBvYWsgYm9hcmQsIHBvbGlzaGVkIGNvdW50ZXJzIGFuZCBicmFzcyBpbmxheS4gKi8tLXN1cmZhY2UtbGlnaHQ6ICNiZDkzNWM7LS1zdXJmYWNlLWRhcms6ICM3OTUwMmQ7LS1yaW0tbGlnaHQ6ICNlMGJmODQ7LS1hdHRhY2tlci1saWdodDogIzYzNTY0YTstLWRlZmVuZGVyLWxpZ2h0OiAjZmZmNGQ4Oy0ta2luZy1saWdodDogI2ZmZTRhMDstLXdvb2Q6ICNhNzc5NDU7LS13b29kLWxpbmU6IHJnYmEoMzAsIDE2LCA2LCAwLjU1KTstLWNvb3JkOiAjMzAyMjE2Oy0tc3F1YXJlOiByZ2JhKDI1NSwgMjQwLCAyMTAsIDAuMDgpOy0tc3F1YXJlLWVkZ2U6IHJnYmEoMjU1LCAyNTAsIDIzNSwgMC4xMSk7LS10aHJvbmU6IHJnYmEoMjQwLCAxNjUsIDU4LCAwLjM1KTstLWNvcm5lcjogcmdiYSgxMDksIDUyLCAyOSwgMC4yMik7LS1hdHRhY2tlcjogIzJhMjMyMDstLWF0dGFja2VyLXJpbTogIzIxMWExNTstLWRlZmVuZGVyOiAjZWNlNGQwOy0tZGVmZW5kZXItcmltOiAjYjlhYjhiOy0ta2luZzogI2YwZDU4YTstLWtpbmctcmltOiAjYTY3YzFhOy0tY3Jvd246ICM2YjRhMGY7fQoKCS8qIFRhYmx1dDogYW4gZXhjYXZhdGVkLW9iamVjdCBhZXN0aGV0aWMsIHdpdGggbGltZXN0b25lIGFuZCBhZ2VkIGNvdW50ZXJzLiAqLy5hcnR3b3JrW2RhdGEtc2V0PSd0YWJsdXQnXS5zdmVsdGUtMTR4c3o5YyB7LS1zdXJmYWNlLWxpZ2h0OiAjYWFhMThiOy0tc3VyZmFjZS1kYXJrOiAjNzk3NTY0Oy0tcmltLWxpZ2h0OiAjYzRiOTllOy0tYXR0YWNrZXItbGlnaHQ6ICM1MzRmNDM7LS1kZWZlbmRlci1saWdodDogI2RlZDBhZTstLWtpbmctbGlnaHQ6ICNlNWNjOTI7LS13b29kOiAjOGE4NTc4Oy0td29vZC1saW5lOiByZ2JhKDM2LCAzMiwgMjcsIDAuNDUpOy0tY29vcmQ6ICMzNzM2MmM7LS1zcXVhcmU6IHJnYmEoMjU1LCAyNTAsIDIzNSwgMC4wNSk7LS1zcXVhcmUtZWRnZTogcmdiYSgyNTUsIDI1MCwgMjM1LCAwLjA5KTstLXRocm9uZTogcmdiYSgxMjAsIDEwMCwgNzAsIDAuNCk7LS1jb3JuZXI6IHRyYW5zcGFyZW50Oy0tYXR0YWNrZXI6ICMzZDM1MzA7LS1hdHRhY2tlci1yaW06ICMyOTI4MWY7LS1kZWZlbmRlcjogI2NmYzRhZDstLWRlZmVuZGVyLXJpbTogIzhjODA2OTstLWtpbmc6ICNjOWIyN2E7LS1raW5nLXJpbTogIzdkNjYzNjstLWNyb3duOiAjNWE0YTJhO30uYXJ0d29yay5zdmVsdGUtMTR4c3o5YyB7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztkaXNwbGF5OmJsb2NrO30ud29vZC5zdmVsdGUtMTR4c3o5YyB7c3Ryb2tlOiM3OTUwMmQ7c3Ryb2tlLXdpZHRoOjEuNDt9LnN0YWluLnN2ZWx0ZS0xNHhzejljIHtmaWxsOiNmZmY7cG9pbnRlci1ldmVudHM6bm9uZTt9LmNoaXAuc3ZlbHRlLTE0eHN6OWMge2ZpbGw6cmdiYSgyOCwgMjQsIDIwLCAwLjQyKTtzdHJva2U6cmdiYSgyMzAsIDIyMiwgMjA1LCAwLjE4KTtzdHJva2Utd2lkdGg6MC42O3BvaW50ZXItZXZlbnRzOm5vbmU7fS5jcmFjay5zdmVsdGUtMTR4c3o5YyB7ZmlsbDpub25lO3N0cm9rZTpyZ2JhKDQzLCAzOSwgMjksIDAuNDgpO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7cG9pbnRlci1ldmVudHM6bm9uZTt9LmNvb3JkLnN2ZWx0ZS0xNHhzejljIHtmaWxsOiMzMDIyMTY7Zm9udC1mYW1pbHk6R2VvcmdpYSwgc2VyaWY7Zm9udC1zaXplOjlweDtmb250LXdlaWdodDo2MDA7cG9pbnRlci1ldmVudHM6bm9uZTt9LnNxdWFyZS5zdmVsdGUtMTR4c3o5YyB7ZmlsbDpyZ2JhKDI1NSwgMjQwLCAyMTAsIDAuMDgpO3N0cm9rZTpyZ2JhKDMwLCAxNiwgNiwgMC41NSk7c3Ryb2tlLXdpZHRoOjAuNjU7Y3Vyc29yOmRlZmF1bHQ7dHJhbnNpdGlvbjpmaWxsIDAuM3MgZWFzZTt9LnNxdWFyZS5lZGdlLnN2ZWx0ZS0xNHhzejljIHtmaWxsOnJnYmEoMjU1LCAyNTAsIDIzNSwgMC4xMSk7fS5zcXVhcmUudGhyb25lLnN2ZWx0ZS0xNHhzejljIHtmaWxsOnJnYmEoMjQwLCAxNjUsIDU4LCAwLjM1KTt9LnNxdWFyZS5jb3JuZXIuc3ZlbHRlLTE0eHN6OWMge2ZpbGw6cmdiYSgxMDksIDUyLCAyOSwgMC4yMik7fS5zcXVhcmUubGFzdC5zdmVsdGUtMTR4c3o5YyB7ZmlsbDpyZ2JhKDE0MCwgMjAwLCAyMjQsIDAuMjgpO30uc3F1YXJlLnRhcmdldC5zdmVsdGUtMTR4c3o5YyB7Y3Vyc29yOnBvaW50ZXI7fS5zcXVhcmUuZmFsbGVuLnN2ZWx0ZS0xNHhzejljIHtmaWxsOnJnYmEoMjI0LCAxMDEsIDkyLCAwLjQ1KTt9LnNxdWFyZS5zdmVsdGUtMTR4c3o5Yzpmb2N1cy12aXNpYmxlIHtvdXRsaW5lOm5vbmU7c3Ryb2tlOiM5Y2NiZGQ7c3Ryb2tlLXdpZHRoOjIuNTt9LmhpbnQuc3ZlbHRlLTE0eHN6OWMge2ZpbGw6IzljY2JkZDtvcGFjaXR5OjAuODU7fS5waWVjZS5zdmVsdGUtMTR4c3o5YyB7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4zNnMgY3ViaWMtYmV6aWVyKDAuMiwgMC43LCAwLjIsIDEpLAoJCQlvcGFjaXR5IDAuM3MgZWFzZTt9LnBpZWNlLmR5aW5nLnN2ZWx0ZS0xNHhzejljIHtvcGFjaXR5OjA7fS5ib2FyZC1yaW0uc3ZlbHRlLTE0eHN6OWMge2ZpbGw6bm9uZTtzdHJva2U6I2UwYmY4NDtzdHJva2Utd2lkdGg6MC43O29wYWNpdHk6MC42NTtwb2ludGVyLWV2ZW50czpub25lO30uam9pbi5zdmVsdGUtMTR4c3o5YyB7ZmlsbDpub25lO3N0cm9rZTojNTAzNTFmO3N0cm9rZS13aWR0aDowLjY7b3BhY2l0eTowLjE4O3BvaW50ZXItZXZlbnRzOm5vbmU7fS5zdXJmYWNlLXdlYXIuc3ZlbHRlLTE0eHN6OWMge3BvaW50ZXItZXZlbnRzOm5vbmU7fS5jcmFjay1saWdodC5zdmVsdGUtMTR4c3o5YyB7ZmlsbDpub25lO3N0cm9rZTojZTFkNmJkO3N0cm9rZS13aWR0aDowLjU1O29wYWNpdHk6MC40NTt9LmlubGF5LnN2ZWx0ZS0xNHhzejljIHtmaWxsOm5vbmU7c3Ryb2tlOiNlMGJmODQ7c3Ryb2tlLXdpZHRoOjAuODtvcGFjaXR5OjAuNzU7cG9pbnRlci1ldmVudHM6bm9uZTt9LmFydHdvcmtbZGF0YS1zZXQ9J3RhYmx1dCddLnN2ZWx0ZS0xNHhzejljIC5pbmxheS5zdmVsdGUtMTR4c3o5YyB7c3Ryb2tlOiM0OTQ2Mzg7b3BhY2l0eTowLjQ1O30ucGllY2Uuc3ZlbHRlLTE0eHN6OWMgey0tcGllY2UtcmltOiAjYjlhYjhiO30ucGllY2UuYXR0YWNrZXIuc3ZlbHRlLTE0eHN6OWMgey0tcGllY2UtcmltOiAjMjExYTE1O30ucGllY2Uua2luZy5zdmVsdGUtMTR4c3o5YyB7LS1waWVjZS1yaW06ICNhNjdjMWE7fS5waWVjZS5zdmVsdGUtMTR4c3o5YyAuc2hhZG93LnN2ZWx0ZS0xNHhzejljIHtmaWxsOiMxNjEzMGU7b3BhY2l0eTowLjI4O30ucGllY2Uuc3ZlbHRlLTE0eHN6OWMgLmJhc2Uuc3ZlbHRlLTE0eHN6OWMge2ZpbGw6I2I5YWI4Yjt9LnBpZWNlLnN2ZWx0ZS0xNHhzejljIC5ib2R5LnN2ZWx0ZS0xNHhzejljIHtzdHJva2U6I2I5YWI4YjtzdHJva2Utd2lkdGg6MC42NTt9LmJldmVsLWxpZ2h0LnN2ZWx0ZS0xNHhzejljIHtmaWxsOm5vbmU7c3Ryb2tlOiNmZmYxY2M7c3Ryb2tlLXdpZHRoOjAuOTtvcGFjaXR5OjAuNDg7c3RybLine truncated
<g font-family="Georgia, serif">
<text x="590" y="180" font-size="82" fill="#e6dfcf">Hnefatafl</text>
<text x="594" y="246" font-size="30" fill="#e6dfcf">The Viking board game.</text>
<text x="594" y="294" font-size="27" fill="#aeb3ab">
<tspan x="594">One king, one throne, four corners,</tspan>
<tspan x="594" dy="38">and a ring of attackers closing in.</tspan>
<tspan x="594" dy="50">Play a housecarl or a friend.</tspan>
<tspan x="594" dy="38">Copenhagen or Linnaeus’s Tablut.</tspan>
</text>
<text x="594" y="491" font-size="24" fill="#c5ae7b">tafl.kestrelsnest.social</text>
<text x="594" y="526" font-size="22" fill="#9ea59e">Free · no accounts</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 57 KiB