VersaTiles Style generates styles and sprites for MapLibre.
Style Name | Preview |
---|---|
colorful | |
graybeard | |
eclipse | |
neutrino | |
shadow |
Download the assets from the latest release:
- styles.tar.gz: Contains all styles in multiple languages.
- Note: These styles use
tiles.versatiles.org
as the source for tiles, fonts (glyphs), and icons (sprites).
- Note: These styles use
- sprites.tar.gz: Includes map icons and other sprites.
- versatiles-style.tar.gz: Contains a JavaScript file to generate styles dynamically in the browser.
Download the latest release:
curl -Ls "https://github.com/versatiles-org/versatiles-style/releases/latest/download/versatiles-style.tar.gz" | gzip -d | tar -xf -
Integrate it into your HTML application:
<div id="map"></div>
<script src="maplibre-gl.js"></script>
<script src="versatiles-style.js"></script>
<script>
const style = VersaTilesStyle.graybeard({
language: "de",
colors: { label: "#222" },
recolor: { gamma: 0.5 },
});
const map = new maplibregl.Map({
container: "map",
style,
});
</script>
Install the library via NPM:
npm install @versatiles/style
Generate styles programmatically:
import { colorful } from "@versatiles/style";
import { writeFileSync } from "node:fs";
const style = colorful({
language: "en",
});
writeFileSync("style.json", JSON.stringify(style));
The library offers the following style generation methods:
colorful(options)
- Documentationeclipse(options)
- Documentationgraybeard(options)
- Documentationneutrino(options)
- Documentationshadow(options)
- Documentation
options
: An optional object to customize the styles. Learn more
const style = guessStyle(options);
To build new sprites, ensure optipng
is installed.
- SVGs must consist only of paths and should not contain any
transform()
attributes. - Styles and colors within the SVG are ignored.
- All length values must be specified in pixels without units.
Define icon sets in the configuration file: scripts/config-sprites.ts
Run the project in development mode:
npm run dev
A local server will be available at http://localhost:8080. Use it to select a style, edit definitions in src/styles/...
, and reload the page to view the changes.
---
config:
layout: elk
---
flowchart TB
subgraph 0["src"]
subgraph 1["color"]
2["abstract.ts"]
3["hsl.ts"]
4["hsv.ts"]
5["rgb.ts"]
6["utils.ts"]
7["index.ts"]
8["random.ts"]
end
subgraph 9["guess_style"]
A["guess_style.ts"]
Z["index.ts"]
end
subgraph B["lib"]
C["utils.ts"]
end
subgraph D["styles"]
E["index.ts"]
F["colorful.ts"]
Q["eclipse.ts"]
R["empty.ts"]
S["graybeard.ts"]
T["neutrino.ts"]
U["shadow.ts"]
end
subgraph G["style_builder"]
H["style_builder.ts"]
M["decorator.ts"]
O["recolor.ts"]
P["types.ts"]
end
subgraph I["shortbread"]
J["index.ts"]
K["layers.ts"]
L["template.ts"]
N["properties.ts"]
end
subgraph V["types"]
W["index.ts"]
X["tilejson.ts"]
Y["vector_layer.ts"]
11["maplibre.ts"]
end
10["index.ts"]
end
3-->2
3-->4
3-->5
3-->6
4-->2
4-->3
4-->5
4-->6
5-->2
5-->3
5-->4
5-->6
7-->2
7-->3
7-->4
7-->5
8-->4
8-->6
A-->8
A-->C
A-->E
A-->W
A-->X
C-->7
E-->F
E-->Q
E-->R
E-->S
E-->T
E-->U
F-->H
H-->7
H-->C
H-->J
H-->M
H-->O
H-->P
J-->K
J-->L
M-->7
M-->C
M-->N
O-->7
Q-->F
R-->F
S-->F
T-->F
U-->F
W-->X
W-->Y
Z-->A
10-->7
10-->Z
10-->E
class 0,1,9,B,D,G,I,V subgraphs;
classDef subgraphs fill-opacity:0.1, fill:#888, color:#888, stroke:#888;
- Source Code: Unlicense
- Iconsets and Rendered Spritemaps: CC0 1.0 Universal