Plate 17 inches across, a zone from the batter's knees to his belt, the nine cells and the four chase zones round them, the pitches numbered in order, coloured by result and shaped by what became of them.
The picture above was drawn when the docs were built. The script below draws it again with the published package.
import { drawStrikeZone } from "@johnmorrisdotca/kyogijo-stadiums/target";
const pitches = [
{ x: 0.1, z: 2.6, outcome: "called-strike", type: "FF" },
{ x: 1.3, z: 1.1, outcome: "ball", type: "SL" },
{ x: -0.4, z: 2.0, outcome: "swinging-strike", type: "SL" },
{ x: 0.9, z: 3.9, outcome: "foul", type: "CH" },
{ x: -0.2, z: 2.4, outcome: "in-play", type: "FF" },
];
const svg = drawStrikeZone(pitches, { bats: "R", top: 3.5, bottom: 1.5 }).svg;
This page imports the package from jsDelivr (major version 0), which serves only versions that have been published to npm. A feature added after the last release is not in it: the page then keeps the picture above and says why. The docs were built from version 0.6.1.