Warning, /libraries/kosmindoormap/src/map/assets/css/breeze-common.mapcss is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 /* common definitions between light and dark style */
0008 
0009 /** Various outdoor stuff. */
0010 area[water],
0011 area[waterway],
0012 area[natural=water],
0013 area[amenity=fountain],
0014 area[landuse=basin],
0015 area[place=sea]
0016 {
0017     fill-color: #103daee9;
0018     z-index: -1000;
0019 }
0020 way[waterway]
0021 {
0022     color: #103daee9;
0023     z-index: -1000;
0024     width: 1m;
0025 }
0026 way[waterway][width] { width: width; }
0027 
0028 area[natural=water][intermittent=yes]
0029 {
0030     fill-opacity: 0.5;
0031     fill-image: url("intermittent_water.svg");
0032 }
0033 
0034 *|z18- [amenity=fountain] {
0035     icon-image: amenity;
0036     icon-color: #2980b9;
0037 }
0038 *|z18- [waterway=waterfall] {
0039     icon-image: waterway;
0040     icon-color: #2980b9;
0041 }
0042 
0043 area[leisure=miniature_golf],
0044 area[leisure=park],
0045 area[leisure=pitch],
0046 area[leisure=playground],
0047 area[landuse=farmland],
0048 area[landuse=grass],
0049 area[landuse=recreation_ground],
0050 area[landuse=village_green],
0051 area[landuse=meadow],
0052 area[natural=grassland],
0053 area[natural=heath],
0054 area[surface=grass]
0055 {
0056     fill-color: #1027ae60;
0057     z-index: -999;
0058 }
0059 area[landuse=cemetery]
0060 {
0061     fill-color: #1027ae60;
0062     fill-opacity: 0.4;
0063     fill-image: url("grave_yard_generic.svg");
0064     z-index: -999;
0065 }
0066 area[leisure=garden]
0067 {
0068     fill-color: #1027ae60;
0069     fill-opacity: 0.6;
0070     fill-image: url("plant_nursery.svg");
0071     z-index: -999;
0072 }
0073 area[landuse=plant_nursery]
0074 {
0075     fill-color: #1027ae60;
0076     z-index: -999;
0077     fill-opacity: 0.5;
0078     fill-image: url("plant_nursery.svg");
0079 }
0080 
0081 line[natural=tree_row]
0082 {
0083     color:  #1027ae60;
0084     width: 2m;
0085     linecap: round;
0086 }
0087 
0088 area[landuse=forest],
0089 area[natural=wood]
0090 {
0091     fill-color: #1027ae60;
0092     z-index: -999;
0093     fill-opacity: 0.5;
0094     fill-image: url("leaftype_unknown.svg");
0095 }
0096 area[landuse=forest][leaf_type=broadleaved],
0097 area[natural=wood][leaf_type=broadleaved]
0098 {
0099     fill-image: url("leaftype_broadleaved.svg");
0100 }
0101 area[landuse=forest][leaf_type=leafless],
0102 area[natural=wood][leaf_type=leafless]
0103 {
0104     fill-image: url("leaftype_leafless.svg");
0105 }
0106 area[landuse=forest][leaf_type=needleleaved],
0107 area[natural=wood][leaf_type=needleleaved]
0108 {
0109     fill-image: url("leaftype_needleleaved.svg");
0110 }
0111 area[landuse=forest][leaf_type=mixed],
0112 area[natural=wood][leaf_type=mixed]
0113 {
0114     fill-image: url("leaftype_mixed.svg");
0115 }
0116 
0117 area[landuse=orchard]
0118 {
0119     fill-color: #1027ae60;
0120     z-index: -999;
0121     fill-opacity: 0.5;
0122     fill-image: url("orchard.svg");
0123 }
0124 area[landuse=vineyard]
0125 {
0126     fill-color: #1027ae60;
0127     z-index: -999;
0128     fill-opacity: 0.5;
0129     fill-image: url("vineyard.svg");
0130 }
0131 
0132 area[natural=scrub]
0133 {
0134     fill-color: #1027ae60;
0135     z-index: -999;
0136     fill-opacity: 0.5;
0137     fill-image: url("scrub.png");
0138 }
0139 
0140 area[landuse=allotments]
0141 {
0142     fill-color: #1027ae60;
0143     z-index: -999;
0144     fill-opacity: 0.5;
0145     fill-image: url("allotments.svg");
0146 }
0147 
0148 area[natural=beach],
0149 area[natural=sand]
0150 {
0151     fill-color: #20fdbc4b;
0152     z-index: -999;
0153 }
0154 area[natural=beach][surface=sand] { fill-image: url("beach.png"); }
0155 
0156 area[natural=rock]
0157 {
0158     fill-color: #20bdc3c7;
0159     z-index: -999;
0160 }
0161 area[natural=bare_rock]
0162 {
0163     fill-color: #20bdc3c7;
0164     fill-image: url("rock_overlay.png");
0165     z-index: -999;
0166 }
0167 area[landuse=quarry]
0168 {
0169     fill-color: #20bdc3c7;
0170     fill-image: url("quarry.svg");
0171     z-index: -999;
0172 }
0173 
0174 area[natural=wetland],
0175 area[natural=mud]
0176 {
0177     fill-color: #1027ae60;
0178     fill-opacity: 0.5;
0179     fill-image: url("wetland.png");
0180     z-index: -999;
0181 }
0182 area[natural=wetland][wetland=bog],
0183 area[natural=wetland][wetland=fen],
0184 area[natural=wetland][wetland=string_bog]
0185 {
0186     fill-image: url("wetland_bog.png");
0187 }
0188 area[natural=wetland][wetland=marsh],
0189 area[natural=wetland][wetland=saltmarsh],
0190 area[natural=wetland][wetland=wet_meadow]
0191 {
0192     fill-image: url("wetland_marsh.png");
0193 }
0194 area[natural=wetland][wetland=mangrove] { fill-image: url("wetland_mangrove.png"); }
0195 area[natural=wetland][wetland=reedbed] { fill-image: url("wetland_reed.png"); }
0196 area[natural=wetland][wetland=swamp] { fill-image: url("wetland_swamp.png"); }
0197 
0198 node|z19-[natural=tree]
0199 {
0200     icon-image: "tree";
0201     icon-height: 2m;
0202     icon-width: 2m;
0203     icon-color: #27ae60;
0204     icon-opacity: 0.4;
0205     icon-allow-icon-overlap: true;
0206     icon-allow-text-overlap: true;
0207 }
0208 node|z19-[natural=tree][diameter_crown]
0209 {
0210     icon-height: diameter_crown;
0211     icon-width: diameter_crown;
0212 }
0213 
0214 node|z21-[natural=shrub]
0215 {
0216     icon-image: "circle";
0217     icon-height: 0.4m;
0218     icon-width: 0.4m;
0219     icon-color: #27ae60;
0220     icon-opacity: 0.4;
0221     icon-allow-icon-overlap: true;
0222     icon-allow-text-overlap: true;
0223 }
0224 node|z21-[natural=shrub][width]
0225 {
0226     icon-height: width;
0227     icon-width: width;
0228 }
0229 
0230 /** Generic labeling */
0231 area|z21- [indoor=room],
0232 area|z21- [allotments=plot]
0233 {
0234     text: ref;
0235     max-width: 100;
0236     text-halo-radius: 2.0;
0237     text-position: center;
0238 }
0239 
0240 *|z21- [building],
0241 *|z20- [shop],
0242 *|z19- [shop=ticket],
0243 *|z21- [amenity][name],
0244 *|z20- [amenity=cafe],
0245 *|z20- [amenity=car_rental],
0246 *|z20- [amenity=fast_food],
0247 *|z20- [amenity=restaurant],
0248 *|z21- [indoor=room][name],
0249 *|z21- [leisure],
0250 *|z19- [tourism=information],
0251 *|z18- [tourism=zoo],
0252 *|z18- [tourism=theme_park],
0253 *|z20- [tourism=attraction],
0254 *|z20- [attraction],
0255 *|z21- [tourism],
0256 *|z19- [shop=mall],
0257 *|z21- [historic],
0258 *|z21- [diplomatic],
0259 *|z21- [office=coworking]
0260 {
0261     text: name;
0262     max-width: 100;
0263     text-halo-radius: 2.0;
0264 }
0265 
0266 
0267 /** Ferries */
0268 *|z17- [amenity=ferry_terminal]
0269 {
0270     icon-image: amenity;
0271     icon-color: #3daee9;
0272 }
0273 line[route=ferry]
0274 {
0275     color: #803daee9;
0276     dashes: 2,2;
0277     width: 3px;
0278 }
0279 
0280 /** Roads */
0281 line[highway=motorway],
0282 line[highway=motorway_link],
0283 line[highway=trunk],
0284 line[highway=trunk_link],
0285 line[highway=primary],
0286 line[highway=primary_link],
0287 line[highway=secondary],
0288 line[highway=secondary_link],
0289 line[highway=tertiary],
0290 line[highway=tertiary_link],
0291 line[highway=unclassified],
0292 line[highway=residential],
0293 line[highway=service]::road,
0294 line[highway=living_street],
0295 line[highway=pedestrian],
0296 line[highway=road],
0297 line[highway=track]
0298 {
0299     casing-width: 1;
0300     z-index: -30;
0301     linecap: round;
0302     casing-linecap: round;
0303 }
0304 
0305 line[highway=motorway] { width: 9; }
0306 line[highway=trunk] { width: 7; }
0307 line[highway=primary] { width: 6.5; }
0308 line[highway=secondary] { width: 6; }
0309 
0310 line[highway=motorway_link],
0311 line[highway=tertiary]
0312 {
0313     width: 5;
0314 }
0315 
0316 line[highway=trunk_link],
0317 line[highway=primary_link],
0318 line[highway=secondary_link],
0319 line[highway=tertiary_link],
0320 line[highway=unclassified],
0321 line[highway=living_street],
0322 line[highway=pedestrian]
0323 {
0324     width: 4;
0325 }
0326 
0327 line[highway=residential],
0328 line[highway=road]
0329 {
0330     width: 3;
0331 }
0332 
0333 line[highway=service]::road { width: 2; }
0334 
0335 line[highway=track],
0336 line[highway=path]
0337 {
0338     width: 1;
0339 }
0340 
0341 line[highway][layer<0],
0342 line[highway][tunnel] {
0343     casing-dashes: 0.25,0.25;
0344     casing-linecap: none;
0345 }
0346 line [highway=steps] { width: 1; }
0347 line [highway=steps][width] { width: width; }
0348 line[highway=steps][layer<0] {
0349     casing-dashes: none;
0350 }
0351 
0352 line|z18-[highway=motorway],
0353 line|z20-[highway=motorway_link]
0354 {
0355     text-position: line;
0356     text-opacity: 0.75;
0357     text: ref;
0358 }
0359 line|z19-[highway=trunk],
0360 line|z20-[highway=trunk_link],
0361 line|z19-[highway=primary],
0362 line|z20-[highway=primary_link],
0363 line|z19-[highway=secondary],
0364 line|z20-[highway=secondary_link],
0365 line|z20-[highway=tertiary],
0366 line|z20-[highway=tertiary_link],
0367 line|z20-[highway=unclassified],
0368 line|z20-[highway=residential],
0369 line|z21-[highway=service],
0370 line|z20-[highway=living_street],
0371 line|z20-[highway=pedestrian],
0372 line|z20-[highway=road]
0373 {
0374     text-position: line;
0375     text-opacity: 0.75;
0376     text: name;
0377 }
0378 
0379 /** Railway tracks */
0380 way[railway=rail],
0381 way[railway=light_rail],
0382 way[railway=subway],
0383 way[railway=tram]::tram,
0384 way[railway=monorail]
0385 {
0386     color: #eff0f1;
0387     dashes: 2,2;
0388     width: 1.5m;
0389     casing-width: 3;
0390     casing-color: #31363b;
0391     linecap: none;
0392     linejoin: miter;
0393 }
0394 way[railway=narrow_gauge]
0395 {
0396     color: #eff0f1;
0397     dashes: 2,2;
0398     width: 1m;
0399     casing-width: 3;
0400     casing-color: #31363b;
0401     linecap: none;
0402 }
0403 way[railway][gauge] {
0404     width: gauge;
0405 }
0406 
0407 way[railway:traffic_mode=freight],
0408 way[railway=rail][service=yard]
0409 {
0410     casing-color: #7f8c8d;
0411 }
0412 
0413 /** Buildings */
0414 area[building],
0415 area[building:part=yes],
0416 area[building:part=floor],
0417 area[indoor=area],
0418 area[indoor=corridor],
0419 area[indoor=level],
0420 area[stairwell],
0421 area[tunnel]
0422 {
0423     z-index: -1;
0424 }
0425 /** Cap building layers, this is much more often a data issue than actually intended and
0426  *  causes misrenderings as building content then gets covered.
0427  */
0428 area[building][layer>0],
0429 area[building:part=yes][layer>0]
0430 {
0431     set layer=0;
0432 }
0433 
0434 node|z21-[door][door!=no][!entrance]
0435 {
0436     icon-image: "square";
0437     icon-height: 4px;
0438     icon-width: 4px;
0439     icon-color: #31363b;
0440     icon-allow-icon-overlap: true;
0441     icon-allow-text-overlap: true;
0442 }
0443 
0444 node|z21-[entrance=yes][railway!=subway_entrance],
0445 node|z21-[entrance=main]
0446 {
0447     icon-image: "entrance";
0448     icon-allow-icon-overlap: true;
0449     icon-allow-text-overlap: true;
0450 }
0451 
0452 /** Airports */
0453 line|z14-[aeroway=runway]
0454 {
0455     color: #eff0f1;
0456     width: 2px;
0457     dashes: 4, 4;
0458     casing-width: 20m;
0459     casing-color: #95a5a6;
0460     text: ref;
0461     text-color: #232629;
0462     shield-color: #fdbc4b;
0463     z-index: -10;
0464 }
0465 line|z14-[aeroway=runway][width]
0466 {
0467     casing-width: width;
0468 }
0469 area|z14-[aeroway=runway]
0470 {
0471     fill-color: #95a5a6;
0472     text: ref;
0473     text-color: #232629;
0474     shield-color: #fdbc4b;
0475     z-index: -10;
0476 }
0477 area|z15-[aeroway=helipad]
0478 {
0479     text: "H";
0480     fill-color: #95a5a6;
0481 }
0482 way|z14-[aeroway=taxiway],
0483 way|z14-[aeroway=taxilane]
0484 {
0485     color: #fdbc4b;
0486     width: 1px;
0487     casing-width: 10m;
0488     casing-color: #95a5a6;
0489     z-index: -20;
0490 }
0491 way|z14-[aeroway=taxiway][width]
0492 {
0493     casing-width: width;
0494 }
0495 way|z19-[aeroway=taxiway]
0496 {
0497     text-color: #fdbc4b;
0498     text-position: line;
0499     font-size: 8;
0500     text: ref;
0501     text-offset: 12;
0502 }
0503 way|z19-[aeroway=parking_position]
0504 {
0505     color: #fdbc4b;
0506     width: 1px;
0507     dashes: 8,8;
0508     text-color: #fdbc4b;
0509     text-position: line;
0510     font-size: 8;
0511     text: ref;
0512     text-offset: 12;
0513 }
0514 node|z20-[aeroway=parking_position]
0515 {
0516     text-color: #fdbc4b;
0517     font-size: 8;
0518     text: ref;
0519 }
0520 
0521 area|z16-[aeroway=terminal]
0522 {
0523     text: name;
0524 }
0525 node|z18-[aeroway=gate]
0526 {
0527     text: ref;
0528     text-color: #232629;
0529     shield-color: #fdbc4b;
0530 }
0531 node|z17-[aeroway=gate][mx:arrival=1]
0532 {
0533     text: ref;
0534     text-color: #eff0f1;
0535     shield-color: #16a085;
0536 }
0537 node|z17-[aeroway=gate][mx:departure=1]
0538 {
0539     text: ref;
0540     text-color: #eff0f1;
0541     shield-color: #da4453;
0542 }
0543 
0544 *|z19-[amenity=baggage_claim]
0545 {
0546     text: ref;
0547     icon-image: amenity;
0548     set .static;
0549 }
0550 way|z19-[amenity=baggage_claim]
0551 {
0552     width: 1m;
0553     color: #bdc3c7;
0554 }
0555 
0556 /** Platforms */
0557 node[highway=bus_stop]
0558 {
0559     icon-image: "bus_stop";
0560     icon-color: #1d99f3;
0561     max-width: 150;
0562 }
0563 node|z20-[highway=bus_stop]
0564 {
0565     text: name;
0566 }
0567 
0568 area[railway=platform],
0569 area[public_transport=platform],
0570 way[public_transport=platform]
0571 {
0572     z-index: 0; // in case this is also marked as a building part...
0573     opacity: 1;
0574 }
0575 
0576 @import url("platform-overlay.mapcss");
0577 
0578 /** static elements
0579  *  keep before amenities/shops, as those can occur on the same element and should override the static element styles
0580  */
0581 line[barrier],
0582 line[indoor=wall],
0583 line[man_made=embankment]
0584 {
0585     width: 0.25m;
0586 }
0587 
0588 line[barrier=fence],
0589 area[barrier=fence] {
0590     width: 1px;
0591 }
0592 line[barrier=hedge] {
0593     width: 0.4m;
0594 }
0595 line[barrier=bollard] {
0596     dashes: 0.2,1.2;
0597 }
0598 line[barrier=kerb] {
0599     width: 1px;
0600     opacity: 0.5;
0601 }
0602 
0603 node|z21- [barrier=block]
0604 {
0605     set .static;
0606     icon-image: "circle";
0607     icon-width: 0.5m;
0608     icon-height: 0.5m;
0609     icon-allow-icon-overlap: true;
0610     icon-allow-text-overlap: true;
0611 }
0612 
0613 node|z20- [amenity=bench],
0614 node|z20- [amenity=recycling],
0615 *|z20- [amenity=shelter],
0616 node|z20- [amenity=waste_basket],
0617 *|z20- [amenity=waste_disposal]
0618 {
0619     icon-image: amenity;
0620     set .static;
0621 }
0622 
0623 node|z19- [barrier=lift_gate]
0624 {
0625     icon-image: barrier;
0626     set .static;
0627 }
0628 
0629 node|z20- [information=board],
0630 node|z20- [information=guidepost],
0631 node|z20- [information=map],
0632 node|z20- [information=terminal]
0633 {
0634     icon-image: information;
0635     set .static;
0636 }
0637 // hide information boards as their names clutter the vie
0638 // showing an icon instead would be better, but we don't have one yet
0639 node[information] { text: ""; }
0640 
0641 *|z20- [historic=archaeological_site],
0642 *|z19- [historic=castle],
0643 *|z19- [historic=city_gate],
0644 *|z20- [historic=memorial],
0645 *|z19- [historic=monument]
0646 {
0647     icon-image: historic;
0648     set .static;
0649 }
0650 *|z20- [memorial=statue]
0651 {
0652     icon-image: memorial;
0653     set .static;
0654 }
0655 
0656 *|z20- [tourism=artwork]
0657 {
0658     icon-image: tourism;
0659     set .static;
0660 }
0661 *|z20- [tourism=artwork][artwork_type=statue]
0662 {
0663     icon-image: artwork_type;
0664     set .static;
0665 }
0666 
0667 *|z20- [man_made] { set .static; }
0668 *|z20- [man_made=lighthouse],
0669 *|z20- [man_made=storage_tank],
0670 *|z20- [man_made=water_tower],
0671 *|z20- [man_made=windmill]
0672 {
0673     icon-image: man_made;
0674 }
0675 *|z20- [man_made=silo] { icon-image: "storage_tank"; }
0676 *|z20- [man_made=tower][tower:type=defensive] { icon-image: "tower_defensive"; }
0677 
0678 *|z21- [advertising=column ]
0679 {
0680     icon-image: "advertising_column";
0681     set .static;
0682 }
0683 
0684 /** Specific amenities/shops/etc */
0685 
0686 // ticket machines
0687 node|z20-[vending=public_transport_tickets] {
0688     icon-image: vending;
0689     icon-color: #fcfcfc;
0690     shield-color: #1d99f3;
0691     shield-casing-color: #fcfcfc;
0692     shield-casing-width: 1;
0693     text: "";
0694 }
0695 
0696 // parking
0697 *|z17-[amenity=parking],
0698 *|z18-[amenity=bicycle_parking],
0699 *|z19-[amenity=fuel],
0700 *|z18-[amenity=motorcycle_parking]
0701 {
0702     icon-image: amenity;
0703     set .parking;
0704 }
0705 *|z-20[amenity=parking][access=private]
0706 {
0707     icon-opacity: 0.0;
0708 }
0709 
0710 // vehicle rental stations
0711 *|z18-[amenity=bicycle_rental] {
0712     icon-color: #3daee9;
0713     icon-image: amenity;
0714     text: ""; // suppress generic names messing up the layouting when we have realtime data (see below)
0715 }
0716 *|z18-[amenity=bicycle_rental][mx:realtime_available=0] {
0717     icon-color: #da4453;
0718     text: mx:realtime_available;
0719     text-color: #da4453;
0720 }
0721 *|z18-[amenity=bicycle_rental][mx:realtime_available>0] {
0722     icon-color: #27ae60;
0723     text: mx:realtime_available;
0724     text-color: #27ae60;
0725 }
0726 
0727 // free floating rental vehicles
0728 *|z18-[mx:vehicle=bicycle_rental],
0729 *|z18-[mx:vehicle=car_rental],
0730 *|z18-[mx:vehicle=motorcycle_rental],
0731 *|z18-[mx:vehicle=scooter_rental]
0732 {
0733     icon-image: mx:vehicle;
0734     icon-color: #27ae60;
0735     text: "";
0736 }
0737 *|z18-[mx:vehicle=bicycle_rental][mx:remaining_range<5000],
0738 *|z18-[mx:vehicle=car_rental][mx:remaining_range<30000],
0739 *|z18-[mx:vehicle=motorcycle_rental][mx:remaining_range<5000],
0740 *|z18-[mx:vehicle=scooter_rental][mx:remaining_range<5000]
0741 {
0742     icon-color: #fdbc4b;
0743 }
0744 
0745 // charging stations
0746 node|z19-[amenity=charging_station] {
0747     set .parking;
0748     icon-image: "charging_station";
0749 }
0750 node|z19-[amenity=charging_station][access=private] { icon-color: #7f8c8d; }
0751 
0752 // other transportation-related elements
0753 *|z19-[amenity=boat_rental],
0754 *|z19-[amenity=bicycle_repair_station],
0755 *|z19-[amenity=car_rental],
0756 *|z19-[amenity=car_sharing],
0757 *|z18-[amenity=taxi]
0758 {
0759     set .parking;
0760     icon-image: amenity;
0761 }
0762 *|z21-[amenity=taxi] { text: ""; }
0763 *|z19-[amenity=car_sharing] { icon-image: "car_rental"; } // TODO needs a better icon
0764 node|z19-[barrier=toll_booth]
0765 {
0766     set .parking;
0767     icon-image: barrier;
0768 }
0769 
0770 // restrooms
0771 area|z20-[amenity=shower] { icon-image: "shower"; }
0772 node|z20-[amenity=shower]
0773 {
0774     icon-color: #3daee9;
0775     icon-image: "shower";
0776 }
0777 area|z18-[amenity=toilets],
0778 area|z18-[room=toilets]
0779 {
0780     icon-image: "toilets";
0781 }
0782 node|z18-[amenity=toilets] { // only for stand-alone nodes, otherwise we have the same color as the room already
0783     icon-color: #3daee9;
0784     icon-image: "toilets";
0785 }
0786 *[amenity=toilets][access=private],
0787 *[room=toilets][access=private]
0788 {
0789     icon-color: #7f8c8d;
0790 }
0791 *|z-21[amenity=toilets][access=private],
0792 *|z-21[room=toilets][access=private]
0793 {
0794     icon-opacity: 0.0;
0795 }
0796 
0797 // accommodation
0798 *|z19- [tourism=apartment],
0799 *|z18- [tourism=caravan_site],
0800 *|z19- [tourism=chalet],
0801 *|z18- [tourism=hotel],
0802 *|z19- [tourism=guest_house],
0803 *|z18- [tourism=hostel]
0804 {
0805     icon-color: #3daee9;
0806     icon-image: tourism;
0807 }
0808 *|z20- [tourism=hotel],
0809 *|z20- [tourism=hostel]
0810 {
0811     text: name;
0812     max-width: 150;
0813     text-halo-radius: 2.0;
0814 }
0815 
0816 // food
0817 *|z19- [amenity=bar],
0818 *|z19- [amenity=biergarten],
0819 *|z19- [amenity=cafe],
0820 *|z19- [amenity=fast_food],
0821 *|z18- [amenity=food_court],
0822 *|z19- [amenity=ice_cream],
0823 *|z19- [amenity=pub],
0824 *|z19- [amenity=restaurant]
0825 {
0826     icon-image: amenity;
0827     set .food;
0828 }
0829 *|z18-[amenity=food_court] { icon-image: "restaurant"; }
0830 
0831 // shops
0832 * [shop] { set .shop; }
0833 
0834 *|z19- [shop=alcohol],
0835 *|z20- [shop=art],
0836 *|z19- [shop=bag],
0837 *|z19- [shop=bakery],
0838 *|z19- [shop=beauty],
0839 *|z19- [shop=bed],
0840 *|z19- [shop=beverages],
0841 *|z19- [shop=bicycle],
0842 *|z20- [shop=bookmaker],
0843 *|z19- [shop=butcher],
0844 *|z19- [shop=car],
0845 *|z20- [shop=car_parts],
0846 *|z20- [shop=car_repair],
0847 *|z20- [shop=carpet],
0848 *|z19- [shop=charity],
0849 *|z19- [shop=chemist],
0850 *|z19- [shop=clothes],
0851 *|z19- [shop=coffee],
0852 *|z19- [shop=computer],
0853 *|z19- [shop=confectionery],
0854 *|z19- [shop=convenience],
0855 *|z19- [shop=copyshop],
0856 *|z19- [shop=dairy],
0857 *|z19- [shop=deli],
0858 *|z18- [shop=department_store],
0859 *|z19- [shop=doityourself],
0860 *|z19- [shop=electronics],
0861 *|z20- [shop=fabric],
0862 *|z19- [shop=florist],
0863 *|z19- [shop=furniture],
0864 *|z19- [shop=garden_centre],
0865 *|z19- [shop=gift],
0866 *|z19- [shop=greengrocer],
0867 *|z19- [shop=hairdresser],
0868 *|z19- [shop=hifi],
0869 *|z19- [shop=houseware],
0870 *|z19- [shop=interior_decoration],
0871 *|z19- [shop=jewelry],
0872 *|z19- [shop=laundry],
0873 *|z19- [shop=medical_supply],
0874 *|z19- [shop=mobile_phone],
0875 *|z20- [shop=motorcycle],
0876 *|z19- [shop=music],
0877 *|z19- [shop=musical_instrument],
0878 *|z19- [shop=newsagent],
0879 *|z19- [shop=optician],
0880 *|z19- [shop=outdoor],
0881 *|z19- [shop=paint],
0882 *|z19- [shop=perfumery],
0883 *|z19- [shop=pet],
0884 *|z19- [shop=photo],
0885 *|z19- [shop=seafood],
0886 *|z19- [shop=second_hand],
0887 *|z19- [shop=shoes],
0888 *|z19- [shop=sports],
0889 *|z19- [shop=stationery],
0890 *|z18- [shop=supermarket],
0891 *|z19- [shop=tea],
0892 *|z18- [shop=ticket],
0893 *|z19- [shop=tobacco],
0894 *|z19- [shop=toys],
0895 *|z19- [shop=trade],
0896 *|z19- [shop=travel_agency],
0897 *|z20- [shop=tyres],
0898 *|z20- [shop=video],
0899 *|z19- [shop=video_games],
0900 *|z19- [shop=variety_store]
0901 {
0902     icon-image: shop;
0903 }
0904 *|z19- [shop=books] { icon-image: "library"; }
0905 *|z19- [shop=boutique] { icon-image: "clothes"; }
0906 *|z19- [shop=chocolate] { icon-image: "confectionery"; }
0907 *|z19- [shop=cosmetics] { icon-image: "perfumery"; }
0908 *|z19- [shop=dry_cleaning] { icon-image: "laundry"; }
0909 *|z19- [shop=hardware] { icon-image: "doityourself"; }
0910 *|z19- [shop=farm] { icon-image: "greengrocer"; }
0911 *|z19- [shop=fashion] { icon-image: "clothes"; }
0912 *|z19- [shop=kiosk] { icon-image: "newsagent"; }
0913 *|z19- [shop=pastry] { icon-image: "confectionery"; }
0914 *|z19- [shop=wine] { icon-image: "alcohol"; }
0915 *|z19- [shop=wholesale] { icon-image: "trade"; }
0916 *|z19- [office=travel_agent]
0917 {
0918     icon-image: "travel_agency";
0919     set .shop;
0920 }
0921 
0922 *|z18- [amenity=marketplace]
0923 {
0924     icon-image: amenity;
0925     set .shop;
0926 }
0927 
0928 // health
0929 *|z19- [amenity=dentist],
0930 *|z19- [amenity=doctors],
0931 *|z17- [amenity=hospital],
0932 *|z18- [amenity=pharmacy],
0933 *|z20- [amenity=veterinary]
0934 {
0935     icon-image: amenity;
0936     set .health;
0937 }
0938 *|z19- [amenity=clinic]
0939 {
0940     icon-image: "doctors";
0941     set .health;
0942 }
0943 
0944 // leisure elements
0945 *|z18- [leisure] { set .leisure; }
0946 *|z19- [leisure=bowling_alley],
0947 *|z19- [leisure=fitness_centre],
0948 *|z18- [leisure=golf_course],
0949 *|z19- [leisure=miniature_golf],
0950 *|z20- [leisure=outdoor_seating],
0951 *|z18- [leisure=playground],
0952 *|z20- [leisure=sauna],
0953 *|z18- [leisure=water_park]
0954 {
0955     icon-image: leisure;
0956 }
0957 *|z18- [leisure=sports_centre][sport=swimming] { icon-image: "water_park"; }
0958 *|z19- [leisure=fitness_station] { icon-image: "fitness_centre"; }
0959 *|z20- [shop=massage]
0960 {
0961     icon-image: shop;
0962     set .leisure;
0963 }
0964 *|z20- [tourism=picnic_site]
0965 {
0966     icon-image: tourism;
0967     set .leisure;
0968 }
0969 
0970 // other amenities
0971 *|z19- [amenity=arts_centre],
0972 node|z19- [amenity=atm],
0973 *|z19- [amenity=bank],
0974 *|z19- [amenity=bbq],
0975 *|z19- [amenity=bureau_de_change],
0976 *|z20- [amenity=car_wash],
0977 *|z20- [amenity=casino],
0978 *|z19- [amenity=cinema],
0979 *|z20- [amenity=community_centre],
0980 *|z20- [amenity=courthouse],
0981 node|z19- [amenity=drinking_water],
0982 *|z19- [amenity=embassy],
0983 *|z19- [amenity=fire_station],
0984 *|z19- [amenity=internet_cafe],
0985 *|z19- [amenity=library],
0986 *|z20- [amenity=lost_property_office],
0987 *|z19- [amenity=luggage_locker],
0988 *|z20- [amenity=nightclub],
0989 *|z19- [amenity=place_of_worship],
0990 *|z19- [amenity=police],
0991 node|z20- [amenity=post_box],
0992 *|z19- [amenity=post_office],
0993 *|z19- [amenity=prison],
0994 *|z19- [amenity=public_bath],
0995 *|z21- [amenity=public_bookcase],
0996 *|z20- [amenity=recycling],
0997 *|z19- [amenity=social_facility],
0998 node|z20- [amenity=telephone],
0999 *|z19- [amenity=theatre],
1000 *|z20- [amenity=townhall],
1001 *|z19- [amenity=vehicle_inspection]
1002 {
1003     icon-image: amenity;
1004     set .amenity;
1005 }
1006 *|z19- [shop=bank]
1007 {
1008     icon-image: shop;
1009     set .amenity;
1010 }
1011 node|z19- [vending=parking_tickets]
1012 {
1013     icon-image: vending;
1014     set .amenity;
1015 }
1016 *|z18- [tourism=information][!information],
1017 *|z19- [tourism=museum],
1018 *|z20- [tourism=viewpoint]
1019 {
1020     icon-image: tourism;
1021     set .amenity;
1022 }
1023 *|z19- [tourism=gallery]
1024 {
1025     icon-image: "art";
1026     set .amenity;
1027 }
1028 
1029 node|z20- [emergency=phone]
1030 {
1031     icon-image: "emergency_phone";
1032     set .amenity;
1033 }
1034 node|z20- [leisure=firepit]
1035 {
1036     icon-image: leisure;
1037     set .amenity;
1038 }
1039 *|z19- [diplomatic=consulate],
1040 *|z19- [diplomatic=embassy]
1041 {
1042     icon-image: diplomatic;
1043     set .amenity;
1044 }
1045 *|z18- [information=office]
1046 {
1047     icon-image: information;
1048     set .amenity;
1049 }
1050 
1051 node|z19- [amenity=atm],
1052 node|z19- [amenity=drinking_water]
1053 {
1054     text: "";
1055 }
1056 
1057 *|z19- [amenity=left_luggage],
1058 *|z19- [amenity=locker],
1059 *|z19- [amenity=lockers]
1060 {
1061     icon-image: "luggage_locker";
1062     set .amenity;
1063 }
1064 *|z20- [amenity=lost_and_found],
1065 *|z20- [amenity=lost_found],
1066 *|z20- [amenity=lost_property],
1067 *|z20- [office=lost_property],
1068 *|z20- [office=lost_and_found]
1069 {
1070     icon-image: "lost_property_office";
1071     set .amenity;
1072 }
1073 
1074 /** Stairwells */
1075 area|z20-[indoor=area][stairs=yes],
1076 area|z20-[indoor=room][stairs=yes]
1077 {
1078     icon-image: "stairs";
1079 }
1080 
1081 /** Elevators/escalators. */
1082 area[building=elevator],
1083 area[building:part=elevator],
1084 area[building=yes][elevator=yes][!tourism][!shop][!amenity],
1085 area[building:part=yes][elevator=yes],
1086 area[highway=elevator],
1087 area[room=elevator],
1088 area[stairwell=elevator],
1089 area[indoor=room][elevator=yes]
1090 {
1091     set .elevator;
1092     width: 1px;
1093     z-index: 1;
1094 }
1095 
1096 area.elevator|z20- {
1097     icon-image: "elevator";
1098     icon-color: #eff0f1;
1099 }
1100 
1101 node[highway=elevator][access!=no][access!=private]
1102 {
1103     set .elevator;
1104     icon-image: "elevator";
1105 }
1106 
1107 line[highway=footway][conveying=yes],
1108 line[highway=footway][conveying=forward],
1109 line[highway=footway][conveying=backward],
1110 line[highway=footway][conveying=reversible],
1111 line[highway=steps][conveying=yes],
1112 line[highway=steps][conveying=forward],
1113 line[highway=steps][conveying=backward],
1114 line[highway=steps][conveying=reversible]
1115 {
1116     set .escalator;
1117     casing-linecap: none;
1118 }