Changelog
All notable changes to this project are written here. The format follows Keep a Changelog, and the project uses Semantic Versioning.
[Unreleased]
[1.5.0] - 2026-10-14
Nothing exported has been removed or renamed, no type has lost a field, and every map drawn before is byte for byte as it was. Besides the city scale, the map, locator and quiz are custom elements with the family's standard embed attributes and a shared builder, and the package has an English and Japanese documentation site with a checked example for every export.
Added
- The city scale:
localMapanddrawLocal. A map of a city or a single venue, past the 10× step and Natural Earth's kilometre, from GeoJSON and pictures the caller passes in. Nothing is fetched and no map data is added. A transverse Mercator on the WGS 84 ellipsoid centred on the place (Krüger's series, closed-form both ways, conformal) is the projection: a canvas unit is a statedmetresPerUnitmetres, and two points up to 50 km apart are within 0.5% of Vincenty's geodesic (in practice 0.02%).ChizuProjectiongains{ kind: "local" }andChizuMap.kindgains"local", soprojectPoint,unprojectPointand every function of the engine (framing, zoom,layoutCallouts) take a local map; its polygons are itsregions. See docs/city.md.- GeoJSON of Points, LineStrings, Polygons, their Multi forms and GeometryCollections, painted in the order given, with a look by
properties.kind(water,building,green,pitch,road), by class or by id (styles: fill, stroke, a colour for the dark look, width in pixels or in metres, opacity, classes and custom properties of your own), tones, names in English and Japanese, and the callout placer. A shape that cannot be drawn is named inproblems. - A picture at a place: SVG scaled to real metres, turned to a bearing from true north (less the grid's convergence there) about an anchor, cleaned of script, style sheets, images and outside references.
- Credits and a scale bar. The caller's credit lines are printed, after Chizu's own Natural Earth line with
naturalEarth: true, and a scale bar in metres; callouts keep out of that corner. - The hand-over from a country's map:
mapBoxMetres,localCanvasFromBoxandmapBoxFromLocal, plusgroundDistanceandlocalConvergence.CHIZU_LOCAL_STYLEis the look, in light and dark. The demo has a City scale section with a made-up ground (not OpenStreetMap data). - Two new words in
CHIZU_STRINGS:localMap(Map of the area, {size} across: 周辺の地図、幅{size}) andcreditNaturalEarth(Map data: Natural Earth, public domain: 地図データ:Natural Earth(パブリックドメイン)).
- GeoJSON of Points, LineStrings, Polygons, their Multi forms and GeometryCollections, painted in the order given, with a look by
- Add bilingual documentation, checked public examples, paired guides, local search and machine-readable pages. Name the existing map/feature wildcard imports explicitly for reference discovery.
- Reconcile map embeds with released per-region colors, native selection/view callbacks and the capital/feature naming fixes.
- Add map, locator and seeded quiz elements, a shared embed builder and validated storage-free iframe pages.
- Support named water and capitals, coordinate pins, code-keyed figures and keyboard selection, with reflected properties and JSON-safe native events.
- Add per-place colours and capital-marker switches to map/locator embeds, the shared builder and validated frame links. Native SDK drawing defaults and quiz question pools are unchanged.
- Share a package-independent embed builder for option controls, preview adapters, code tabs and shareable links.
Changed
- The numbered circles of a drawing are written by one function (
drawCallouts.ts) thatdrawChizuanddrawLocalshare;drawChizu's output is unchanged. - README: the notes on Japan's and the countries' maps moved to docs/maps.md, to keep the README within npm's limit (it was 162 characters over).
- The API link in the header reads "API" in English, so that the header takes the same number of rows in English and in Japanese on a phone, as the demo's test of a language change asks.
- Synchronize documentation tooling for repository layouts, generated type references, Node entry points and repository-specific README links.
- Keep complete resource catalogues on the documentation entry index and the active resource beside core navigation; render valid default imports in HTML and Markdown.
- Group the package family by kind, alphabetize each group, and include the geography packages and REST in Pieces in the shared footer and README.
- Update the shared family description for addresses in all seven supported countries, including France and Germany.
[1.4.0] - 2026-10-09
Added
featureKindOf(feature, language): a feature's kind in words, with a word of its own in one country where the language has one. A region's seat is a 県庁所在地 (Prefectural capital) on a map of Japan's prefectures and a 行政の中心地 (Seat of government) elsewhere; the words arekind.seat.JPinCHIZU_STRINGS, and anykind.<kind>.<COUNTRY>is read the same way. The drawing's screen-reader labels and the demo use it.- Alaska's and Hawaii's capitals (Juneau and Honolulu) are drawn inside their boxes on the United States map, each projected by its own state's projection as the state is. Juneau is written in the build because kuni has no capital for Alaska. The United States' features file now has 50 seats.
- docs/upstream-name-issues.md lists the names and facts that look wrong in the sources (港龍崗日, エルティシ川, the Canadian Shield as tundra, Alaska's missing capital) for fixing upstream, and says why a lagoon is 潟湖.
[1.3.0] - 2026-10-09
Added
- A colour for each region.
drawChizuandmountChizutakecolors, a colour by region code ({ JP: "#2f6b4f", GB: "#8a3b3b" }), for two or more places that must be told apart. A hex colour, a CSS colour name,rgb(),hsl()orvar(--name)is the land's fill (over its tone's); any other text is ignored, so nothing from an address or a form can end the attribute. A region with a colour carriesdata-colorand--cz-color; a map drawn withoutcolorsis byte for byte as before.isChizuColour(text)in/drawsays whether a value will be drawn. See docs/colours.md, which also says how to show or hide the capitals' marks (thecapitalsfeature, off until chosen). - The demo's lists also download as a Markdown table and as SQL, beside CSV, JSON and text: the places, the features, a quiz round's results, the callouts' list and the figures. The Markdown is a GitHub table (
|escaped, a line break<br>); the SQL is aCREATE TABLEand anINSERTa row, with double-quoted names, single-quoted text and NULL for what is missing, and runs in SQLite, PostgreSQL and MySQL (MySQL needsANSI_QUOTESandNO_BACKSLASH_ESCAPES, which the file's second line says). The writers aredemo/downloads.js, the same file in kuni, chizu and hata, held to one hash and tested by loading the SQL into SQLite.
[1.2.0] - 2026-10-09
Nothing exported has been removed or renamed, and a map drawn without the new features option is drawn byte for byte as before. Names have changed where kuni 1.1.0 changed them: every change is listed below.
Added
- Seas, lakes, rivers, landforms, peaks and capitals: named features for every map.
loadFeatures(mapId)in/load(and@johnmorrisdotca/chizu/features/<map>,FEATURE_MAPS) gives a map's features on its own canvas: oceans, seas, gulfs, bays, straits, channels, sounds, fjords, inlets, lagoons and reefs from Natural Earth's marine areas; lakes and reservoirs; rivers; deserts, mountain ranges, plateaus, plains, peninsulas and the other landforms; peaks with their heights; and, from kuni 1.1.0's/factsand/subdivision-facts, each country's capital and, on a map of a country's regions, each region's seat (Naha drawn in Okinawa's box). The world has the top of each list (50 seas, 24 lakes, 47 rivers, 25 landforms, 22 peaks, 173 capitals); a country has the seas on its coast and the water, landforms and peaks on its land (Japan's prefectures: the Sea of Japan, the Seto Inland Sea, the Tsugaru Strait and seven more seas and straits, Lake Biwa, the Ishikari, Tone and Mogami Rivers, Mount Fuji and seven more peaks, Tokyo and 46 seats). 268 maps have a file, the world's 203 kB (66 kB gzipped) and Japan's 29 kB; none is in the default world import. Every feature has a stablecode(its Wikidata item where it has one:Q5484, the Caspian Sea), akindandgroup, English and Japanese names and a reading in kana where known, its rank, a box, a point for its name, the angle a river's name runs at, and the water it touches. Japanese names are Natural Earth's, else Wikidata's (CC0), else absent; rivers, which Natural Earth gives no Wikidata item, are matched to Wikidata by name and place. docs/features.md in the repository has the counts, the sources and what Natural Earth leaves out (Tokyo Bay and the Shinano River are not in its 1:10m data). - Drawn on request.
drawChizuandmountChizutakefeatures(["water"],["all"], a group such as["lakes", "peaks"]or a kind such as["strait"], default none) andfeatureLayer(mountChizualso takesloadFeaturesitself, and fetches each map's layer when it is first wanted). Seas are drawn under the land in the sea's own colour, darker under the pointer and blue when chosen; lakes and rivers on it, a river's width by its rank and the same on the screen at every zoom; landforms only by name until chosen; peaks as triangles and capitals as dots. Names are placed so that no two overlap: italic for water, along the river for a river, centred in a sea and kept off a map's boxes.featureLabels: falsedraws none. A feature takes a tone by its code intones, like a region, and a toned feature is drawn though its group is off. New colours--cz-marine,--cz-water,--cz-water-ink,--cz-feature-lineand--cz-feature-selected. - Chosen, searched, asked about and numbered. A mounted map's
select,showandselectedtake a feature's code as a region's, a press on a sea or a lake chooses it, andfeatureLayer()gives the layer it has.findFeatures(features, typed)finds features by English, Japanese or kana, best first.featureMap(map, layer, choices)makes a layer a map of its own, sofocusBox,zoomToFit,findQuestion("which river is this?"),pickDistractorsandplacesFromTextwork on features.layoutCalloutstakesfeatures, and numbers a feature from where its name goes.featuresShown,featureChosen,featureKindName,CHIZU_FEATURE_GROUPS,CHIZU_FEATURE_KINDSand the typesChizuFeature,ChizuFeatureLayer,ChizuFeatureKind,ChizuFeatureGroupandChizuFeatureChoice.CHIZU_STRINGShas each kind's name (kind.strait: Strait, 海峡) andfeature. - The demo has a Features switch (off, water, capitals, everything), a search for seas, lakes, rivers and mountains with a list that keeps one height and a card for the one chosen, a "Find the water" quiz (the water drawn with no names on it), and the map's features to download as CSV, JSON or text.
Changed
- kuni 1.1.0 (from 1.0.0). Every name, continent and correction Chizu kept in place of kuni's is now kuni's own, and the tables that kept them are empty (docs/names.md). What a map prints differs in these places:
CGEnglish Republic of the Congo → Congo (on the world, Congo's own map andCHIZU_COUNTRIES).- Continents, by UN M49:
GSSouth Georgia & South Sandwich Islands Antarctica → South America;HMHeard & McDonald Islands Antarctica → Oceania;IOBritish Indian Ocean Territory Asia → Africa.CHIZU_CONTINENTS' Antarctica now holds none of the countries drawn. Russia stays in Europe and Cyprus and Timor-Leste in Asia, now as kuni has them. - Russia's regions, in English:
ALAltai → Altai Republic;BURepublic of Buryatia → Buryatia;CEChechen Republic → Chechnya;CUChuvash Republic → Chuvashia;KCKarachay-Cherkess → Karachay-Cherkessia;KOKomi → Komi Republic;UDUdmurt Republic → Udmurtia. - The Philippines'
COMin Japanese ダバオ・デ・オロ → ダバオ・デ・オロ州. - Norway's counties have ISO codes: Natural Earth draws them as they were before the 2020 reform, and each now carries the code of the county of 2024 it lies in (Østfold
NO-31, AkershusNO-32, BuskerudNO-33, Hedmark and OpplandNO-34, VestfoldNO-39, TelemarkNO-40, Aust- and Vest-AgderNO-42, Hordaland and Sogn og FjordaneNO-46, Sør- and Nord-TrøndelagNO-50, TromsNO-55, FinnmarkNO-56): 1,335 of the 1,342 regions have a code, up from 1,320. - Japan's eight regions are kuni's grouping
jp-regions-8; Kinki'sgroupAliasesgain "Kansai region". - Peterborough, Marlborough, Chiayi County and City, Bogotá, Davao de Oro (in English) and Cần Thơ print as before: kuni now has the names Chizu kept.
- The README's framework recipes (React, Vue, Svelte, Angular) moved to docs/frameworks.md in the repository, to keep the README within npm's limit.
[1.1.0] - 2026-10-09
Nothing exported has been removed or renamed, and no type has lost a field. Names have changed, because they now come from kuni 国: every change is listed below.
Added
- Japan's 47 prefectures,
@johnmorrisdotca/chizu/divisions/jpandloadDivisions("jp"), from Natural Earth's admin-1 file at 1:10m (186 kB built, between Germany's 203 kB and South Korea's 66 kB). Codes are the prefecture numbers,"1"(Hokkaidō) to"47"(Okinawa); names in English and Japanese and readings in kana (東京都, とうきょうと) are kuni's;groupis the region a Japanese school teaches (Hokkaido, Tohoku, Kanto, Chubu, Kinki, Chugoku, Shikoku, Kyushu);typeisprefecture,metropolis,urban prefectureorcircuit. The mainland is drawn in Mercator 1,000 across; the islands far from it are drawn in boxes, each holding its own part of the sea at a size it can be seen at: Okinawa's main islands large in the Sea of Japan with the Sakishima and Daito Islands beside them, Kagoshima's Tokara and Amami Islands north-east of them, and Tokyo's Ogasawara Islands, Volcano Islands and Minamitorishima at the bottom right. Natural Earth draws the Amami Islands inside Okinawa; the build gives them back to Kagoshima. Kinki (近畿地方) carries its other name, Kansai (関西), ingroupAliases. isoon every region of a country: its ISO 3166-2 code in full (JP-13,CA-ON,US-TX), from kuni at build time, on 1,320 of the 1,342 regions. Where Natural Earth's code is out of date the build uses the current one (FR-75Cfor Paris,PL-24for Silesia,MX-CMX,TW-NWT); where Natural Earth draws one ISO subdivision as several regions, each carries the code of the one it lies in (County Dublin's four councils areIE-D). The 22 regions with no code are listed with the reason indocs/iso-codes.mdin the repository; a test holds every region to a code or a reason.codeis unchanged.CHIZU_SOURCE.names: kuni's package name, version and licence, beside Natural Earth's.- Continents and other groups.
CHIZU_CONTINENTSandCHIZU_SUBREGIONSin/names: kuni's seven continents (UN M49 by way of CLDR, the Americas as two) and the twenty-two UN M49 subregions, each with its English and Japanese names, reading and countries; every country is in exactly one continent. In the engine,regionGroups(map)lists a map's own groups (the continents on the world, Japan's eight regions, Canada's five, the Census regions of the United States);groupMap(map, codes)cuts a map down to a group, so a quiz or a callout sheet stays within it;groupBox(map, codes, aspect)frames a group, each member on its mainland;groupTones(map, codes)fades the rest. Any list of codes is a group, so a grouping kuni does not yet keep (the EU, the G7) is passed in. The typeChizuGroup. groupJaon a region: its group in Japanese (アジア, 関東地方, 南部);groupAliases, other names its group goes by (Kansai and 関西 for Kinki), also onChizuGroupasaliases.- A region may be drawn in several boxes.
ChizuInset.withingives a box the region's pieces that lie in one part of the canvas, so a region scattered over a wide sea is drawn as a few boxes, each filled by its own islands;insetsFor(map, code)lists a region's boxes andinsetHoldsWhole(inset)says whether one holds it whole.mapRegionPiecesand the framing functions take every box a region has. Okinawa is three boxes, Tokyo's far islands three. unnamedon a region: a piece the map draws but does not name (Natural Earth's 38 km² of the Yamal coast on Russia's map, which has no name or code). It is drawn, so the coast has no hole, butfindQuestionandpickDistractorsnever ask about it or offer it, andregionGroupsleaves it out.loadWorldDetail()in/load: the world drawn finer, the same 173 countries on the same canvas and in the same projection, from Natural Earth's 1:50m outlines (1.3 MB, fetched only when asked for).mountChizutakes it asdetail(a map, or a function that loads one) and draws it fromdetailFromin (default 4×), so the coasts stay smooth at the deeper zoom steps; framing, choosing and callouts keep to the world itself. A detail is drawn only when itsidis the map's with-detailafter it.- The demo opens on Japan's prefectures, and adds: a part of the map to look at (a continent or UN subregion of the world, one of a country's regions such as Japan's Kanto); four kinds of quiz question (pick the name, type the name in English or Japanese, type the reading in kana, find the place on the map), in rounds of ten made from a seed, so a shared link asks the same ten, with a streak and a best streak; the round's results, the list of places, the numbered list of callouts and the coloured figures to download as CSV, JSON or text, and the map and a printable callout sheet as SVG or PNG; a Colour mode that shades the map from pasted figures in five steps, or by part; a card for the chosen place that keeps one height, showing the map's parts to press when nothing is chosen; and the code for the map as it is, to copy. All of it runs in the browser.
- An
@exampleon every export of every entry point, shown on the API reference page.pnpm test:readmetype-checks and runs each one and compares what it prints with the comment that ends it;pnpm checkfails on an export without one.
Changed
- The countries' names, short names, readings, continents and three-letter codes are kuni's (
@johnmorrisdotca/kuni1.0.0, whose names are Unicode CLDR's and Wikidata's), read byscripts/build-data.mjsat build time, so Chizu and kuni never name a country two ways. kuni is a development dependency of the build script only: the package imports nothing at run time and still depends on nothing. NOTICE.md carries the Unicode licence. The three places Natural Earth draws that have no ISO code (Ashmore and Cartier Islands, the Indian Ocean Territories, the Siachen Glacier) keep Natural Earth's names, and now have readings. nameShortJais now only kuni's everyday short name where it differs from the name: 中国, 韓国, 北朝鮮, 台湾, タイ, モンゴル and 南アフリカ are now thenameJaitself, sonameShortJais gone from them and whatnameOf(…, "ja")shows is unchanged. The United Kingdom keeps イギリス, not CLDR's written abbreviation 英国.- Continents are kuni's (UN M49 by way of CLDR), so the islands Natural Earth put in "Seven seas (open ocean)" are in Africa, Asia or Antarctica. Russia stays in Europe and Cyprus and Timor-Leste in Asia, as UN M49 has them, where kuni 1.0.0 departs from it.
- The name a map prints is kuni's short English name where it has one (Bosnia, Hong Kong, Macao, Myanmar, Palestine, Pitcairn, Cocos Islands), but for the United States and the United Kingdom, whose short forms are the abbreviations US and UK; where kuni has only a name made for a list, Chizu writes one of its own: DR Congo (コンゴ民主共和国) for "Congo - Kinshasa", Republic of the Congo (コンゴ共和国) for "Congo - Brazzaville", ミャンマー for ミャンマー (ビルマ), ココス諸島 for ココス(キーリング)諸島.
docs/names.mdin the repository lists every name the map prints that is not kuni's, with the reason, for kuni to take over. - A region that is exactly one ISO subdivision takes kuni's names, except where kuni 1.0.0's are wrong or read worse on a map, where Natural Earth's are kept (listed in
scripts/data-config.mjswith the reason). This corrects regions Natural Earth had misnamed: on the United Kingdom's map Wirral was a second "Halton" and St Helens was "Merseyside"; on Italy's, Genoa was "Liguria" and South Tyrol "Trentino-South Tyrol"; on Vietnam's, three provinces carried the names of larger regions; on Russia's, Altai Krai was a second "Altai Republic". - No two regions of one map share a name, in English or in Japanese (a test holds it): Cork City, Galway City, Limerick City and Waterford City beside their counties, North and South Tipperary, Chiayi City and County, Hsinchu County, Buenos Aires Province, the Lima Region, Moscow Province, Washington DC.
- Zoom goes to 10×:
MAP_ZOOM_LEVELSis[1, 2, …, 10], whole steps, andMapZoomis 1 to 10.zoomToFitandfocusRegionFitfit a small place closer (Luxembourg and Qatar on the world, a city prefecture or a ward now at 10×). The first step is still 1× and the last the deepest, so code that readsMAP_ZOOM_LEVELS[0]and the last element for its buttons follows the new ladder; code that listed the five values by hand, or switched over everyMapZoom, should read the array instead. The lines of the drawing keep their width on the screen at every step (vector-effect: non-scaling-stroke), and labels and callouts are sized from the window, so neither grows with the zoom. - Canada's regions are grouped in its five regions (Atlantic, Central, Prairies, West Coast, North) in place of Natural Earth's three (Eastern, Western and Northern Canada), with their Japanese names.
- Framing a region whose outlying islands are drawn in a box (
regionBox,regionCentre,zoomToFit) frames the part left in place, not the box: Tokyo is framed on Tokyo and the Izu Islands, not on Ogasawara's box. No map had such a region before Japan.
Every name that changed
Against 1.0.2. The English is the name the map prints.
Countries (
CHIZU_COUNTRIES, the world and each country alone, which agree): 66 countries.AGEnglish Antigua and Barb. → Antigua & BarbudaASJapanese アメリカ領サモア → 米領サモア; reading none → べいりょうさもあATCreading none → あしゅもあかるてぃえしょとうAXEnglish Åland → Åland Islands; reading none → おーらんどしょとうBAEnglish Bosnia and Herz. → BosniaBLEnglish St-Barthélemy → St. Barthélemy; Japanese サン・バルテルミー島 → サン・バルテルミー; reading none → サンバルテルミーBMJapanese バミューダ諸島 → バミューダ; reading none → バミューダCDEnglish Dem. Rep. Congo → DR Congo; Japanese コンゴ民主共和国 → コンゴ民主共和国(キンシャサ); short Japanese none → コンゴ民主共和国CFEnglish Central African Rep. → Central African RepublicCGEnglish Congo → Republic of the Congo; Japanese コンゴ共和国 → コンゴ共和国(ブラザビル); short Japanese none → コンゴ共和国CIEnglish Côte d'Ivoire → Côte d’IvoireCKEnglish Cook Is. → Cook Islands; reading none → くっくしょとうCNJapanese 中華人民共和国 → 中国; short Japanese 中国 → noneCVEnglish Cabo Verde → Cape VerdeDMreading none → どみにかこくDOEnglish Dominican Rep. → Dominican RepublicEHEnglish W. Sahara → Western SaharaFKEnglish Falkland Is. → Falkland IslandsFMreading none → みくろねしあれんぽうFOEnglish Faeroe Is. → Faroe Islands; reading none → ふぇろーしょとうGQEnglish Eq. Guinea → Equatorial GuineaGSEnglish S. Geo. and the Is. → South Georgia & South Sandwich Islands; reading none → さうすじょーじあさうすさんどうぃっちしょとう; continent Seven seas (open ocean) → AntarcticaHKJapanese 香港 → 中華人民共和国香港特別行政区; short Japanese none → 香港; reading none → ほんこんHMEnglish Heard I. and McDonald Is. → Heard & McDonald Islands; Japanese ハード島とマクドナルド諸島 → ハード島・マクドナルド諸島; reading none → はーどとうまくどなるどしょとう; continent Seven seas (open ocean) → AntarcticaIMreading none → まんとうIOEnglish Br. Indian Ocean Ter. → British Indian Ocean Territory; Japanese イギリス領インド洋地域 → 英領インド洋地域; reading none → えいりょういんどようちいき; continent Seven seas (open ocean) → AsiaIOAreading none → おーすとらりありょういんどようちいきKASreading none → しあちぇんひょうがKNEnglish St. Kitts and Nevis → St. Kitts & Nevis; Japanese セントクリストファー・ネイビス → セントクリストファー・ネーヴィス; reading セントクリストファーネイビス → セントクリストファーネーヴィスKPJapanese 朝鮮民主主義人民共和国 → 北朝鮮; short Japanese 北朝鮮 → noneKRJapanese 大韓民国 → 韓国; short Japanese 韓国 → noneKYEnglish Cayman Is. → Cayman Islands; reading none → けいまんしょとうLCEnglish Saint Lucia → St. LuciaMFEnglish St-Martin → St. MartinMHEnglish Marshall Is. → Marshall Islands; reading none → まーしゃるしょとうMLJapanese マリ共和国 → マリ; reading まりきょうわこく → マリMMJapanese ミャンマー → ミャンマー (ビルマ); short Japanese none → ミャンマーMNJapanese モンゴル国 → モンゴル; short Japanese モンゴル → noneMOJapanese マカオ → 中華人民共和国マカオ特別行政区; short Japanese none → マカオMPEnglish N. Mariana Is. → Northern Mariana Islands; reading none → きたまりあなしょとうMUcontinent Seven seas (open ocean) → AfricaMVcontinent Seven seas (open ocean) → AsiaNFreading none → のーふぉーくとうPFEnglish Fr. Polynesia → French Polynesia; Japanese フランス領ポリネシア → 仏領ポリネシア; reading none → ふつりょうぽりねしあPMEnglish St. Pierre and Miquelon → St. Pierre & Miquelon; reading none → さんぴえーるとうみくろんとうPNEnglish Pitcairn Is. → Pitcairn; reading none → ぴとけあんしょとうPSJapanese パレスチナ → パレスチナ自治区; short Japanese none → パレスチナSBEnglish Solomon Is. → Solomon IslandsSCcontinent Seven seas (open ocean) → AfricaSHEnglish Saint Helena → St. Helena; continent Seven seas (open ocean) → AfricaSSEnglish S. Sudan → South SudanSTEnglish São Tomé and Principe → São Tomé & PríncipeSZEnglish eSwatini → EswatiniTCEnglish Turks and Caicos Is. → Turks & Caicos Islands; reading none → たーくすかいこすしょとうTHJapanese タイ王国 → タイ; short Japanese タイ → noneTREnglish Turkey → TürkiyeTTEnglish Trinidad and Tobago → Trinidad & TobagoTWJapanese 中華民国 → 台湾; short Japanese 台湾 → noneUSEnglish United States of America → United StatesVAEnglish Vatican → Vatican City; Japanese バチカン → バチカン市国; reading バチカン → ばちかんしこくVCEnglish St. Vin. and Gren. → St. Vincent & Grenadines; Japanese セントビンセント・グレナディーン → セントビンセント及びグレナディーン諸島; reading セントビンセントグレナディーン → せんとびんせんとおよびぐれなでぃーんしょとうVGEnglish British Virgin Is. → British Virgin Islands; Japanese イギリス領ヴァージン諸島 → 英領ヴァージン諸島; reading none → えいりょうゔぁーじんしょとうVIEnglish U.S. Virgin Is. → U.S. Virgin Islands; Japanese アメリカ領ヴァージン諸島 → 米領ヴァージン諸島; reading none → べいりょうゔぁーじんしょとうWFEnglish Wallis and Futuna Is. → Wallis & FutunaXKJapanese コソボ共和国 → コソボ; reading こそぼきょうわこく → コソボ; three-letter code KOS → XKKZAJapanese 南アフリカ共和国 → 南アフリカ; short Japanese 南アフリカ → none
Argentina (
divisions/ar):BEnglish Buenos Aires → Buenos Aires ProvinceBelgium (
divisions/be):BRUEnglish Brussels Capital → Brussels ·WLXJapanese ルクセンブルク広域行政区 → リュクサンブール州Brazil (
divisions/br):DFEnglish Federal → Federal District ·SEJapanese セルジペ州 → セルジッペ州Canada (
divisions/ca):NBJapanese ニュー・ブランズウィック州 → ニューブランズウィック州Switzerland (
divisions/ch):GREnglish Grisons → GraubündenChile (
divisions/cl):BIEnglish Biobío → Bío Bío ·LIEnglish O'Higgins → Libertador General Bernardo O’Higgins ·MAEnglish Magellan and the Chilean Antarctic → Magallanes Region ·RMEnglish Santiago → Santiago MetropolitanGermany (
divisions/de):HBEnglish Free Hanseatic Bremen → Bremen ·MVEnglish Mecklenburg-Western Pomerania → Mecklenburg-VorpommernSpain (
divisions/es):CSJapanese カステリョン → カステリョン県 ·LOEnglish La Rioja → La Rioja Province ·MEnglish Community of Madrid → Madrid Province; Japanese マドリード州 → マドリード県 ·MUJapanese ムルシア州 → ムルシア県 ·NAEnglish Navarre → Navarra ·OEnglish Asturias → Asturias Province ·PMEnglish Balearic Islands → Balears Province ·SEnglish Cantabria → Cantabria Province ·VIEnglish Araba / Álava → ÁlavaFrance (
divisions/fr):22English Côtes-d'Armor → Côtes-d’Armor ·64English Pyrenees-Atlantics → Pyrénées-Atlantiques ·95English Val-d'Oise → Val-d’OiseUnited Kingdom (
divisions/gb):GLSJapanese グロスターシャー → グロスタシャー ·NWPJapanese ニューポート → シティ・オヴ・ニューポート ·SHNEnglish Merseyside → Saint Helens; Japanese マージ―サイド → セントヘレンズ ·WRLEnglish Halton → Wirral; Japanese ハルトン → ウィラル ·ZETEnglish Shetland Islands → ShetlandIreland (
divisions/ie):CEJapanese クレア県 → クレア州 ·CNJapanese キャバン県 → キャバン州 ·COJapanese コーク県 → コーク州 ·CO_2English Cork → Cork City; Japanese コーク県 → コーク市 ·CWJapanese カーロウ県 → カーロウ州 ·DEnglish Dublin → Dublin City; Japanese ダブリン県 → ダブリン市 ·D_3Japanese フィンガル市 → フィンガル ·DLJapanese ドニゴール県 → ドニゴール州 ·GJapanese ゴールウェイ県 → ゴールウェイ州 ·G_2English Galway → Galway City; Japanese ゴールウェイ県 → ゴールウェイ市 ·KEJapanese キルデア県 → キルデア州 ·KKJapanese キルケニー県 → キルケニー州 ·KYJapanese ケリー県 → ケリー州 ·LDJapanese ロングフォード県 → ロングフォード州 ·LHJapanese ラウス県 → ラウス州 ·LKJapanese リムリック県 → リムリック州 ·LK_2English Limerick → Limerick City; Japanese リムリック県 → リムリック市 ·LMJapanese リートリム県 → リートリム州 ·LSJapanese リーシュ県 → リーシュ州 ·MHJapanese ミーズ県 → ミース州 ·MNJapanese モナハン県 → モナハン州 ·MOJapanese メイヨー県 → メイヨー州 ·OYJapanese オファリー県 → オファリー州 ·RNJapanese ロスコモン県 → ロスコモン州 ·SOJapanese スライゴ県 → スライゴ州 ·TAEnglish Tipperary → North Tipperary; Japanese ティペラリー県 → ノース・ティペラリー ·TA_2English Tipperary → South Tipperary; Japanese ティペラリー県 → サウス・ティペラリー ·WDJapanese ウォーターフォード県 → ウォーターフォード州 ·WD_2English Waterford → Waterford City; Japanese ウォーターフォード県 → ウォーターフォード市 ·WHJapanese ウェストミーズ県 → ウェストミース州 ·WWJapanese ウィックロー県 → ウィックロー州 ·WXJapanese ウェックスフォード県 → ウェックスフォード州Italy (
divisions/it):AOEnglish Aosta → Aosta Valley; Japanese アオスタ → ヴァッレ・ダオスタ州 ·AQEnglish L'Aquila → L’Aquila ·BZEnglish Trentino-South Tyrol → South Tyrol; Japanese トレンティーノ=アルト・アディジェ州 → ボルツァーノ自治県 ·GEEnglish Liguria → Genoa; Japanese リグーリア州 → ジェノヴァ ·MSEnglish Massa-Carrara → Massa and Carrara ·TNJapanese トレン → トレント自治県South Korea (
divisions/kr):29English Gwangju → Gwangju City ·42Japanese 江原道 → 江原特別自治道 ·45Japanese 全羅北道 → 全北特別自治道Mexico (
divisions/mx):DIFEnglish Mexico → Ciudad de Mexico ·MEXEnglish State of Mexico → Mexico StateMalaysia (
divisions/my):04English Melaka → MalaccaNew Zealand (
divisions/nz):BOPJapanese ベイ・オブ・プレンティ → ベイ・オブ・プレンティ地方 ·HKBEnglish Hawke's Bay → Hawke’s Bay ·MWTEnglish Manawatū-Whanganui → Manawatu-Wanganui ·NSNJapanese ネルソン → ネルソン地方Peru (
divisions/pe):ANCEnglish Áncash → Ancash ·CALEnglish Callao → El Callao ·CUSEnglish Cusco Departament → Cusco ·HUCEnglish Huanuco → Huánuco ·LIMEnglish Lima → Lima Region; Japanese リマ郡 → リマ県Philippines (
divisions/ph):ABRJapanese アブラ → アブラ州 ·AGNJapanese 北アグサン → 北アグサン州 ·AGSJapanese 南アグサン → 南アグサン州 ·AKLJapanese アクラン → アクラン州 ·ALBJapanese アルバイ → アルバイ州 ·ANTJapanese アンティーケ → アンティーケ州 ·APAJapanese アパヤオ → アパヤオ州 ·AURJapanese アウロラ → アウロラ州 ·BANJapanese バターン → バターン州 ·BASJapanese バシラン → バシラン州 ·BENJapanese ベンゲット → ベンゲット州 ·BILJapanese ビリラン → ビリラン州 ·BOHJapanese ボホール → ボホール州 ·BTGJapanese バタンガス → バタンガス州 ·BTNJapanese バタネス → バタネス州 ·BUKJapanese ブキドノン → ブキドノン州 ·BULJapanese ブラカン → ブラカン州 ·CAGJapanese カガヤン → カガヤン州 ·CAMJapanese カミギン → カミギン州 ·CANJapanese 北カマリネス → 北カマリネス州 ·CAPJapanese カピス → カピス州 ·CASJapanese 南カマリネス → 南カマリネス州 ·CATJapanese カタンドゥアネス → カタンドゥアネス州 ·CAVJapanese カヴィテ → カヴィテ州 ·CEBJapanese セブ → セブ州 ·DAOJapanese 東ダバオ → 東ダバオ州 ·DASJapanese 南ダバオ → 南ダバオ州 ·DAVJapanese 北ダバオ → 北ダバオ州 ·EASJapanese 東サマル → 東サマル州 ·GUIJapanese ギマラス → ギマラス州 ·IFUJapanese イフガオ → イフガオ州 ·ILIJapanese イロイロ → イロイロ州 ·ILNJapanese 北イロコス → 北イロコス州 ·ILSJapanese 南イロコス → 南イロコス州 ·ISAJapanese イサベラ → イサベラ州 ·KALJapanese カリンガ → カリンガ州 ·LAGJapanese ラグナ → ラグナ州 ·LANJapanese 北ラナオ → 北ラナオ州 ·LASJapanese 南ラナオ → 南ラナオ州 ·LEYJapanese レイテ → レイテ州 ·LUNJapanese ラウニオン → ラウニオン州 ·MADJapanese マリンドゥケ → マリンドゥケ州 ·MASJapanese マスバテ → マスバテ州 ·MDCJapanese 西ミンドロ → 西ミンドロ州 ·MDRJapanese 東ミンドロ → 東ミンドロ州 ·MSCJapanese 西ミサミス → 西ミサミス州 ·MSRJapanese 東ミサミス → 東ミサミス州 ·NCOJapanese コタバト → コタバト州 ·NECJapanese 西ネグロス → 西ネグロス州 ·NERJapanese 東ネグロス → 東ネグロス州 ·NSAJapanese 北サマル → 北サマル州 ·NUEJapanese ヌエヴァ・エシハ → ヌエヴァ・エシハ州 ·NUVJapanese ヌエヴァ・ヴィスカヤ → ヌエヴァ・ヴィスカヤ州 ·PAMJapanese パンパンガ → パンパンガ州 ·PANJapanese パンガシナン → パンガシナン州 ·PLWJapanese パラワン → パラワン州 ·QUEJapanese ケソン → ケソン州 ·QUIJapanese キリノ → キリノ州 ·RIZJapanese リサール → リサール州 ·ROMJapanese ロンブロン → ロンブロン州 ·SARJapanese サランガニ → サランガニ州 ·SCOJapanese 南コタバト → 南コタバト州 ·SIGJapanese シキホル → シキホル州 ·SLEJapanese 南レイテ → 南レイテ州 ·SLUJapanese スールー → スールー州 ·SORJapanese ソルソゴン → ソルソゴン州 ·SUKJapanese スルタン・クダラット → スルタン・クダラット州 ·SUNEnglish Dinagat Islands → Surigao del Norte; Japanese ディナガット諸島 → 北スリガオ州 ·SURJapanese 南スリガオ → 南スリガオ州 ·TARJapanese タルラック → タルラック州 ·TAWJapanese タウイタウイ → タウイタウイ州 ·WSAJapanese サマル → サマル州 ·ZANJapanese 北サンボアンガ → 北サンボアンガ州 ·ZASJapanese 南サンボアンガ → 南サンボアンガ州 ·ZMBJapanese サンバレス → サンバレス州 ·ZSIJapanese サンボアンガ・シブガイ → サンボアンガ・シブガイ州Poland (
divisions/pl):DSEnglish Lower Silesian Voivodeship → Lower Silesia ·KPEnglish Kuyavian-Pomeranian Voivodeship → Kuyavia-Pomerania ·LBEnglish Lubusz Voivodeship → Lubusz ·LDEnglish Łódź Voivodeship → Łódź ·LUEnglish Lublin Voivodeship → Lublin ·MAEnglish Lesser Poland Voivodeship → Lesser Poland ·MZEnglish Masovian Voivodeship → Mazovia ·OPEnglish Opole Voivodeship → Opole ·PDEnglish Podlaskie Voivodeship → Podlachia ·PKEnglish Podkarpackie Voivodeship → Subcarpathia ·PMEnglish Pomeranian Voivodeship → Pomerania ·SKEnglish Świętokrzyskie Voivodeship → Holy Cross ·SLEnglish Silesian Voivodeship → Silesia ·WNEnglish Warmian-Masurian Voivodeship → Warmia-Masuria ·WPEnglish Greater Poland Voivodeship → Greater Poland ·ZPEnglish West Pomeranian Voivodeship → West PomeraniaRussia (
divisions/ru):ADEnglish Republic of Adygea → Adygea ·ALEnglish Altai Republic → Altai ·ALTEnglish Altai Republic → Altai Krai; Japanese アルタイ共和国 → アルタイ地方 ·CHUEnglish Chukotka Autonomous Okrug → Chukotka Okrug ·DAEnglish Republic of Dagestan → Dagestan ·INEnglish Republic of Ingushetia → Ingushetia ·KCEnglish Karachay-Cherkess Republic → Karachay-Cherkess ·KHMEnglish Khanty-Mansi Autonomous Okrug → Khanty-Mansi ·KKEnglish Republic of Khakassia → Khakassia ·KLEnglish Republic of Kalmykia → Kalmykia ·KOEnglish Komi Republic → Komi ·MEEnglish Mari El Republic → Mari El ·MOEnglish Republic of Mordovia → Mordovia ·MOSEnglish Moscow → Moscow Province; Japanese モスクワ → モスクワ州 ·MOWJapanese モスクワ州 → モスクワ ·NENEnglish Nenets Autonomous Okrug → Nenets ·SAEnglish Sakha Republic → Sakha ·SEEnglish Republic of North Ossetia-Alania → North Ossetia-Alania ·TAEnglish Republic of Tatarstan → Tatarstan ·TYEnglish Tuva Republic → Tuva ·UA-43English Autonomous Republic of Crimea → Crimea ·X01~English X01~ → Unnamed piece of the Yamal coast ·YANEnglish Yamalo-Nenets Autonomous Okrug → Yamalo-Nenets OkrugThailand (
divisions/th):72English Suphan Buri → SuphanburiTaiwan (
divisions/tw):CYIEnglish Chiayi → Chiayi City ·CYQEnglish Chiayi → Chiayi County ·HSQEnglish Hsinchu → Hsinchu County ·TXGEnglish Taichung City → TaichungUnited States (
divisions/us):DCEnglish Washington → Washington DC; Japanese ワシントンD.C. → コロンビア特別区Vietnam (
divisions/vn):26English Thừa Thiên Huế → Thừa Thiên–Huế; Japanese トゥアティエン=フエ省 → フエ市 ·39English Đông Nam Bộ → Đồng Nai; Japanese 東南部 → ドンナイ省 ·43English Bà Rịa-Vũng Tàu → Bà Rịa–Vũng Tàu ·53English Northeast Vietnam → Bắc Kạn; Japanese 東北部 → バックカン省 ·66English Red River Delta → Hưng Yên; Japanese 紅河デルタ → フンイエン省 ·SGEnglish Ho Chi Minh → Ho Chi Minh City
[1.0.2] - 2026-10-06
Nothing that was exported has changed. The README is the family's one layout, in full.
Added
- The README has a picture of the demo on a desk and on a phone, in light and dark, taken from the demo by
pnpm screenshots:readme(the pictures are indocs/images/and are not in the package), a picture for each kind of map (explore, callouts, insets, one country alone, the quiz), an Examples section of eleven examples that run, examples for React, Vue, Svelte and Angular, and an Accessibility section. pnpm test:readmetype-checks and runs every TypeScript and JavaScript example in the README against the built package, as a job of its own in CI;src/readme.test.jsholds the README to the family's standard (sections in order, languages on code fences, pictures with alt text and a caption, no marketing words, version pins) inpnpm check;pnpm test:packagefails if a picture or anything underdocs/is in the packed package.
Changed
- The README no longer says the mounted map can be pressed "by keyboard": the keyboard moves and zooms it, and choosing a place needs a pointer or a list of the page's own that calls
select(the Accessibility section says so). pnpm picturesispnpm screenshots:readme, and takes WebP pictures in light and dark underdocs/images/;docs/desktop.jpganddocs/phone.jpgare gone.- Repository only: the package and everything it exports are unchanged.
CONTRIBUTING.mdis the family's one text with a section of its own for Chizu, held to the master in johnmorrisdotca/.github bysrc/family.test.js;ci.ymlandpages.ymlare the family's one text (pnpm check, the demo, and the package on Linux, macOS and Windows), and any jobs of the package's own after them.
Fixed
- The API reference page wraps a long entry path instead of running about 2 px wider than a 360 px screen. Nothing the package exports has changed.
[1.0.1] - 2026-10-05
Nothing that was exported has changed.
Added
- A test holds every
@johnmorrisdotca/chizu@Nversion pin in the README to this package's major version.
Changed
- The family's list, in the README and in the demo's footer, names all twenty-four packages, Karakuri and Houseki included.
- The npm description is one sentence of 250 characters or fewer, so npm and its search show it whole; it is also the repository's About text.
homepageis the demo site andauthoris"John Morris", the same in every package. - The GitHub Actions workflows use the current versions of the actions (checkout 7, setup-node 7, pnpm/action-setup 6; configure-pages 6, upload-pages-artifact 5 and deploy-pages 5 for Pages), which clears GitHub's Node 20 deprecation warning.
[1.0.0] - 2026-10-01
The map engine of a Japanese study app and the world of Itsutsu's geography, made into a package that both import.
- Maps from Natural Earth (public domain, release 5.1.2), made by
scripts/build-data.mjs, which checks each file against its SHA-256 and writes the same bytes every time:@johnmorrisdotca/chizu/world(173 countries, one canvas, Miller's projection centred on 155°E),countries/<code>(238 countries each alone, 1:50m and 1:10m for the small ones),divisions/<code>(the regions of 31 countries, 1:10m), andnames(every country in English and Japanese, with the everyday short name and the reading in kana). @johnmorrisdotca/chizu, the engine: windows, five zoom steps, fits and shape frames (zoomBox,focusBox,regionBox,zoomToFit,shapeGlyphBox); insets (Alaska and Hawaii in boxes of their own); a world that goes round (wrapOffsets,wrapIntoBox); outlines as rings with a point on each region's land;layoutCallouts, numbered circles in open water with leader lines that never cross, and its parts (placeCallouts,calloutSpaces,calloutFaults);findQuestionandpickDistractors;placesFromText;projectPointandunprojectPoint, held to d3-geo's own; the words in English and Japanese.@johnmorrisdotca/chizu/draw: a map as SVG text, with tones, labels, insets in dashed frames and numbered callouts, in light and dark.@johnmorrisdotca/chizu/mount:mountChizu, a map to drag, zoom in five steps and press, by touch, mouse and keyboard, in English and Japanese.@johnmorrisdotca/chizu/load:loadCountryandloadDivisions, one dynamic import for each file.- A demo with a map to explore, a which-one-is-this quiz and the callout placer, a Help switch, the cloth patches, and browser tests
(
pnpm test:demo) at a phone's width and a desk's, in Chromium and WebKit.