diff --git a/INSTALL.md b/INSTALL.md
index e52a8cf1bd..d58eb7cdc9 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -80,4 +80,8 @@ If you aren't using TileMill, you can compile the CartoCSS stylesheets into Mapn
* curl, unzip for downloading and decompressing files
* shapeindex (a companion utility to Mapnik found in the mapnik-utils package) for indexing downloaded shapefiles
+### Development dependencies
+
+* Python and Ruby to run helper scripts
* [PyYAML](http://pyyaml.org/wiki/PyYAML) if editing the MML (layer definition) file (packaged as `python-yaml` on Ubuntu, or installed with `pip install pyyaml`)
+* [Color Math](https://github.com/gtaylor/python-colormath) and [numpy](http://www.numpy.org/) if running generate_road_colors.py helper script (may be obtained with `pip install colormath numpy`)
\ No newline at end of file
diff --git a/preview.png b/preview.png
index fb53b01ea7..f2667cd691 100644
Binary files a/preview.png and b/preview.png differ
diff --git a/project.mml b/project.mml
index f6598b0c3a..f32e1c6fcf 100644
--- a/project.mml
+++ b/project.mml
@@ -601,7 +601,7 @@
],
"properties": {
"group-by": "layernotnull",
- "minzoom": 10
+ "minzoom": 9
},
"advanced": {}
},
@@ -835,7 +835,7 @@
],
"id": "roads-casing",
"properties": {
- "minzoom": 10
+ "minzoom": 9
},
"advanced": {}
},
@@ -1018,7 +1018,7 @@
],
"properties": {
"group-by": "layernotnull",
- "minzoom": 10
+ "minzoom": 9
},
"advanced": {}
},
diff --git a/project.yaml b/project.yaml
index 87033322a1..64bb9e8f25 100644
--- a/project.yaml
+++ b/project.yaml
@@ -607,7 +607,7 @@ Layer:
) AS tunnels
properties:
group-by: "layernotnull"
- minzoom: 10
+ minzoom: 9
advanced: {}
- id: "citywalls"
name: "citywalls"
@@ -890,7 +890,7 @@ Layer:
CASE WHEN int_surface IN ('unpaved') THEN 0 ELSE 2 END
) AS roads_casing
properties:
- minzoom: 10
+ minzoom: 9
advanced: {}
- id: "highway-area-fill"
name: "highway-area-fill"
@@ -1275,7 +1275,7 @@ Layer:
) AS bridges
properties:
group-by: "layernotnull"
- minzoom: 10
+ minzoom: 9
advanced: {}
- id: "guideways"
name: "guideways"
diff --git a/roads.mss b/roads.mss
index 98c285140b..a7a0cd53cd 100644
--- a/roads.mss
+++ b/roads.mss
@@ -1,15 +1,15 @@
/* For the main linear features, such as roads and railways. */
-@motorway-fill: #89a4cb;
-@trunk-fill: #94d494;
-@trunk-fill-alternative: #97d397;
-@primary-fill: #dd9f9f;
-@secondary-fill: #f9d6aa;
-@tertiary-fill: #f8f8ba;
+//road colors for major roads were generated with scripts/generate_road_colors.py
+@motorway-fill: #e892a2; // Lch(70,35,10), error 0.5
+@trunk-fill: #f9b29c; // Lch(79,33,42), error 0.7
+@primary-fill: #fcd6a4; // Lch(88,31,74), error 1.7
+@secondary-fill: #f7fabf; // Lch(97,29,106), error 1.7
+@tertiary-fill: #ffffff;
@residential-fill: #ffffff;
@service-fill: @residential-fill;
-@living-street-fill: #ccc;
-@pedestrian-fill: #ededed;
+@living-street-fill: #ededed;
+@pedestrian-fill: #dddde8;
@raceway-fill: pink;
@road-fill: #ddd;
@path-fill: black;
@@ -23,16 +23,22 @@
@taxiway-fill: @aeroway-fill;
@helipad-fill: @aeroway-fill;
+@motorway-low-zoom: #e66e89; // Lch(62,50,10), error 0.7
+@trunk-low-zoom: #fa9476; // Lch(72,50,42), error 0.8
+@primary-low-zoom: #f8c171; // Lch(82,50,74), error 2.1
+@secondary-low-zoom: #e6ef89; // Lch(92,50,106), error 2.2
+
@default-casing: white;
-@motorway-casing: #7788a1;
-@trunk-casing: #7eae7e;
-@primary-casing: #c57b7e;
-@secondary-casing: #cca16a;
-@tertiary-casing: #c6c68a;
+@motorway-casing: #dc2a67; // Lch(50,70,10), error 1.1
+@trunk-casing: #c84e2f; // Lch(50,65,42), error 0.7
+@primary-casing: #a06b00; // Lch(50,60,74), error 1.6
+@secondary-casing: #707d05; // Lch(50,55,106), error 1.9
+@tertiary-casing: #8f8f8f;
@residential-casing: #bbb;
+@road-casing: @residential-casing;
@service-casing: @residential-casing;
-@living-street-casing: #999;
-@pedestrian-casing: @residential-casing;
+@living-street-casing: @residential-casing;
+@pedestrian-casing: #999;
@path-casing: @default-casing;
@footway-casing: @default-casing;
@steps-casing: @default-casing;
@@ -40,16 +46,24 @@
@bridleway-casing: @default-casing;
@track-casing: @default-casing;
+@motorway-low-zoom-casing: #c24e6b; // Lch(50,50,10), error 0.8
+@trunk-low-zoom-casing: #cf6649; // Lch(56,55,42), error 0.9
+@primary-low-zoom-casing: #c38a27; // Lch(62,60,74), error 2.1
+@secondary-low-zoom-casing: #9eae23; // Lch(68,65,106), error 2.3
+
+@unimportant-road: @residential-casing;
+
@residential-construction: #aaa;
@service-construction: #aaa;
@destination-marking: #c2e0ff;
@private-marking: #efa9a9;
+@private-marking-for-red: #C26363;
@tunnel-casing: grey;
@bridge-casing: black;
-@motorway-tunnel-fill: lighten(@motorway-fill, 25%);
+@motorway-tunnel-fill: lighten(@motorway-fill, 10%);
@trunk-tunnel-fill: lighten(@trunk-fill, 10%);
@primary-tunnel-fill: lighten(@primary-fill, 10%);
@secondary-tunnel-fill: lighten(@secondary-fill, 5%);
@@ -57,18 +71,43 @@
@residential-tunnel-fill: darken(@residential-fill, 5%);
@living-street-tunnel-fill: lighten(@living-street-fill, 10%);
+@motorway-width-z5: 0.5;
+@trunk-width-z5: 0.4;
+
+@motorway-width-z7: 0.8;
+@trunk-width-z7: 0.6;
+
+@motorway-width-z8: 1;
+@trunk-width-z8: 1;
+@primary-width-z8: 1;
+
+@motorway-width-z9: 1.4;
+@trunk-width-z9: 1.4;
+@primary-width-z9: 1.4;
+@secondary-width-z9: 1;
+
+@motorway-width-z10: 1.9;
+@trunk-width-z10: 1.9;
+@primary-width-z10: 1.8;
+@secondary-width-z10: 1;
+
+@motorway-width-z11: 2.0;
+@trunk-width-z11: 1.9;
+@primary-width-z11: 1.8;
+@secondary-width-z11: 1;
+
@motorway-width-z12: 3.5;
@motorway-link-width-z12: 1.5;
@trunk-width-z12: 3.5;
@primary-width-z12: 3.5;
-@secondary-width-z12: 3;
-@tertiary-width-z12: 3;
-
-@motorway-width-z13: 7;
-@motorway-link-width-z13: 4.5;
-@trunk-width-z13: 7;
-@primary-width-z13: 7;
-@secondary-width-z13: 7;
+@secondary-width-z12: 3.5;
+@tertiary-width-z12: 2.5;
+
+@motorway-width-z13: 6;
+@motorway-link-width-z13: 4;
+@trunk-width-z13: 6;
+@primary-width-z13: 5;
+@secondary-width-z13: 5;
@tertiary-width-z13: 5;
@residential-width-z13: 3;
@living-street-width-z13: 2;
@@ -82,21 +121,23 @@
@track-grade2-width-z13: 0.5;
@steps-width-z13: 0.7;
-@tertiary-width-z14: 7.5;
-@residential-width-z14: 4.5;
-@living-street-width-z14: 4;
-@pedestrian-width-z14: 4;
-@service-width-z14: 2.5;
+@secondary-width-z14: 5;
+@tertiary-width-z14: 5;
+@residential-width-z14: 3;
+@living-street-width-z14: 3;
+@pedestrian-width-z14: 3;
+@road-width-z14: 2;
+@service-width-z14: 2;
-@motorway-width-z15: 12.8;
+@motorway-width-z15: 10;
@motorway-link-width-z15: 7.8;
-@trunk-width-z15: 12.8;
-@primary-width-z15: 12.8;
-@secondary-width-z15: 12.8;
-@tertiary-width-z15: 11.2;
-@residential-width-z15: 8.3;
-@living-street-width-z15: 6;
-@pedestrian-width-z15: 6;
+@trunk-width-z15: 10;
+@primary-width-z15: 10;
+@secondary-width-z15: 9;
+@tertiary-width-z15: 9;
+@residential-width-z15: 5;
+@living-street-width-z15: 5;
+@pedestrian-width-z15: 5;
@bridleway-width-z15: 1.2;
@footway-width-z15: 1;
@cycleway-width-z15: 0.9;
@@ -106,24 +147,39 @@
@track-grade2-width-z15: 0.75;
@steps-width-z15: 3;
-@residential-width-z16: 11.2;
-@living-street-width-z16: 9;
-@pedestrian-width-z16: 9;
-@service-width-z16: 6;
-@minor-service-width-z16: 4;
+@secondary-width-z16: 10;
+@tertiary-width-z16: 10;
+@residential-width-z16: 6;
+@living-street-width-z16: 6;
+@pedestrian-width-z16: 6;
+@road-width-z16: 3.5;
+@service-width-z16: 3.5;
+@minor-service-width-z16: 2;
@footway-width-z16: 1.3;
@cycleway-width-z16: 0.9;
@motorway-width-z17: 18;
-@motorway-link-width-z17: 11.5;
+@motorway-link-width-z17: 12;
@trunk-width-z17: 18;
@primary-width-z17: 18;
@secondary-width-z17: 18;
-@tertiary-width-z17: 15.5;
-@residential-width-z17: 15.5;
-@living-street-width-z17: 14;
-@pedestrian-width-z17: 14;
+@tertiary-width-z17: 18;
+@residential-width-z17: 12;
+@living-street-width-z17: 12;
+@pedestrian-width-z17: 12;
+@road-width-z17: 7;
@service-width-z17: 7;
+@minor-service-width-z17: 3.5;
+
+@motorway-width-z18: 20;
+@motorway-link-width-z18: 12;
+@trunk-width-z18: 20;
+@primary-width-z18: 20;
+@secondary-width-z18: 20;
+@tertiary-width-z18: 20;
+@road-width-z18: 8;
+@service-width-z18: 8;
+@minor-service-width-z18: 4.25;
@footway-width-z18: 1.3;
@cycleway-width-z18: 1;
@@ -131,43 +187,109 @@
@footway-width-z19: 1.6;
@cycleway-width-z19: 1.3;
-@casing-width-z12: 0.5;
+
+@major-casing-width-z11: 0.3;
+
+@casing-width-z12: 0.1;
+@secondary-casing-width-z12: 0.3;
+@major-casing-width-z12: 0.5;
+
@casing-width-z13: 0.5;
@residential-casing-width-z13: 0.5;
-@casing-width-z14: 0.5;
-@casing-width-z15: 0.7;
-@casing-width-z16: 0.7;
-@casing-width-z17: 1;
+@secondary-casing-width-z13: 0.35;
+@major-casing-width-z13: 0.5;
+
+@casing-width-z14: 0.55;
+@secondary-casing-width-z14: 0.35;
+@major-casing-width-z14: 0.6;
+
+@casing-width-z15: 0.6;
+@secondary-casing-width-z15: 0.7;
+@major-casing-width-z15: 0.7;
-@bridge-casing-width-z12: 0.5;
+@casing-width-z16: 0.6;
+@secondary-casing-width-z16: 0.7;
+@major-casing-width-z16: 0.7;
+
+@casing-width-z17: 0.8;
+@secondary-casing-width-z17: 1;
+@major-casing-width-z17: 1;
+
+@casing-width-z18: 0.8;
+@secondary-casing-width-z18: 1;
+@major-casing-width-z18: 1;
+
+@bridge-casing-width-z12: 0.1;
+@major-bridge-casing-width-z12: 0.5;
@bridge-casing-width-z13: 0.5;
+@major-bridge-casing-width-z13: 0.5;
@bridge-casing-width-z14: 0.5;
+@major-bridge-casing-width-z14: 0.6;
@bridge-casing-width-z15: 0.75;
+@major-bridge-casing-width-z15: 0.75;
@bridge-casing-width-z16: 0.75;
-@bridge-casing-width-z17: 0.75;
+@major-bridge-casing-width-z16: 0.75;
+@bridge-casing-width-z17: 0.8;
+@major-bridge-casing-width-z17: 1;
+@bridge-casing-width-z18: 0.8;
+@major-bridge-casing-width-z18: 1;
@paths-background-width: 1;
@paths-bridge-casing-width: 0.5;
@paths-tunnel-casing-width: 1;
-@oneway-arrow-color: #6c70d5;
-@junction-text-color: #6666ff;
+@oneway-arrow-color: #404040;
+@junction-text-color: #960000;
+@halo-color-for-minor-road: white;
.roads-casing, .bridges-casing, .tunnels-casing {
::casing {
+ [zoom = 9][feature = 'highway_secondary'] {
+ line-color: @halo-color-for-minor-road;
+ line-width: 2.2;
+ line-opacity: 0.4;
+ line-join: round;
+ //Missing line-cap: round; is intentional. It would cause rendering glow multiple times in some places - what as result of partial transparency would cause differences in rendering
+ //Also, bridges - including bridge casings - are rendered on top of roads. Enabling line-cap: round would result in glow from bridges rendered on top of road around bridges.
+ }
+ [zoom = 10][feature = 'highway_secondary'],
+ [zoom = 11][feature = 'highway_secondary'] {
+ line-color: @halo-color-for-minor-road;
+ line-width: 2.7;
+ line-opacity: 0.4;
+ line-join: round;
+ //Missing line-cap: round; is intentional. It would cause rendering glow multiple times in some places - what as result of partial transparency would cause differences in rendering
+ //Also, bridges - including bridge casings - are rendered on top of roads. Enabling line-cap: round would result in glow from bridges rendered on top of road around bridges.
+ }
+ [zoom = 10][feature = 'highway_tertiary'],
+ [zoom = 11][feature = 'highway_tertiary'],
+ [zoom = 12][feature = 'highway_unclassified'] {
+ line-color: @halo-color-for-minor-road;
+ line-width: 2.2;
+ line-opacity: 0.3;
+ line-join: round;
+ //Missing line-cap: round; is intentional. It would cause rendering glow multiple times in some places - what as result of partial transparency would cause differences in rendering
+ //Also, bridges - including bridge casings are rendered on top of roads. Enabling line-cap: round would result in glow from bridges rendered on top of road around bridges.
+ }
+
[zoom >= 12] {
[feature = 'highway_motorway'] {
line-width: @motorway-width-z12;
[zoom >= 13] { line-width: @motorway-width-z13; }
[zoom >= 15] { line-width: @motorway-width-z15; }
[zoom >= 17] { line-width: @motorway-width-z17; }
+ [zoom >= 18] { line-width: @motorway-width-z18; }
[link = 'yes'] {
line-width: @motorway-link-width-z12;
[zoom >= 13] { line-width: @motorway-link-width-z13; }
[zoom >= 15] { line-width: @motorway-link-width-z15; }
[zoom >= 17] { line-width: @motorway-link-width-z17; }
+ [zoom >= 18] { line-width: @motorway-link-width-z18; }
+ }
+ line-color: @motorway-low-zoom-casing;
+ [zoom >= 13] {
+ line-color: @motorway-casing;
}
- line-color: @motorway-casing;
.roads-casing {
line-join: round;
line-cap: round;
@@ -184,11 +306,15 @@
[feature = 'highway_trunk'] {
[zoom >= 12] {
- line-color: @trunk-casing;
+ line-color: @trunk-low-zoom-casing;
+ [zoom >= 13] {
+ line-color: @trunk-casing;
+ }
line-width: @trunk-width-z12;
[zoom >= 13] { line-width: @trunk-width-z13; }
[zoom >= 15] { line-width: @trunk-width-z15; }
[zoom >= 17] { line-width: @trunk-width-z17; }
+ [zoom >= 18] { line-width: @trunk-width-z18; }
.roads-casing {
line-join: round;
line-cap: round;
@@ -205,11 +331,15 @@
[feature = 'highway_primary'] {
[zoom >= 12] {
- line-color: @primary-casing;
+ line-color: @primary-low-zoom-casing;
+ [zoom >= 13] {
+ line-color: @primary-casing;
+ }
line-width: @primary-width-z12;
[zoom >= 13] { line-width: @primary-width-z13; }
[zoom >= 15] { line-width: @primary-width-z15; }
[zoom >= 17] { line-width: @primary-width-z17; }
+ [zoom >= 18] { line-width: @primary-width-z18; }
.roads-casing {
line-join: round;
line-cap: round;
@@ -226,11 +356,17 @@
[feature = 'highway_secondary'] {
[zoom >= 12] {
- line-color: @secondary-casing;
+ line-color: @secondary-low-zoom-casing;
+ [zoom >= 13] {
+ line-color: @secondary-casing;
+ }
line-width: @secondary-width-z12;
[zoom >= 13] { line-width: @secondary-width-z13; }
+ [zoom >= 14] { line-width: @secondary-width-z14; }
[zoom >= 15] { line-width: @secondary-width-z15; }
+ [zoom >= 16] { line-width: @secondary-width-z16; }
[zoom >= 17] { line-width: @secondary-width-z17; }
+ [zoom >= 18] { line-width: @secondary-width-z18; }
.roads-casing {
line-join: round;
line-cap: round;
@@ -254,7 +390,9 @@
[zoom >= 13] { line-width: @tertiary-width-z13; }
[zoom >= 14] { line-width: @tertiary-width-z14; }
[zoom >= 15] { line-width: @tertiary-width-z15; }
+ [zoom >= 16] { line-width: @tertiary-width-z16; }
[zoom >= 17] { line-width: @tertiary-width-z17; }
+ [zoom >= 18] { line-width: @tertiary-width-z18; }
.roads-casing {
line-join: round;
line-cap: round;
@@ -272,8 +410,7 @@
}
[feature = 'highway_residential'],
- [feature = 'highway_unclassified'],
- [feature = 'highway_road'] {
+ [feature = 'highway_unclassified'] {
[zoom >= 13] {
line-color: @residential-casing;
line-width: @residential-width-z13;
@@ -297,6 +434,27 @@
}
}
+ [feature = 'highway_road'] {
+ [zoom >= 14] {
+ line-color: @road-casing;
+ line-width: @road-width-z14;
+ [zoom >= 16] { line-width: @road-width-z16; }
+ [zoom >= 17] { line-width: @road-width-z17; }
+ [zoom >= 18] { line-width: @road-width-z18; }
+ .roads-casing {
+ line-join: round;
+ line-cap: round;
+ }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
+ .bridges-casing {
+ line-color: @bridge-casing;
+ line-join: round;
+ }
+ }
+ }
+
[feature = 'highway_service'] {
[zoom >= 14][service = 'INT-normal'],
[zoom >= 16][service = 'INT-minor'] {
@@ -305,15 +463,20 @@
line-width: @service-width-z14;
[zoom >= 16] { line-width: @service-width-z16; }
[zoom >= 17] { line-width: @service-width-z17; }
+ [zoom >= 18] { line-width: @service-width-z18; }
}
[service = 'INT-minor'] {
line-width: @minor-service-width-z16;
+ [zoom >= 17] { line-width: @minor-service-width-z17; }
+ [zoom >= 18] { line-width: @minor-service-width-z18; }
}
.roads-casing {
line-join: round;
line-cap: round;
}
- .tunnels-casing { line-dasharray: 4,2; }
+ .tunnels-casing {
+ line-dasharray: 4,2;
+ }
.bridges-casing {
line-color: @bridge-casing;
line-join: round;
@@ -575,7 +738,7 @@
}
}
- [feature = 'railway_disused'],
+ [feature = 'railway_disused'][zoom >= 15],
[feature = 'railway_construction'],
[feature = 'railway_miniature'][zoom >= 15],
[feature = 'railway_INT-preserved-ssy'][zoom >= 14] {
@@ -788,7 +951,7 @@
}
}
- [feature = 'railway_disused'],
+ [feature = 'railway_disused'][zoom >= 15],
[feature = 'railway_construction'],
[feature = 'railway_miniature'][zoom >= 15],
[feature = 'railway_INT-preserved-ssy'][zoom >= 14] {
@@ -881,9 +1044,7 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
line-color: @secondary-fill;
}
[construction = 'tertiary'],
- [construction = 'tertiary_link'] {
- line-color: @tertiary-fill;
- }
+ [construction = 'tertiary_link'],
[construction = 'residential'],
[construction = 'unclassified'],
[construction = 'living_street'] {
@@ -939,37 +1100,43 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'highway_motorway'] {
[zoom >= 5] {
- line-color: @motorway-fill;
- line-width: 0.5;
- }
- [zoom >= 7] { line-width: 1; }
- [zoom >= 9] { line-width: 1.4; }
- [zoom >= 10] { line-width: 2; }
- [zoom >= 11] { line-width: 2.5; }
+ line-color: @motorway-low-zoom;
+ line-width: @motorway-width-z5;
+ }
+ [zoom >= 7] { line-width: @motorway-width-z7; }
+ [zoom >= 8] { line-width: @motorway-width-z8; }
+ [zoom >= 9] { line-width: @motorway-width-z9; }
+ [zoom >= 10] { line-width: @motorway-width-z10; }
+ [zoom >= 11] { line-width: @motorway-width-z11; }
[zoom >= 12] {
- line-width: @motorway-width-z12 - 2 * @casing-width-z12;
- [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @casing-width-z13; }
- [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @casing-width-z15; }
- [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @casing-width-z17; }
+ line-color: @motorway-fill;
+ line-width: @motorway-width-z12 - 2 * @major-casing-width-z12;
+ [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @major-casing-width-z13; }
+ [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @major-casing-width-z15; }
+ [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @major-casing-width-z17; }
+ [zoom >= 18] { line-width: @motorway-width-z18 - 2 * @major-casing-width-z18; }
[link = 'yes'] {
line-width: @motorway-link-width-z12 - 2 * @casing-width-z12;
[zoom >= 13] { line-width: @motorway-link-width-z13 - 2 * @casing-width-z13; }
[zoom >= 15] { line-width: @motorway-link-width-z15 - 2 * @casing-width-z15; }
[zoom >= 17] { line-width: @motorway-link-width-z17 - 2 * @casing-width-z17; }
+ [zoom >= 18] { line-width: @motorway-link-width-z18 - 2 * @casing-width-z18; }
}
.tunnels-fill {
line-color: @motorway-tunnel-fill;
}
.bridges-fill {
- line-width: @motorway-width-z12 - 2 * @bridge-casing-width-z12;
- [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @bridge-casing-width-z13; }
- [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @bridge-casing-width-z15; }
- [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @bridge-casing-width-z17; }
+ line-width: @motorway-width-z12 - 2 * @major-bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @major-bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @major-bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @major-bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @motorway-width-z18 - 2 * @major-bridge-casing-width-z18; }
[link = 'yes'] {
line-width: @motorway-link-width-z12 - 2 * @bridge-casing-width-z12;
[zoom >= 13] { line-width: @motorway-link-width-z13 - 2 * @bridge-casing-width-z13; }
[zoom >= 15] { line-width: @motorway-link-width-z15 - 2 * @bridge-casing-width-z15; }
[zoom >= 17] { line-width: @motorway-link-width-z17 - 2 * @bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @motorway-link-width-z18 - 2 * @bridge-casing-width-z18; }
}
}
line-cap: round;
@@ -979,29 +1146,30 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'highway_trunk'] {
[zoom >= 5] {
- line-width: 0.4;
- line-color: @trunk-fill;
- }
- [zoom >= 7] {
- line-width: 1;
- line-color: @trunk-fill-alternative;
- }
- [zoom >= 9] { line-width: 2; }
- [zoom >= 11] { line-width: 2.5; }
+ line-width: @trunk-width-z5;
+ line-color: @trunk-low-zoom;
+ }
+ [zoom >= 7] { line-width: @trunk-width-z7; }
+ [zoom >= 8] { line-width: @trunk-width-z8; }
+ [zoom >= 9] { line-width: @trunk-width-z9; }
+ [zoom >= 10] { line-width: @trunk-width-z10; }
+ [zoom >= 11] { line-width: @trunk-width-z11; }
[zoom >= 12] {
line-color: @trunk-fill;
- line-width: @trunk-width-z12 - 2 * @casing-width-z12;
- [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @casing-width-z13; }
- [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @casing-width-z15; }
- [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @casing-width-z17; }
+ line-width: @trunk-width-z12 - 2 * @major-casing-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @major-casing-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @major-casing-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @major-casing-width-z17; }
+ [zoom >= 18] { line-width: @trunk-width-z18 - 2 * @major-casing-width-z18; }
.tunnels-fill {
line-color: @trunk-tunnel-fill;
}
.bridges-fill {
- line-width: @trunk-width-z12 - 2 * @bridge-casing-width-z12;
- [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @bridge-casing-width-z13; }
- [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @bridge-casing-width-z15; }
- [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @bridge-casing-width-z17; }
+ line-width: @trunk-width-z12 - 2 * @major-bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @major-bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @major-bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @major-bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @trunk-width-z18 - 2 * @major-bridge-casing-width-z18; }
}
line-cap: round;
line-join: round;
@@ -1009,26 +1177,29 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[feature = 'highway_primary'] {
- [zoom >= 7] {
- line-width: 0.5;
- line-color: @primary-fill;
+ [zoom >= 8] {
+ line-width: @primary-width-z8;
+ line-color: @primary-low-zoom;
}
- [zoom >= 9] { line-width: 1.2; }
- [zoom >= 10] { line-width: 2; }
- [zoom >= 11] { line-width: 2.5; }
+ [zoom >= 9] { line-width: @primary-width-z9; }
+ [zoom >= 10] { line-width: @primary-width-z10; }
+ [zoom >= 11] { line-width: @primary-width-z11; }
[zoom >= 12] {
- line-width: @primary-width-z12 - 2 * @casing-width-z12;
- [zoom >= 13] { line-width: @primary-width-z13 - 2 * @casing-width-z13; }
- [zoom >= 15] { line-width: @primary-width-z15 - 2 * @casing-width-z15; }
- [zoom >= 17] { line-width: @primary-width-z17 - 2 * @casing-width-z17; }
+ line-color: @primary-fill;
+ line-width: @primary-width-z12 - 2 * @major-casing-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13 - 2 * @major-casing-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15 - 2 * @major-casing-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17 - 2 * @major-casing-width-z17; }
+ [zoom >= 18] { line-width: @primary-width-z18 - 2 * @major-casing-width-z18; }
.tunnels-fill {
line-color: @primary-tunnel-fill;
}
.bridges-fill {
- line-width: @primary-width-z12 - 2 * @bridge-casing-width-z12;
- [zoom >= 13] { line-width: @primary-width-z13 - 2 * @bridge-casing-width-z13; }
- [zoom >= 15] { line-width: @primary-width-z15 - 2 * @bridge-casing-width-z15; }
- [zoom >= 17] { line-width: @primary-width-z17 - 2 * @bridge-casing-width-z17; }
+ line-width: @primary-width-z12 - 2 * @major-bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @primary-width-z13 - 2 * @major-bridge-casing-width-z13; }
+ [zoom >= 15] { line-width: @primary-width-z15 - 2 * @major-bridge-casing-width-z15; }
+ [zoom >= 17] { line-width: @primary-width-z17 - 2 * @major-bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @primary-width-z18 - 2 * @major-bridge-casing-width-z18; }
}
line-cap: round;
line-join: round;
@@ -1037,33 +1208,46 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'highway_secondary'] {
[zoom >= 9] {
- line-width: 1;
- line-color: @secondary-fill;
+ line-color: @unimportant-road;
+ line-width: @secondary-width-z9;
}
- [zoom >= 11] { line-width: 2; }
- [zoom >= 12] {
- line-width: @secondary-width-z12 - 2 * @casing-width-z12;
- [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @casing-width-z13; }
- [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @casing-width-z15; }
- [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @casing-width-z17; }
- .tunnels-fill {
- line-color: @secondary-tunnel-fill;
- }
- .bridges-fill {
- line-width: @secondary-width-z12 - 2 * @bridge-casing-width-z12;
- [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @bridge-casing-width-z13; }
- [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @bridge-casing-width-z15; }
- [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @bridge-casing-width-z17; }
- }
+ [zoom >=10] {
+ line-color: @unimportant-road;
+ line-width: @secondary-width-z10;
+ }
+ [zoom >= 11] { line-width: @secondary-width-z11; }
+ [zoom >= 12] {
+ line-color: @secondary-fill;
+ line-width: @secondary-width-z12 - 2 * @secondary-casing-width-z12;
line-cap: round;
line-join: round;
+ [zoom >= 13] {
+ [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @secondary-casing-width-z13; }
+ [zoom >= 14] { line-width: @secondary-width-z14 - 2 * @secondary-casing-width-z14; }
+ [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @secondary-casing-width-z15; }
+ [zoom >= 16] { line-width: @secondary-width-z16 - 2 * @secondary-casing-width-z16; }
+ [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @secondary-casing-width-z17; }
+ [zoom >= 18] { line-width: @secondary-width-z18 - 2 * @secondary-casing-width-z18; }
+ .tunnels-fill {
+ line-color: @secondary-tunnel-fill;
+ }
+ .bridges-fill {
+ line-width: @secondary-width-z12 - 2 * @bridge-casing-width-z12;
+ [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @major-bridge-casing-width-z13; }
+ [zoom >= 14] { line-width: @secondary-width-z14 - 2 * @major-bridge-casing-width-z14; }
+ [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @major-bridge-casing-width-z15; }
+ [zoom >= 16] { line-width: @secondary-width-z16 - 2 * @major-bridge-casing-width-z16; }
+ [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @major-bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @secondary-width-z18 - 2 * @major-bridge-casing-width-z18; }
+ }
+ }
}
}
[feature = 'highway_tertiary'] {
[zoom >= 10] {
- line-color: @residential-casing;
- line-width: 1;
+ line-color: @unimportant-road;
+ line-width: 0.55;
}
[zoom >= 12] {
line-color: @tertiary-fill;
@@ -1071,7 +1255,9 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[zoom >= 13] { line-width: @tertiary-width-z13 - 2 * @casing-width-z13; }
[zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @casing-width-z14; }
[zoom >= 15] { line-width: @tertiary-width-z15 - 2 * @casing-width-z15; }
+ [zoom >= 16] { line-width: @tertiary-width-z16 - 2 * @casing-width-z16; }
[zoom >= 17] { line-width: @tertiary-width-z17 - 2 * @casing-width-z17; }
+ [zoom >= 18] { line-width: @tertiary-width-z18 - 2 * @casing-width-z18; }
.tunnels-fill {
line-color: @tertiary-tunnel-fill;
}
@@ -1080,7 +1266,9 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[zoom >= 13] { line-width: @tertiary-width-z13 - 2 * @bridge-casing-width-z13; }
[zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @bridge-casing-width-z14; }
[zoom >= 15] { line-width: @tertiary-width-z15 - 2 * @bridge-casing-width-z15; }
+ [zoom >= 16] { line-width: @tertiary-width-z16 - 2 * @bridge-casing-width-z16; }
[zoom >= 17] { line-width: @tertiary-width-z17 - 2 * @bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @tertiary-width-z18 - 2 * @bridge-casing-width-z18; }
}
line-cap: round;
line-join: round;
@@ -1090,11 +1278,11 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'highway_residential'],
[feature = 'highway_unclassified'] {
[zoom = 12][feature = 'highway_residential'] {
- line-color: @residential-casing;
+ line-color: @unimportant-road;
line-width: 0.4;
}
[zoom = 12][feature = 'highway_unclassified'] {
- line-color: @residential-casing;
+ line-color: @unimportant-road;
line-width: 1;
}
[zoom >= 13] {
@@ -1121,42 +1309,6 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
- [feature = 'highway_road'] {
- [zoom >= 10] {
- line-color: @residential-casing;
- line-width: 1;
- }
- [zoom >= 13] {
- .roads-fill, .bridges-fill {
- line-color: @road-fill;
- }
- .tunnels-fill {
- line-color: @residential-tunnel-fill;
- }
- .roads-fill {
- line-width: 2;
- [zoom >= 14] { line-width: 3; }
- [zoom >= 15] { line-width: 6.5; }
- [zoom >= 16] { line-width: 9.4; }
- [zoom >= 17] { line-width: 13; }
- }
- .bridges-fill {
- line-width: 3.5;
- [zoom >= 14] { line-width: 7.5; }
- [zoom >= 15] { line-width: 9.5; }
- [zoom >= 17] { line-width: 14; }
- }
- .tunnels-fill {
- line-width: 2;
- [zoom >= 14] { line-width: 3.5; }
- [zoom >= 15] { line-width: 9.5; }
- [zoom >= 17] { line-width: 14; }
- }
- line-cap: round;
- line-join: round;
- }
- }
-
[feature = 'highway_living_street'] {
[zoom >= 13] {
line-width: @living-street-width-z13 - 2 * @casing-width-z13;
@@ -1182,10 +1334,38 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
+ [feature = 'highway_road'] {
+ [zoom >= 10] {
+ line-width: 1;
+ line-color: @unimportant-road;
+ line-join: round;
+ line-cap: round;
+ }
+ [zoom >= 14] {
+ line-width: @road-width-z14 - 2 * @casing-width-z14;
+ [zoom >= 16] { line-width: @road-width-z16 - 2 * @casing-width-z16; }
+ [zoom >= 17] { line-width: @road-width-z17 - 2 * @casing-width-z17; }
+ [zoom >= 18] { line-width: @road-width-z18 - 2 * @casing-width-z18; }
+ .roads-fill {
+ line-color: @road-fill;
+ }
+ .bridges-fill {
+ line-width: @road-width-z14 - 2 * @bridge-casing-width-z14;
+ [zoom >= 16] { line-width: @road-width-z16 - 2 * @bridge-casing-width-z16; }
+ [zoom >= 17] { line-width: @road-width-z17 - 2 * @bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @road-width-z18 - 2 * @bridge-casing-width-z18; }
+ line-color: @road-fill;
+ }
+ .tunnels-fill {
+ line-color: @road-fill;
+ }
+ }
+ }
+
[feature = 'highway_service'] {
[zoom >= 13][service = 'INT-normal'] {
line-width: 1;
- line-color: @residential-casing;
+ line-color: @unimportant-road;
}
[zoom >= 14][service = 'INT-normal'],
[zoom >= 16][service = 'INT-minor'] {
@@ -1194,9 +1374,12 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
line-width: @service-width-z14 - 2 * @casing-width-z14;
[zoom >= 16] { line-width: @service-width-z16 - 2 * @casing-width-z16; }
[zoom >= 17] { line-width: @service-width-z17 - 2 * @casing-width-z17; }
+ [zoom >= 18] { line-width: @service-width-z18 - 2 * @casing-width-z18; }
}
[service = 'INT-minor'] {
line-width: @minor-service-width-z16 - 2 * @casing-width-z16;
+ [zoom >= 17] { line-width: @minor-service-width-z17 - 2 * @casing-width-z17; }
+ [zoom >= 18] { line-width: @minor-service-width-z18 - 2 * @casing-width-z18; }
}
line-join: round;
line-cap: round;
@@ -1208,9 +1391,12 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
line-width: @service-width-z14 - 2 * @bridge-casing-width-z14;
[zoom >= 16] { line-width: @service-width-z16 - 2 * @bridge-casing-width-z16; }
[zoom >= 17] { line-width: @service-width-z17 - 2 * @bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @service-width-z18 - 2 * @bridge-casing-width-z18; }
}
[service = 'INT-minor'] {
line-width: @minor-service-width-z16 - 2 * @bridge-casing-width-z16;
+ [zoom >= 17] { line-width: @minor-service-width-z17 - 2 * @bridge-casing-width-z17; }
+ [zoom >= 18] { line-width: @minor-service-width-z18 - 2 * @bridge-casing-width-z18; }
}
}
}
@@ -1528,15 +1714,10 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'railway_rail'][zoom >= 7],
[feature = 'railway_INT-spur-siding-yard'][zoom >= 13] {
[zoom < 13] {
- line-color: #aaa;
- [feature = 'railway_rail'] {
- line-width: 0.6;
- [zoom >= 9] { line-width: 1; }
- [zoom >= 10] { line-width: 2; }
- }
- [feature = 'railway_INT-spur-siding-yard'] {
- line-width: 1;
- }
+ line-color: #787878;
+ line-width: 0.5;
+ [zoom >= 8] { line-width: 0.8; }
+ [zoom >= 12] { line-width: 0.9; }
line-join: round;
.roads_low_zoom[int_tunnel = 'yes'], .tunnels-fill {
line-dasharray: 5,2;
@@ -1544,56 +1725,42 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
[zoom >= 13] {
.roads-fill, .bridges-fill {
- dark/line-color: #999999;
- [feature = 'railway_rail'] { dark/line-width: 3; }
- [feature = 'railway_INT-spur-siding-yard'] { dark/line-width: 2; }
- [feature = 'railway_rail'] { dark/line-join: round; }
- [feature = 'railway_INT-spur-siding-yard'] .bridges-fill { dark/line-join: round; }
+ dark/line-join: round;
light/line-color: white;
- [feature = 'railway_rail'] { light/line-width: 1; }
- [feature = 'railway_INT-spur-siding-yard'] { light/line-width: 0.8; }
- [feature = 'railway_rail'] { light/line-dasharray: 8,12; }
- [feature = 'railway_INT-spur-siding-yard'] { light/line-dasharray: 0,8,11,1; }
light/line-join: round;
- [feature = 'railway_rail'][zoom >= 14] { light/line-dasharray: 0,11,8,1; }
+ [feature = 'railway_rail'] {
+ dark/line-color: #787878;
+ dark/line-width: 3;
+ light/line-width: 1;
+ light/line-dasharray: 8,8;
+ [zoom >= 15] {
+ light/line-dasharray: 0,8,8,1;
+ }
+ [zoom >= 19] {
+ dark/line-width: 4;
+ light/line-width: 2;
+ }
+ }
+ [feature = 'railway_INT-spur-siding-yard'] {
+ dark/line-width: 2;
+ dark/line-color: #aaa;
+ light/line-width: 0.8;
+ light/line-dasharray: 0,8,8,1;
+ }
}
.tunnels-fill {
- a/line-width: 3;
- b/line-width: 3;
- c/line-width: 3;
- d/line-width: 3;
- e/line-width: 3;
- f/line-width: 3;
- g/line-width: 3;
- a/line-color: #ffffff;
- b/line-color: #fdfdfd;
- c/line-color: #ececec;
- d/line-color: #cacaca;
- e/line-color: #afafaf;
- f/line-color: #a1a1a1;
- g/line-color: #9b9b9b;
- a/line-dasharray: 1,9;
- b/line-dasharray: 0,1,1,8;
- c/line-dasharray: 0,2,1,7;
- d/line-dasharray: 0,3,1,6;
- e/line-dasharray: 0,4,1,5;
- f/line-dasharray: 0,5,1,4;
- g/line-dasharray: 0,6,1,3;
- a/line-join: round;
- b/line-join: round;
- c/line-join: round;
- d/line-join: round;
- e/line-join: round;
- f/line-join: round;
- g/line-join: round;
+ line-color: #787878;
+ line-width: 2.8;
+ line-dasharray: 6,4;
+ line-clip: false;
[feature = 'railway_INT-spur-siding-yard'] {
- a/line-width: 2;
- b/line-width: 2;
- c/line-width: 2;
- d/line-width: 2;
- e/line-width: 2;
- f/line-width: 2;
- g/line-width: 2;
+ line-color: #aaa;
+ line-width: 1.9;
+ line-dasharray: 3,3;
+ }
+ [feature = 'railway_rail'][zoom >= 19] {
+ line-dasharray: 8,6;
+ line-width: 3.8;
}
}
}
@@ -1726,13 +1893,28 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
}
}
- [feature = 'railway_disused'],
[feature = 'railway_construction'] {
[zoom >= 13] {
line-color: grey;
line-width: 2;
line-dasharray: 2,4;
line-join: round;
+ [zoom >= 14] {
+ line-dasharray: 2,3;
+ }
+ [zoom >= 15] {
+ line-width: 3;
+ line-dasharray: 3,3;
+ }
+ }
+ }
+
+ [feature = 'railway_disused'] {
+ [zoom >= 15] {
+ line-color: #aaa;
+ line-width: 2;
+ line-dasharray: 2,4;
+ line-join: round;
}
}
@@ -1786,10 +1968,18 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
marker-fill: @tertiary-casing;
marker-width: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15;
marker-height: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15;
+ [zoom >= 16] {
+ marker-width: (@tertiary-width-z16 - 2 * @casing-width-z16) * 1.8 + 2 * @casing-width-z16;
+ marker-height: (@tertiary-width-z16 - 2 * @casing-width-z16) * 1.8 + 2 * @casing-width-z16;
+ }
[zoom >= 17] {
marker-width: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17;
marker-height: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17;
}
+ [zoom >= 18] {
+ marker-width: (@tertiary-width-z18 - 2 * @casing-width-z18) * 1.8 + 2 * @casing-width-z18;
+ marker-height: (@tertiary-width-z18 - 2 * @casing-width-z18) * 1.8 + 2 * @casing-width-z18;
+ }
marker-allow-overlap: true;
marker-ignore-placement: true;
marker-line-width: 0;
@@ -2114,26 +2304,37 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'highway_tertiary'],
[feature = 'highway_unclassified'],
[feature = 'highway_residential'],
- [feature = 'highway_road'],
[feature = 'highway_living_street'] {
[zoom >= 15] {
access/line-width: 6;
access/line-color: @destination-marking;
access/line-dasharray: 6,8;
- access/line-cap: round;
+ access/line-opacity: 0.5;
access/line-join: round;
+ access/line-cap: round;
+ }
+ }
+ [feature = 'highway_road'],
+ [feature = 'highway_service'][service = 'INT-normal'] {
+ [zoom >= 15] {
+ access/line-width: 3;
+ access/line-color: @destination-marking;
+ access/line-dasharray: 6,8;
access/line-opacity: 0.5;
+ access/line-join: round;
+ access/line-cap: round;
+ [zoom >= 16] { access/line-width: 6; }
}
}
- [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15],
- [feature = 'highway_service'][zoom >= 16] {
- access/line-width: 3;
- access/line-color: @destination-marking;
- access/line-dasharray: 6,8;
- access/line-cap: round;
- access/line-join: round;
- access/line-opacity: 0.5;
- [zoom >= 16] { access/line-width: 6; }
+ [feature = 'highway_service'][service = 'INT-minor'] {
+ [zoom >= 16] {
+ access/line-width: 2.5;
+ access/line-color: @destination-marking;
+ access/line-dasharray: 6,8;
+ access/line-opacity: 0.5;
+ access/line-join: round;
+ access/line-cap: round;
+ }
}
}
[access = 'no'] {
@@ -2144,31 +2345,58 @@ tertiary is rendered from z10 and is not included in osm_planet_roads. */
[feature = 'highway_tertiary'],
[feature = 'highway_unclassified'],
[feature = 'highway_residential'],
+ [feature = 'highway_living_street'] {
+ [zoom >= 15] {
+ access/line-width: 6;
+ access/line-color: @private-marking;
+ access/line-dasharray: 6,8;
+ access/line-opacity: 0.5;
+ access/line-join: round;
+ access/line-cap: round;
+ [feature = 'highway_motorway'],
+ [feature = 'highway_trunk'],
+ [feature = 'highway_primary'] {
+ access/line-color: @private-marking-for-red;
+ }
+ }
+ }
[feature = 'highway_road'],
- [feature = 'highway_living_street'],
[feature = 'highway_track'],
- [feature = 'highway_path'],
+ [feature = 'highway_service'][service = 'INT-normal'] {
+ [zoom >= 15] {
+ access/line-width: 3;
+ access/line-color: @private-marking;
+ access/line-dasharray: 6,8;
+ access/line-opacity: 0.5;
+ access/line-join: round;
+ access/line-cap: round;
+ [zoom >= 16] { access/line-width: 6; }
+ }
+ }
[feature = 'highway_footway'],
+ [feature = 'highway_path'],
[feature = 'highway_cycleway'],
- [feature = 'highway_bridleway'] {
+ [feature = 'highway_bridleway'],
+ [feature = 'highway_steps'] {
[zoom >= 15] {
- access/line-width: 6;
+ access/line-width: 5;
access/line-color: @private-marking;
access/line-dasharray: 6,8;
access/line-opacity: 0.5;
access/line-join: round;
access/line-cap: round;
- }
+ }
}
- [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15],
- [feature = 'highway_service'][zoom >= 16] {
- access/line-width: 3;
- access/line-color: @private-marking;
- access/line-dasharray: 6,8;
- access/line-opacity: 0.5;
- access/line-join: round;
- access/line-cap: round;
- [zoom >= 16] { access/line-width: 6; }
+
+ [feature = 'highway_service'][service = 'INT-minor'][zoom >= 16] {
+ [zoom >= 15] {
+ access/line-width: 2.5;
+ access/line-color: @private-marking;
+ access/line-dasharray: 6,8;
+ access/line-opacity: 0.5;
+ access/line-join: round;
+ access/line-cap: round;
+ }
}
}
}
diff --git a/scripts/create_standard_shields b/scripts/create_standard_shields
index be84c50dac..96cb70a1b4 100755
--- a/scripts/create_standard_shields
+++ b/scripts/create_standard_shields
@@ -18,11 +18,20 @@ widths='
10:75.75
11:80.75'
-colours='motorway:#7788a1
-trunk:#87ab87
-primary:#bb7b7f
-secondary:#c6ad84
-tertiary:#c4c68f'
+#shield colors were generated with scripts/generate_road_colors.py
+colours='motorway:#d18996
+trunk:#da9b88
+primary:#d5b284
+secondary:#c6ca90
+tertiary:#c6c6c6'
+
+# motorway: Lch(65,30,10), error 0.5
+# trunk: Lch(70,30,42), error 0.7
+# primary: Lch(75,30,74), error 1.6
+# secondary: Lch(80,30,106), error 1.8
+# tertiary: Lch(80,0,0), error 0.1
+
+
xoffset=1.25
diff --git a/scripts/generate_road_colours.py b/scripts/generate_road_colours.py
new file mode 100644
index 0000000000..7c0bd4a8f4
--- /dev/null
+++ b/scripts/generate_road_colours.py
@@ -0,0 +1,94 @@
+from colormath.color_conversions import convert_color
+from colormath.color_objects import LabColor, LCHabColor, sRGBColor
+from colormath.color_diff import delta_e_cie2000
+import numpy
+
+from collections import OrderedDict, namedtuple
+
+class Color:
+ def __init__(self, lch_tuple):
+ self.m_lch = LCHabColor(*lch_tuple)
+
+ def lch(self):
+ return "Lch({:.0f},{:.0f},{:.0f})".format(*(self.m_lch.get_value_tuple()))
+
+ def rgb(self):
+ rgb = convert_color(self.m_lch, sRGBColor)
+ if (rgb.rgb_r != rgb.clamped_rgb_r or rgb.rgb_g != rgb.clamped_rgb_g or rgb.rgb_b != rgb.clamped_rgb_b):
+ raise Exception("Colour {} is outside sRGB".format(self.lch()))
+ return rgb.get_rgb_hex()
+
+ def rgb_error(self):
+ return delta_e_cie2000(convert_color(self.m_lch, LabColor),
+ convert_color(sRGBColor.new_from_rgb_hex(self.rgb()), LabColor))
+
+road_classes = ["motorway", "trunk", "primary", "secondary"]
+colour_divisions = len(road_classes) - 1
+hues = OrderedDict()
+
+# The minimum and maximum hue for the road colours
+# Because hue is a circle, it may be needed to add/subtract 360 to the min or
+# max when changing them
+
+min_h = 10
+max_h = 106
+delta_h = (max_h - min_h) / colour_divisions
+
+h = min_h
+for name in road_classes:
+ hues[name] = h
+ h = (h + delta_h) % 360
+
+print hues
+# A class to hold information for each line
+ColourInfo = namedtuple("ColourInfo", ["start_l", "end_l", "start_c", "end_c"])
+
+line_colour_infos = OrderedDict()
+
+# The saturation and lightness for each type of line
+line_colour_infos["fill"] = ColourInfo(start_l = 70, end_l = 97, start_c = 35, end_c = 29)
+line_colour_infos["low-zoom"] = ColourInfo(start_l = 62, end_l = 92, start_c = 50, end_c = 50)
+
+line_colour_infos["casing"] = ColourInfo(start_l = 50, end_l = 50, start_c = 70, end_c = 55)
+line_colour_infos["low-zoom-casing"] = ColourInfo(start_l = 50, end_l = 70, start_c = 50, end_c = 65)
+
+# Colours for the MSS
+colours = OrderedDict()
+
+for line_name, line_colour_info in line_colour_infos.iteritems():
+ c = line_colour_info.start_c
+ delta_c = (line_colour_info.end_c - line_colour_info.start_c) / colour_divisions
+ l = line_colour_info.start_l
+ delta_l = (line_colour_info.end_l - line_colour_info.start_l) / colour_divisions
+
+ for name in road_classes:
+ colours[name + "-" + line_name] = Color((l, c, hues[name]))
+ c += delta_c
+ l += delta_l
+
+for name, colour in colours.iteritems():
+ print "@{name}: {rgb}; // {lch}, error {delta:.1f}".format(name = name, rgb = colour.rgb(), lch = colour.lch(), delta = colour.rgb_error())
+
+# Generate colours for the shields
+shield_colour_info = ColourInfo(start_l = 65, end_l = 80, start_c = 30, end_c = 30)
+shield_colours = OrderedDict()
+
+
+c = shield_colour_info.start_c
+delta_c = (shield_colour_info.end_c - shield_colour_info.start_c) / colour_divisions
+l = shield_colour_info.start_l
+delta_l = (shield_colour_info.end_l - shield_colour_info.start_l) / colour_divisions
+
+for name in road_classes:
+ shield_colours[name] = Color((l, c, hues[name]))
+ c += delta_c
+ l += delta_l
+
+shield_colours["tertiary"] = Color((shield_colour_info.end_l, 0, 0))
+
+print "\n\nRoad shield information\n\n"
+for name, colour in shield_colours.iteritems():
+ print "{name}:{rgb}".format(name = name, rgb = colour.rgb())
+
+for name, colour in shield_colours.iteritems():
+ print "# {name}: {lch}, error {delta:.1f}".format(name = name, lch = colour.lch(), delta = colour.rgb_error())
\ No newline at end of file
diff --git a/scripts/regenerate_shields.sh b/scripts/regenerate_shields.sh
new file mode 100755
index 0000000000..2280b9f76f
--- /dev/null
+++ b/scripts/regenerate_shields.sh
@@ -0,0 +1,2 @@
+./create_standard_shields
+mv *.svg ../symbols/shields
diff --git a/symbols/shields/motorway_10x1.svg b/symbols/shields/motorway_10x1.svg
index 729806511c..d136907397 100644
--- a/symbols/shields/motorway_10x1.svg
+++ b/symbols/shields/motorway_10x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_10x2.svg b/symbols/shields/motorway_10x2.svg
index 14861c425c..63604ea27a 100644
--- a/symbols/shields/motorway_10x2.svg
+++ b/symbols/shields/motorway_10x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_10x3.svg b/symbols/shields/motorway_10x3.svg
index 28fcf9edde..223d6e7197 100644
--- a/symbols/shields/motorway_10x3.svg
+++ b/symbols/shields/motorway_10x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_10x4.svg b/symbols/shields/motorway_10x4.svg
index 8432563c26..6cf49eddd8 100644
--- a/symbols/shields/motorway_10x4.svg
+++ b/symbols/shields/motorway_10x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_11x1.svg b/symbols/shields/motorway_11x1.svg
index 98115cf202..84c667b62e 100644
--- a/symbols/shields/motorway_11x1.svg
+++ b/symbols/shields/motorway_11x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_11x2.svg b/symbols/shields/motorway_11x2.svg
index d1445220fb..2863e29082 100644
--- a/symbols/shields/motorway_11x2.svg
+++ b/symbols/shields/motorway_11x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_11x3.svg b/symbols/shields/motorway_11x3.svg
index 0ce904a49f..5a8b3d8214 100644
--- a/symbols/shields/motorway_11x3.svg
+++ b/symbols/shields/motorway_11x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_11x4.svg b/symbols/shields/motorway_11x4.svg
index 89e18493d4..789b99a073 100644
--- a/symbols/shields/motorway_11x4.svg
+++ b/symbols/shields/motorway_11x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_1x1.svg b/symbols/shields/motorway_1x1.svg
index 52b0f77cb9..0cea6a435d 100644
--- a/symbols/shields/motorway_1x1.svg
+++ b/symbols/shields/motorway_1x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_1x2.svg b/symbols/shields/motorway_1x2.svg
index c5a54e474d..7fbb048388 100644
--- a/symbols/shields/motorway_1x2.svg
+++ b/symbols/shields/motorway_1x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_1x3.svg b/symbols/shields/motorway_1x3.svg
index 1f27cdd4ce..2f871e5e49 100644
--- a/symbols/shields/motorway_1x3.svg
+++ b/symbols/shields/motorway_1x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_1x4.svg b/symbols/shields/motorway_1x4.svg
index b25e0057ba..acd6b12d35 100644
--- a/symbols/shields/motorway_1x4.svg
+++ b/symbols/shields/motorway_1x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_2x1.svg b/symbols/shields/motorway_2x1.svg
index 4377bf022a..a7c8d68501 100644
--- a/symbols/shields/motorway_2x1.svg
+++ b/symbols/shields/motorway_2x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_2x2.svg b/symbols/shields/motorway_2x2.svg
index bc932a6175..26716a084f 100644
--- a/symbols/shields/motorway_2x2.svg
+++ b/symbols/shields/motorway_2x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_2x3.svg b/symbols/shields/motorway_2x3.svg
index 259359cf38..8735930fd9 100644
--- a/symbols/shields/motorway_2x3.svg
+++ b/symbols/shields/motorway_2x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_2x4.svg b/symbols/shields/motorway_2x4.svg
index 13aa6c3896..6c754d44bf 100644
--- a/symbols/shields/motorway_2x4.svg
+++ b/symbols/shields/motorway_2x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_3x1.svg b/symbols/shields/motorway_3x1.svg
index f005d07954..f56f4111a9 100644
--- a/symbols/shields/motorway_3x1.svg
+++ b/symbols/shields/motorway_3x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_3x2.svg b/symbols/shields/motorway_3x2.svg
index 35e7fc603f..a33a8a6df4 100644
--- a/symbols/shields/motorway_3x2.svg
+++ b/symbols/shields/motorway_3x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_3x3.svg b/symbols/shields/motorway_3x3.svg
index e3e706d2cf..7ecb6e3dd2 100644
--- a/symbols/shields/motorway_3x3.svg
+++ b/symbols/shields/motorway_3x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_3x4.svg b/symbols/shields/motorway_3x4.svg
index cbe8e310d0..94cbe8793c 100644
--- a/symbols/shields/motorway_3x4.svg
+++ b/symbols/shields/motorway_3x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_4x1.svg b/symbols/shields/motorway_4x1.svg
index 0ca29fe594..9a1df365de 100644
--- a/symbols/shields/motorway_4x1.svg
+++ b/symbols/shields/motorway_4x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_4x2.svg b/symbols/shields/motorway_4x2.svg
index 637acf85fc..c5f316ea09 100644
--- a/symbols/shields/motorway_4x2.svg
+++ b/symbols/shields/motorway_4x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_4x3.svg b/symbols/shields/motorway_4x3.svg
index 78abfc378d..cf17bc74de 100644
--- a/symbols/shields/motorway_4x3.svg
+++ b/symbols/shields/motorway_4x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_4x4.svg b/symbols/shields/motorway_4x4.svg
index fdce2ebe15..4728394d8c 100644
--- a/symbols/shields/motorway_4x4.svg
+++ b/symbols/shields/motorway_4x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_5x1.svg b/symbols/shields/motorway_5x1.svg
index f5bbf52aaa..c3a2749704 100644
--- a/symbols/shields/motorway_5x1.svg
+++ b/symbols/shields/motorway_5x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_5x2.svg b/symbols/shields/motorway_5x2.svg
index ca963cbd1e..05939b7cae 100644
--- a/symbols/shields/motorway_5x2.svg
+++ b/symbols/shields/motorway_5x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_5x3.svg b/symbols/shields/motorway_5x3.svg
index fcba797d67..83f2b5f033 100644
--- a/symbols/shields/motorway_5x3.svg
+++ b/symbols/shields/motorway_5x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_5x4.svg b/symbols/shields/motorway_5x4.svg
index 7a8c7734cc..921be6e0f6 100644
--- a/symbols/shields/motorway_5x4.svg
+++ b/symbols/shields/motorway_5x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_6x1.svg b/symbols/shields/motorway_6x1.svg
index b777c68f43..b5c5753c8d 100644
--- a/symbols/shields/motorway_6x1.svg
+++ b/symbols/shields/motorway_6x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_6x2.svg b/symbols/shields/motorway_6x2.svg
index 950ba9b99b..0d1e8644c9 100644
--- a/symbols/shields/motorway_6x2.svg
+++ b/symbols/shields/motorway_6x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_6x3.svg b/symbols/shields/motorway_6x3.svg
index 1501526357..69bd2ca74c 100644
--- a/symbols/shields/motorway_6x3.svg
+++ b/symbols/shields/motorway_6x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_6x4.svg b/symbols/shields/motorway_6x4.svg
index 55397cbf97..6084dd629a 100644
--- a/symbols/shields/motorway_6x4.svg
+++ b/symbols/shields/motorway_6x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_7x1.svg b/symbols/shields/motorway_7x1.svg
index 358e5904e0..1c25bf0987 100644
--- a/symbols/shields/motorway_7x1.svg
+++ b/symbols/shields/motorway_7x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_7x2.svg b/symbols/shields/motorway_7x2.svg
index b93b4fcb79..ef3aa63ea3 100644
--- a/symbols/shields/motorway_7x2.svg
+++ b/symbols/shields/motorway_7x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_7x3.svg b/symbols/shields/motorway_7x3.svg
index 219e8e5480..cde55fef0e 100644
--- a/symbols/shields/motorway_7x3.svg
+++ b/symbols/shields/motorway_7x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_7x4.svg b/symbols/shields/motorway_7x4.svg
index 0c74453fed..6299594ad5 100644
--- a/symbols/shields/motorway_7x4.svg
+++ b/symbols/shields/motorway_7x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_8x1.svg b/symbols/shields/motorway_8x1.svg
index dc507ad458..f03a479ea6 100644
--- a/symbols/shields/motorway_8x1.svg
+++ b/symbols/shields/motorway_8x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_8x2.svg b/symbols/shields/motorway_8x2.svg
index 14cdafeb05..6364971105 100644
--- a/symbols/shields/motorway_8x2.svg
+++ b/symbols/shields/motorway_8x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_8x3.svg b/symbols/shields/motorway_8x3.svg
index 9e683140d7..a3476e7146 100644
--- a/symbols/shields/motorway_8x3.svg
+++ b/symbols/shields/motorway_8x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_8x4.svg b/symbols/shields/motorway_8x4.svg
index 869fbe93a8..2140c4c839 100644
--- a/symbols/shields/motorway_8x4.svg
+++ b/symbols/shields/motorway_8x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_9x1.svg b/symbols/shields/motorway_9x1.svg
index 46f21a82f4..0dcf1b76b7 100644
--- a/symbols/shields/motorway_9x1.svg
+++ b/symbols/shields/motorway_9x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_9x2.svg b/symbols/shields/motorway_9x2.svg
index d03181ab7f..e13ad53e07 100644
--- a/symbols/shields/motorway_9x2.svg
+++ b/symbols/shields/motorway_9x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_9x3.svg b/symbols/shields/motorway_9x3.svg
index b338ec96d4..a8ddbe6236 100644
--- a/symbols/shields/motorway_9x3.svg
+++ b/symbols/shields/motorway_9x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/motorway_9x4.svg b/symbols/shields/motorway_9x4.svg
index 26e2b195de..c92a6fa81b 100644
--- a/symbols/shields/motorway_9x4.svg
+++ b/symbols/shields/motorway_9x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_10x1.svg b/symbols/shields/primary_10x1.svg
index 9203a6d7fb..587974de42 100644
--- a/symbols/shields/primary_10x1.svg
+++ b/symbols/shields/primary_10x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_10x2.svg b/symbols/shields/primary_10x2.svg
index 31e7faf9d4..f35e62f877 100644
--- a/symbols/shields/primary_10x2.svg
+++ b/symbols/shields/primary_10x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_10x3.svg b/symbols/shields/primary_10x3.svg
index 5300559e2f..00fe7b1fcb 100644
--- a/symbols/shields/primary_10x3.svg
+++ b/symbols/shields/primary_10x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_10x4.svg b/symbols/shields/primary_10x4.svg
index 8f5cdb79df..b9db4a5132 100644
--- a/symbols/shields/primary_10x4.svg
+++ b/symbols/shields/primary_10x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_11x1.svg b/symbols/shields/primary_11x1.svg
index 44d4587042..d899532eb8 100644
--- a/symbols/shields/primary_11x1.svg
+++ b/symbols/shields/primary_11x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_11x2.svg b/symbols/shields/primary_11x2.svg
index 4cee0e8a9f..0f9a6f8487 100644
--- a/symbols/shields/primary_11x2.svg
+++ b/symbols/shields/primary_11x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_11x3.svg b/symbols/shields/primary_11x3.svg
index 06a1708fe6..3538e73cf8 100644
--- a/symbols/shields/primary_11x3.svg
+++ b/symbols/shields/primary_11x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_11x4.svg b/symbols/shields/primary_11x4.svg
index 6922ac3d4b..51e55c6a2b 100644
--- a/symbols/shields/primary_11x4.svg
+++ b/symbols/shields/primary_11x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_1x1.svg b/symbols/shields/primary_1x1.svg
index aeed30869c..59f95db44e 100644
--- a/symbols/shields/primary_1x1.svg
+++ b/symbols/shields/primary_1x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_1x2.svg b/symbols/shields/primary_1x2.svg
index 430b01ca4d..17086e6b9c 100644
--- a/symbols/shields/primary_1x2.svg
+++ b/symbols/shields/primary_1x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_1x3.svg b/symbols/shields/primary_1x3.svg
index bb986a07fa..104118a4b5 100644
--- a/symbols/shields/primary_1x3.svg
+++ b/symbols/shields/primary_1x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_1x4.svg b/symbols/shields/primary_1x4.svg
index ffb1da0ec8..9ecb455f2a 100644
--- a/symbols/shields/primary_1x4.svg
+++ b/symbols/shields/primary_1x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_2x1.svg b/symbols/shields/primary_2x1.svg
index 1b127d498a..45158d9de9 100644
--- a/symbols/shields/primary_2x1.svg
+++ b/symbols/shields/primary_2x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_2x2.svg b/symbols/shields/primary_2x2.svg
index 781e422dda..70a268b081 100644
--- a/symbols/shields/primary_2x2.svg
+++ b/symbols/shields/primary_2x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_2x3.svg b/symbols/shields/primary_2x3.svg
index e94cfb357f..601bddd908 100644
--- a/symbols/shields/primary_2x3.svg
+++ b/symbols/shields/primary_2x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_2x4.svg b/symbols/shields/primary_2x4.svg
index 39207499e9..e38b2b88ab 100644
--- a/symbols/shields/primary_2x4.svg
+++ b/symbols/shields/primary_2x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_3x1.svg b/symbols/shields/primary_3x1.svg
index 3d92a4a4a9..d34456d7dd 100644
--- a/symbols/shields/primary_3x1.svg
+++ b/symbols/shields/primary_3x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_3x2.svg b/symbols/shields/primary_3x2.svg
index 61744981b0..996ae71016 100644
--- a/symbols/shields/primary_3x2.svg
+++ b/symbols/shields/primary_3x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_3x3.svg b/symbols/shields/primary_3x3.svg
index 081902d58f..4e261a27aa 100644
--- a/symbols/shields/primary_3x3.svg
+++ b/symbols/shields/primary_3x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_3x4.svg b/symbols/shields/primary_3x4.svg
index 58f9cfd1fb..80cdaed036 100644
--- a/symbols/shields/primary_3x4.svg
+++ b/symbols/shields/primary_3x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_4x1.svg b/symbols/shields/primary_4x1.svg
index b32c626520..2980438f9f 100644
--- a/symbols/shields/primary_4x1.svg
+++ b/symbols/shields/primary_4x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_4x2.svg b/symbols/shields/primary_4x2.svg
index 4faf4247f3..dabe1ada13 100644
--- a/symbols/shields/primary_4x2.svg
+++ b/symbols/shields/primary_4x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_4x3.svg b/symbols/shields/primary_4x3.svg
index ecc09fa878..b3f3d2d1f5 100644
--- a/symbols/shields/primary_4x3.svg
+++ b/symbols/shields/primary_4x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_4x4.svg b/symbols/shields/primary_4x4.svg
index c5a12a529c..9d098528df 100644
--- a/symbols/shields/primary_4x4.svg
+++ b/symbols/shields/primary_4x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_5x1.svg b/symbols/shields/primary_5x1.svg
index af059cac0d..3645872632 100644
--- a/symbols/shields/primary_5x1.svg
+++ b/symbols/shields/primary_5x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_5x2.svg b/symbols/shields/primary_5x2.svg
index a59bc0d6c1..b1c9720bca 100644
--- a/symbols/shields/primary_5x2.svg
+++ b/symbols/shields/primary_5x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_5x3.svg b/symbols/shields/primary_5x3.svg
index 0a2d4b6000..1bc4e8500d 100644
--- a/symbols/shields/primary_5x3.svg
+++ b/symbols/shields/primary_5x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_5x4.svg b/symbols/shields/primary_5x4.svg
index 34aaabfbeb..1ed145d990 100644
--- a/symbols/shields/primary_5x4.svg
+++ b/symbols/shields/primary_5x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_6x1.svg b/symbols/shields/primary_6x1.svg
index aa972b7902..75c7e9e492 100644
--- a/symbols/shields/primary_6x1.svg
+++ b/symbols/shields/primary_6x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_6x2.svg b/symbols/shields/primary_6x2.svg
index c4647357a7..1f7d33c74c 100644
--- a/symbols/shields/primary_6x2.svg
+++ b/symbols/shields/primary_6x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_6x3.svg b/symbols/shields/primary_6x3.svg
index 96aebabf5d..f601975add 100644
--- a/symbols/shields/primary_6x3.svg
+++ b/symbols/shields/primary_6x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_6x4.svg b/symbols/shields/primary_6x4.svg
index e1360fd990..2c6e2530a7 100644
--- a/symbols/shields/primary_6x4.svg
+++ b/symbols/shields/primary_6x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_7x1.svg b/symbols/shields/primary_7x1.svg
index c521b7c10e..6110ea612f 100644
--- a/symbols/shields/primary_7x1.svg
+++ b/symbols/shields/primary_7x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_7x2.svg b/symbols/shields/primary_7x2.svg
index 84ce6098da..24f28a7ddc 100644
--- a/symbols/shields/primary_7x2.svg
+++ b/symbols/shields/primary_7x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_7x3.svg b/symbols/shields/primary_7x3.svg
index 08a9a48f9b..046432d24f 100644
--- a/symbols/shields/primary_7x3.svg
+++ b/symbols/shields/primary_7x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_7x4.svg b/symbols/shields/primary_7x4.svg
index cf56cc611f..40e709b2de 100644
--- a/symbols/shields/primary_7x4.svg
+++ b/symbols/shields/primary_7x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_8x1.svg b/symbols/shields/primary_8x1.svg
index 513e298a6d..d367b8aa08 100644
--- a/symbols/shields/primary_8x1.svg
+++ b/symbols/shields/primary_8x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_8x2.svg b/symbols/shields/primary_8x2.svg
index c12b3f5e11..02fd7f1c97 100644
--- a/symbols/shields/primary_8x2.svg
+++ b/symbols/shields/primary_8x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_8x3.svg b/symbols/shields/primary_8x3.svg
index f0fba8a20f..19e25a8362 100644
--- a/symbols/shields/primary_8x3.svg
+++ b/symbols/shields/primary_8x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_8x4.svg b/symbols/shields/primary_8x4.svg
index 06c8705d99..4077401598 100644
--- a/symbols/shields/primary_8x4.svg
+++ b/symbols/shields/primary_8x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_9x1.svg b/symbols/shields/primary_9x1.svg
index 6cdc553b14..7414aeda37 100644
--- a/symbols/shields/primary_9x1.svg
+++ b/symbols/shields/primary_9x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_9x2.svg b/symbols/shields/primary_9x2.svg
index 1a89a3c6ab..3d8e953329 100644
--- a/symbols/shields/primary_9x2.svg
+++ b/symbols/shields/primary_9x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_9x3.svg b/symbols/shields/primary_9x3.svg
index 57c57e5f46..c8ba8cd1d3 100644
--- a/symbols/shields/primary_9x3.svg
+++ b/symbols/shields/primary_9x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/primary_9x4.svg b/symbols/shields/primary_9x4.svg
index 5f7c586c84..a1119878b7 100644
--- a/symbols/shields/primary_9x4.svg
+++ b/symbols/shields/primary_9x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_10x1.svg b/symbols/shields/secondary_10x1.svg
index 1e90714d13..2560a1f365 100644
--- a/symbols/shields/secondary_10x1.svg
+++ b/symbols/shields/secondary_10x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_10x2.svg b/symbols/shields/secondary_10x2.svg
index be0935a57a..8c35769dae 100644
--- a/symbols/shields/secondary_10x2.svg
+++ b/symbols/shields/secondary_10x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_10x3.svg b/symbols/shields/secondary_10x3.svg
index ac58ec9c11..61f9df631b 100644
--- a/symbols/shields/secondary_10x3.svg
+++ b/symbols/shields/secondary_10x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_10x4.svg b/symbols/shields/secondary_10x4.svg
index b9afbee022..0271ce0905 100644
--- a/symbols/shields/secondary_10x4.svg
+++ b/symbols/shields/secondary_10x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_11x1.svg b/symbols/shields/secondary_11x1.svg
index c7f25ecbcc..a6b76f59cb 100644
--- a/symbols/shields/secondary_11x1.svg
+++ b/symbols/shields/secondary_11x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_11x2.svg b/symbols/shields/secondary_11x2.svg
index e79d00604c..ccb5bd3e9c 100644
--- a/symbols/shields/secondary_11x2.svg
+++ b/symbols/shields/secondary_11x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_11x3.svg b/symbols/shields/secondary_11x3.svg
index 16f52e22fe..14aebd1bac 100644
--- a/symbols/shields/secondary_11x3.svg
+++ b/symbols/shields/secondary_11x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_11x4.svg b/symbols/shields/secondary_11x4.svg
index 620e924518..6cc3cc656d 100644
--- a/symbols/shields/secondary_11x4.svg
+++ b/symbols/shields/secondary_11x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_1x1.svg b/symbols/shields/secondary_1x1.svg
index 8cfc21ec35..e6021dbaaa 100644
--- a/symbols/shields/secondary_1x1.svg
+++ b/symbols/shields/secondary_1x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_1x2.svg b/symbols/shields/secondary_1x2.svg
index 92e601459f..4d3f5aebad 100644
--- a/symbols/shields/secondary_1x2.svg
+++ b/symbols/shields/secondary_1x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_1x3.svg b/symbols/shields/secondary_1x3.svg
index d12fdb6cc0..77f26e3e6d 100644
--- a/symbols/shields/secondary_1x3.svg
+++ b/symbols/shields/secondary_1x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_1x4.svg b/symbols/shields/secondary_1x4.svg
index d46d7a0117..71c2635266 100644
--- a/symbols/shields/secondary_1x4.svg
+++ b/symbols/shields/secondary_1x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_2x1.svg b/symbols/shields/secondary_2x1.svg
index 5c3bacff84..451a8c147b 100644
--- a/symbols/shields/secondary_2x1.svg
+++ b/symbols/shields/secondary_2x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_2x2.svg b/symbols/shields/secondary_2x2.svg
index 02a6797763..9f7b1c41f6 100644
--- a/symbols/shields/secondary_2x2.svg
+++ b/symbols/shields/secondary_2x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_2x3.svg b/symbols/shields/secondary_2x3.svg
index 997347a3e3..e8416f4fc7 100644
--- a/symbols/shields/secondary_2x3.svg
+++ b/symbols/shields/secondary_2x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_2x4.svg b/symbols/shields/secondary_2x4.svg
index 5070a311a6..c23576a526 100644
--- a/symbols/shields/secondary_2x4.svg
+++ b/symbols/shields/secondary_2x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_3x1.svg b/symbols/shields/secondary_3x1.svg
index 62614bb553..a472458be0 100644
--- a/symbols/shields/secondary_3x1.svg
+++ b/symbols/shields/secondary_3x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_3x2.svg b/symbols/shields/secondary_3x2.svg
index 0d67319aca..cc073817a4 100644
--- a/symbols/shields/secondary_3x2.svg
+++ b/symbols/shields/secondary_3x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_3x3.svg b/symbols/shields/secondary_3x3.svg
index 60c373916d..14b0038a1a 100644
--- a/symbols/shields/secondary_3x3.svg
+++ b/symbols/shields/secondary_3x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_3x4.svg b/symbols/shields/secondary_3x4.svg
index 1be64ee45e..8d48049a88 100644
--- a/symbols/shields/secondary_3x4.svg
+++ b/symbols/shields/secondary_3x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_4x1.svg b/symbols/shields/secondary_4x1.svg
index 1c4b49997d..1ed87719f7 100644
--- a/symbols/shields/secondary_4x1.svg
+++ b/symbols/shields/secondary_4x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_4x2.svg b/symbols/shields/secondary_4x2.svg
index aaa82459eb..4e15c0274e 100644
--- a/symbols/shields/secondary_4x2.svg
+++ b/symbols/shields/secondary_4x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_4x3.svg b/symbols/shields/secondary_4x3.svg
index 1ce851dc99..6355564203 100644
--- a/symbols/shields/secondary_4x3.svg
+++ b/symbols/shields/secondary_4x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_4x4.svg b/symbols/shields/secondary_4x4.svg
index 3b0d65a155..a4f75d2fee 100644
--- a/symbols/shields/secondary_4x4.svg
+++ b/symbols/shields/secondary_4x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_5x1.svg b/symbols/shields/secondary_5x1.svg
index b24ddedbca..a565cd7be2 100644
--- a/symbols/shields/secondary_5x1.svg
+++ b/symbols/shields/secondary_5x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_5x2.svg b/symbols/shields/secondary_5x2.svg
index 2c1a6ea40b..3f479e0962 100644
--- a/symbols/shields/secondary_5x2.svg
+++ b/symbols/shields/secondary_5x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_5x3.svg b/symbols/shields/secondary_5x3.svg
index 354d394ba3..8ac905793e 100644
--- a/symbols/shields/secondary_5x3.svg
+++ b/symbols/shields/secondary_5x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_5x4.svg b/symbols/shields/secondary_5x4.svg
index 42e86fa664..cffee3f7ed 100644
--- a/symbols/shields/secondary_5x4.svg
+++ b/symbols/shields/secondary_5x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_6x1.svg b/symbols/shields/secondary_6x1.svg
index 16182c530a..78e6ffd117 100644
--- a/symbols/shields/secondary_6x1.svg
+++ b/symbols/shields/secondary_6x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_6x2.svg b/symbols/shields/secondary_6x2.svg
index 4408687c0b..036d4d8fb3 100644
--- a/symbols/shields/secondary_6x2.svg
+++ b/symbols/shields/secondary_6x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_6x3.svg b/symbols/shields/secondary_6x3.svg
index d6afdf15b3..cc7f8fd716 100644
--- a/symbols/shields/secondary_6x3.svg
+++ b/symbols/shields/secondary_6x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_6x4.svg b/symbols/shields/secondary_6x4.svg
index b0ed2525e2..2f352b1593 100644
--- a/symbols/shields/secondary_6x4.svg
+++ b/symbols/shields/secondary_6x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_7x1.svg b/symbols/shields/secondary_7x1.svg
index 42c46054eb..58d3dc4300 100644
--- a/symbols/shields/secondary_7x1.svg
+++ b/symbols/shields/secondary_7x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_7x2.svg b/symbols/shields/secondary_7x2.svg
index 3e3e03772c..35114c1b40 100644
--- a/symbols/shields/secondary_7x2.svg
+++ b/symbols/shields/secondary_7x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_7x3.svg b/symbols/shields/secondary_7x3.svg
index 6b1eba9f02..9629797965 100644
--- a/symbols/shields/secondary_7x3.svg
+++ b/symbols/shields/secondary_7x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_7x4.svg b/symbols/shields/secondary_7x4.svg
index 876cd78a35..8ea88f4832 100644
--- a/symbols/shields/secondary_7x4.svg
+++ b/symbols/shields/secondary_7x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_8x1.svg b/symbols/shields/secondary_8x1.svg
index 4c0ed5fa8b..5bad14737d 100644
--- a/symbols/shields/secondary_8x1.svg
+++ b/symbols/shields/secondary_8x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_8x2.svg b/symbols/shields/secondary_8x2.svg
index 836251661f..988097fa48 100644
--- a/symbols/shields/secondary_8x2.svg
+++ b/symbols/shields/secondary_8x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_8x3.svg b/symbols/shields/secondary_8x3.svg
index 2922686c68..492e1a5d75 100644
--- a/symbols/shields/secondary_8x3.svg
+++ b/symbols/shields/secondary_8x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_8x4.svg b/symbols/shields/secondary_8x4.svg
index 237ae3de20..094827fa4e 100644
--- a/symbols/shields/secondary_8x4.svg
+++ b/symbols/shields/secondary_8x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_9x1.svg b/symbols/shields/secondary_9x1.svg
index 9664a1b98c..846a8ac2b9 100644
--- a/symbols/shields/secondary_9x1.svg
+++ b/symbols/shields/secondary_9x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_9x2.svg b/symbols/shields/secondary_9x2.svg
index 64ae0bbebe..651d027f1c 100644
--- a/symbols/shields/secondary_9x2.svg
+++ b/symbols/shields/secondary_9x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_9x3.svg b/symbols/shields/secondary_9x3.svg
index 3bc7c80596..3978a66569 100644
--- a/symbols/shields/secondary_9x3.svg
+++ b/symbols/shields/secondary_9x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/secondary_9x4.svg b/symbols/shields/secondary_9x4.svg
index 8713f8d4f6..eefe72ee1c 100644
--- a/symbols/shields/secondary_9x4.svg
+++ b/symbols/shields/secondary_9x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_10x1.svg b/symbols/shields/tertiary_10x1.svg
index 76ed8784e3..98a4a3f81a 100644
--- a/symbols/shields/tertiary_10x1.svg
+++ b/symbols/shields/tertiary_10x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_10x2.svg b/symbols/shields/tertiary_10x2.svg
index aff10b5b00..553328d6d2 100644
--- a/symbols/shields/tertiary_10x2.svg
+++ b/symbols/shields/tertiary_10x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_10x3.svg b/symbols/shields/tertiary_10x3.svg
index c5fc4a8d3c..46d5ee1847 100644
--- a/symbols/shields/tertiary_10x3.svg
+++ b/symbols/shields/tertiary_10x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_10x4.svg b/symbols/shields/tertiary_10x4.svg
index c8eddf79dd..c1b667f997 100644
--- a/symbols/shields/tertiary_10x4.svg
+++ b/symbols/shields/tertiary_10x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_11x1.svg b/symbols/shields/tertiary_11x1.svg
index 9cc4f46a5f..f5e3e1abbc 100644
--- a/symbols/shields/tertiary_11x1.svg
+++ b/symbols/shields/tertiary_11x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_11x2.svg b/symbols/shields/tertiary_11x2.svg
index 81c1c229fd..9c16402e7d 100644
--- a/symbols/shields/tertiary_11x2.svg
+++ b/symbols/shields/tertiary_11x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_11x3.svg b/symbols/shields/tertiary_11x3.svg
index 5b18b8504b..5031d0f744 100644
--- a/symbols/shields/tertiary_11x3.svg
+++ b/symbols/shields/tertiary_11x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_11x4.svg b/symbols/shields/tertiary_11x4.svg
index ac1fec90a7..5dc7a06e1c 100644
--- a/symbols/shields/tertiary_11x4.svg
+++ b/symbols/shields/tertiary_11x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_1x1.svg b/symbols/shields/tertiary_1x1.svg
index ca221bc308..18f9b5ff9c 100644
--- a/symbols/shields/tertiary_1x1.svg
+++ b/symbols/shields/tertiary_1x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_1x2.svg b/symbols/shields/tertiary_1x2.svg
index 49e201cd3b..7d329870e1 100644
--- a/symbols/shields/tertiary_1x2.svg
+++ b/symbols/shields/tertiary_1x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_1x3.svg b/symbols/shields/tertiary_1x3.svg
index 8f2b51e27c..d1f2cb7e0a 100644
--- a/symbols/shields/tertiary_1x3.svg
+++ b/symbols/shields/tertiary_1x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_1x4.svg b/symbols/shields/tertiary_1x4.svg
index f5bffed918..a808bdb120 100644
--- a/symbols/shields/tertiary_1x4.svg
+++ b/symbols/shields/tertiary_1x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_2x1.svg b/symbols/shields/tertiary_2x1.svg
index 9c0c7a571f..e5caf5f835 100644
--- a/symbols/shields/tertiary_2x1.svg
+++ b/symbols/shields/tertiary_2x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_2x2.svg b/symbols/shields/tertiary_2x2.svg
index 141d76966d..7a4b38248c 100644
--- a/symbols/shields/tertiary_2x2.svg
+++ b/symbols/shields/tertiary_2x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_2x3.svg b/symbols/shields/tertiary_2x3.svg
index f82418a414..c8b2dc34c4 100644
--- a/symbols/shields/tertiary_2x3.svg
+++ b/symbols/shields/tertiary_2x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_2x4.svg b/symbols/shields/tertiary_2x4.svg
index 5d7eb09822..ce5f803d65 100644
--- a/symbols/shields/tertiary_2x4.svg
+++ b/symbols/shields/tertiary_2x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_3x1.svg b/symbols/shields/tertiary_3x1.svg
index 09d4ca6d9b..b57804ac5f 100644
--- a/symbols/shields/tertiary_3x1.svg
+++ b/symbols/shields/tertiary_3x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_3x2.svg b/symbols/shields/tertiary_3x2.svg
index 44a3df3d49..7899551799 100644
--- a/symbols/shields/tertiary_3x2.svg
+++ b/symbols/shields/tertiary_3x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_3x3.svg b/symbols/shields/tertiary_3x3.svg
index 57c476f5d4..5d0f7f4baf 100644
--- a/symbols/shields/tertiary_3x3.svg
+++ b/symbols/shields/tertiary_3x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_3x4.svg b/symbols/shields/tertiary_3x4.svg
index 607d0c4929..74a0f80584 100644
--- a/symbols/shields/tertiary_3x4.svg
+++ b/symbols/shields/tertiary_3x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_4x1.svg b/symbols/shields/tertiary_4x1.svg
index e24d04aade..c213f3bdc8 100644
--- a/symbols/shields/tertiary_4x1.svg
+++ b/symbols/shields/tertiary_4x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_4x2.svg b/symbols/shields/tertiary_4x2.svg
index 7f6907d998..bd17fb62e9 100644
--- a/symbols/shields/tertiary_4x2.svg
+++ b/symbols/shields/tertiary_4x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_4x3.svg b/symbols/shields/tertiary_4x3.svg
index a5e7f88392..3c2ccfa9b1 100644
--- a/symbols/shields/tertiary_4x3.svg
+++ b/symbols/shields/tertiary_4x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_4x4.svg b/symbols/shields/tertiary_4x4.svg
index 23892d87c7..b90aa5bad5 100644
--- a/symbols/shields/tertiary_4x4.svg
+++ b/symbols/shields/tertiary_4x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_5x1.svg b/symbols/shields/tertiary_5x1.svg
index e92206b4a0..1deb0f2f58 100644
--- a/symbols/shields/tertiary_5x1.svg
+++ b/symbols/shields/tertiary_5x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_5x2.svg b/symbols/shields/tertiary_5x2.svg
index 7cd283d107..98bcc5f0f4 100644
--- a/symbols/shields/tertiary_5x2.svg
+++ b/symbols/shields/tertiary_5x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_5x3.svg b/symbols/shields/tertiary_5x3.svg
index cf2718ac74..2dc0590095 100644
--- a/symbols/shields/tertiary_5x3.svg
+++ b/symbols/shields/tertiary_5x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_5x4.svg b/symbols/shields/tertiary_5x4.svg
index 0d69012a20..53ae0ff7fe 100644
--- a/symbols/shields/tertiary_5x4.svg
+++ b/symbols/shields/tertiary_5x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_6x1.svg b/symbols/shields/tertiary_6x1.svg
index 17699260e6..2dafa69cc4 100644
--- a/symbols/shields/tertiary_6x1.svg
+++ b/symbols/shields/tertiary_6x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_6x2.svg b/symbols/shields/tertiary_6x2.svg
index 1d4f5acd63..34740cd51f 100644
--- a/symbols/shields/tertiary_6x2.svg
+++ b/symbols/shields/tertiary_6x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_6x3.svg b/symbols/shields/tertiary_6x3.svg
index a207a3c182..dcdbd472a6 100644
--- a/symbols/shields/tertiary_6x3.svg
+++ b/symbols/shields/tertiary_6x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_6x4.svg b/symbols/shields/tertiary_6x4.svg
index 0248947cc8..d9c6622d48 100644
--- a/symbols/shields/tertiary_6x4.svg
+++ b/symbols/shields/tertiary_6x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_7x1.svg b/symbols/shields/tertiary_7x1.svg
index 3f47242362..90a28d0999 100644
--- a/symbols/shields/tertiary_7x1.svg
+++ b/symbols/shields/tertiary_7x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_7x2.svg b/symbols/shields/tertiary_7x2.svg
index d6baacc572..d49466c92a 100644
--- a/symbols/shields/tertiary_7x2.svg
+++ b/symbols/shields/tertiary_7x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_7x3.svg b/symbols/shields/tertiary_7x3.svg
index aeb9b0a8b9..62a1cc1a1d 100644
--- a/symbols/shields/tertiary_7x3.svg
+++ b/symbols/shields/tertiary_7x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_7x4.svg b/symbols/shields/tertiary_7x4.svg
index 3dd39e3c97..371d80b450 100644
--- a/symbols/shields/tertiary_7x4.svg
+++ b/symbols/shields/tertiary_7x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_8x1.svg b/symbols/shields/tertiary_8x1.svg
index e7877cba72..642995c1fd 100644
--- a/symbols/shields/tertiary_8x1.svg
+++ b/symbols/shields/tertiary_8x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_8x2.svg b/symbols/shields/tertiary_8x2.svg
index 9d4ea49d70..687811eeaf 100644
--- a/symbols/shields/tertiary_8x2.svg
+++ b/symbols/shields/tertiary_8x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_8x3.svg b/symbols/shields/tertiary_8x3.svg
index 3d2821f9ee..df7f3dbbe5 100644
--- a/symbols/shields/tertiary_8x3.svg
+++ b/symbols/shields/tertiary_8x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_8x4.svg b/symbols/shields/tertiary_8x4.svg
index 111b9bc262..14e0b6b6d2 100644
--- a/symbols/shields/tertiary_8x4.svg
+++ b/symbols/shields/tertiary_8x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_9x1.svg b/symbols/shields/tertiary_9x1.svg
index e943c7047f..ea93073899 100644
--- a/symbols/shields/tertiary_9x1.svg
+++ b/symbols/shields/tertiary_9x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_9x2.svg b/symbols/shields/tertiary_9x2.svg
index 16489073db..035602b6b1 100644
--- a/symbols/shields/tertiary_9x2.svg
+++ b/symbols/shields/tertiary_9x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_9x3.svg b/symbols/shields/tertiary_9x3.svg
index ed1b4a11fe..089c87742f 100644
--- a/symbols/shields/tertiary_9x3.svg
+++ b/symbols/shields/tertiary_9x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/tertiary_9x4.svg b/symbols/shields/tertiary_9x4.svg
index c5069273d4..369a74df6d 100644
--- a/symbols/shields/tertiary_9x4.svg
+++ b/symbols/shields/tertiary_9x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_10x1.svg b/symbols/shields/trunk_10x1.svg
index 09faf43854..0a44c3f1c0 100644
--- a/symbols/shields/trunk_10x1.svg
+++ b/symbols/shields/trunk_10x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_10x2.svg b/symbols/shields/trunk_10x2.svg
index 912c42c533..28380bef86 100644
--- a/symbols/shields/trunk_10x2.svg
+++ b/symbols/shields/trunk_10x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_10x3.svg b/symbols/shields/trunk_10x3.svg
index 343834f074..40985891cf 100644
--- a/symbols/shields/trunk_10x3.svg
+++ b/symbols/shields/trunk_10x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_10x4.svg b/symbols/shields/trunk_10x4.svg
index e681955179..02944118ca 100644
--- a/symbols/shields/trunk_10x4.svg
+++ b/symbols/shields/trunk_10x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_11x1.svg b/symbols/shields/trunk_11x1.svg
index f519e7c6a3..f04c0f1399 100644
--- a/symbols/shields/trunk_11x1.svg
+++ b/symbols/shields/trunk_11x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_11x2.svg b/symbols/shields/trunk_11x2.svg
index ea9b8af272..bd2166de4e 100644
--- a/symbols/shields/trunk_11x2.svg
+++ b/symbols/shields/trunk_11x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_11x3.svg b/symbols/shields/trunk_11x3.svg
index 7a0bc0596a..8a9565682e 100644
--- a/symbols/shields/trunk_11x3.svg
+++ b/symbols/shields/trunk_11x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_11x4.svg b/symbols/shields/trunk_11x4.svg
index 4d4cf4bb6c..bf75ec0c64 100644
--- a/symbols/shields/trunk_11x4.svg
+++ b/symbols/shields/trunk_11x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_1x1.svg b/symbols/shields/trunk_1x1.svg
index 3f87f83158..1a3a6b342a 100644
--- a/symbols/shields/trunk_1x1.svg
+++ b/symbols/shields/trunk_1x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_1x2.svg b/symbols/shields/trunk_1x2.svg
index 98c44866e8..44cabea968 100644
--- a/symbols/shields/trunk_1x2.svg
+++ b/symbols/shields/trunk_1x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_1x3.svg b/symbols/shields/trunk_1x3.svg
index 3c68953d55..827bb98b67 100644
--- a/symbols/shields/trunk_1x3.svg
+++ b/symbols/shields/trunk_1x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_1x4.svg b/symbols/shields/trunk_1x4.svg
index e56905f4ef..c30b9cc8b2 100644
--- a/symbols/shields/trunk_1x4.svg
+++ b/symbols/shields/trunk_1x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_2x1.svg b/symbols/shields/trunk_2x1.svg
index 0b661501e2..1f1d60c713 100644
--- a/symbols/shields/trunk_2x1.svg
+++ b/symbols/shields/trunk_2x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_2x2.svg b/symbols/shields/trunk_2x2.svg
index c2b60aebe9..9877baeacc 100644
--- a/symbols/shields/trunk_2x2.svg
+++ b/symbols/shields/trunk_2x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_2x3.svg b/symbols/shields/trunk_2x3.svg
index d24f803ef2..c9f1be8514 100644
--- a/symbols/shields/trunk_2x3.svg
+++ b/symbols/shields/trunk_2x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_2x4.svg b/symbols/shields/trunk_2x4.svg
index 422f2dd846..84f15f15e5 100644
--- a/symbols/shields/trunk_2x4.svg
+++ b/symbols/shields/trunk_2x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_3x1.svg b/symbols/shields/trunk_3x1.svg
index 801adcd3e5..9273f67904 100644
--- a/symbols/shields/trunk_3x1.svg
+++ b/symbols/shields/trunk_3x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_3x2.svg b/symbols/shields/trunk_3x2.svg
index 8bd3a5b736..d09de74c25 100644
--- a/symbols/shields/trunk_3x2.svg
+++ b/symbols/shields/trunk_3x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_3x3.svg b/symbols/shields/trunk_3x3.svg
index 2ad03f3f3d..1f036aa8d6 100644
--- a/symbols/shields/trunk_3x3.svg
+++ b/symbols/shields/trunk_3x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_3x4.svg b/symbols/shields/trunk_3x4.svg
index ff6becb9a8..ecdf1295ca 100644
--- a/symbols/shields/trunk_3x4.svg
+++ b/symbols/shields/trunk_3x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_4x1.svg b/symbols/shields/trunk_4x1.svg
index b56d54c598..958daf7269 100644
--- a/symbols/shields/trunk_4x1.svg
+++ b/symbols/shields/trunk_4x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_4x2.svg b/symbols/shields/trunk_4x2.svg
index 68e452721c..4838ff4524 100644
--- a/symbols/shields/trunk_4x2.svg
+++ b/symbols/shields/trunk_4x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_4x3.svg b/symbols/shields/trunk_4x3.svg
index b1e899e77b..9365b81650 100644
--- a/symbols/shields/trunk_4x3.svg
+++ b/symbols/shields/trunk_4x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_4x4.svg b/symbols/shields/trunk_4x4.svg
index f330d27afa..7ba009129f 100644
--- a/symbols/shields/trunk_4x4.svg
+++ b/symbols/shields/trunk_4x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_5x1.svg b/symbols/shields/trunk_5x1.svg
index 5765608c98..db79926aea 100644
--- a/symbols/shields/trunk_5x1.svg
+++ b/symbols/shields/trunk_5x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_5x2.svg b/symbols/shields/trunk_5x2.svg
index 6ef419d104..ceadcca652 100644
--- a/symbols/shields/trunk_5x2.svg
+++ b/symbols/shields/trunk_5x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_5x3.svg b/symbols/shields/trunk_5x3.svg
index b41feabb9b..f8f7d9656d 100644
--- a/symbols/shields/trunk_5x3.svg
+++ b/symbols/shields/trunk_5x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_5x4.svg b/symbols/shields/trunk_5x4.svg
index eb416b48ad..2d1ec07f2a 100644
--- a/symbols/shields/trunk_5x4.svg
+++ b/symbols/shields/trunk_5x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_6x1.svg b/symbols/shields/trunk_6x1.svg
index b65e29d52a..614f46c852 100644
--- a/symbols/shields/trunk_6x1.svg
+++ b/symbols/shields/trunk_6x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_6x2.svg b/symbols/shields/trunk_6x2.svg
index 56a00ccc19..054e159f3d 100644
--- a/symbols/shields/trunk_6x2.svg
+++ b/symbols/shields/trunk_6x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_6x3.svg b/symbols/shields/trunk_6x3.svg
index b3253194ff..fd6c7a5307 100644
--- a/symbols/shields/trunk_6x3.svg
+++ b/symbols/shields/trunk_6x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_6x4.svg b/symbols/shields/trunk_6x4.svg
index 0b8e3f0cd5..a752375b39 100644
--- a/symbols/shields/trunk_6x4.svg
+++ b/symbols/shields/trunk_6x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_7x1.svg b/symbols/shields/trunk_7x1.svg
index fe0a215338..fbbe2b5974 100644
--- a/symbols/shields/trunk_7x1.svg
+++ b/symbols/shields/trunk_7x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_7x2.svg b/symbols/shields/trunk_7x2.svg
index cae79f339c..bf132dcab9 100644
--- a/symbols/shields/trunk_7x2.svg
+++ b/symbols/shields/trunk_7x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_7x3.svg b/symbols/shields/trunk_7x3.svg
index b68c25765c..b2c8fe5864 100644
--- a/symbols/shields/trunk_7x3.svg
+++ b/symbols/shields/trunk_7x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_7x4.svg b/symbols/shields/trunk_7x4.svg
index e98e374db5..e27a0aef24 100644
--- a/symbols/shields/trunk_7x4.svg
+++ b/symbols/shields/trunk_7x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_8x1.svg b/symbols/shields/trunk_8x1.svg
index fe6a8f040f..db507f901b 100644
--- a/symbols/shields/trunk_8x1.svg
+++ b/symbols/shields/trunk_8x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_8x2.svg b/symbols/shields/trunk_8x2.svg
index 225b563b21..e37ee1f2f8 100644
--- a/symbols/shields/trunk_8x2.svg
+++ b/symbols/shields/trunk_8x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_8x3.svg b/symbols/shields/trunk_8x3.svg
index 7ad16ac922..05be550feb 100644
--- a/symbols/shields/trunk_8x3.svg
+++ b/symbols/shields/trunk_8x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_8x4.svg b/symbols/shields/trunk_8x4.svg
index d8e01374b5..c8b04dc670 100644
--- a/symbols/shields/trunk_8x4.svg
+++ b/symbols/shields/trunk_8x4.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_9x1.svg b/symbols/shields/trunk_9x1.svg
index 80b5abaa02..ac0bc51ef8 100644
--- a/symbols/shields/trunk_9x1.svg
+++ b/symbols/shields/trunk_9x1.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_9x2.svg b/symbols/shields/trunk_9x2.svg
index f37cd3408f..67dcb337d5 100644
--- a/symbols/shields/trunk_9x2.svg
+++ b/symbols/shields/trunk_9x2.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_9x3.svg b/symbols/shields/trunk_9x3.svg
index c2202e43af..674677f7db 100644
--- a/symbols/shields/trunk_9x3.svg
+++ b/symbols/shields/trunk_9x3.svg
@@ -1,5 +1,5 @@
diff --git a/symbols/shields/trunk_9x4.svg b/symbols/shields/trunk_9x4.svg
index 648e6d5e93..99097132ef 100644
--- a/symbols/shields/trunk_9x4.svg
+++ b/symbols/shields/trunk_9x4.svg
@@ -1,5 +1,5 @@