本文へ移動

Chizu地図

SVGの地図を描き、地域を表示範囲に収め、番号付きの注記や地理クイズを英語と日本語の名前で作れます。

「地図」は、土地や場所を図で表したものです。 名前について(英語)

目次

リファレンス · SVGで地図を描く

CHIZU_LOCAL_STYLE定数

リファレンスの説明と例は英語です。見出しと目次は日本語です。

THE LOOK OF A LOCAL MAP (drawLocal), as CSS that goes beside CHIZU_STYLE: the ground, and the shapes a caller's GeoJSON draws, in the same custom properties and the same light and dark. A page that draws with style: true has it already; a page with its own style sheet puts both in once.

A shape is a <g class="cz-local-shape" data-code data-type> with the path inside. What it looks like comes from three layers, the last winning: the look of its kind (water, building, pitch, green, road have one, --cz-local-*), the page's own CSS on the classes the data gives it, and the styles option, which sets --cz-fill, --cz-stroke, --cz-stroke-width, --cz-opacity and their -dark forms on the group. Any colour may be var(--yours), so a page's own dark mode reaches a shape without a second colour.

インポート

import { CHIZU_LOCAL_STYLE } from "@johnmorrisdotca/chizu/draw";

定義

const CHIZU_LOCAL_STYLE: "\n.chizu {\n  --cz-ground: #f3efe3; --cz-local-area: #e6dfc9; --cz-local-building: #d6c9ab; --cz-local-building-line: #8a7d62; --cz-local-green: #cfe3bd; --cz-local-pitch: #b4d995;\n  --cz-local-road: #8f8873; --cz-local-point: #1f2320;\n}\n@media (prefers-color-scheme: dark) {\n  :root:not([data-theme=\"light\"]) .chizu {\n    --cz-ground: #26282a; --cz-local-area: #3d3d33; --cz-local-building: #5a5444; --cz-local-building-line: #b5a98c; --cz-local-green: #34503a; --cz-local-pitch: #3f6a3a;\n    --cz-local-road: #b0a98f; --cz-local-point: #ece8dc;\n  }\n}\n:root[data-theme=\"dark\"] .chizu {\n  --cz-ground: #26282a; --cz-local-area: #3d3d33; --cz-local-building: #5a5444; --cz-local-building-line: #b5a98c; --cz-local-green: #34503a; --cz-local-pitch: #3f6a3a;\n  --cz-local-road: #b0a98f; --cz-local-point: #ece8dc;\n}\n.chizu .cz-ground { fill: var(--cz-ground); }\n.chizu .cz-local-shape { --cz-def-fill: var(--cz-local-area); --cz-def-stroke: var(--cz-line); --cz-def-width: 1px; opacity: var(--cz-opacity, 1); }\n.chizu .cz-local-shape[data-type=\"water\"] { --cz-def-fill: var(--cz-water); --cz-def-stroke: var(--cz-water-ink); }\n.chizu .cz-local-shape[data-type=\"building\"] { --cz-def-fill: var(--cz-local-building); --cz-def-stroke: var(--cz-local-building-line); }\n.chizu .cz-local-shape[data-type=\"green\"] { --cz-def-fill: var(--cz-local-green); }\n.chizu .cz-local-shape[data-type=\"pitch\"] { --cz-def-fill: var(--cz-local-pitch); }\n.chizu .cz-local-shape[data-type=\"road\"] { --cz-def-stroke: var(--cz-local-road); --cz-def-width: 3px; }\n.chizu .cz-local-shape.cz-tone-selected { --cz-tone-colour: var(--cz-selected); }\n.chizu .cz-local-shape.cz-tone-correct { --cz-tone-colour: var(--cz-correct); }\n.chizu .cz-local-shape.cz-tone-wrong { --cz-tone-colour: var(--cz-wrong); }\n.chizu .cz-local-shape.cz-tone-hint { --cz-tone-colour: var(--cz-hint); }\n.chizu .cz-local-shape.cz-tone-muted { --cz-tone-colour: var(--cz-muted); }\n.chizu .cz-local-shape.cz-tone-faint { --cz-tone-colour: var(--cz-faint); }\n.chizu .cz-local-shape[data-interactive=\"true\"] { cursor: pointer; }\n.chizu .cz-local-shape[data-interactive=\"true\"]:hover .cz-local-area { filter: brightness(.94); }\n.chizu .cz-local-shape:focus { outline: none; }\n.chizu .cz-local-shape:focus-visible .cz-local-area, .chizu .cz-local-shape:focus-visible .cz-local-line { stroke: var(--cz-ink); stroke-width: 2.5px; }\n.chizu .cz-local-area { fill: var(--cz-fill, var(--cz-tone-colour, var(--cz-def-fill))); fill-opacity: var(--cz-fill-opacity, 1); stroke: var(--cz-stroke, var(--cz-def-stroke)); stroke-width: var(--cz-stroke-width, var(--cz-def-width)); fill-rule: evenodd; stroke-linejoin: round; vector-effect: non-scaling-stroke; }\n.chizu .cz-local-line { fill: none; stroke: var(--cz-stroke, var(--cz-tone-colour, var(--cz-def-stroke))); stroke-width: var(--cz-stroke-width, max(var(--cz-def-width), 1.5px)); stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }\n.chizu .cz-local-hit { fill: none; stroke: transparent; stroke-width: 14px; vector-effect: non-scaling-stroke; pointer-events: stroke; }\n.chizu .cz-local-point { fill: var(--cz-fill, var(--cz-tone-colour, var(--cz-local-point))); stroke: var(--cz-halo); stroke-width: 1px; vector-effect: non-scaling-stroke; }\n.chizu .cz-local-shape.cz-metric .cz-local-area, .chizu .cz-local-shape.cz-metric .cz-local-line { vector-effect: none; }\n.chizu .cz-marker[data-interactive=\"true\"] { cursor: pointer; }\n@media (prefers-color-scheme: dark) {\n  :root:not([data-theme=\"light\"]) .chizu .cz-local-area { fill: var(--cz-fill-dark, var(--cz-fill, var(--cz-tone-colour, var(--cz-def-fill)))); stroke: var(--cz-stroke-dark, var(--cz-stroke, var(--cz-def-stroke))); }\n  :root:not([data-theme=\"light\"]) .chizu .cz-local-line { stroke: var(--cz-stroke-dark, var(--cz-stroke, var(--cz-tone-colour, var(--cz-def-stroke)))); }\n  :root:not([data-theme=\"light\"]) .chizu .cz-local-point { fill: var(--cz-fill-dark, var(--cz-fill, var(--cz-tone-colour, var(--cz-local-point)))); }\n}\n:root[data-theme=\"dark\"] .chizu .cz-local-area { fill: var(--cz-fill-dark, var(--cz-fill, var(--cz-tone-colour, var(--cz-def-fill)))); stroke: var(--cz-stroke-dark, var(--cz-stroke, var(--cz-def-stroke))); }\n:root[data-theme=\"dark\"] .chizu .cz-local-line { stroke: var(--cz-stroke-dark, var(--cz-stroke, var(--cz-tone-colour, var(--cz-def-stroke)))); }\n:root[data-theme=\"dark\"] .chizu .cz-local-point { fill: var(--cz-fill-dark, var(--cz-fill, var(--cz-tone-colour, var(--cz-local-point)))); }\n.chizu .cz-local-label-start { text-anchor: start; }\n.chizu .cz-scale-line { fill: none; stroke: var(--cz-ink); stroke-width: 1.6px; stroke-linecap: square; vector-effect: non-scaling-stroke; pointer-events: none; }\n.chizu .cz-scale-text, .chizu .cz-credit { font-family: var(--cz-font); fill: var(--cz-ink); text-anchor: end; paint-order: stroke; stroke: var(--cz-halo); stroke-width: 2.5px; stroke-linejoin: round; pointer-events: none; }\n.chizu .cz-credit { opacity: .85; }\n"

例

import { CHIZU_LOCAL_STYLE } from "@johnmorrisdotca/chizu/draw";

console.log(CHIZU_LOCAL_STYLE.includes("--cz-local-pitch"), CHIZU_LOCAL_STYLE.includes("prefers-color-scheme: dark"));
// true true
true true

出力(このページを作ったときに実行した結果)

ソースを見るGitHub で編集@johnmorrisdotca/chizu 1.5.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。