/* * SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org> * SPDX-License-Identifier: MIT */ // samples taken from kosmindoormap MapCSS parser unit tests @import url("included.mapcss"); // union selector area[railway=platform], relation[type=multipolygon][railway=platform] { color: #ff550022; fill-color: #80f0e0d0; } // chained selector area[railway=platform] node[sign] { fill-color: #ff0000; opacity: 0.5; } // condition with colon-separated keys node[building:part][building:part=elevator] { opacity: 1; color: building:color; } // text properties * { text: ref; text-color: #ff00ff; } // line properties line { dashes: 3,5; linecap: round; linejoin: bevel; casing-width: 1; casing-color: #444444; casing-dashes: 1,1; } // zoom ranges node|z12-13 {} node|z10 {} node|z-10 {} node|z10- {} node|z12-13[name] {} node|z14-[name] {} // numeric comparison conditions * [layer>1], * [layer<2], * [layer>=3], * [layer<=4] {} // object types as tag or property values area[indoor=area] { text-position: line; width: width; } // units * { font-size: 16pt; width: 42px; casing-width: 2m; } // negative numbers * { width: -10.42; } // colors * { text-color: #aabbcc; fill-color: #80ccbbaa; casing-color: #123; shield-color: rgb(1.0, 0.5, 0.25); shield-casing-color: rgba(0.75, 1.0, 0.25, 0.5); color: "red"; } // set tag node[shop=bakery] { set mx:important; } // set tag to a specific value area[shop=bakery] { set mx:importance = "high"; set mx:importance = 20; } // set class node[shop=bakery], node[shop=pastry] { set .importantShops; } // class selectors node.importantShops { color: "red"; } way.importantShops|z20- { color: "green"; } *.importantShops[access=no] { color: "blue"; } // layer selectors (see https://wiki.openstreetmap.org/wiki/MapCSS/0.2/Proposal_layer_selector) way[highway]::road { width: 8; color: #ffffff; casing-width: 2; casing-color: #a0a0a0; } way[railway=tram]::tram { width: 2; color: #303030; z-index: 1; } // default layer selector node::default { icon-image: "bla"; } //quoted values in conditions line|z16-[highway=service][service="drive-through"] { set .service; width: 1.5m; } // single quote strings *[service='drive-through'] { text: 'abc\'def"ghi\njkl'; }