diff --git a/contact.png b/contact.png index d36e7ef..845e2a0 100644 Binary files a/contact.png and b/contact.png differ diff --git a/docs/contact-sheet.svg b/docs/contact-sheet.svg index 9244936..fdd6be2 100644 --- a/docs/contact-sheet.svg +++ b/docs/contact-sheet.svg @@ -19,4 +19,4 @@ M 235 270 C 246 259 262 252 280 252 C 297 252 312 258 322 269 - " stroke-width="4" stroke="#000000" fill="none" data-slot-stroke="border" opacity="0.35">cloudcross-diagcross-omnicross-orthcubedline-negdline-posfroghex-flathex-pointyhex-pointy-m123hex-pointy-m21hlinehousehumpbackkatanasmeepleorborb1orb2orb3orcapalacepiecepiece-borderlesspiece-chariotpiece-cogpiece-dashedpiece-horsepiece-lrpiece-pentagonpiece-squarepiece-square-borderlesspiece-square-dashedpiece-square-singlepiece-tbpiece-trianglepiece-triangle-dotplanering-01ring-02ring-12ring-13ring-23sphere-spiralstar-outlinestar-solidtowertrax-cornerstrax-plusvlinewedgewedge-bottom-halfwedge-top-halfwyke-1wyke-2wyke-3wyke-4wyke-5wyke-6wyke-7xyinyangSheet Name: chesschess-amazon-outline-traditionalchess-amazon-solid-traditionalchess-archbishop-outline-traditionalchess-archbishop-solid-traditionalchess-bishop-outline-linechess-bishop-outline-milleniachess-bishop-outline-montrealchess-bishop-outline-traditionalchess-bishop-solid-linechess-bishop-solid-milleniachess-bishop-solid-montrealchess-bishop-solid-traditionalchess-boat-outline-traditionalchess-boat-solid-traditionalchess-centaur-outline-traditionalchess-centaur-solid-traditionalchess-champion-outline-traditionalchess-champion-solid-traditionalchess-chancellor-outline-traditionalchess-chancellor-solid-traditionalchess-commoner-outline-traditionalchess-commoner-solid-traditionalchess-dabbaba-outline-traditionalchess-dabbaba-solid-traditionalchess-dragon-outline-traditionalchess-dragon-solid-traditionalchess-elephant-outline-traditionalchess-elephant-solid-traditionalchess-ex-solid-linechess-ex-solid-milleniachess-ferz-outline-traditionalchess-ferz-solid-traditionalchess-fool-outline-traditionalchess-fool-solid-traditionalchess-giraffe-outline-traditionalchess-giraffe-solid-traditionalchess-king-outline-linechess-king-outline-milleniachess-king-outline-montrealchess-king-outline-traditionalchess-king-solid-linechess-king-solid-milleniachess-king-solid-montrealchess-king-solid-traditionalchess-knight-outline-linechess-knight-outline-milleniachess-knight-outline-montrealchess-knight-outline-traditionalchess-knight-solid-linechess-knight-solid-milleniachess-knight-solid-montrealchess-knight-solid-traditionalchess-mann-outline-traditionalchess-mann-solid-traditionalchess-nightrider-outline-traditionalchess-nightrider-solid-traditionalchess-pawn-outline-linechess-pawn-outline-milleniachess-pawn-outline-montrealchess-pawn-outline-traditionalchess-pawn-solid-linechess-pawn-solid-milleniachess-pawn-solid-montrealchess-pawn-solid-traditionalchess-queen-outline-linechess-queen-outline-milleniachess-queen-outline-montrealchess-queen-outline-traditionalchess-queen-solid-linechess-queen-solid-milleniachess-queen-solid-montrealchess-queen-solid-traditionalchess-rook-outline-linechess-rook-outline-milleniachess-rook-outline-montrealchess-rook-outline-traditionalchess-rook-solid-linechess-rook-solid-milleniachess-rook-solid-montrealchess-rook-solid-traditionalchess-short-rook-outline-traditionalchess-short-rook-solid-traditionalchess-unicorn-outline-traditionalchess-unicorn-solid-traditionalchess-wazir-outline-traditionalchess-wazir-solid-traditionalchess-wizard-outline-traditionalchess-wizard-solid-traditionalchess-zebra-outline-traditionalchess-zebra-solid-traditionalpiece-janggipiece-shogiSheet Name: diced6-1d6-10d6-11d6-12d6-13d6-14d6-15d6-16d6-2d6-3d6-4d6-5d6-6d6-7d6-8d6-9d6-emptySheet Name: dominoestile-01tile-02tile-03tile-04tile-05tile-06tile-07tile-08tile-09tile-10tile-11tile-12tile-13tile-14tile-15Sheet Name: looneypyramid-flat-largepyramid-flat-mediumpyramid-flat-smallpyramid-flattened-largepyramid-flattened-mediumpyramid-flattened-smallpyramid-up-largepyramid-up-large-3Dpyramid-up-large-upscaledpyramid-up-mediumpyramid-up-medium-3Dpyramid-up-medium-upscaledpyramid-up-smallpyramid-up-small-3Dpyramid-up-small-upscaledSheet Name: piecepackpiecepack-misc-coin-backpiecepack-misc-tile-backpiecepack-number-0piecepack-number-1piecepack-number-2piecepack-number-3piecepack-number-4piecepack-number-5piecepack-number-6piecepack-number-7piecepack-number-8piecepack-number-9piecepack-number-voidpiecepack-suit-anchorspiecepack-suit-clubspiecepack-suit-crownspiecepack-suit-diamondspiecepack-suit-fleurdelispiecepack-suit-heartspiecepack-suit-moonspiecepack-suit-spadespiecepack-suit-starspiecepack-suit-sunsSheet Name: streetcarcube-cat-plantcube-lamp-catcube-person-lampcube-plant-personstreetcar-houseSheet Name: natonato-artillerynato-artillery-towednato-cavalryHnato-cavalry-heavynato-infantryLnato-infantry-lightSOFnato-infantry-specialSheet Name: decktetdecktet-0decktet-1decktet-2decktet-3decktet-4decktet-5decktet-6decktet-7decktet-8decktet-9decktet-courtdecktet-crowndecktet-knotsdecktet-leavesdecktet-moonsdecktet-pawndecktet-sunsdecktet-wavesdecktet-wyrmsSheet Name: arimaaarimaa-camelarimaa-catarimaa-dogarimaa-elephantarimaa-horsearimaa-rabbitSheet Name: gnosticagnostica-allSuitsgnostica-cardQuestiongnostica-chameleongnostica-cupgnostica-cupQuestiongnostica-cupWildgnostica-flygnostica-handgnostica-handCyclegnostica-handTradegnostica-stargnostica-starCyclegnostica-swordgnostica-swordCyclegnostica-tipgnostica-transformgnostica-wandgnostica-wandWildSheet Name: experimentalballcrabcrowndragonheadhummingbirdmothowlphoenixsquid \ No newline at end of file + " stroke-width="4" stroke="#000000" fill="none" data-slot-stroke="border" opacity="0.35">cloudcross-diagcross-omnicross-orthcubedline-negdline-posfroghex-flathex-pointyhex-pointy-m123hex-pointy-m21hlinehousehumpbackkatanasmeepleorborb1orb2orb3orcapalacepiecepiece-borderlesspiece-chariotpiece-cogpiece-dashedpiece-horsepiece-lrpiece-pentagonpiece-squarepiece-square-borderlesspiece-square-dashedpiece-square-singlepiece-tbpiece-trianglepiece-triangle-dotplanering-01ring-02ring-12ring-13ring-23sphere-spiralstar-outlinestar-solidtowertrax-cornerstrax-plusvlinewedgewedge-bottom-halfwedge-top-halfwyke-1wyke-2wyke-3wyke-4wyke-5wyke-6wyke-7xyinyangSheet Name: chesschess-amazon-outline-traditionalchess-amazon-solid-traditionalchess-archbishop-outline-traditionalchess-archbishop-solid-traditionalchess-bishop-outline-linechess-bishop-outline-milleniachess-bishop-outline-montrealchess-bishop-outline-traditionalchess-bishop-solid-linechess-bishop-solid-milleniachess-bishop-solid-montrealchess-bishop-solid-traditionalchess-boat-outline-traditionalchess-boat-solid-traditionalchess-centaur-outline-traditionalchess-centaur-solid-traditionalchess-champion-outline-traditionalchess-champion-solid-traditionalchess-chancellor-outline-traditionalchess-chancellor-solid-traditionalchess-commoner-outline-traditionalchess-commoner-solid-traditionalchess-dabbaba-outline-traditionalchess-dabbaba-solid-traditionalchess-dragon-outline-traditionalchess-dragon-solid-traditionalchess-elephant-outline-traditionalchess-elephant-solid-traditionalchess-ex-solid-linechess-ex-solid-milleniachess-ferz-outline-traditionalchess-ferz-solid-traditionalchess-fool-outline-traditionalchess-fool-solid-traditionalchess-giraffe-bishop-outline-traditionalchess-giraffe-bishop-solid-traditionalchess-giraffe-outline-traditionalchess-giraffe-solid-traditionalchess-king-outline-linechess-king-outline-milleniachess-king-outline-montrealchess-king-outline-traditionalchess-king-solid-linechess-king-solid-milleniachess-king-solid-montrealchess-king-solid-traditionalchess-knight-outline-linechess-knight-outline-milleniachess-knight-outline-montrealchess-knight-outline-traditionalchess-knight-solid-linechess-knight-solid-milleniachess-knight-solid-montrealchess-knight-solid-traditionalchess-mann-outline-traditionalchess-mann-solid-traditionalchess-nightrider-outline-traditionalchess-nightrider-solid-traditionalchess-pawn-outline-linechess-pawn-outline-milleniachess-pawn-outline-montrealchess-pawn-outline-traditionalchess-pawn-solid-linechess-pawn-solid-milleniachess-pawn-solid-montrealchess-pawn-solid-traditionalchess-queen-outline-linechess-queen-outline-milleniachess-queen-outline-montrealchess-queen-outline-traditionalchess-queen-solid-linechess-queen-solid-milleniachess-queen-solid-montrealchess-queen-solid-traditionalchess-rook-outline-linechess-rook-outline-milleniachess-rook-outline-montrealchess-rook-outline-traditionalchess-rook-solid-linechess-rook-solid-milleniachess-rook-solid-montrealchess-rook-solid-traditionalchess-short-rook-outline-traditionalchess-short-rook-solid-traditionalchess-unicorn-outline-traditionalchess-unicorn-solid-traditionalchess-wazir-outline-traditionalchess-wazir-solid-traditionalchess-wizard-outline-traditionalchess-wizard-solid-traditionalchess-zebra-outline-traditionalchess-zebra-solid-traditionalpiece-janggipiece-shogiSheet Name: diced6-1d6-10d6-11d6-12d6-13d6-14d6-15d6-16d6-2d6-3d6-4d6-5d6-6d6-7d6-8d6-9d6-emptySheet Name: dominoestile-01tile-02tile-03tile-04tile-05tile-06tile-07tile-08tile-09tile-10tile-11tile-12tile-13tile-14tile-15Sheet Name: looneypyramid-flat-largepyramid-flat-mediumpyramid-flat-smallpyramid-flattened-largepyramid-flattened-mediumpyramid-flattened-smallpyramid-up-largepyramid-up-large-3Dpyramid-up-large-upscaledpyramid-up-mediumpyramid-up-medium-3Dpyramid-up-medium-upscaledpyramid-up-smallpyramid-up-small-3Dpyramid-up-small-upscaledSheet Name: piecepackpiecepack-misc-coin-backpiecepack-misc-tile-backpiecepack-number-0piecepack-number-1piecepack-number-2piecepack-number-3piecepack-number-4piecepack-number-5piecepack-number-6piecepack-number-7piecepack-number-8piecepack-number-9piecepack-number-voidpiecepack-suit-anchorspiecepack-suit-clubspiecepack-suit-crownspiecepack-suit-diamondspiecepack-suit-fleurdelispiecepack-suit-heartspiecepack-suit-moonspiecepack-suit-spadespiecepack-suit-starspiecepack-suit-sunsSheet Name: streetcarcube-cat-plantcube-lamp-catcube-person-lampcube-plant-personstreetcar-houseSheet Name: natonato-artillerynato-artillery-towednato-cavalryHnato-cavalry-heavynato-infantryLnato-infantry-lightSOFnato-infantry-specialSheet Name: decktetdecktet-0decktet-1decktet-2decktet-3decktet-4decktet-5decktet-6decktet-7decktet-8decktet-9decktet-courtdecktet-crowndecktet-knotsdecktet-leavesdecktet-moonsdecktet-pawndecktet-sunsdecktet-wavesdecktet-wyrmsSheet Name: arimaaarimaa-camelarimaa-catarimaa-dogarimaa-elephantarimaa-horsearimaa-rabbitSheet Name: gnosticagnostica-allSuitsgnostica-cardQuestiongnostica-chameleongnostica-cupgnostica-cupQuestiongnostica-cupWildgnostica-flygnostica-handgnostica-handCyclegnostica-handTradegnostica-stargnostica-starCyclegnostica-swordgnostica-swordCyclegnostica-tipgnostica-transformgnostica-wandgnostica-wandWildSheet Name: experimentalballcrabcrowndragonheadhummingbirdmothowlphoenixsquid \ No newline at end of file diff --git a/docs/glyph-slots.md b/docs/glyph-slots.md index d16b9c4..229fc46 100644 --- a/docs/glyph-slots.md +++ b/docs/glyph-slots.md @@ -25,7 +25,7 @@ Regenerate with `npm run glyph-catalog`. Machine-readable author JSON: `build/gl | chess | `chess-bishop-solid-montreal` | fill (fill), border (stroke), highlight (fill+stroke) | — | | chess | `chess-bishop-solid-traditional` | fill (fill), border (stroke), highlight (fill+stroke) | — | | chess | `chess-boat-outline-traditional` | fill (fill), border (fill+stroke) | — | -| chess | `chess-boat-solid-traditional` | fill (fill), highlight (fill+stroke), border (stroke) | — | +| chess | `chess-boat-solid-traditional` | fill (fill), border (stroke), highlight (fill+stroke) | — | | chess | `chess-centaur-outline-traditional` | fill (fill), border (fill+stroke) | — | | chess | `chess-centaur-solid-traditional` | fill (fill), border (stroke), highlight (fill+stroke) | — | | chess | `chess-champion-outline-traditional` | fill (fill), border (fill+stroke) | — | @@ -46,8 +46,10 @@ Regenerate with `npm run glyph-catalog`. Machine-readable author JSON: `build/gl | chess | `chess-ferz-solid-traditional` | fill (fill), border (stroke), highlight (fill+stroke) | — | | chess | `chess-fool-outline-traditional` | fill (fill), border (fill+stroke) | — | | chess | `chess-fool-solid-traditional` | fill (fill), border (stroke), highlight (fill+stroke) | — | +| chess | `chess-giraffe-bishop-outline-traditional` | fill (fill), border (fill+stroke) | — | +| chess | `chess-giraffe-bishop-solid-traditional` | fill (fill), border (stroke), highlight (fill+stroke) | — | | chess | `chess-giraffe-outline-traditional` | fill (fill), border (fill+stroke) | — | -| chess | `chess-giraffe-solid-traditional` | fill (fill), highlight (fill+stroke), border (stroke) | — | +| chess | `chess-giraffe-solid-traditional` | fill (fill), border (stroke), highlight (fill+stroke) | — | | chess | `chess-king-outline-line` | fill (fill), border (fill+stroke) | — | | chess | `chess-king-outline-millenia` | fill (fill), border (fill+stroke) | — | | chess | `chess-king-outline-montreal` | fill (fill), border (fill+stroke) | — | diff --git a/src/sheets/contact/chess.ts b/src/sheets/contact/chess.ts index 537435e..699e17c 100644 --- a/src/sheets/contact/chess.ts +++ b/src/sheets/contact/chess.ts @@ -279,18 +279,17 @@ registerDuotoneGlyph(sheet, "chess-boat-outline-traditional", (canvas: SVGContai registerSolidChessGlyph(sheet, "chess-boat-solid-traditional", (canvas: SVGContainer) => { const symbol = canvas.symbol(); const group = symbol.group() - .attr("data-slot-stroke", "border") .attr("data-slot-fill", "fill") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .fill({color: "#000", opacity: 1, rule: "evenodd"}) .stroke({color: "#000", width: 1.5, linecap: "round", linejoin: "round", miterlimit: 4}); group.path("M24.989 8.206v19.17") .fill("none") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .stroke({color: "#000", width: 3, linejoin: "miter"}); group.path("M7.543 25.209l17.42-17.07 14.85 17.67") .fill("none") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .stroke({color: "#000", width: 0.8, linejoin: "miter", linecap: "round"}); group.path("M25.029 8.206v19.17") .attr("data-slot-stroke", "highlight") @@ -920,6 +919,74 @@ registerSolidChessGlyph(sheet, "chess-fool-solid-traditional", (canvas: SVGConta return symbol; }); +registerDuotoneGlyph(sheet, "chess-giraffe-bishop-outline-traditional", (canvas: SVGContainer) => { + const symbol = canvas.symbol(); + const group = symbol.group() + .attr("data-slot-fill", "fill") + .attr("data-slot-stroke", "border") + .fill({color: "#fff", opacity: 1, rule: "evenodd"}) + .stroke({color: "#000", width: 1.5, linecap: "round", linejoin: "round", miterlimit: 4}); + group.path("M 41 36 C 37.6 35 30.9 36.4 27.5 34 C 24.1 36.4 17.4 35 14 36 C 14 36 12.4 36.5 11 38 C 11.7 39 12.6 39 14 38.5 C 17.4 37.5 24.1 39 27.5 37.5 C 30.9 39 37.6 37.5 41 38.5 C 42.4 39 43.3 39 44 38 C 42.6 36.1 41 36 41 36 Z"); + group.path("M 35 32 C 32.5 34.5 22.5 34.5 20 32 C 19.5 30.5 20 30 20 30 H 35 C 35 30 35.5 30.5 35 32 Z"); + group.path("M 16.36 0.93 H 18.91 M 17.72 5.01 V -1.15") + .fill("none"); + group.path("M 34.975 29.97 C 29.66845 28.002 31.184 8.7732 27.39385 5.494 C 28.29485 4.6188 31.18485 3.526 28.91025 2.87 C 24.36105 1.558 25.87745 2.87 22.84465 4.182 C 19.8127 4.182 13.7471 1.558 12.2307 9.4292 C 10.71515 12.0524 7.68235 12.0524 6.16595 14.6764 C 5.208 16.3292 7.68235 19.9228 12.2307 15.9884 C 16.7799 15.9884 19.81185 15.9884 21.32825 13.3644 C 22.41965 15.9884 24.78605 16.8524 24.78605 23.3644 C 24.78605 25.9244 23.08605 27.8444 19.68605 29.97 Z"); + group.path("M 19.335 1.81 H 21.885 M 20.695 5.89 V -0.27") + .fill("none"); + group.path("M 15.31825 8.74937 A 0.36805 1.0392 0 1 1 14.58215 8.34937 A 0.36805 1.0392 0 1 1 15.31825 8.74937 Z") + .attr("data-slot-fill", "border") + .fill("#000") + .stroke("none"); + group.path("M 27.41 14.69 A 1.4705 2 0 1 1 24.469 14.69 A 1.4705 2 0 1 1 27.41 14.69 Z") + .attr("data-slot-fill", "border") + .fill("#000") + .stroke("none"); + group.path("M 29.1355 20.69 A 1.4705 2 0 1 1 26.1945 20.69 A 1.4705 2 0 1 1 29.1355 20.69 Z") + .attr("data-slot-fill", "border") + .fill("#000") + .stroke("none"); + group.path("M20.5 30h14") + .attr("data-slot-stroke", "border") + .fill("none") + .stroke({color: "#000", width: 1.1}); + symbol.viewbox(3.5, -2.5, 42, 43.5); + return symbol; +}); + +registerSolidChessGlyph(sheet, "chess-giraffe-bishop-solid-traditional", (canvas: SVGContainer) => { + const symbol = canvas.symbol(); + const group = symbol.group() + .attr("data-slot-fill", "fill") + .attr("data-slot-stroke", "border") + .fill({color: "#000", opacity: 1, rule: "evenodd"}) + .stroke({color: "#000", width: 1.5, linecap: "round", linejoin: "round", miterlimit: 4}); + group.path("M 41 36 C 37.6 35 30.9 36.4 27.5 34 C 24.1 36.4 17.4 35 14 36 C 14 36 12.4 36.5 11 38 C 11.7 39 12.6 39 14 38.5 C 17.4 37.5 24.1 39 27.5 37.5 C 30.9 39 37.6 37.5 41 38.5 C 42.4 39 43.3 39 44 38 C 42.6 36.1 41 36 41 36 Z"); + group.path("M 35 32 C 32.5 34.5 22.5 34.5 20 32 C 19.5 30.5 20 30 20 30 H 35 C 35 30 35.5 30.5 35 32 Z"); + group.path("M 16.36 0.93 H 18.91 M 17.72 5.01 V -1.15") + .fill("none"); + group.path("M 34.975 29.97 C 29.66845 28.002 31.184 8.7732 27.39385 5.494 C 28.29485 4.6188 31.18485 3.526 28.91025 2.87 C 24.36105 1.558 25.87745 2.87 22.84465 4.182 C 19.8127 4.182 13.7471 1.558 12.2307 9.4292 C 10.71515 12.0524 7.68235 12.0524 6.16595 14.6764 C 5.208 16.3292 7.68235 19.9228 12.2307 15.9884 C 16.7799 15.9884 19.81185 15.9884 21.32825 13.3644 C 22.41965 15.9884 24.78605 16.8524 24.78605 23.3644 C 24.78605 25.9244 23.08605 27.8444 19.68605 29.97 Z"); + group.path("M 19.335 1.81 H 21.885 M 20.695 5.89 V -0.27") + .fill("none"); + group.path("M 15.31825 8.74937 A 0.36805 1.0392 0 1 1 14.58215 8.34937 A 0.36805 1.0392 0 1 1 15.31825 8.74937 Z") + .attr("data-slot-fill", "highlight") + .fill("#fff") + .stroke("none"); + group.path("M 27.41 14.69 A 1.4705 2 0 1 1 24.469 14.69 A 1.4705 2 0 1 1 27.41 14.69 Z") + .attr("data-slot-fill", "highlight") + .fill("#fff") + .stroke("none"); + group.path("M 29.1355 20.69 A 1.4705 2 0 1 1 26.1945 20.69 A 1.4705 2 0 1 1 29.1355 20.69 Z") + .attr("data-slot-fill", "highlight") + .fill("#fff") + .stroke("none"); + group.path("M20.5 30h14") + .attr("data-slot-stroke", "highlight") + .fill("none") + .stroke({color: "#fff", width: 1.1}); + symbol.viewbox(3.5, -2.5, 42, 43.5); + return symbol; +}); + registerDuotoneGlyph(sheet, "chess-giraffe-outline-traditional", (canvas: SVGContainer) => { const symbol = canvas.symbol(); const group = symbol.group() @@ -959,27 +1026,26 @@ registerDuotoneGlyph(sheet, "chess-giraffe-outline-traditional", (canvas: SVGCon registerSolidChessGlyph(sheet, "chess-giraffe-solid-traditional", (canvas: SVGContainer) => { const symbol = canvas.symbol(); const group = symbol.group() - .attr("data-slot-stroke", "border") .attr("data-slot-fill", "fill") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .fill({color: "#000", opacity: 1, rule: "evenodd"}) .stroke({color: "#000", width: 1.5, linecap: "round", linejoin: "round", miterlimit: 4}); group.path("m39.5,40.1003l0,-5.478001c-6.243401,-2.459599 -4.459599,-20.018399 -8.919201,-24.117703c1.059601,-1.09367 4.459602,-2.45955 1.783901,-3.279408c-5.351601,-1.63971 -3.567801,0 -7.135401,1.63972c-3.567699,0 -10.703099,-3.27943 -12.486899,6.55879c-1.7838,3.279499 -5.35153,3.279499 -7.13536,6.558897c-1.12738,2.066 1.78383,6.558805 7.13536,1.6397c5.351501,0 8.9192,0 10.703,-3.2794c1.783899,3.2794 4.567699,4.3603 4.567699,20.757404l11.4869,0l0,-1z"); group.path("m17.6,4.8l3,0") .fill("none") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .stroke({color: "#000", width: 1.5}); group.path("m19.2,9.9l0,-7.7") .fill("none") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .stroke({color: "#000", width: 1.5}); group.path("m21.1,5.9l3,0") .fill("none") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .stroke({color: "#000", width: 1.5}); group.path("m22.7,11l0,-7.7") .fill("none") - .attr("data-slot-stroke", "highlight") + .attr("data-slot-stroke", "border") .stroke({color: "#000", width: 1.5}); group.path("m16.37441,14.57421a0.433,1.299 0 1 1 -0.866,-0.5a0.433,1.299 0 1 1 0.866,0.5z") .attr("data-slot-fill", "highlight") diff --git a/src/sheets/registry/glyph-slots.catalog.json b/src/sheets/registry/glyph-slots.catalog.json index e5a9c16..71de6ed 100644 --- a/src/sheets/registry/glyph-slots.catalog.json +++ b/src/sheets/registry/glyph-slots.catalog.json @@ -1,6 +1,6 @@ { "version": 1, - "generated": "2026-10-18T18:03:16.228Z", + "generated": "2026-10-18T18:06:01.926Z", "glyphs": { "core:arrowhead": { "sheet": "core", @@ -1640,18 +1640,18 @@ ], "description": "Solid piece body." }, - "highlight": { + "border": { "channels": [ - "fill", "stroke" ], - "description": "Interior line work and accents." + "description": "Outer silhouette rim." }, - "border": { + "highlight": { "channels": [ + "fill", "stroke" ], - "description": "Outer silhouette rim." + "description": "Interior line work and accents." } }, "colour2Slot": "border" @@ -2122,9 +2122,9 @@ }, "colour2Slot": "border" }, - "chess:chess-giraffe-outline-traditional": { + "chess:chess-giraffe-bishop-outline-traditional": { "sheet": "chess", - "name": "chess-giraffe-outline-traditional", + "name": "chess-giraffe-bishop-outline-traditional", "slots": { "fill": { "channels": [ @@ -2142,9 +2142,9 @@ }, "colour2Slot": "border" }, - "chess:chess-giraffe-solid-traditional": { + "chess:chess-giraffe-bishop-solid-traditional": { "sheet": "chess", - "name": "chess-giraffe-solid-traditional", + "name": "chess-giraffe-bishop-solid-traditional", "slots": { "fill": { "channels": [ @@ -2152,18 +2152,64 @@ ], "description": "Solid piece body." }, + "border": { + "channels": [ + "stroke" + ], + "description": "Outer silhouette rim." + }, "highlight": { "channels": [ "fill", "stroke" ], "description": "Interior line work and accents." + } + }, + "colour2Slot": "border" + }, + "chess:chess-giraffe-outline-traditional": { + "sheet": "chess", + "name": "chess-giraffe-outline-traditional", + "slots": { + "fill": { + "channels": [ + "fill" + ], + "description": "Primary player colour (body or main silhouette)." + }, + "border": { + "channels": [ + "fill", + "stroke" + ], + "description": "Secondary outline, rim, or theme border band." + } + }, + "colour2Slot": "border" + }, + "chess:chess-giraffe-solid-traditional": { + "sheet": "chess", + "name": "chess-giraffe-solid-traditional", + "slots": { + "fill": { + "channels": [ + "fill" + ], + "description": "Solid piece body." }, "border": { "channels": [ "stroke" ], "description": "Outer silhouette rim." + }, + "highlight": { + "channels": [ + "fill", + "stroke" + ], + "description": "Interior line work and accents." } }, "colour2Slot": "border" diff --git a/test/wikimediaChessFairy.test.ts b/test/wikimediaChessFairy.test.ts index c37c5bd..82d8616 100644 --- a/test/wikimediaChessFairy.test.ts +++ b/test/wikimediaChessFairy.test.ts @@ -40,11 +40,11 @@ describe("Wikimedia fairy chess import", () => { expect(block).to.match(/M22\.5 19v12[\s\S]*\.attr\("data-slot-stroke", "highlight"\)/); }); - it("giraffe solid horns use highlight stroke slot", () => { + it("giraffe solid horns use border stroke slot", () => { const chessTs = fs.readFileSync("src/sheets/contact/chess.ts", "utf8"); const block = extractGlyphBlock(chessTs, "chess-giraffe-solid-traditional"); - expect(block).to.match(/m17\.6,4\.8[\s\S]*\.attr\("data-slot-stroke", "highlight"\)/); - expect(block).to.match(/m22\.7,11[\s\S]*\.attr\("data-slot-stroke", "highlight"\)/); + expect(block).to.match(/m17\.6,4\.8[\s\S]*\.attr\("data-slot-stroke", "border"\)/); + expect(block).to.match(/m22\.7,11[\s\S]*\.attr\("data-slot-stroke", "border"\)/); }); it("knight solid nose stroke uses highlight slot like mane highlight", () => { @@ -123,7 +123,7 @@ describe("Wikimedia fairy chess import", () => { expect(sailIdx).to.be.greaterThan(ropeIdx, "rigging sits under the sail fill"); const ropeEnd = block.indexOf("width: 0.8", ropeIdx); expect(ropeEnd).to.be.greaterThan(ropeIdx); - expect(block.slice(ropeIdx, ropeEnd)).to.include('.attr("data-slot-stroke", "highlight")'); + expect(block.slice(ropeIdx, ropeEnd)).to.include('.attr("data-slot-stroke", "border")'); }); it("short rook renders smaller than standard rook", () => {