@versatiles/style 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/LICENSE.md +24 -0
  2. package/README.MD +94 -0
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.js +3 -0
  5. package/dist/index.test.d.ts +1 -0
  6. package/dist/index.test.js +38 -0
  7. package/dist/lib/decorator.d.ts +3 -0
  8. package/dist/lib/decorator.js +123 -0
  9. package/dist/lib/decorator.test.d.ts +1 -0
  10. package/dist/lib/decorator.test.js +56 -0
  11. package/dist/lib/recolor.d.ts +13 -0
  12. package/dist/lib/recolor.js +92 -0
  13. package/dist/lib/recolor.test.d.ts +1 -0
  14. package/dist/lib/recolor.test.js +179 -0
  15. package/dist/lib/shortbread/layers.d.ts +7 -0
  16. package/dist/lib/shortbread/layers.js +508 -0
  17. package/dist/lib/shortbread/layers.test.d.ts +1 -0
  18. package/dist/lib/shortbread/layers.test.js +27 -0
  19. package/dist/lib/shortbread/properties.d.ts +7 -0
  20. package/dist/lib/shortbread/properties.js +124 -0
  21. package/dist/lib/shortbread/properties.test.d.ts +1 -0
  22. package/dist/lib/shortbread/properties.test.js +36 -0
  23. package/dist/lib/shortbread/template.d.ts +2 -0
  24. package/dist/lib/shortbread/template.js +339 -0
  25. package/dist/lib/shortbread/template.test.d.ts +1 -0
  26. package/dist/lib/shortbread/template.test.js +57 -0
  27. package/dist/lib/style_builder.d.ts +32 -0
  28. package/dist/lib/style_builder.js +84 -0
  29. package/dist/lib/style_builder.test.d.ts +1 -0
  30. package/dist/lib/style_builder.test.js +77 -0
  31. package/dist/lib/utils.d.ts +4 -0
  32. package/dist/lib/utils.js +106 -0
  33. package/dist/lib/utils.test.d.ts +1 -0
  34. package/dist/lib/utils.test.js +97 -0
  35. package/dist/styles/colorful.d.ts +53 -0
  36. package/dist/styles/colorful.js +871 -0
  37. package/dist/styles/graybeard.d.ts +5 -0
  38. package/dist/styles/graybeard.js +9 -0
  39. package/dist/styles/neutrino.d.ts +24 -0
  40. package/dist/styles/neutrino.js +356 -0
  41. package/package.json +60 -0
@@ -0,0 +1,871 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import StyleBuilder from '../lib/style_builder.js';
3
+ export default class Colorful extends StyleBuilder {
4
+ name = 'colorful';
5
+ fonts = {
6
+ regular: 'noto_sans_regular',
7
+ bold: 'noto_sans_bold',
8
+ };
9
+ colors = {
10
+ land: '#F9F4EE',
11
+ water: '#BEDDF3',
12
+ glacier: '#FFFFFF',
13
+ wood: '#66AA44',
14
+ grass: '#D8E8C8',
15
+ park: '#D9D9A5',
16
+ street: '#FFFFFF',
17
+ streetbg: '#CFCDCA',
18
+ motorway: '#FFCC88',
19
+ motorwaybg: '#E9AC77',
20
+ trunk: '#FFEEAA',
21
+ trunkbg: '#E9AC77',
22
+ buildingbg: '#DFDBD7',
23
+ building: '#F2EAE2',
24
+ boundary: '#A6A6C8',
25
+ disputed: '#BEBCCF',
26
+ residential: '#EAE6E133',
27
+ commercial: '#F7DEED40',
28
+ industrial: '#FFF4C255',
29
+ foot: '#FBEBFF',
30
+ label: '#333344',
31
+ labelHalo: '#FFFFFFCC',
32
+ shield: '#FFFFFF',
33
+ agriculture: '#F0E7D1',
34
+ rail: '#B1BBC4',
35
+ subway: '#A6B8C7',
36
+ cycle: '#EFF9FF',
37
+ waste: '#DBD6BD',
38
+ burial: '#DDDBCA',
39
+ sand: '#FAFAED',
40
+ rock: '#E0E4E5',
41
+ leisure: '#E7EDDE',
42
+ wetland: '#D3E6DB',
43
+ symbol: '#66626A',
44
+ danger: '#FF0000',
45
+ prison: '#FDF2FC',
46
+ parking: '#EBE8E6',
47
+ construction: '#A9A9A9',
48
+ education: '#FFFF80',
49
+ hospital: '#FF6666',
50
+ poi: '#555555',
51
+ };
52
+ getStyleRules(options) {
53
+ const { colors, fonts } = options;
54
+ return {
55
+ // background
56
+ 'background': {
57
+ color: colors.land,
58
+ },
59
+ // boundary
60
+ 'boundary-{country,state}:outline': {
61
+ color: colors.land.lighten(0.1),
62
+ lineBlur: 1,
63
+ lineCap: 'round',
64
+ lineJoin: 'round',
65
+ },
66
+ 'boundary-{country,state}': {
67
+ color: colors.boundary,
68
+ lineCap: 'round',
69
+ lineJoin: 'round',
70
+ },
71
+ 'boundary-country{-disputed,}:outline': {
72
+ size: { 2: 0, 3: 2, 10: 8 },
73
+ opacity: 0.75,
74
+ color: colors.land.lighten(0.05),
75
+ },
76
+ 'boundary-country{-disputed,}': {
77
+ size: { 2: 0, 3: 1, 10: 4 },
78
+ },
79
+ 'boundary-country-disputed': {
80
+ color: colors.disputed,
81
+ lineDasharray: [2, 1],
82
+ lineCap: 'square',
83
+ },
84
+ 'boundary-state:outline': {
85
+ size: { 7: 0, 8: 2, 10: 4 },
86
+ opacity: 0.75,
87
+ },
88
+ 'boundary-state': {
89
+ size: { 7: 0, 8: 1, 10: 2 },
90
+ },
91
+ // water
92
+ 'water-*': {
93
+ color: colors.water,
94
+ lineCap: 'round',
95
+ lineJoin: 'round',
96
+ },
97
+ 'water-area': {
98
+ opacity: { 4: 0, 6: 1 },
99
+ },
100
+ 'water-area-*': {
101
+ opacity: { 4: 0, 6: 1 },
102
+ },
103
+ 'water-{pier,dam}-area': {
104
+ color: colors.land,
105
+ opacity: { 12: 0, 13: 1 },
106
+ },
107
+ 'water-river': {
108
+ lineWidth: { 9: 0, 10: 3, 15: 5, 17: 9, 18: 20, 20: 60 },
109
+ },
110
+ 'water-canal': {
111
+ lineWidth: { 9: 0, 10: 2, 15: 4, 17: 8, 18: 17, 20: 50 },
112
+ },
113
+ 'water-stream': {
114
+ lineWidth: { 13: 0, 14: 1, 15: 2, 17: 6, 18: 12, 20: 30 },
115
+ },
116
+ 'water-ditch': {
117
+ lineWidth: { 14: 0, 15: 1, 17: 4, 18: 8, 20: 20 },
118
+ },
119
+ // land
120
+ 'land-*': {
121
+ color: colors.land,
122
+ },
123
+ 'land-glacier': {
124
+ color: colors.glacier,
125
+ },
126
+ 'land-forest': {
127
+ color: colors.wood,
128
+ opacity: { 7: 0, 8: 0.1 },
129
+ },
130
+ 'land-grass': {
131
+ color: colors.grass,
132
+ opacity: { 11: 0, 12: 1 },
133
+ },
134
+ 'land-{park,garden,vegetation}': {
135
+ color: colors.park,
136
+ opacity: { 11: 0, 12: 1 },
137
+ },
138
+ 'land-agriculture': {
139
+ color: colors.agriculture,
140
+ opacity: { 10: 0, 11: 1 },
141
+ },
142
+ 'land-residential': {
143
+ color: colors.residential,
144
+ opacity: { 10: 0, 11: 1 },
145
+ },
146
+ 'land-commercial': {
147
+ color: colors.commercial,
148
+ opacity: { 10: 0, 11: 1 },
149
+ },
150
+ 'land-industrial': {
151
+ color: colors.industrial,
152
+ opacity: { 10: 0, 11: 1 },
153
+ },
154
+ 'land-waste': {
155
+ color: colors.waste,
156
+ opacity: { 10: 0, 11: 1 },
157
+ },
158
+ 'land-burial': {
159
+ color: colors.burial,
160
+ opacity: { 13: 0, 14: 1 },
161
+ },
162
+ 'land-leisure': {
163
+ color: colors.leisure,
164
+ },
165
+ 'land-rock': {
166
+ color: colors.rock,
167
+ },
168
+ 'land-sand': {
169
+ color: colors.sand,
170
+ },
171
+ 'land-wetland': {
172
+ color: colors.wetland,
173
+ },
174
+ // site
175
+ 'site-dangerarea': {
176
+ color: colors.danger,
177
+ fillOutlineColor: colors.danger,
178
+ opacity: 0.3,
179
+ image: 'pattern-warning-12',
180
+ },
181
+ 'site-hospital': {
182
+ color: colors.hospital,
183
+ opacity: 0.1,
184
+ },
185
+ 'site-prison': {
186
+ color: colors.prison,
187
+ image: 'pattern-striped-12',
188
+ opacity: 0.1,
189
+ },
190
+ 'site-construction': {
191
+ color: colors.construction,
192
+ image: 'pattern-hatched-thin-12',
193
+ opacity: 0.1,
194
+ },
195
+ 'site-{university,college,school}': {
196
+ color: colors.education,
197
+ opacity: 0.1,
198
+ },
199
+ 'site-{bicycleparking,parking}': {
200
+ color: colors.parking,
201
+ },
202
+ // building
203
+ 'building:outline': {
204
+ color: colors.buildingbg,
205
+ opacity: { 14: 0, 15: 1 },
206
+ },
207
+ 'building': {
208
+ color: colors.building,
209
+ opacity: { 14: 0, 15: 1 },
210
+ fillTranslate: [-2, -2],
211
+ },
212
+ // airport
213
+ 'airport-area': {
214
+ color: colors.street,
215
+ opacity: 0.5,
216
+ },
217
+ 'airport-{runway,taxiway}:outline': {
218
+ color: colors.streetbg,
219
+ lineJoin: 'round',
220
+ },
221
+ 'airport-{runway,taxiway}': {
222
+ color: colors.street,
223
+ lineJoin: 'round',
224
+ },
225
+ 'airport-runway:outline': {
226
+ size: { 11: 0, 12: 6, 13: 9, 14: 16, 15: 24, 16: 40, 17: 100, 18: 160, 20: 300 },
227
+ },
228
+ 'airport-runway': {
229
+ size: { 11: 0, 12: 5, 13: 8, 14: 14, 15: 22, 16: 38, 17: 98, 18: 158, 20: 298 },
230
+ opacity: { 11: 0, 12: 1 },
231
+ },
232
+ 'airport-taxiway:outline': {
233
+ size: { 13: 0, 14: 2, 15: 10, 16: 14, 18: 20, 20: 40 },
234
+ },
235
+ 'airport-taxiway': {
236
+ size: { 13: 0, 14: 1, 15: 8, 16: 12, 18: 18, 20: 36 },
237
+ opacity: { 13: 0, 14: 1 },
238
+ },
239
+ // bridge
240
+ 'bridge': {
241
+ color: colors.land.darken(0.02),
242
+ fillAntialias: true,
243
+ opacity: 0.8,
244
+ },
245
+ // street
246
+ // colors and joins
247
+ '{tunnel-,bridge-,}street-*:outline': {
248
+ color: colors.streetbg,
249
+ lineJoin: 'round',
250
+ },
251
+ '{tunnel-,bridge-,}street-*': {
252
+ color: colors.street,
253
+ lineJoin: 'round',
254
+ },
255
+ 'tunnel-street-*:outline': {
256
+ color: colors.street.darken(0.13),
257
+ },
258
+ 'tunnel-street-*': {
259
+ color: colors.street.darken(0.03),
260
+ },
261
+ 'bridge-street-*:outline': {
262
+ color: colors.street.darken(0.15),
263
+ },
264
+ // streets and ways, line caps
265
+ '{tunnel-,}{street,way}-*': {
266
+ lineCap: 'round',
267
+ },
268
+ '{tunnel-,}{street,way}-*:outline': {
269
+ lineCap: 'round',
270
+ },
271
+ 'bridge-{street,way}-*': {
272
+ lineCap: 'butt',
273
+ },
274
+ 'bridge-{street,way}-*:outline': {
275
+ lineCap: 'butt',
276
+ },
277
+ // special color: motorway
278
+ '{bridge-,}street-motorway{-link,}:outline': {
279
+ color: colors.motorwaybg,
280
+ },
281
+ '{bridge-,}street-motorway{-link,}': {
282
+ color: colors.motorway,
283
+ },
284
+ '{bridge-,}street-{trunk,primary,secondary}{-link,}:outline': {
285
+ color: colors.trunkbg,
286
+ },
287
+ '{bridge-,}street-{trunk,primary,secondary}{-link,}': {
288
+ color: colors.trunk,
289
+ },
290
+ 'tunnel-street-motorway{-link,}:outline': {
291
+ color: colors.motorwaybg.lighten(0.05),
292
+ lineDasharray: [1, 0.3],
293
+ },
294
+ 'tunnel-street-motorway{-link,}': {
295
+ color: colors.motorway.lighten(0.1),
296
+ lineCap: 'butt',
297
+ },
298
+ 'tunnel-street-{trunk,primary,secondary}{-link,}:outline': {
299
+ color: colors.trunkbg.lighten(0.05),
300
+ lineDasharray: [1, 0.3],
301
+ },
302
+ 'tunnel-street-{trunk,primary,secondary}{-link,}': {
303
+ color: colors.trunk.lighten(0.1),
304
+ lineCap: 'butt',
305
+ },
306
+ // motorway
307
+ '{bridge-,tunnel-,}street-motorway:outline': {
308
+ size: { 5: 0, 6: 2, 10: 5, 14: 5, 16: 14, 18: 38, 19: 84, 20: 168 },
309
+ },
310
+ '{bridge-,tunnel-,}street-motorway': {
311
+ size: { 5: 0, 6: 1, 10: 4, 14: 4, 16: 12, 18: 36, 19: 80, 20: 160 },
312
+ opacity: { 5: 0, 6: 1 },
313
+ },
314
+ // trunk
315
+ '{bridge-,tunnel-,}street-trunk:outline': {
316
+ size: { 7: 0, 8: 2, 10: 4, 14: 6, 16: 12, 18: 36, 19: 74, 20: 144 },
317
+ },
318
+ '{bridge-,tunnel-,}street-trunk': {
319
+ size: { 7: 0, 8: 1, 10: 3, 14: 5, 16: 10, 18: 34, 19: 70, 20: 140 },
320
+ opacity: { 7: 0, 8: 1 },
321
+ },
322
+ // primary
323
+ '{bridge-,tunnel-,}street-primary:outline': {
324
+ size: { 8: 0, 9: 1, 10: 4, 14: 6, 16: 12, 18: 36, 19: 74, 20: 144 },
325
+ },
326
+ '{bridge-,tunnel-,}street-primary': {
327
+ size: { 8: 0, 9: 2, 10: 3, 14: 5, 16: 10, 18: 34, 19: 70, 20: 140 },
328
+ opacity: { 8: 0, 9: 1 },
329
+ },
330
+ // secondary
331
+ '{bridge-,tunnel-,}street-secondary:outline': {
332
+ size: { 11: 2, 14: 5, 16: 8, 18: 30, 19: 68, 20: 138 },
333
+ opacity: { 11: 0, 12: 1 },
334
+ },
335
+ '{bridge-,tunnel-,}street-secondary': {
336
+ size: { 11: 1, 14: 4, 16: 6, 18: 28, 19: 64, 20: 130 },
337
+ opacity: { 11: 0, 12: 1 },
338
+ },
339
+ // links
340
+ '{bridge-,tunnel-,}street-motorway-link:outline': {
341
+ minzoom: 12,
342
+ size: { 12: 2, 14: 3, 16: 7, 18: 14, 20: 40 },
343
+ // opacity: { 12: 0, 13: 1 }, // no fade-in because those are merged in lower zooms
344
+ },
345
+ '{bridge-,tunnel-,}street-motorway-link': {
346
+ minzoom: 12,
347
+ size: { 12: 1, 14: 2, 16: 5, 18: 12, 20: 38 },
348
+ // opacity: { 12: 0, 13: 1 }, // no fade-in because those are merged in lower zooms
349
+ },
350
+ '{bridge-,tunnel-,}street-{trunk,primary,secondary}-link:outline': {
351
+ minzoom: 13,
352
+ size: { 12: 2, 14: 3, 16: 7, 18: 14, 20: 40 },
353
+ // opacity: { 13: 0, 14: 1 }, // no fade-in because those are merged in lower zooms
354
+ },
355
+ '{bridge-,tunnel-,}street-{trunk,primary,secondary}-link': {
356
+ minzoom: 13,
357
+ size: { 12: 1, 14: 2, 16: 5, 18: 12, 20: 38 },
358
+ // opacity: { 13: 0, 14: 1 }, // no fade-in because those are merged in lower zooms
359
+ },
360
+ // minor streets
361
+ '{bridge-,tunnel-,}street-{tertiary,tertiary-link,unclassified,residential,livingstreet,pedestrian}*:outline': {
362
+ size: { 12: 2, 14: 3, 16: 6, 18: 26, 19: 64, 20: 128 },
363
+ opacity: { 12: 0, 13: 1 },
364
+ },
365
+ '{bridge-,tunnel-,}street-{tertiary,tertiary-link,unclassified,residential,livingstreet,pedestrian}*': {
366
+ size: { 12: 1, 14: 2, 16: 5, 18: 24, 19: 60, 20: 120 },
367
+ opacity: { 12: 0, 13: 1 },
368
+ },
369
+ // service and tracks
370
+ '{bridge-,tunnel-,}street-{service,track}:outline': {
371
+ size: { 14: 2, 16: 4, 18: 18, 19: 48, 20: 96 },
372
+ opacity: { 14: 0, 15: 1 },
373
+ },
374
+ '{bridge-,tunnel-,}street-{service,track}': {
375
+ size: { 14: 1, 16: 3, 18: 16, 19: 44, 20: 88 },
376
+ opacity: { 14: 0, 15: 1 },
377
+ },
378
+ // ways
379
+ '{bridge-,tunnel-,}way-*:outline': {
380
+ size: { 15: 0, 16: 5, 18: 7, 19: 12, 20: 22 },
381
+ minzoom: 15,
382
+ },
383
+ '{bridge-,tunnel-,}way-*': {
384
+ size: { 15: 0, 16: 4, 18: 6, 19: 10, 20: 20 },
385
+ minzoom: 15,
386
+ },
387
+ // foot
388
+ '{bridge-,}way-{footway,path,steps}:outline': {
389
+ color: colors.foot.darken(0.1),
390
+ },
391
+ '{bridge-,}way-{footway,path,steps}': {
392
+ color: colors.foot.lighten(0.02),
393
+ },
394
+ 'tunnel-way-{footway,path,steps}:outline': {
395
+ color: colors.foot.darken(0.1).desaturate(0.5),
396
+ },
397
+ 'tunnel-way-{footway,path,steps}': {
398
+ color: colors.foot.darken(0.02).desaturate(0.5),
399
+ lineDasharray: [1, 0.2],
400
+ },
401
+ // cycleway
402
+ '{bridge-,}way-cycleway:outline': {
403
+ color: colors.cycle.darken(0.1),
404
+ },
405
+ '{bridge-,}way-cycleway': {
406
+ color: colors.cycle,
407
+ },
408
+ 'tunnel-way-cycleway:outline': {
409
+ color: colors.cycle.darken(0.1).desaturate(0.5),
410
+ },
411
+ 'tunnel-way-cycleway': {
412
+ color: colors.cycle.darken(0.02).desaturate(0.5),
413
+ lineDasharray: [1, 0.2],
414
+ },
415
+ // cycle streets overlay
416
+ '{bridge-,tunnel-,}street-{tertiary,tertiary-link,unclassified,residential,livingstreet,pedestrian}-bicycle': {
417
+ lineCap: 'butt',
418
+ color: colors.cycle,
419
+ },
420
+ // pedestrian
421
+ 'street-pedestrian': {
422
+ size: { 12: 1, 14: 2, 16: 5, 18: 24, 19: 60, 20: 120 },
423
+ opacity: { 13: 0, 14: 1 },
424
+ color: colors.foot,
425
+ },
426
+ 'street-pedestrian-zone': {
427
+ color: colors.foot.lighten(0.02).fade(0.75),
428
+ opacity: { 14: 0, 15: 1 },
429
+ },
430
+ // rail, lightrail
431
+ '{tunnel-,bridge-,}transport-{rail,lightrail}:outline': {
432
+ color: colors.rail,
433
+ size: { 8: 1, 13: 1, 15: 3, 16: 4, 18: 8, 19: 11, 20: 14 },
434
+ },
435
+ '{tunnel-,bridge-,}transport-{rail,lightrail}': {
436
+ color: colors.rail.lighten(0.25),
437
+ size: { 8: 1, 13: 1, 15: 2, 16: 3, 18: 6, 19: 8, 20: 10 },
438
+ lineDasharray: [2, 2],
439
+ },
440
+ // subway
441
+ '{tunnel-,bridge-,}transport-subway:outline': {
442
+ color: colors.subway,
443
+ size: { 11: 0, 12: 1, 15: 3, 16: 3, 18: 6, 19: 8, 20: 10 },
444
+ },
445
+ '{tunnel-,bridge-,}transport-subway': {
446
+ color: colors.subway.lighten(0.25),
447
+ size: { 11: 0, 12: 1, 15: 2, 16: 2, 18: 5, 19: 6, 20: 8 },
448
+ lineDasharray: [2, 2],
449
+ },
450
+ // monorail
451
+ '{tunnel-,bridge-,}transport-{tram,narrowgauge,funicular,monorail}:outline': {
452
+ minzoom: 15,
453
+ color: colors.rail,
454
+ size: { 15: 0, 16: 5, 18: 7, 20: 20 },
455
+ lineDasharray: [0.1, 0.5],
456
+ },
457
+ '{tunnel-,bridge-,}transport-{tram,narrowgauge,funicular,monorail}': {
458
+ minzoom: 13,
459
+ size: { 13: 0, 16: 1, 17: 2, 18: 3, 20: 5 },
460
+ color: colors.rail,
461
+ },
462
+ // bridge
463
+ '{bridge-,}transport-rail:outline': {
464
+ opacity: { 8: 0, 9: 1 },
465
+ },
466
+ '{bridge-,}transport-rail': {
467
+ opacity: { 14: 0, 15: 1 },
468
+ },
469
+ '{bridge-,}transport-{lightrail,subway}:outline': {
470
+ opacity: { 11: 0, 12: 1 },
471
+ },
472
+ '{bridge-,}transport-{lightrail,subway}': {
473
+ opacity: { 14: 0, 15: 1 },
474
+ },
475
+ // tunnel
476
+ 'tunnel-transport-rail:outline': {
477
+ opacity: { 8: 0, 9: 0.3 },
478
+ },
479
+ 'tunnel-transport-rail': {
480
+ opacity: { 14: 0, 15: 0.3 },
481
+ },
482
+ 'tunnel-transport-{lightrail,subway}:outline': {
483
+ opacity: { 11: 0, 12: 0.5 },
484
+ },
485
+ 'tunnel-transport-{lightrail,subway}': {
486
+ opacity: { 14: 0, 15: 1 },
487
+ },
488
+ // ferry
489
+ 'transport-ferry': {
490
+ minzoom: 10,
491
+ color: colors.water.darken(0.1),
492
+ size: { 10: 1, 13: 2, 14: 3, 16: 4, 17: 6 },
493
+ opacity: { 10: 0, 11: 1 },
494
+ lineDasharray: [1, 1],
495
+ },
496
+ // labels
497
+ 'label-boundary-*': {
498
+ color: colors.label,
499
+ font: fonts.regular,
500
+ textTransform: 'uppercase',
501
+ textHaloColor: colors.labelHalo,
502
+ textHaloWidth: 2,
503
+ textHaloBlur: 1,
504
+ textAnchor: 'top',
505
+ textOffset: [0, 0.2],
506
+ textPadding: 0,
507
+ textOptional: true,
508
+ },
509
+ 'label-boundary-country-large': {
510
+ minzoom: 2,
511
+ size: { 2: 8, 5: 13 },
512
+ },
513
+ 'label-boundary-country-medium': {
514
+ minzoom: 3,
515
+ size: { 3: 8, 5: 12 },
516
+ },
517
+ 'label-boundary-country-small': {
518
+ minzoom: 4,
519
+ size: { 4: 8, 5: 11 },
520
+ },
521
+ 'label-boundary-state': {
522
+ minzoom: 5,
523
+ color: colors.label.lighten(0.05),
524
+ size: { 5: 8, 8: 12 },
525
+ },
526
+ 'label-place-*': {
527
+ color: colors.label.rotate(-15).saturate(1).darken(0.05),
528
+ font: fonts.regular,
529
+ textHaloColor: colors.labelHalo,
530
+ textHaloWidth: 2,
531
+ textHaloBlur: 1,
532
+ },
533
+ 'label-place-capital': {
534
+ minzoom: 5,
535
+ size: { 5: 12, 10: 16 },
536
+ },
537
+ 'label-place-statecapital': {
538
+ minzoom: 6,
539
+ size: { 6: 11, 10: 15 },
540
+ },
541
+ 'label-place-city': {
542
+ minzoom: 7,
543
+ size: { 7: 11, 10: 14 },
544
+ },
545
+ 'label-place-town': {
546
+ minzoom: 9,
547
+ size: { 8: 11, 12: 14 },
548
+ },
549
+ 'label-place-village': {
550
+ minzoom: 11,
551
+ size: { 9: 11, 12: 14 },
552
+ },
553
+ 'label-place-hamlet': {
554
+ minzoom: 13,
555
+ size: { 10: 11, 12: 14 },
556
+ },
557
+ // all the city things
558
+ 'label-place-suburb': {
559
+ minzoom: 11,
560
+ size: { 11: 11, 13: 14 },
561
+ textTransform: 'uppercase',
562
+ color: colors.label.rotate(-30).saturate(1).darken(0.05),
563
+ },
564
+ 'label-place-quarter': {
565
+ minzoom: 13,
566
+ size: { 13: 13 },
567
+ textTransform: 'uppercase',
568
+ color: colors.label.rotate(-40).saturate(1).darken(0.05),
569
+ },
570
+ 'label-place-neighbourhood': {
571
+ minzoom: 14,
572
+ size: { 14: 12 },
573
+ textTransform: 'uppercase',
574
+ color: colors.label.rotate(-50).saturate(1).darken(0.05),
575
+ },
576
+ 'label-motorway-shield': {
577
+ color: colors.shield,
578
+ font: fonts.bold,
579
+ textHaloColor: colors.motorway,
580
+ textHaloWidth: 0.1,
581
+ textHaloBlur: 1,
582
+ symbolPlacement: 'line',
583
+ textAnchor: 'center',
584
+ minzoom: 14,
585
+ size: { 14: 10, 18: 12, 20: 16 },
586
+ },
587
+ 'label-street-*': {
588
+ color: colors.label,
589
+ font: fonts.regular,
590
+ textHaloColor: colors.labelHalo,
591
+ textHaloWidth: 2,
592
+ textHaloBlur: 1,
593
+ symbolPlacement: 'line',
594
+ textAnchor: 'center',
595
+ minzoom: 12,
596
+ size: { 12: 10, 15: 13 },
597
+ },
598
+ 'label-address-housenumber': {
599
+ font: fonts.regular,
600
+ textHaloColor: colors.building.lighten(0.05),
601
+ textHaloWidth: 2,
602
+ textHaloBlur: 1,
603
+ symbolPlacement: 'point',
604
+ textAnchor: 'center',
605
+ minzoom: 17,
606
+ size: { 17: 8, 19: 10 },
607
+ color: colors.building.darken(0.3),
608
+ },
609
+ // markings
610
+ 'marking-oneway{-reverse,}': {
611
+ minzoom: 16,
612
+ image: 'marking-arrow-15',
613
+ opacity: { 16: 0, 17: 0.7 },
614
+ font: fonts.regular,
615
+ },
616
+ // TODO: bicycle and pedestrian
617
+ // transit
618
+ 'symbol-*': {
619
+ iconSize: 1,
620
+ symbolPlacement: 'point',
621
+ iconOpacity: 0.7,
622
+ iconKeepUpright: true,
623
+ font: fonts.regular,
624
+ size: 10,
625
+ color: colors.symbol,
626
+ iconAnchor: 'bottom',
627
+ textAnchor: 'top',
628
+ textHaloColor: colors.labelHalo,
629
+ textHaloWidth: 2,
630
+ textHaloBlur: 1,
631
+ },
632
+ 'symbol-transit-airport': {
633
+ minzoom: 12,
634
+ image: 'icon-airport-22',
635
+ iconSize: { 12: 0.5, 14: 1 },
636
+ },
637
+ 'symbol-transit-airfield': {
638
+ minzoom: 13,
639
+ image: 'icon-airfield-22',
640
+ iconSize: { 13: 0.5, 15: 1 },
641
+ },
642
+ 'symbol-transit-station': {
643
+ minzoom: 13,
644
+ image: 'icon-rail-22',
645
+ iconSize: { 13: 0.5, 15: 1 },
646
+ },
647
+ 'symbol-transit-lightrail': {
648
+ minzoom: 14,
649
+ image: 'icon-rail-light-22',
650
+ iconSize: { 14: 0.5, 16: 1 },
651
+ },
652
+ 'symbol-transit-subway': {
653
+ minzoom: 14,
654
+ image: 'icon-rail-metro-22',
655
+ iconSize: { 14: 0.5, 16: 1 },
656
+ },
657
+ 'symbol-transit-tram': {
658
+ minzoom: 15,
659
+ image: 'transport-tram-22',
660
+ iconSize: { 15: 0.5, 17: 1 },
661
+ },
662
+ 'symbol-transit-bus': {
663
+ minzoom: 16,
664
+ image: 'icon-bus-22',
665
+ iconSize: { 16: 0.5, 18: 1 },
666
+ },
667
+ // TODO: localized symbols? depends on shortbread
668
+ // pois
669
+ 'poi-*': {
670
+ minzoom: 16,
671
+ iconSize: { 16: 0.5, 19: 0.5, 20: 1 },
672
+ opacity: { 16: 0, 17: 0.4 },
673
+ symbolPlacement: 'point',
674
+ iconOptional: true,
675
+ font: fonts.regular,
676
+ color: colors.poi,
677
+ },
678
+ 'poi-amenity': {
679
+ image: ['match',
680
+ ['get', 'amenity'],
681
+ 'arts_centre', 'icon-art_gallery-22',
682
+ 'atm', 'icon-atm-22',
683
+ 'bank', 'icon-bank-22',
684
+ 'bar', 'icon-bar-22',
685
+ 'bench', 'icon-bench-22',
686
+ 'bicycle_rental', 'icon-bicycle_share-22',
687
+ 'biergarten', 'icon-beergarden-22',
688
+ 'cafe', 'icon-cafe-22',
689
+ 'car_rental', 'icon-car_rental-22',
690
+ 'car_sharing', 'icon-car_rental-22',
691
+ 'car_wash', 'icon-car_wash-22',
692
+ 'cinema', 'icon-cinema-22',
693
+ //'clinic', 'icon-clinic-22',
694
+ 'college', 'icon-college-22',
695
+ 'community_centre', 'icon-community-22',
696
+ //'courthouse', 'icon-courthouse-22',
697
+ 'dentist', 'icon-dentist-22',
698
+ 'doctors', 'icon-doctor-22',
699
+ 'dog_park', 'icon-dog_park-22',
700
+ 'drinking_water', 'icon-drinking_water-22',
701
+ 'embassy', 'icon-embassy-22',
702
+ 'fast_food', 'icon-fast_food-22',
703
+ 'fire_station', 'icon-fire_station-22',
704
+ //'food_court', 'icon-food_court-22',
705
+ 'fountain', 'icon-fountain-22',
706
+ 'grave_yard', 'icon-cemetery-22',
707
+ 'hospital', 'icon-hospital-22',
708
+ 'hunting_stand', 'icon-huntingstand-22',
709
+ 'library', 'icon-library-22',
710
+ 'marketplace', 'icon-marketplace-22',
711
+ 'nightclub', 'icon-nightclub-22',
712
+ 'nursing_home', 'icon-nursinghome-22',
713
+ 'pharmacy', 'icon-pharmacy-22',
714
+ 'place_of_worship', 'icon-place_of_worship-22',
715
+ 'playground', 'icon-playground-22',
716
+ 'police', 'icon-police-22',
717
+ 'post_box', 'icon-post_box-22',
718
+ 'post_office', 'icon-post-22',
719
+ 'prison', 'icon-prison-22',
720
+ 'pub', 'icon-beer-22',
721
+ //'public_building', 'icon-public_building-22',
722
+ 'recycling', 'icon-recycling-22',
723
+ 'restaurant', 'icon-restaurant-22',
724
+ 'school', 'icon-school-22',
725
+ 'shelter', 'icon-shelter-22',
726
+ 'telephone', 'icon-telephone-22',
727
+ 'theatre', 'icon-theatre-22',
728
+ 'toilets', 'icon-toilet-22',
729
+ 'townhall', 'icon-town_hall-22',
730
+ //'university', 'icon-university-22',
731
+ 'vending_machine', 'icon-vendingmachine-22',
732
+ 'veterinary', 'icon-veterinary-22',
733
+ 'waste_basket', 'icon-waste_basket-22',
734
+ 'UNDEFINED',
735
+ ],
736
+ },
737
+ 'poi-leisure': {
738
+ image: ['match',
739
+ ['get', 'leisure'],
740
+ 'golf_course', 'icon-golf-22',
741
+ 'ice_rink', 'icon-icerink-22',
742
+ 'pitch', 'icon-pitch-22',
743
+ //'sports_centre', 'icon-sports_centre-22',
744
+ 'stadium', 'icon-stadium-22',
745
+ 'swimming_pool', 'icon-swimming-22',
746
+ 'water_park', 'icon-waterpark-22',
747
+ 'icon-sports-22',
748
+ ],
749
+ },
750
+ 'poi-tourism': {
751
+ image: ['match',
752
+ ['get', 'tourism'],
753
+ //'alpine_hut', 'icon-alpine_hut-22',
754
+ //'bed_and_breakfast', 'icon-bed_and_breakfast-22',
755
+ //'camp_site', 'icon-camp_site-22',
756
+ //'caravan_site', 'icon-caravan_site-22',
757
+ 'chalet', 'icon-chalet-22',
758
+ //'guest_house', 'icon-guest_house-22',
759
+ //'hostel', 'icon-hostel-22',
760
+ //'hotel', 'icon-hotel-22',
761
+ 'information', 'transport-information-22',
762
+ //'motel', 'icon-motel-22',
763
+ 'picnic_site', 'icon-picnic_site-22',
764
+ //'theme_park', 'icon-theme_park-22',
765
+ 'viewpoint', 'icon-viewpoint-22',
766
+ 'zoo', 'icon-zoo-22',
767
+ 'UNDEFINED',
768
+ ],
769
+ },
770
+ 'poi-shop': {
771
+ image: ['match',
772
+ ['get', 'shop'],
773
+ 'alcohol', 'icon-alcohol_shop-22',
774
+ 'bakery', 'icon-bakery-22',
775
+ 'beauty', 'icon-beauty-22',
776
+ 'beverages', 'icon-beverages-22',
777
+ //'bicycle', 'icon-bicycle-22',
778
+ 'books', 'icon-books-22',
779
+ 'butcher', 'icon-butcher-22',
780
+ //'car', 'icon-car-22',
781
+ 'chemist', 'icon-chemist-22',
782
+ 'clothes', 'icon-clothes-22',
783
+ //'computer', 'icon-computer-22',
784
+ //'convinience', 'icon-convinience-22',
785
+ //'department_store', 'icon-department_store-22',
786
+ 'doityourself', 'icon-doityourself-22',
787
+ 'dry_cleaning', 'icon-drycleaning-22',
788
+ 'florist', 'icon-florist-22',
789
+ 'furniture', 'icon-furniture-22',
790
+ 'garden_centre', 'icon-garden_centre-22',
791
+ 'general', 'icon-shop-22',
792
+ 'gift', 'icon-gift-22',
793
+ 'greengrocer', 'icon-greengrocer-22',
794
+ 'hairdresser', 'icon-hairdresser-22',
795
+ 'hardware', 'icon-hardware-22',
796
+ 'jewelry', 'icon-jewelry_store-22',
797
+ 'kiosk', 'icon-kiosk-22',
798
+ 'laundry', 'icon-laundry-22',
799
+ //'mall', 'icon-mall-22',
800
+ //'mobile_phone', 'icon-mobile_phone-22',
801
+ 'newsagent', 'icon-newsagent-22',
802
+ 'optican', 'icon-optician-22',
803
+ 'outdoor', 'icon-outdoor-22',
804
+ 'shoes', 'icon-shoes-22',
805
+ 'sports', 'icon-sports-22',
806
+ 'stationery', 'icon-stationery-22',
807
+ //'supermarket', 'icon-supermarket-22',
808
+ 'toys', 'icon-toys-22',
809
+ 'travel_agency', 'icon-travel_agent-22',
810
+ 'video', 'icon-video-22',
811
+ 'icon-shop-22',
812
+ ],
813
+ },
814
+ 'poi-man_made': {
815
+ image: ['match',
816
+ ['get', 'man_made'],
817
+ 'lighthouse', 'icon-lighthouse-22',
818
+ 'surveillance', 'icon-surveillance-22',
819
+ 'tower', 'icon-observation_tower-22',
820
+ //'wastewater_plant', 'icon-wastewater_plant-22',
821
+ //'water_well', 'icon-water_well-22',
822
+ //'water_works', 'icon-water_works-22',
823
+ 'watermill', 'icon-watermill-22',
824
+ 'windmill', 'icon-windmill-22',
825
+ 'UNDEFINED',
826
+ ],
827
+ },
828
+ 'poi-historic': {
829
+ image: ['match',
830
+ ['get', 'historic'],
831
+ //'archaelogical_site', 'icon-archaelogical_site-22',
832
+ 'artwork', 'icon-artwork-22',
833
+ //'battlefield', 'icon-battlefield-22',
834
+ 'castle', 'icon-castle-22',
835
+ //'fort', 'icon-fort-22',
836
+ //'memorial', 'icon-memorial-22',
837
+ 'monument', 'icon-monument-22',
838
+ //'ruins', 'icon-ruins-22',
839
+ //'wayside_cross', 'icon-wayside_cross-22',
840
+ 'wayside_shrine', 'icon-shrine-22',
841
+ 'icon-historic-22',
842
+ ],
843
+ },
844
+ 'poi-emergency': {
845
+ image: ['match',
846
+ ['get', 'emergency'],
847
+ 'defibrillator', 'icon-defibrillator-22',
848
+ 'fire_hydrant', 'icon-hydrant-22',
849
+ 'phone', 'icon-emergency_phone-22',
850
+ 'UNDEFINED',
851
+ ],
852
+ },
853
+ /*
854
+ 'poi-highway': {
855
+ image: ['match',
856
+ ['get', 'highway'],
857
+ //'emergency_access_point', 'icon-emergency_access_point-22',
858
+ 'UNDEFINED'
859
+ ]
860
+ },
861
+ 'poi-office': {
862
+ image: ['match',
863
+ ['get', 'office'],
864
+ //'diplomatic', 'icon-diplomatic-22',
865
+ 'UNDEFINED'
866
+ ]
867
+ },
868
+ */
869
+ };
870
+ }
871
+ }